@font-face{font-family:Heros;src:url('./fonts/heros-regular.woff2') format('woff2'),url('./fonts/heros-regular.woff') format('woff');font-weight:400;font-display:swap;ascent-override:72.9%;descent-override:27.1%;line-gap-override:20%}
@font-face{font-family:Heros;src:url('./fonts/heros-bold.woff2') format('woff2'),url('./fonts/heros-bold.woff') format('woff');font-weight:700;font-display:swap;ascent-override:72.9%;descent-override:27.1%;line-gap-override:20%}
@font-face{font-family:Cursor;src:url('./fonts/cursor-regular.woff2') format('woff2'),url('./fonts/cursor-regular.woff') format('woff');font-weight:400;font-display:swap;ascent-override:60.3%;descent-override:39.7%;line-gap-override:20%}
:root{--bg:#0c0d0c;--surface:#151614;--paper:#f1f0e9;--muted:#a0a093;--accent:#f96736;--line:#34362f;--copper-line:#af744540;--font:Heros,Arial,Helvetica,sans-serif;--mono:Cursor,'Courier New',monospace;--pad:clamp(22px,4vw,72px);color-scheme:dark;font-family:var(--font);color:var(--paper);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;font-size:18px}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}
.site-header{height:62px;display:flex;align-items:center;padding:0 28px;gap:30px;position:fixed;inset:0 0 auto;z-index:20;border-bottom:1px solid #ffffff14;background:#0a0b0af2;backdrop-filter:blur(14px)}
.brand{display:inline-flex;align-items:baseline;padding:0;background:none;text-align:left;white-space:nowrap;font-size:26px;font-weight:700;letter-spacing:-1.4px;line-height:1}.brand-period{color:var(--accent)}.header-descriptor{font:12px/1.25 var(--mono);max-width:160px;color:#a4a699}.header-nav{display:flex;gap:28px;align-items:center;margin-left:auto}.nav-link{font-size:14px;background:none;padding:11px 0;position:relative;white-space:nowrap}.nav-link:after{position:absolute;content:'';height:1px;bottom:5px;inset-inline:0;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .25s}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1);transform-origin:left}.contact-button{display:flex;gap:22px;align-items:center;font-size:14px;padding:9px 13px;background:transparent;border:1px solid #686b5b;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}.contact-button>span{font-size:18px;line-height:1}.contact-button:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.workshop{height:100svh;min-height:790px;max-height:1400px;position:relative;overflow:hidden;background:var(--bg);isolation:isolate}#canvas-wrap{position:absolute;inset:62px 0 0;outline:none}#canvas-wrap canvas{width:100%;height:100%;display:block;touch-action:none}.hero-shade{position:absolute;inset:62px 0 0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(4,6,4,.90),rgba(4,6,4,.55) 30%,transparent 67%),linear-gradient(0deg,rgba(4,6,4,.90),transparent 30%,rgba(4,6,4,.05) 80%);transition:opacity .8s}.hero-copy{position:absolute;z-index:2;bottom:211px;left:var(--pad);width:min(46%,600px);pointer-events:none;transition:opacity .65s,transform .8s cubic-bezier(.16,1,.3,1)}.hero-copy button{pointer-events:auto}.eyebrow{font:12px/1.5 var(--mono);letter-spacing:.02em;text-transform:uppercase;margin:0}.hero-copy .eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:23px;color:#e0e0d2}.small-line{width:7px;height:7px;background:var(--accent);display:inline-block;flex-shrink:0}h1{font-weight:700;font-size:clamp(52px,5.6vw,92px);line-height:.97;letter-spacing:-.047em;margin:0 0 25px}h1>span{white-space:nowrap}.hero-description{font-size:clamp(19px,1.55vw,23px);line-height:1.35;margin:0;color:var(--paper)}.hero-audience{font-size:16px;line-height:1.5;color:#c5c5b9;margin:17px 0 0}.explore-button{display:inline-flex;gap:35px;align-items:center;background:transparent;border-bottom:1px solid #bcbcaf;padding:11px 0;font-size:15px;line-height:1.3;margin-top:18px;transition:color .2s,border-color .2s}.explore-button>span{font-size:23px;line-height:1}.explore-button:hover{color:var(--accent);border-color:var(--accent)}
.scene-caption{position:absolute;z-index:2;top:89px;left:var(--pad);right:var(--pad);font:12px/1.5 var(--mono);letter-spacing:.04em;color:#d6d6c7;display:flex;align-items:center;justify-content:space-between;gap:30px;pointer-events:none}.caption-count{color:#b4b4a5;padding-left:22px}.floor-switcher{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:78px;display:flex;align-items:stretch;border-block:1px solid #d7d5bd50;background:#0b0e0bd9;backdrop-filter:blur(13px)}.floor-switcher button{background:transparent;text-align:left;font-size:18px;line-height:1.25;color:var(--paper);padding:19px 22px;position:relative;display:flex;gap:20px;align-items:center;flex:1;border-right:1px solid #d7d5bd40;transition:color .25s,background .25s}.floor-switcher button:last-child{border-right:0}.floor-switcher button>span{font:12px/1.3 var(--mono);color:var(--accent)}.floor-switcher button:after{content:'↗';font-size:21px;margin-left:auto}.floor-switcher button:hover,.floor-switcher button[aria-pressed=true]{color:var(--accent);background:#23261bb3}.floor-switcher .whole-building{flex:.75;color:#c5c6b6}.floor-switcher .whole-building>span{font-size:20px;line-height:.7;color:#aaa899}.floor-switcher button:focus-visible{outline-offset:-5px}
.scene-toolbar{position:absolute;bottom:22px;right:var(--pad);display:flex;align-items:center;gap:23px;z-index:3}.scene-toolbar p{font:12px/1.4 var(--mono);color:#c5c5b5;margin:0}.toolbar-actions{display:flex;align-items:stretch}.toolbar-actions button{background:none;font:12px/1.25 var(--mono);text-transform:uppercase;padding:10px 0 10px 18px;white-space:nowrap;transition:color .2s}.toolbar-actions button:hover{color:var(--accent)}.toolbar-actions button>span{margin-right:8px;font-family:Arial,sans-serif;font-size:16px;vertical-align:-1px}.toolbar-actions button:last-child{font-family:Arial,sans-serif;font-size:24px;margin-left:19px;padding:5px 0 5px 17px;border-left:1px solid #d7d5bd40}.toolbar-actions button[aria-pressed=true]{color:var(--accent)}.scene-instructions{position:absolute;z-index:2;left:var(--pad);bottom:22px;font:11px/1.4 var(--mono);text-transform:uppercase;color:#c5c5b5;margin:0;display:flex;align-items:center;gap:7px;pointer-events:none}.scene-instructions>span:first-child{font:22px/1 Arial,sans-serif;margin-right:4px}.hint-divider{opacity:.4;padding:0 3px}
.service-strip{display:flex;align-items:center;gap:32px;min-height:141px;border-top:1px solid var(--copper-line);padding:27px var(--pad);position:relative;z-index:5;background:var(--bg)}.strip-heading{flex-shrink:0}.strip-heading .eyebrow{font-size:10px;color:var(--muted)}.strip-heading button{display:flex;gap:25px;align-items:center;background:transparent;padding:0;margin-top:10px;font-size:22px;line-height:1.2;letter-spacing:-.03em}.strip-heading button:hover{color:var(--accent)}.strip-heading button>span{font-size:22px}.service-list{display:flex;flex:1;justify-content:space-between;gap:12px}.service-list button{background:none;text-align:left;border-left:1px solid var(--line);padding:5px 0 5px 15px;display:flex;flex-direction:column;gap:13px;min-width:76px;transition:color .2s,border-color .2s}.service-list button span:first-child{font:12px/1 var(--mono);color:var(--accent)}.service-list button span:last-child{font-size:14px;line-height:1.2;white-space:nowrap}.service-list button:hover,.service-list button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.strip-end{font:11px/1.4 var(--mono);letter-spacing:.02em;white-space:nowrap;color:var(--muted);padding:14px 0 14px 18px;border-left:1px solid var(--line);display:flex;gap:17px;align-items:center}.strip-end>span{font:20px/1 var(--font)}.strip-end:hover{color:var(--accent)}
.loading-screen,.error-screen{position:absolute;inset:0;background:var(--bg);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.loading-monogram{font-size:44px;letter-spacing:-2.4px;font-weight:700;display:flex;align-items:baseline;justify-content:center;margin-bottom:38px}.loading-screen .eyebrow{font-size:11px;color:#c6c6b8}.loading-track{width:190px;height:2px;background:var(--line);margin:22px 0 8px}.loading-track>span{display:block;width:7%;height:100%;background:var(--accent);transition:width .4s}.loading-screen>p:last-child{font:12px/1.4 var(--mono);color:var(--muted)}.error-screen h2{font-size:40px;letter-spacing:-.04em;font-weight:400;max-width:410px;margin-bottom:8px}.error-screen>p{max-width:440px;font-size:16px;line-height:1.5;color:var(--muted)}.error-screen .error-hint{font:11px/1.5 var(--mono);margin-top:25px}.hover-label{position:absolute;z-index:5;pointer-events:none;white-space:nowrap;background:#10150eeb;color:var(--paper);border:1px solid #a79f7c66;border-left:2px solid var(--accent);backdrop-filter:blur(12px);padding:11px 15px;font:12px/1.35 var(--mono);box-shadow:0 8px 30px #0005;transform:translate(14px,-100%);margin-top:-12px}
.detail-panel{position:absolute;z-index:6;right:var(--pad);top:124px;width:365px;max-height:calc(100% - 290px);overflow-y:auto;background:#10150eec;border:1px solid #696f515f;border-top:2px solid var(--accent);backdrop-filter:blur(18px);padding:24px 28px 27px;box-shadow:0 20px 65px #0005;animation:panel-in .5s cubic-bezier(.16,1,.3,1)}.panel-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #696f514f;padding-bottom:18px;margin-bottom:27px}.panel-top .eyebrow{font-size:10px;color:#c0c2b0}.panel-top button{font-size:28px;font-weight:400;line-height:1;background:none;padding:0;width:30px;height:30px;transition:color .2s}.panel-top button:hover{color:var(--accent)}.detail-kicker{color:var(--accent);font-size:11px}.detail-panel h2{font-size:44px;font-weight:400;line-height:1.02;letter-spacing:-.045em;margin:17px 0 22px}.detail-panel #detail-description{font-size:17px;line-height:1.5;color:#c9cbbd;margin:0}.panel-cta{background:transparent;color:var(--paper);border-bottom:1px solid #bcbcaf;font-size:15px;padding:12px 0;width:100%;margin:18px 0 10px;text-align:left;display:flex;justify-content:space-between;gap:12px;align-items:center;transition:color .2s,border-color .2s}.panel-cta:after{content:'↗';font-size:23px}.panel-cta:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.panel-cta:disabled{cursor:not-allowed}.panel-cta:disabled:after{content:''}.panel-footnote{font:10px/1.6 var(--mono);color:var(--muted);margin:15px 0 0}@keyframes panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:12px;left:12px;transform:translateY(-200%);padding:12px 18px;background:var(--accent);color:var(--bg);font-size:14px}.skip-link:focus{transform:none}.noscript{padding:24px;font-size:16px}.is-exploring .hero-copy{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none}.is-exploring .hero-copy button{pointer-events:none}.is-exploring .hero-shade{opacity:.13}.is-exploring .scene-toolbar,.is-exploring .scene-instructions{background:#0b0e0bca;backdrop-filter:blur(12px);padding:7px 11px;bottom:15px}.is-exploring .scene-toolbar{padding-block:0}.is-exploring .scene-caption{color:#e7e6d7;text-shadow:0 1px 10px #000}
@media(min-width:1800px){.hero-copy{bottom:240px}h1{font-size:5.3vw;max-width:780px}.hero-audience{font-size:18px}.hero-description{font-size:25px}}
@media(max-width:1200px){.header-descriptor{display:none}.site-header{padding-inline:var(--pad)}.hero-copy{width:49%;bottom:221px}h1{font-size:6.2vw}.hero-description{font-size:20px}.caption-right{font-size:10px}.scene-toolbar{gap:10px}.scene-toolbar p{display:none}.floor-switcher button{font-size:16px;padding:18px;gap:14px}.service-strip{gap:24px}.strip-heading .eyebrow{font-size:9px}.strip-heading button{font-size:20px}.strip-end{display:none}.service-list button{padding-left:12px;min-width:69px}.service-list button span:last-child{font-size:13px}.detail-panel{width:340px}}
@media(max-width:900px){.header-nav{gap:22px}.site-header{gap:24px}.hero-copy{width:57%}h1{font-size:7.1vw}.hero-audience{font-size:15px}.scene-caption .caption-right{display:none}.scene-instructions{font-size:10px}.scene-instructions .hint-divider{padding:0 1px}.service-strip{display:block;padding-block:27px}.strip-heading{display:flex;justify-content:space-between;align-items:center}.strip-heading button{margin:0}.service-list{margin-top:26px;gap:15px}.service-list button{min-width:0;flex:1}.detail-panel{right:var(--pad);width:335px}.detail-panel h2{font-size:39px}}
@media(max-width:760px){.site-header{height:64px;padding-inline:22px;gap:20px}.brand{font-size:25px}.header-nav{display:none}.contact-button{margin-left:auto;font-size:13px;padding:9px 12px;gap:19px}.workshop{height:100svh;min-height:860px;max-height:1200px}#canvas-wrap{inset:64px 0 0}.hero-shade{inset:64px 0 0;background:linear-gradient(0deg,#060a06 0%,#060a06e6 23%,#060a0685 53%,transparent 86%)}.hero-copy{left:22px;bottom:239px;width:calc(100% - 44px);max-width:500px}.hero-copy .eyebrow{font-size:11px;margin-bottom:20px;gap:9px}h1{font-size:clamp(43px,11.1vw,77px);letter-spacing:-.044em;line-height:1;margin-bottom:21px}.hero-description{font-size:19px}.hero-audience{font-size:16px;margin-top:14px;line-height:1.45}.explore-button{font-size:14px;padding:10px 0;margin-top:15px;gap:30px}.explore-button>span{font-size:21px}.scene-caption{top:88px;left:22px;right:22px;font-size:11px;max-width:260px;line-height:1.5}.floor-switcher{left:22px;right:22px;bottom:76px;display:grid;grid-template-columns:1fr 1fr}.floor-switcher button{font-size:15px;padding:14px 12px;gap:12px}.floor-switcher button:nth-child(2){border-right:0}.floor-switcher button>span{font-size:11px}.floor-switcher button:after{font-size:18px}.floor-switcher .whole-building{grid-column:1/-1;border-top:1px solid #d7d5bd40;padding:12px;font-size:13px;gap:12px}.floor-switcher .whole-building>span{font-size:18px}.scene-toolbar{right:22px;bottom:23px;gap:0}.toolbar-actions button{font-size:10px;padding:9px 0 9px 12px}.toolbar-actions button>span{font-size:14px;margin-right:5px}.toolbar-actions button:last-child{font-size:22px;margin-left:12px;padding:4px 0 4px 12px}.scene-instructions{left:22px;bottom:26px;font-size:0;gap:0;max-width:130px}.scene-instructions>span:first-child{font-size:19px;margin-right:7px}.scene-instructions .hint-divider{display:none}.scene-instructions:after{content:'DRAG TO LOOK AROUND';font:10px/1.4 var(--mono);max-width:95px}.service-strip{padding:27px 22px 33px}.strip-heading{gap:20px}.strip-heading .eyebrow{max-width:135px;line-height:1.5;font-size:10px}.strip-heading button{font-size:18px;gap:12px;text-align:right}.service-list{display:grid;grid-template-columns:repeat(3,1fr);margin-top:27px;gap:24px 12px}.service-list button{padding:3px 10px;gap:11px}.service-list button span:first-child{font-size:11px}.service-list button span:last-child{font-size:13px}.detail-panel{top:auto;bottom:208px;left:22px;right:22px;width:auto;max-height:calc(100% - 320px);padding:20px 23px 23px;background:#0c150ef2}.panel-top{padding-bottom:13px;margin-bottom:21px}.detail-panel h2{font-size:38px;margin:14px 0 18px}.detail-panel #detail-description{font-size:16px;line-height:1.45}.panel-cta{font-size:14px;margin-top:14px}.panel-footnote{font-size:10px;margin-top:12px}.is-exploring .scene-toolbar{right:16px;bottom:16px;padding-right:8px}.is-exploring .scene-instructions{left:15px;bottom:17px}.is-exploring .scene-caption{display:none}.loading-monogram{font-size:38px}}
@media(max-width:390px){.site-header{padding-inline:20px}.brand{font-size:24px}.contact-button{font-size:12px;gap:14px}.hero-copy .eyebrow{max-width:240px;font-size:10px}.hero-audience{font-size:15px}.hero-copy{bottom:240px}h1{font-size:11.2vw}.floor-switcher button{font-size:13px;gap:9px}.strip-heading button{font-size:16px}.service-list button{padding-inline:8px}.service-list button span:last-child{font-size:12px}.detail-panel h2{font-size:34px}}
@media(min-width:761px){.workshop{min-height:680px}}
@media(min-width:761px) and (max-height:780px){.hero-copy{bottom:168px}.hero-copy .eyebrow{margin-bottom:19px}h1{font-size:clamp(50px,5.15vw,76px);margin-bottom:20px}.hero-description{font-size:20px}.hero-audience{margin-top:13px}.explore-button{margin-top:14px}.detail-panel{top:114px;max-height:calc(100% - 275px)}.panel-top{padding-bottom:14px;margin-bottom:20px}.detail-panel h2{font-size:39px;margin:14px 0 18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Fixed station views: ordinary page scrolling, no drag-to-orbit affordance. */
#canvas-wrap canvas{touch-action:pan-y;cursor:default}
#view-transition{position:absolute;inset:0;z-index:1;background:var(--bg);opacity:0;pointer-events:none;will-change:opacity}
.toolbar-actions #previous-station{min-width:24px;padding-left:0;padding-right:3px;margin-right:8px}
.toolbar-actions #previous-station>span{margin:0}
.toolbar-actions #next-station>span{margin:0 0 0 8px}
.toolbar-actions #next-station{padding-left:10px}
.service-list{flex-wrap:wrap;row-gap:20px}
@media(max-width:760px){
  .scene-instructions:after{content:'SELECT A STATION'}
  .detail-panel{max-height:220px;padding:16px 20px 20px}
  .detail-panel .panel-top{padding-bottom:9px;margin-bottom:13px}
  .detail-panel h2{font-size:29px;margin:11px 0 12px}
  .detail-panel #detail-description{font-size:14px;line-height:1.4}
  .detail-panel .panel-footnote{display:none}
  .detail-panel .panel-cta{font-size:13px;margin:8px 0 0;padding-block:9px}
  .toolbar-actions #previous-station{margin-right:4px}
  .toolbar-actions #next-station{padding-left:5px}
}

/* Optional Local SEO content; existing panel size, scrolling and framing stay unchanged. */
.detail-extra{margin-top:18px;font-size:14px;line-height:1.45;color:#c9cbbd}
.detail-pillars{display:grid;gap:12px;margin:0}
.detail-pillars>div{border-left:1px solid var(--copper-line);padding-left:12px}
.detail-pillars dt{color:var(--paper);font-weight:700;margin-bottom:3px}
.detail-pillars dd{margin:0}
.detail-search-example,.detail-map-context{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.detail-extra .detail-extra-heading{font:11px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.02em;color:var(--accent);margin:0 0 9px}
.detail-extra p{margin:0 0 7px}
.detail-search-query{font-family:var(--mono);font-size:14px;color:var(--paper)}
.detail-extra .detail-small-note{font-size:12px;line-height:1.5;color:var(--muted)}
.detail-map-attribution{display:inline-block;max-width:100%;padding-block:6px;color:var(--paper);text-decoration:underline;text-underline-offset:3px;font-size:12px;overflow-wrap:anywhere}
.detail-map-attribution:hover{color:var(--accent)}
.local-map-credit{position:absolute;z-index:3;left:var(--pad);top:86px;padding:5px 9px;background:#0b0e0bdb;color:var(--paper);font:12px/1.5 Arial,sans-serif;text-decoration:underline;text-underline-offset:3px}
.local-map-credit[hidden]{display:none}
.scene-caption > span[hidden] + .caption-right{margin-left:auto}
@media(max-width:760px){.local-map-credit{left:22px;top:80px;max-width:calc(100% - 44px)}}
@media(max-width:760px){.detail-extra{font-size:13px;margin-top:15px}.detail-pillars{gap:10px}.detail-search-example,.detail-map-context{margin-top:14px;padding-top:12px}}

/* AEO + GEO extras reuse the semantic station panel without changing Local SEO. */
.detail-aeo-methods-section{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.detail-aeo-methods{margin:0;padding-left:21px;display:grid;gap:12px}
.detail-aeo-methods li{padding-left:3px}
.detail-aeo-methods li::marker{color:var(--accent);font-family:var(--mono);font-size:12px}
.detail-aeo-methods strong{display:block;color:var(--paper);font-weight:700;margin-bottom:3px}
.detail-aeo-methods p{margin:0}
.detail-aeo .detail-aeo-qualification{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line)}
.detail-aeo-access{margin-top:14px}
.detail-aeo-access summary{color:var(--paper);font-size:12px;line-height:1.5;cursor:pointer;padding-block:5px}
.detail-aeo-access summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.detail-aeo-access[open] summary{margin-bottom:7px}
.detail-aeo-sources{display:grid;gap:5px;margin-top:14px}
.detail-aeo-source{font-size:12px;line-height:1.5;color:var(--paper);text-decoration:underline;text-underline-offset:3px;padding-block:3px;overflow-wrap:anywhere}
.detail-aeo-source:hover{color:var(--accent)}
@media(max-width:760px){.detail-aeo-methods-section{margin-top:14px;padding-top:12px}.detail-aeo-methods{gap:10px}.detail-aeo-definitions dt{line-height:1.4}}

/* Plain controls operate the physical sector tiles in the scene. */
.sector-controls,.showcase-controls{padding-top:15px;border-top:1px solid var(--line)}
.sector-buttons,.showcase-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}
.sector-buttons button,.showcase-buttons button{background:transparent;border:1px solid var(--line);padding:9px 10px;font:12px/1.3 var(--mono);color:var(--paper)}
.sector-buttons button[aria-pressed=true],.showcase-buttons button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.showcase-buttons button:disabled{opacity:.45;cursor:default}
.sector-back,.showcase-back{display:block;background:none;border-bottom:1px solid var(--line);padding:9px 0;margin-top:10px;font-size:13px;color:var(--paper)}
.sector-back:hover,.showcase-back:hover{color:var(--accent)}
.detail-panel #detail-description{white-space:pre-line}
@media(max-width:760px){.sector-buttons,.showcase-buttons{gap:6px}.sector-buttons button,.showcase-buttons button{font-size:11px;padding:8px}.sector-controls,.showcase-controls{padding-top:11px}}

/* Exploring view: the caption takes the same scrim the toolbar and instructions already use. */
.is-exploring .scene-caption>span{background:#0b0e0bca;backdrop-filter:blur(12px);padding:7px 11px}

/* Longer, search-led H1 needs a smaller type ramp than the old short slogan.
   Scoped to >=1201px: the existing mobile ramps already fit and are untouched. */
@media(min-width:1201px){.hero-copy{width:min(56%,760px)}.hero-copy h1{font-size:clamp(38px,3.4vw,58px);line-height:1.02;letter-spacing:-.032em}}
@media(min-width:1800px){.hero-copy h1{font-size:3.1vw}}
/* Error-screen heading was demoted h2 -> p.error-headline; carry its styling across.
   This screen is what a visitor on a slow connection actually sees. */
.error-screen .error-headline{font-size:40px;letter-spacing:-.04em;font-weight:400;max-width:410px;margin:0 0 8px;line-height:1.05}
/* The phone number must survive the .header-descriptor mobile hide - trades customers phone. */
@media(max-width:1200px){.header-descriptor.tel-link{display:inline-block;max-width:none;font-size:13px}}
@media(max-width:760px){.header-descriptor.tel-link{display:none}}

/* Workshop poster. The model is no longer fetched on load, so the hero would
   otherwise be empty. This sits in the canvas's own place, BEHIND .hero-shade
   (z-index 0 vs the shade's 1), so the left-hand gradient falls on it exactly
   as it falls on the live scene and the cross-fade is invisible. */
.hero-poster{position:absolute;z-index:0;inset:62px 0 0;overflow:hidden;pointer-events:none;transition:opacity .9s ease}
.hero-poster img{width:100%;height:100%;object-fit:cover;object-position:62% 46%;display:block;transform-origin:62% 46%;animation:poster-drift 34s ease-in-out infinite alternate}
/* The still steps aside only once a frame of the real scene has rendered
   (app.js sets this after renderer.render), so there is never a black gap. */
.workshop-visible .hero-poster{opacity:0}
@keyframes poster-drift{from{transform:scale(1.035) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(-1.1%,-0.7%,0)}}
@media(max-width:760px){.hero-poster{inset:64px 0 0}.hero-poster img{object-position:66% 48%}}
/* The site already honours reduced motion in CSS and JS; the poster follows. */
@media(prefers-reduced-motion:reduce){.hero-poster img{animation:none;transform:scale(1.035)}}

/* While the model downloads, the progress panel sits ON the still rather than
   replacing it with a dark rectangle - the visitor keeps looking at the thing
   they just asked to see. The error screen stays fully opaque. */
.loading-screen{background:#0c0d0cbf;backdrop-filter:blur(3px)}

/* Headings: let the browser avoid leaving one word alone on the last line. */
h2,h3{text-wrap:pretty}

/* Tablet widths (761-980px): the menu links and phone number pushed “Let’s talk” off the screen, so use the phone header. Both are in the footer. */
@media(min-width:761px) and (max-width:980px){.header-descriptor.tel-link{display:none}.header-nav{display:none}.contact-button{margin-left:auto}}
/* Keep links such as “Find us on Facebook” in one piece, and small hints tidy. */
.footer-area a{white-space:nowrap}
.error-hint{text-wrap:pretty}
