/* Shared visual treatment. Navigation and interactions remain in the existing modules. */
:root{color-scheme:light;--paper:#f0f5f1;--ink:#14251f;--muted:#52675f;--line:#bdcfc7;--hot:#ad3c28;--amber:#a84b23;--green:#23705c;--panel:#e2ece6;--signal:#26777d;--headline-size:4.5rem}
:root[data-theme="dark"]{color-scheme:dark;--paper:#101613;--ink:#f2f3df;--muted:#b1c1b9;--line:#3c5750;--hot:#ff9874;--amber:#ffc795;--green:#98d2b5;--panel:#1a2923;--signal:#84c9cb}
body{font-family:Arial,Helvetica,sans-serif;letter-spacing:0;background:var(--paper);color:var(--ink)}
*,*::before,*::after{letter-spacing:0}
::selection{background:var(--hot);color:var(--paper)}
button,a,input,textarea,summary{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--signal);outline-offset:5px}
.site-header{padding:23px 4%;background:var(--paper);border-bottom:1px solid var(--signal);backdrop-filter:none;box-shadow:0 4px 0 color-mix(in srgb,var(--signal) 5%,transparent)}
.wordmark{font:800 26px/1 Arial,Helvetica,sans-serif;letter-spacing:0}
.header-right{gap:27px}.section-nav{gap:24px;font-size:14px}
.section-nav a{min-height:44px;display:grid;align-content:center;position:relative;text-decoration:none}
.section-nav a[aria-current]::after{content:"";position:absolute;bottom:4px;left:0;right:0;height:2px;background:var(--hot)}
.section-nav a:hover{color:var(--hot)}
.market-status{font:10px/1.5 monospace;max-width:225px;color:var(--muted)}
.market-status i{width:6px;height:6px;box-shadow:none}.market-closed i{background:#ba4b36;box-shadow:none}
.mode-toggle{font:10px/1.4 monospace;padding:12px 0;min-height:44px;text-decoration:none;border-bottom:1px solid var(--line)}
.mode-toggle:hover{color:var(--hot);border-color:var(--hot)}
.mode-toggle{font-size:0!important;width:44px;min-height:44px;border:0;display:grid;place-items:center}
.mode-toggle::before{content:"";display:block;width:18px;height:18px;background:var(--ink);mask:url('./assets/moon.svg') center/contain no-repeat}
:root[data-theme="dark"] .mode-toggle::before{mask-image:url('./assets/sun.svg')}
.eyebrow,.work-meta,.row-number,.art-caption,.preview-caption,.detail-toolbar,.project-notes dt,.market-stats span,.chart-intro,.chart-date-labels,.chart-captions,.market-footer,.trace-year,.trace-hint,.lightbox-details dt,.contact-form label,.form-status{font-family:monospace}
.eyebrow{color:var(--signal);font-size:10px;font-weight:500;line-height:1.6}
.work-view,.project-view{padding:38px 4% 0}
.work-meta{margin-bottom:22px;font-size:10px;line-height:1.6;color:var(--signal)}
.work-meta h1{font-size:11px;font-weight:500}
.work-biography{max-width:720px;font-size:17px;line-height:1.65;margin-bottom:36px;color:var(--muted)}
.work-layout{grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);gap:5%}
.work-list{padding:4px 8px;scrollbar-width:thin;scrollbar-color:var(--signal) transparent}
.work-list li{border-color:var(--line)}
.project-row{min-height:99px;padding:20px 0;grid-template-columns:28px minmax(0,1fr) 24px;gap:14px}
.row-titles{font:400 25px/1.22 Arial,Helvetica,sans-serif;min-width:0;overflow-wrap:break-word}
.campaign-title{font:italic 1em/1.22 Georgia,serif;color:var(--hot)}
.row-number{font-size:10px;padding-top:5px}.row-arrow{color:var(--signal);opacity:.65}
.is-selected .row-number{color:var(--hot)}
.is-selected .project-row{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--signal) 5%,transparent),transparent)}
.preview-panel{top:120px}
.w-art{background-color:#12221c;background-image:linear-gradient(115deg,color-mix(in srgb,var(--project-color,#8cc9c0) 12%,transparent),transparent 62%),url('./assets/signal-w.webp');background-size:cover;background-position:28% center;color:#f9f4dd;box-shadow:inset 0 0 0 1px #90c7bd70}
.w-art>span:first-child{display:none}
.w-art.has-image{isolation:isolate}
.w-art.has-image>span[aria-hidden]{display:none}
.campaign-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--image-focus,50% 50%);filter:saturate(.78) contrast(1.03)}
.w-art.has-image::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,color-mix(in srgb,var(--project-color,#8cc9c0) 12%,transparent),transparent 62%);pointer-events:none}
.w-art.has-image .art-caption{z-index:1}
.preview-art{aspect-ratio:4/5;width:100%;transition:box-shadow .3s}
.preview-art:hover{box-shadow:inset 0 0 0 2px #b6e3d8}
.w-art .art-caption{position:absolute;left:0;right:0;bottom:0;padding:17px 22px;font-size:10px;background:#101613e6;border-top:1px solid #8ac6c36b;color:#eef4df}
.preview-caption{font-size:10px;line-height:1.6;padding-top:16px}
.preview-caption>:first-child{max-width:80%}
.find-more{font:400 38px/1.2 Arial,sans-serif;border-top:1px solid var(--signal);margin-top:60px;padding:28px 0 36px}
.find-more span{color:var(--hot)}
.detail-toolbar{color:var(--muted);font-size:11px;padding-bottom:34px}
.back-work:hover{color:var(--hot)}
.detail-heading h1{font:400 56px/1.08 Arial,Helvetica,sans-serif;max-width:1050px;margin:20px 0}
.detail-heading p{font:italic 22px/1.4 Georgia,serif}
.detail-art{aspect-ratio:16/11;background-position:24% 65%}
.project-notes{padding:28px}.project-notes>p{font-size:20px;line-height:1.6;color:var(--ink)}
.project-notes dl{font-size:14px}.project-notes dt{font-size:10px;text-transform:uppercase;color:var(--signal)}
.detail-secondary{aspect-ratio:3/1;background-position:15% 70%;opacity:.95}
.detail-art.has-image{aspect-ratio:16/9;align-self:center}
.detail-art.has-image .campaign-image{object-position:50% 50%}
.detail-art.has-image .art-caption{display:none}
.detail-secondary.has-image{aspect-ratio:16/9;max-height:780px;opacity:1}
.detail-secondary.has-image .campaign-image{object-fit:contain}
.project-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.project-notes{min-width:0}.project-notes dd{overflow-wrap:anywhere}
.campaign-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;color:var(--hot);text-underline-offset:5px}
.project-description{grid-column:1/-1;display:grid;grid-template-columns:minmax(100px,.35fr) minmax(0,1fr);gap:32px;padding:34px 0 12px;border-top:1px solid var(--line)}
.project-description h2{margin:4px 0 0;font-weight:500;text-transform:uppercase}
.project-description>div{max-width:760px}
.project-description p{font-size:18px;line-height:1.75;margin:0 0 24px;color:var(--ink)}
.project-description p:last-child{margin-bottom:0}
.project-description em{font-family:Georgia,serif}
.project-bottom{font:12px/1.6 monospace;border-top-color:var(--signal);padding:28px 0 40px}
.project-bottom a:hover{color:var(--hot)}
.intro,.market-panel,.closing{padding-left:4%;padding-right:4%}
.intro{padding-top:58px;padding-bottom:48px;border-bottom:0;position:relative}
.intro h1{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:var(--headline-size);line-height:1.08;max-width:100%;margin:22px 0 28px}
.intro h1 [data-rotating-word]{color:var(--hot)}
.intro-copy{max-width:560px;margin:0;font-size:17px;line-height:1.65}
.market-panel{padding-top:44px;padding-bottom:32px;border-color:var(--signal)}
.chart-story{grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);gap:32px 8%;margin-bottom:58px}
.chart-story h2{font:400 46px/1.12 Arial,sans-serif}.chart-story h2 em{font:italic 1em/1.12 Georgia,serif;color:var(--hot)}
.chart-story p{max-width:430px;line-height:1.7;font-size:15px}
.market-topline{padding-bottom:24px;gap:24px}.market-topline h3{font:700 55px/1 Arial,sans-serif;margin-top:14px}
.market-stats{gap:46px}.market-stats span{font-size:10px}.market-stats strong{font:400 30px/1.1 Arial,sans-serif}
.chart-intro{font-size:10px;line-height:1.8;margin-top:25px}
.chart-scroller{border-bottom:1px solid var(--line)}
.chart-scroller .chart-wrap{min-width:640px;aspect-ratio:1200/540}
.chart-grid line{stroke:var(--signal);opacity:.28;stroke-dasharray:2 7}
.chart-line{stroke:var(--hot);stroke-width:5}
.chart-area{opacity:.65}.chart-points circle{stroke:var(--hot);fill:var(--paper);stroke-width:3}
.trace-line{stroke:var(--signal);stroke-width:1}.trace-dot{fill:var(--hot)}
.trace-card{background:var(--ink);color:var(--paper);border:1px solid var(--signal);box-shadow:5px 5px 0 color-mix(in srgb,var(--signal) 20%,transparent)}
.trace-year{font-size:19px;color:var(--paper)}.trace-hint{font-size:9px}.trace-hint span{color:var(--paper)}
.trace-title{font-size:16px;line-height:1.25}.trace-meta{font-size:12px;line-height:1.4}
.chart-date-labels{font-size:10px}.chart-captions{padding:16px 0 24px}.chart-captions>div{font-size:10px}
.market-footer{font-size:10px;line-height:1.5}
.will-faq{max-width:none;padding:56px 4% 76px}.will-faq h2{font:400 36px/1.15 Arial,sans-serif;margin:18px 0 32px}
.will-faq details{max-width:1000px;border-color:var(--line)}.will-faq summary{font:400 19px/1.5 Arial,sans-serif;padding:22px 25px 22px 0}
.will-faq summary::marker{color:var(--hot)}.will-faq details[open] summary{color:var(--hot)}
.will-faq details p{font-size:15px;max-width:740px;line-height:1.75}
.write-view{padding-top:64px;padding-bottom:72px;gap:9%;border-top:0;min-height:calc(100svh - 90px);align-items:start}
.write-view h2{font:400 58px/1.1 Arial,sans-serif;margin:24px 0 40px}.write-view h2 em{color:var(--hot)}
.contact-links{display:grid;gap:16px}.contact-links a{font:14px/1.7 monospace;text-underline-offset:6px}
.contact-links a:hover{color:var(--hot)}
.contact-form{gap:24px;padding-top:4px}.contact-form label{font-size:10px;line-height:1.5;color:var(--signal)}
.contact-form input,.contact-form textarea{font:16px/1.5 Arial,sans-serif;padding:12px 0 14px;border-color:var(--line);background:transparent;color:var(--ink)}
.contact-form textarea{min-height:165px;max-height:600px}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--signal);box-shadow:0 1px var(--signal)}
.contact-form button{font:400 21px/1.4 Arial,sans-serif;padding:19px 0;border-top-color:var(--signal);color:var(--ink)}
.contact-form button span{color:var(--hot)}.form-status{font-size:10px;max-width:460px;line-height:1.65;color:var(--muted)}
.lightbox{background:#07120ee8;padding:68px 4% 32px;backdrop-filter:blur(8px)}
.lightbox-close{color:#f2f3df;font:11px/1.5 monospace;min-height:44px;top:13px;right:4%}
.lightbox-content{border:1px solid var(--signal);max-height:calc(100dvh - 110px);background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lightbox-art{background:#101613 url('./assets/signal-w.webp') 25% center/cover!important;min-height:520px}
.lightbox-art::after{display:none}
.lightbox-details{padding:38px;min-width:0;align-self:center}.lightbox-details h2{font:400 40px/1.1 Arial,sans-serif;overflow-wrap:break-word}
.lightbox-details>p{font-size:14px;line-height:1.7}.lightbox-details dl{gap:20px;margin-top:26px}.lightbox-details dt{font-size:10px;color:var(--signal)}
.lightbox-details dd{font-size:13px;line-height:1.5}.lightbox-campaigns h3{font:10px/1.5 monospace;color:var(--signal)}
.campaign-chip{background:transparent;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.campaign-chip span{font:10px/1.5 monospace}
@media(min-width:1900px){.row-titles{font-size:29px}.project-row{min-height:114px}.detail-heading h1{font-size:64px}.work-biography{font-size:18px}.work-layout{gap:6%}}
@media(max-width:1100px){:root{--headline-size:3.5rem}.header-right{gap:18px}.section-nav{gap:18px}.market-status{max-width:165px}.row-titles{font-size:22px}.chart-story h2{font-size:38px}.write-view h2{font-size:48px}.detail-heading h1{font-size:48px}}
@media(max-width:760px){
 :root{--headline-size:3rem}.site-header{padding:17px 20px 12px;gap:12px}.wordmark{font-size:22px}.header-right{display:contents}.section-nav{font-size:12px;gap:17px}.section-nav a{min-height:34px}
 .market-status{display:flex;max-width:none;font-size:9px;order:3}.mode-toggle{order:4;margin-left:auto;min-height:30px;padding:5px 0;font-size:9px}
 .work-view,.project-view{padding:30px 20px 0}.work-meta{font-size:9px;gap:16px}.work-meta>span{max-width:170px}.work-biography{font-size:15px;line-height:1.65;margin-bottom:28px}
 .work-layout{display:block}.work-list{padding:4px}.project-row{min-height:90px;grid-template-columns:20px minmax(0,1fr) 18px;gap:10px}.row-titles{font-size:22px}
 .mobile-preview .w-art{aspect-ratio:4/3;background-position:25% 70%}.open-project{font:11px/1.6 monospace;color:var(--hot)}
 .w-art .art-caption{padding:13px 16px;font-size:9px}.find-more{font-size:30px;margin-top:36px;padding:24px 0 32px}
 .detail-heading h1{font-size:38px}.detail-heading p{font-size:20px}.project-notes{padding:28px 0}.project-notes>p{font-size:18px}.detail-secondary{aspect-ratio:4/3}
 .project-description{display:block;padding:26px 0 32px}.project-description h2{margin:0 0 18px}.project-description p{font-size:16px;line-height:1.75;margin-bottom:20px}
 .intro,.market-panel,.closing{padding-left:20px;padding-right:20px}.intro{padding-top:40px;padding-bottom:38px}.intro-copy{font-size:15px}
 .chart-story{display:block;margin-bottom:36px}.chart-story h2{font-size:34px}.chart-story p{margin-top:22px;font-size:14px}.market-panel{padding-top:36px}.market-topline{align-items:end;gap:22px}.market-topline h3{font-size:43px}
 .market-stats{gap:18px;justify-content:flex-start}.market-stats span{font-size:9px}.market-stats strong{font-size:24px}.chart-intro{font-size:9px}.chart-scroller{margin-top:16px}
 .trace-card{max-width:205px}.trace-title{font-size:14px}.trace-meta{font-size:10px}.chart-captions>div,.market-footer{font-size:9px}
 .will-faq{padding:44px 20px 56px}.will-faq h2{font-size:30px}.will-faq summary{font-size:17px}.will-faq details p{font-size:14px}
 .write-view{display:grid;grid-template-columns:1fr;gap:40px;min-height:0;padding-top:38px;padding-bottom:56px}.write-view h2{font-size:42px;margin-bottom:30px}.contact-links a{font-size:13px}.contact-form{gap:22px}
 .lightbox{padding:62px 14px 20px}.lightbox-content{display:block;max-height:calc(100dvh - 90px)}.lightbox-art{min-height:240px;max-height:300px;background-position:25% 72%!important}.lightbox-details{padding:26px}.lightbox-details h2{font-size:32px}
}
@media(max-width:370px){.wordmark{font-size:20px}.section-nav{width:auto;margin-left:auto;font-size:11px;gap:14px}.market-status{font-size:8px;max-width:210px}.mode-toggle{font-size:8px}.row-titles{font-size:19px}.work-meta>span{max-width:145px}.market-stats{gap:14px}.market-topline h3{font-size:38px}.write-view h2{font-size:36px}.detail-heading h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
