/* Readable property story inside the existing scene and measured HUD bounds. */
.story-page{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;padding:6px 0;max-width:1520px;margin:auto;box-sizing:border-box;color:var(--ink)}
.story-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none}
.story-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--lime)}
.story-header h1{font:400 clamp(25px,2.5vw,36px)/1.12 var(--sans);letter-spacing:-.035em;margin:8px 0 0}
.story-demo{font-family:var(--mono);font-size:10px;color:var(--ink-dim);border:1px solid var(--line-bright);padding:8px 12px;border-radius:999px;white-space:nowrap}
.story-nav{display:flex;gap:8px;overflow-x:auto;flex:none;padding:2px 2px 9px;scrollbar-width:thin}
/* ═══ THE BUTTON GRAMMAR (style sweep, 2026-09-22) — the old demo's button
   system Michael liked, "not the color, just how it looks and motion", in
   champagne and chrome: mono caps · 1px line · near-square · hover lifts to
   the accent · the selected one is filled · press sinks 1px. The same rule
   dresses the viewer's rail, the 3D toggle and the subtabs; Home's doors keep
   the website's panel grammar on purpose. ═══ */
.story-nav button{flex:none;display:inline-flex;align-items:center;gap:7px;font:11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);padding:0 14px;min-height:38px;border:1px solid var(--line-bright);border-radius:4px;background:rgba(18,22,24,.72);cursor:pointer;
  transition:color .18s,border-color .18s,background .18s,transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s}
.story-nav button:hover{color:var(--accent);border-color:var(--accent);background:rgba(28,32,36,.85);transform:translateY(-1px)}
.story-nav button.active{color:var(--on-accent);border-color:var(--accent);background:var(--accent);font-weight:700}
.story-nav button small{font:inherit;font-size:9px;letter-spacing:.06em;padding:2px 5px;border-radius:3px;background:rgba(255,255,255,.12);color:inherit;opacity:.85}
.story-nav button.active small{background:rgba(0,0,0,.18)}
.story-page button:active,.story-home:active{transform:translateY(1px)}
.story-page button:focus-visible,.story-page a:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.story-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:18px;background:var(--showcase-glass,var(--panel));backdrop-filter:blur(22px);scrollbar-width:thin}
.story-overview{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);min-height:100%}
.story-overview:not(:has(.story-cover)){grid-template-columns:1fr}
.story-cover{margin:0;min-height:320px;position:relative;background:var(--panel)}
.story-cover img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.story-reading{padding:clamp(22px,3.2vw,48px);min-width:0}
.story-reading h2,.story-space-group h2{font:400 clamp(23px,2.4vw,34px)/1.2 var(--sans);letter-spacing:-.025em;margin:10px 0 20px}
.story-reading h3,.story-feature-group h3{font:600 15px/1.4 var(--sans);margin:0 0 14px}
.story-copy{font:400 15px/1.85 var(--sans);color:var(--ink-dim);white-space:pre-line;max-width:75ch;margin:0 0 18px;overflow-wrap:anywhere}
.story-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.story-actions .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:12px;letter-spacing:.02em;text-transform:none}
/* stacked Location: text first, then the image in whatever room is left — the panel never scrolls for it (2026-09-18) */
.story-overview-stacked{display:flex;flex-direction:column;height:100%;min-height:0}
.story-overview-stacked>.story-reading{flex:0 0 auto}
.story-cover-below{flex:1 1 0;min-height:160px;position:relative;overflow:hidden;padding:0;margin:0 clamp(22px,3.2vw,48px) clamp(22px,3.2vw,48px);background:transparent;border:0}
.story-cover-below .story-arrival-map{position:absolute;inset:0;max-width:none;margin:0;width:100%;height:100%;display:block;border:0;border-radius:0;background:transparent}
.story-cover-below img,.story-cover-below .story-arrival-map img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;object-position:left top}
.story-arrival .story-arrival-map{width:auto;display:inline-block}
.story-arrival .story-arrival-map img{width:auto;max-width:100%;max-height:min(42vh,520px)}
.story-arrival{margin-top:34px;padding-top:26px;border-top:1px solid var(--line-bright)}
.story-arrival h3{font:600 15px/1.4 var(--sans);margin:0 0 14px}
.story-arrival-map{display:block;width:100%;max-width:720px;padding:0;margin:0 0 18px;border:1px solid var(--line-bright);border-radius:14px;overflow:hidden;background:var(--panel);cursor:zoom-in}
.story-arrival-map img{display:block;width:100%;height:auto}
.story-arrival-list{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px 28px;max-width:75ch}
.story-arrival-list div{min-width:0}
.story-arrival-list dt{font:600 13px/1.4 var(--sans);margin:0 0 6px}
.story-arrival-list dd{font:400 14px/1.7 var(--sans);color:var(--ink-dim);margin:0;white-space:pre-line;overflow-wrap:anywhere}
.story-chips{list-style:none;padding:0;margin:18px 0;display:flex;gap:8px;flex-wrap:wrap}
.story-chips li{font:400 12px/1.65 var(--sans);color:var(--ink-dim);padding:9px 13px;border:1px solid var(--line-bright);border-radius:10px;max-width:100%;overflow-wrap:anywhere}
.story-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;margin:0 0 28px}
.story-facts div{padding:18px 22px 18px 0;border-bottom:1px solid var(--line)}
.story-facts dt{font:400 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}
.story-facts dd{font:400 21px/1.35 var(--sans);margin:0;overflow-wrap:anywhere}
.story-resources{margin-top:30px}
.story-resources button{display:flex;gap:18px;align-items:center;width:100%;text-align:left;padding:17px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:400 14px var(--sans);cursor:pointer;min-height:48px}
.story-resources button span:first-child{flex:1}.story-resources small{font:400 10px var(--mono);color:var(--ink-dim)}
.story-contacts{max-width:820px}.story-contacts .pcard{margin:20px 0}.story-contacts .pcard .pacts{flex-wrap:wrap}
/* THE LISTING (2026-09-22): the anatomy every buyer knows, in our chrome */
.lst-head{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(22px,3vw,44px);align-items:start}
.lst-main{min-width:0}
.lst-gallery{position:relative;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;height:min(30vh,300px);margin:0 0 24px;border-radius:14px;overflow:hidden}
.lst-gallery:has(.lst-shot:only-of-type){grid-template-columns:1fr}
.lst-shot{border:0;padding:0;min-height:0;background:#0f1214 center/cover no-repeat;cursor:pointer;transition:filter .25s}
.lst-shot:first-child{grid-row:1/3}
.lst-shot:hover{filter:brightness(1.08)}
.lst-more{position:absolute;right:12px;bottom:12px;font:11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(10,12,14,.72);border:1px solid rgba(255,255,255,.3);border-radius:4px;min-height:36px;padding:0 14px;cursor:pointer;backdrop-filter:blur(12px);transition:.18s}
.lst-more:hover{color:var(--accent);border-color:var(--accent)}
.lst-price{font:500 clamp(30px,3.2vw,46px)/1.05 var(--sans);letter-spacing:-.03em;margin:0 0 6px}
.lst-address{font:400 15px/1.5 var(--sans);color:var(--ink-dim);margin:0 0 22px}
.lst-address:empty{display:none}
.lst-stats{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,44px);margin:0 0 22px}
.lst-stat b{display:block;font:500 clamp(26px,2.6vw,36px)/1 var(--sans);letter-spacing:-.02em}
.lst-stat small{display:block;margin-top:7px;font:400 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.lst-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:0 0 8px}
.lst-tile{padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);min-width:0}
.lst-tile small{display:block;font:400 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px}
.lst-tile span{font:400 15px/1.35 var(--sans);overflow-wrap:anywhere}
.lst-section{padding-top:26px;margin-top:26px;border-top:1px solid var(--line)}
.lst-section h2,.lst-h2{font:400 clamp(20px,2vw,26px)/1.2 var(--sans);letter-spacing:-.02em;margin:0 0 16px}
.lst-tags{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.lst-tags li{font:600 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);padding:9px 11px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:4px;background:rgba(var(--accent-rgb),.07)}
.lst-desc .story-copy{margin-bottom:14px}
.lst-desc.clamped{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.lst-toggle{margin:2px 0 0;padding:0;border:0;background:none;color:var(--accent);font:500 13px var(--sans);cursor:pointer}
.lst-toggle::before{content:"";display:inline-block;width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin:0 9px 3px 1px}
.lst-toggle[aria-expanded="true"]::before{transform:rotate(-135deg);margin-bottom:-2px}
.lst-listed{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font:400 13px/1.7 var(--sans);color:var(--ink-dim)}
.lst-listed p{margin:4px 0 0}
.lst-listed b{color:var(--ink);font-weight:500}
.lst-listed a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-bright)}
.lst-aside{position:sticky;top:0}
.lst-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line-bright);border-radius:14px;background:rgba(255,255,255,.04)}
.lst-card .btn{width:100%;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-transform:none;letter-spacing:.02em;font-size:13px;padding:10px 14px}
.lst-card .btn b{font-weight:600}
.lst-card .btn small{font:400 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.lst-link{border:0;background:none;color:var(--accent);font:500 12px var(--sans);cursor:pointer;padding:4px 0 0;text-align:center}
.lst-band{margin-top:18px}
.lst-band h3{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.05);margin:0 0 10px}
.lst-list{margin:0;padding:0 14px;list-style:none;columns:2;column-gap:36px}
.lst-list li{break-inside:avoid;font:400 14px/1.6 var(--sans);color:var(--ink-dim);padding:6px 0 6px 16px;position:relative;overflow-wrap:anywhere}
.lst-list li::before{content:"";position:absolute;left:0;top:14px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.lst-band .story-resources{margin-top:0;padding:0 14px}
/* the map sits in the dark like everything else: inverted + hue-rotated, the usual night-mode trick for a keyless embed */
.lst-map{display:block;width:100%;aspect-ratio:21/9;min-height:220px;border:1px solid var(--line-bright);border-radius:14px;margin:6px 0 22px;background:#111;filter:invert(.92) hue-rotate(180deg) saturate(.5) contrast(.92) brightness(.9)}
@media(max-width:1000px){.lst-head{grid-template-columns:1fr}.lst-aside{position:static}}
@media(max-width:760px){.lst-gallery{height:220px;gap:4px}.lst-list{columns:1}.lst-stats{gap:22px}}
@media(prefers-reduced-motion:reduce){.lst-shot{transition:none}}
/* THE DOSSIER (2026-09-22): one page, numbered parts, a jump row that follows */
.story-dossier{position:relative;display:flex;flex-direction:column}
.story-dossier-section{border-top:1px solid var(--line);scroll-margin-top:6px}
.story-dossier-section:first-child{border-top:0}
.story-dossier .story-overview{min-height:0}
.story-dossier .story-cover{min-height:min(46vh,520px)}
.story-num{font:400 10px var(--mono);letter-spacing:.16em;color:var(--accent);margin-right:10px}
.story-features-inline{margin-top:28px;padding-top:0;border-top:0}
.story-area-cover{margin-top:26px;max-width:960px}
.story-dossier .story-reading>.story-actions+.story-arrival{margin-top:30px}
@media(max-width:760px){.story-features-inline{grid-template-columns:1fr}.story-dossier .story-cover{min-height:0;aspect-ratio:16/10}}
.story-explore{padding:clamp(18px,2.5vw,32px)}
.story-space-group+.story-space-group{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.story-space-group>header{margin-bottom:20px}.story-space-group>header h2{margin-top:0;margin-bottom:10px}
.story-space-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.story-space-card{display:flex;flex-direction:column;min-width:0;background:var(--panel);border:1px solid var(--line-bright);border-radius:14px;overflow:hidden;transition:border-color .18s ease,transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s}
.story-space-card:hover,.story-space-card:focus-within{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 16px 36px -18px rgba(0,0,0,.7)}
.story-space{display:flex;flex-direction:column;flex:1 1 auto;padding:0;min-width:0;text-align:left;color:var(--ink);background:transparent;border:0;border-radius:0;overflow:hidden;cursor:pointer}
.story-space-media{display:flex;gap:6px;flex-wrap:wrap;padding:0 19px 16px}
.story-space-media button{display:inline-flex;align-items:center;gap:6px;font:10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(18,22,24,.72);border:1px solid var(--line-bright);border-radius:4px;min-height:32px;padding:0 11px;cursor:pointer;transition:color .18s,border-color .18s,background .18s,transform .18s}
.story-space-media button:hover{color:var(--accent);border-color:var(--accent);background:rgba(28,32,36,.85);transform:translateY(-1px)}
.story-space-media button small{font:inherit;font-size:9px;padding:2px 5px;border-radius:3px;background:rgba(255,255,255,.12)}
.story-space-image{display:block;height:clamp(120px,19vh,210px);width:100%;overflow:hidden;background:var(--panel)}
.story-space-image img{width:100%;height:100%;object-fit:cover}
.story-space-copy{display:flex;flex-direction:column;gap:10px;padding:19px;width:100%;box-sizing:border-box}
.story-space-copy>small{font:400 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.story-space-title{display:flex;justify-content:space-between;gap:10px;font:500 20px/1.25 var(--sans)}
.story-space-title>span{font-size:15px;color:var(--ink-dim)}
.story-space-description{font:400 13px/1.75 var(--sans);color:var(--ink-dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.story-features{border-top:1px solid var(--line);padding-top:28px;margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.story-features:first-child{border-top:0;padding-top:0;margin-top:0}
.story-feature-group .story-chips{margin:0}
@media(max-width:1050px){.story-space-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.story-overview{grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr)}}
@media(max-width:760px){.story-page{padding:12px;gap:12px}.story-header{align-items:flex-start;gap:10px}.story-header h1{font-size:24px}.story-demo{font-size:8px;padding:6px 8px}.story-eyebrow{font-size:9px}.story-nav{gap:6px;padding-bottom:6px}.story-nav button{padding:10px 13px;font-size:11px}.story-overview{display:flex;flex-direction:column}.story-cover{min-height:0;aspect-ratio:16/9}.story-reading{padding:22px}.story-copy{font-size:14px}.story-space-grid{grid-template-columns:1fr}.story-space-title{font-size:21px}.story-space-description{-webkit-line-clamp:unset}.story-features{grid-template-columns:1fr}.story-actions .btn{flex:1 1 180px}.story-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.story-facts dd{font-size:18px}.story-contacts .pcard{flex-wrap:wrap}.story-resources button{flex-wrap:wrap;gap:8px}.story-resources small{display:none}}
@media(prefers-reduced-motion:reduce){.story-space,.story-nav button,.story-space-card,.story-home,.story-space-media button{transition:none}.story-nav button:hover,.story-space-card:hover{transform:none}}

/* HOME — four doors (2026-09-22). Equal, low-profile glass panels; the hovered
   or focused one widens and warms to the brand colour, with the champagne
   rule underneath. Mirrors sonoxr.media's hero-destination, app tokens only. */
.home-doors{display:flex;gap:10px;width:min(560px,100%);min-width:0;margin:26px auto 0;padding:0;
  opacity:0;animation:fadeup .7s .75s cubic-bezier(.16,1,.3,1) forwards}
.home-door{position:relative;display:flex;flex:1 1 0;align-items:center;gap:10px;min-width:0;height:66px;padding:12px 14px;overflow:hidden;
  color:var(--ink);text-align:left;cursor:pointer;
  border:1px solid var(--line-bright);border-radius:12px;background:rgba(10,13,16,.56);
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 12px 35px rgba(0,0,0,.12);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  transition:flex-grow .5s cubic-bezier(.16,1,.3,1),background-color .35s ease,border-color .35s ease}
.home-door::after{content:"";position:absolute;inset:auto 16px 0;height:2px;background:var(--accent);transform:scaleX(.18);transform-origin:left;opacity:.55;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .35s ease}
.home-door-icon{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border:1px solid rgba(var(--accent-rgb),.28);border-radius:50%;color:var(--accent);background:rgba(var(--accent-rgb),.08)}
.home-door-icon svg{width:17px;height:17px}
.home-door strong{font:500 clamp(14px,1vw,16px)/1.15 var(--sans);letter-spacing:-.01em;min-width:0}
.home-door:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.home-door:is(:hover,:focus-visible):not(.off){flex-grow:1.5;background-color:rgba(var(--accent-rgb),.16);border-color:var(--accent)}
.home-door:is(:hover,:focus-visible):not(.off)::after{transform:scaleX(1);opacity:1}
.home-door.off{opacity:.45;cursor:default}
.home-door.off .home-door-icon{color:var(--ink-dim);border-color:var(--line);background:transparent}
@media(max-width:760px){.home-doors{flex-direction:column;gap:8px;width:min(420px,100%);margin-top:18px}.home-door{flex:none;height:54px;padding:10px 14px;border-radius:10px}.home-door-icon{width:29px;height:29px}.home-door-icon svg{width:16px;height:16px}.home-door strong{font-size:15px}.home-door:is(:hover,:focus-visible):not(.off){flex-grow:0}}
@media(prefers-reduced-motion:reduce){.home-doors{animation:none;opacity:1}.home-door,.home-door::after{transition:none}}
/* Home keeps the introduction broad and the one Overview button quiet. */
#heroLayer .hero.hero-v4 .hero-act{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.home-info-nav{justify-content:center;flex-wrap:wrap;overflow:visible;margin:18px 0 0;padding:0;gap:8px}
.home-info-nav button{color:var(--ink);background:var(--panel);backdrop-filter:blur(16px)}
.home-info-nav button:focus-visible,.story-home:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.story-header-actions{display:flex;align-items:center;gap:12px;flex:none}
.story-home{font:11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#fff;border:1px solid var(--line-bright);border-radius:4px;background:rgba(18,22,24,.72);min-height:38px;padding:0 14px;cursor:pointer;transition:color .18s,border-color .18s,background .18s,transform .18s}
.story-home:hover{color:var(--accent);border-color:var(--accent);background:rgba(28,32,36,.85);transform:translateY(-1px)}
@media(max-width:760px){.home-info-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(360px,100%)}.story-header-actions{flex-direction:column-reverse;align-items:flex-end;gap:6px}.story-header-actions .story-demo{display:none}.story-home{padding:9px 12px}}
/* The opening scrolls inside the visible scene, never behind its dock. */
#heroLayer .hero.hero-v4{inset:calc(var(--sales-header-h,110px) + 12px) 0 calc(var(--foot-h,54px) + var(--hud-h,64px) + 44px);padding:12px 6vw;pointer-events:auto;overscroll-behavior:contain}
#heroLayer .hero.hero-v4>*{flex-shrink:0}
@media(max-height:780px){#heroLayer .hero.hero-v4 h1{font-size:clamp(42px,8.2vh,76px);margin-top:6px}}
@media(max-width:640px){#heroLayer .hero.hero-v4{padding-left:18px;padding-right:18px}}

#heroLayer .hero.hero-v4 h1{font-size:clamp(44px,8.6vh,100px)}
/* 2026-09-21: phones size the headline by WIDTH — 8.6vh on a tall phone was 70px and five lines */
@media(max-width:640px){#heroLayer .hero.hero-v4 h1{font-size:clamp(32px,10.5vw,50px)}}

/* ═══ SPACES (2026-09-22): the hybrid of Explore and Gallery ═══ */
.story-kind-nav{margin-top:-4px}
.story-kind-nav button{min-height:34px;padding:0 12px}
.story-room+.story-room{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.story-room-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 18px;margin-bottom:14px}
.story-room-title{display:block;min-width:0;flex:1 1 320px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}
.story-room-title h3{margin:0;font:500 clamp(18px,1.6vw,22px)/1.2 var(--sans);letter-spacing:-.01em}
.story-room-title:hover h3{color:var(--lime)}
.story-room-title p{margin:6px 0 0;font:14px/1.6 var(--sans);color:var(--ink-dim);max-width:62ch}
.story-room-head .story-space-media{margin:0;flex:none}
.story-room-empty{color:var(--ink-faint);font-size:13px}
.story-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.story-tile{position:relative;display:block;padding:0;aspect-ratio:16/10;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#0f1214 center/cover no-repeat;overflow:hidden;cursor:pointer;text-align:left;color:#fff;transition:border-color .16s,transform .16s,box-shadow .16s}
.story-tile:hover,.story-tile:focus-visible{border-color:var(--lime);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.45);outline:none}
.story-tile b{position:absolute;left:8px;top:8px;padding:4px 7px;border-radius:3px;background:rgba(0,0,0,.6);font:9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;font-weight:400}
.story-tile span{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.35) 60%,transparent);font:12px/1.3 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.story-tile.video::after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.45) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 7l8 5-8 5z' fill='white'/></svg>") center/20px no-repeat;pointer-events:none}
/* the muted hover loop (style sweep, 2026-09-22): the clip fades in over the
   poster and the play mark steps aside while it runs */
.story-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease;pointer-events:none}
.story-tile.playing video{opacity:1}
.story-tile.playing::after{opacity:0;transition:opacity .2s}
.story-tile.bare{background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.story-tile.bare span{top:0;padding:14px 12px;background:none;white-space:normal;font-size:14px}
@media(max-width:760px){.story-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.story-room-title p{font-size:13px}}
.story-wall{grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}
.story-room-self .story-room-head{margin-bottom:10px}
.story-room-self>.story-room-head:empty{display:none}

/* ═══ THE GALLERY (2026-09-22) — Spatial-Gallery vibe: spaces as tabs on the left,
   the media type as a quiet select on the right, and the media as a strip of
   large glass cards with the words on the picture. ═══ */
.story-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.story-toolbar .story-nav{flex:1 1 auto;min-width:0;padding-bottom:0}
.story-kind-select{display:inline-flex;align-items:center;gap:8px;flex:none;font:10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
.story-kind-select select{appearance:none;-webkit-appearance:none;font:11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(18,22,24,.72) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23d0af8e' stroke-width='1.4'/></svg>") no-repeat right 12px center;border:1px solid var(--line-bright);border-radius:4px;min-height:38px;padding:0 38px 0 14px;min-width:200px;cursor:pointer;transition:.18s}
.story-kind-select select:hover{border-color:var(--accent);color:var(--accent)}
.story-lede{font:400 13px/1.6 var(--sans);color:var(--ink-dim);margin:-2px 0 0;max-width:80ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:none}
.story-content-open{background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:hidden;display:flex;flex-direction:column;border-radius:0}
.story-strip{flex:1;min-height:0;display:flex;align-items:center;gap:22px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:6px 24px;scrollbar-width:none;outline:none}
.story-strip::-webkit-scrollbar{display:none}
/* the card fills what the stage gives it: as tall as the strip allows, 16:9, up to 84vw */
.story-card{position:relative;flex:none;height:min(100%,calc(min(84vw,1720px) * 10 / 16));aspect-ratio:16/10;max-width:min(84vw,1720px,100%);border-radius:22px;overflow:hidden;background:#0f1214 center/cover no-repeat;scroll-snap-align:center;cursor:pointer;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);transform:scale(.94);opacity:.72;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s,border-color .2s}
.story-card.is-focus{transform:scale(1);opacity:1}
.story-card:hover,.story-card:focus-visible{border-color:rgba(var(--accent-rgb),.7);outline:none}
.story-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.35) 32%,rgba(0,0,0,0) 60%,rgba(0,0,0,.22) 100%);pointer-events:none}
.story-card>*{position:absolute;z-index:1}
.story-card-brand{left:18px;top:16px;font:500 11px/1 var(--sans);color:#fff;padding:8px 11px;border-radius:999px;background:rgba(0,0,0,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18)}
.story-card-tools{right:14px;top:14px;display:flex;gap:6px}
.story-card-save{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;font:14px/1 var(--sans);cursor:pointer;transition:.18s;padding:0}
.story-card-save:hover,.story-card-save[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.story-card-words{left:22px;right:22px;bottom:20px;color:#fff;text-align:left;text-shadow:0 1px 2px rgba(0,0,0,.8);max-width:60ch}
.story-card-words small{display:block;font:400 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.story-card-words h3{font:400 clamp(20px,2.2vw,32px)/1.1 var(--sans);letter-spacing:-.02em;margin:0 0 8px}
.story-card-words h3 em{font-style:normal;font-size:.6em;color:var(--accent);margin-left:6px}
.story-card-words p{font:400 13.5px/1.55 var(--sans);color:#fff;opacity:.9;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story-card.video::before{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.4) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 7l8 5-8 5z' fill='white'/></svg>") center/26px no-repeat;z-index:1;pointer-events:none;transition:opacity .2s}
.story-card.playing::before{opacity:0}
.story-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s;pointer-events:none;z-index:0}
.story-card.playing video{opacity:1}
.story-card.bare{background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02))}
/* a plan is read whole, never cropped */
.story-card.plan{background-size:contain;background-color:#0f1214}
.story-card-door .story-card-words h3::before{content:"";display:inline-block;width:14px;height:14px;margin-right:10px;border:1px solid var(--accent);transform:rotate(45deg) scale(.8);vertical-align:middle}
.story-strip-nav{flex:none;display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 0 2px}
/* the ‹ n / N › row is the way through the strip — big enough to find (Michael, 2026-09-23) */
.story-strip-arrow{width:60px;height:52px;border-radius:6px;border:1px solid rgba(255,255,255,.4);background:rgba(18,22,24,.78);color:#fff;font:300 32px/1 var(--sans);cursor:pointer;transition:.18s;padding:0}
.story-strip-arrow:hover{border-color:var(--accent);color:var(--accent)}
.story-strip-arrow:active{transform:translateY(1px)}
.story-strip-pos{font:13px var(--mono);letter-spacing:.14em;color:#fff;min-width:88px;text-align:center}
@media(max-width:760px){.story-toolbar{flex-direction:column;align-items:stretch}.story-kind-select{justify-content:flex-end}.story-strip{gap:12px;padding:6px 6vw}.story-card{max-width:88vw;height:min(100%,calc(88vw * 10 / 16));border-radius:16px;transform:scale(.97)}.story-card-words h3{font-size:20px}.story-card-brand{display:none}}
@media(prefers-reduced-motion:reduce){.story-card{transition:none}}
.story-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}
.story-empty p{font:400 16px/1.5 var(--sans);color:var(--ink-dim);margin:0}
.story-empty-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.story-empty-acts button{font:11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(18,22,24,.72);border:1px solid var(--line-bright);border-radius:4px;min-height:38px;padding:0 14px;cursor:pointer;transition:.18s}
.story-empty-acts button:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}
.story-content-open{position:relative}
/* in the gutter beside the focused card: (gutter − arrow − 16px), never off the stage */
.story-strip-side-l{left:8px}.story-strip-side-r{right:8px}   /* placed beside the focused card by the strip's focus() */

/* ═══ THE OVERVIEW DECK (2026-09-29) — see showcase-story.js about.renderDeck. One composition per
   chapter, glass tiles over the chapter's own photograph; no page scroll on desktop. MOTION.md:
   house curve in, mirror curve out at ~60%, tiles staggered, one rule sweep per heading. ═══ */
.story-page.ov-deck{--ov-in:cubic-bezier(.16,1,.3,1);--ov-out:cubic-bezier(.7,0,.84,0);position:relative;display:block!important;height:100%;max-width:none!important;margin:0;padding:0!important;border-radius:18px;overflow:hidden;isolation:isolate}
.ov-deck>#pgInstruments{display:none!important}
.ov-bg{position:absolute;inset:0;z-index:0;background:#0b0f12}
.ov-bg i{position:absolute;inset:-2%;background:center/cover no-repeat;opacity:0;transform:scale(1.06);transition:opacity .9s var(--ov-in),transform 1.6s var(--ov-in)}
.ov-bg i.on{opacity:1;transform:scale(1.02);animation:ovDrift 26s ease-in-out 1.2s infinite alternate}
.ov-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,12,.8) 0%,rgba(4,8,12,.42) 42%,rgba(4,8,12,.3) 62%,rgba(4,8,12,.72) 100%),linear-gradient(0deg,rgba(4,8,12,.7) 0%,rgba(4,8,12,0) 38%),linear-gradient(180deg,rgba(4,8,12,.55) 0%,rgba(4,8,12,0) 22%)}
@keyframes ovDrift{from{transform:scale(1.02)}to{transform:scale(1.07) translate(-.6%,-.4%)}}

/* the chapter menu — the menu within the door */
.ov-menu{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:2px;padding:5px;border-radius:999px;background:rgba(16,22,27,.72);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 40px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08);max-width:calc(100% - 32px);scrollbar-width:none}
.ov-menu::-webkit-scrollbar{display:none}
.ov-menu button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 16px;border:0;border-radius:999px;background:none;color:rgba(255,255,255,.66);font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color .22s}
.ov-menu button svg{width:17px;height:17px;flex:none;transition:transform .35s var(--ov-in)}
.ov-menu button:hover{color:#fff}
.ov-menu button.active{color:#fff}
.ov-menu button.active svg{color:var(--accent);transform:translateY(-1px)}
.ov-menu button:active{transform:scale(.97);transition:transform .1s}
.ov-ind{position:absolute;top:5px;bottom:5px;left:5px;right:100%;border-radius:999px;background:rgba(var(--accent-rgb),.16);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5);transition-property:left,right;transition-timing-function:var(--ov-in),var(--ov-in);pointer-events:none}

/* the stage and a chapter */
.ov-stage{position:absolute;inset:76px 22px 60px;z-index:2}
.ov-ch{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.62fr) minmax(290px,.9fr);gap:14px;min-height:0}
.ov-col{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0}
.ov-left{grid-column:1}.ov-right{grid-column:3}.ov-wide{grid-column:1 / span 2}
.ov-ch-overview .ov-left{justify-content:flex-end}
.ov-ch-overview .ov-right{justify-content:space-between}
.ov-ch-contact .ov-right,.ov-ch-story .ov-right{justify-content:flex-start}
.ov-right.ov-solo{grid-column:1 / span 2;max-width:640px}

.ov-tile{position:relative;background:rgba(16,22,27,.74);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:16px 18px;box-shadow:0 18px 50px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08);color:#fff;min-width:0;transition:border-color .22s,transform .22s var(--ov-in)}
button.ov-tile{font:inherit;text-align:left;cursor:pointer}
button.ov-tile:hover{border-color:rgba(var(--accent-rgb),.6);transform:translateY(-2px)}
.ov-eyebrow,.ov-h small{display:block;font:500 9px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.64)}
.ov-h h2,.ov-title,.ov-layer h2{margin:6px 0 0;font:400 clamp(30px,2.8vw,46px)/1.04 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;letter-spacing:-.015em;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.ov-h h2 em,.ov-title em,.ov-layer h2 em{font-style:italic;color:var(--accent-soft,#eef2f6)}
.ov-h h2::after{content:"";display:block;width:56px;height:1px;margin-top:14px;background:var(--accent);transform-origin:left;transform:scaleX(0);animation:ovRule .9s var(--ov-in) .25s forwards}
@keyframes ovRule{to{transform:scaleX(1)}}

/* 1 · overview */
.ov-title{font-size:clamp(38px,4vw,68px);line-height:1}
.ov-addr{margin:12px 0 0;font:500 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.ov-price{margin:10px 0 0;font:500 28px var(--sans);letter-spacing:-.02em;color:#fff}
.ov-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ov-stat b{display:block;font:500 clamp(26px,2.3vw,38px)/1 var(--sans);letter-spacing:-.02em}
.ov-stat small{display:block;margin-top:8px;font:500 9px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-lede p,.ov-read p{margin:0;font:300 14.5px/1.6 var(--sans);color:rgba(255,255,255,.88)}
.ov-lede p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ov-clamp{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.ov-clamp p+p{margin-top:10px}
.ov-more{display:inline-flex;gap:6px;margin-top:10px;padding:6px 0;border:0;background:none;color:var(--accent);font:600 9.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.ov-more:hover span{transform:translateX(3px)}.ov-more span{transition:transform .22s var(--ov-in)}
.ov-cta-in{display:flex;flex-direction:column;gap:8px}
.ov-cta-in .btn{width:100%}
.ov-media{display:flex;flex-direction:column;gap:12px;padding:12px}
.ov-thumbs{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:6px}
.ov-thumbs i{aspect-ratio:4/3;border-radius:10px;background:center/cover no-repeat #111}
.ov-media-l{display:flex;align-items:baseline;gap:6px;padding:0 4px;font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.ov-media-l b{font:500 20px var(--sans);letter-spacing:-.02em;color:#fff}

/* 2 · what's special */
.ov-hl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:6px 0 0;padding:0;list-style:none}
.ov-hl-t{display:flex;flex-direction:column;gap:10px;min-height:96px}
.ov-hl-t small{font:600 10px var(--mono);letter-spacing:.2em;color:var(--accent)}
.ov-hl-t b{font:400 15.5px/1.4 var(--sans);color:#fff}
.ov-listed p{margin:8px 0 0;display:flex;flex-direction:column;font:400 14px var(--sans)}
.ov-listed p span{font:500 9px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:3px}
.ov-hl-all{margin:0;padding-left:22px;display:grid;gap:10px;font:300 15px/1.5 var(--sans)}

/* 3 · facts — instruments + the band menu */
.ov-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px}
.ov-fact small{display:block;font:500 9px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.ov-fact span{display:block;margin-top:8px;font:500 19px/1.2 var(--sans);letter-spacing:-.01em;color:#fff;overflow-wrap:anywhere}
.ov-bands .ov-band-t{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}
.ov-band-nav{display:flex;flex-wrap:wrap;gap:6px}
.ov-band-nav button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:none;color:rgba(255,255,255,.72);font:500 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.ov-band-nav button small{color:var(--accent)}
.ov-band-nav button.active{background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.55);color:#fff}
.ov-band-list{flex:1;min-height:0;overflow:auto;margin:0;padding:0 4px 0 0;list-style:none;columns:2;column-gap:18px;overscroll-behavior:contain}
.ov-band-list li{break-inside:avoid;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08);font:300 13.5px/1.45 var(--sans);color:rgba(255,255,255,.88)}
.ov-band-list li span{color:rgba(255,255,255,.6)}
.ov-band-list.ov-swap li{animation:ovIn .45s var(--ov-in) both;animation-delay:calc(min(var(--n,0),8) * 30ms)}
.ov-doc{display:flex;gap:8px;align-items:baseline;width:100%;padding:0;border:0;background:none;color:#fff;font:400 13.5px var(--sans);text-align:left;cursor:pointer}
.ov-doc small{color:rgba(255,255,255,.55)}

/* 4 · location — the map is the stage */
.ov-map{grid-column:1 / span 2;padding:0;overflow:hidden;min-height:0}
.ov-map iframe{display:block;width:100%;height:100%;border:0;filter:saturate(.85)}
.ov-acts{display:flex;flex-wrap:wrap;gap:8px}
.ov-acts .btn{flex:1 1 auto}
.ov-arrive{display:flex;gap:14px;align-items:center;padding:10px}
.ov-arrive-map{flex:none;width:96px;aspect-ratio:4/3;padding:0;border:0;border-radius:10px;overflow:hidden;cursor:pointer;background:#111}
.ov-arrive-map img{width:100%;height:100%;object-fit:cover;display:block}
.ov-arrive b{display:block;margin-top:4px;font:400 15px var(--sans)}
.ov-arrive .ov-more{margin-top:4px}

/* 5 · contact */
.ov-contacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:6px}

/* the pager */
.ov-pager{position:absolute;right:22px;bottom:14px;z-index:4;display:flex;align-items:center;gap:10px;font:500 9.5px var(--mono);letter-spacing:.2em;color:rgba(255,255,255,.72)}
.ov-pager button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(16,22,27,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font:400 18px/1 var(--sans);cursor:pointer;transition:border-color .22s,opacity .22s}
.ov-pager button:hover:not(:disabled){border-color:var(--accent)}
.ov-pager button:disabled{opacity:.3;cursor:default}

/* the reading panel — grows from the button that opened it */
.ov-layer{position:absolute;inset:72px max(22px,14%) 56px;z-index:6;opacity:0;transform:scale(.94);transition:opacity .26s var(--ov-out),transform .26s var(--ov-out)}
.ov-layer.open{opacity:1;transform:none;transition:opacity .45s var(--ov-in),transform .45s var(--ov-in)}
.ov-layer-in{height:100%;display:flex;flex-direction:column;background:rgba(12,17,21,.9);-webkit-backdrop-filter:blur(26px) saturate(1.2);backdrop-filter:blur(26px) saturate(1.2);border:1px solid rgba(var(--accent-rgb),.35);border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden}
.ov-layer header{position:relative;padding:24px 70px 16px 28px;border-bottom:1px solid rgba(255,255,255,.08)}
.ov-layer header small{font:500 9px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-layer h2{font-size:clamp(26px,2.2vw,36px)}
.ov-x{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.04);color:#fff;font:400 20px/1 var(--sans);cursor:pointer;transition:border-color .2s,color .2s}
.ov-x:hover{border-color:var(--accent);color:var(--accent)}
.ov-layer-body{flex:1;overflow:auto;padding:22px 28px 28px;overscroll-behavior:contain}
.ov-layer-body .story-copy{max-width:68ch;font:300 15.5px/1.7 var(--sans);color:rgba(255,255,255,.9)}
.ov-deck.ov-layer-on .ov-stage{opacity:.28;transition:opacity .3s}
.ov-deck .ov-stage{transition:opacity .3s}

/* hand-off between chapters (MOTION.md §6.4): out recedes at ~60% of the in time, in materialises */
.ov-ch.ov-out{animation:ovOut .32s var(--ov-out) both;pointer-events:none}
.ov-ch.ov-in :is(.ov-tile,.ov-h,.ov-intro,.ov-acts){animation:ovIn .7s var(--ov-in) both;animation-delay:calc(min(var(--ov-i,0),8) * 55ms + 60ms)}
@keyframes ovIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes ovOut{to{opacity:0;transform:scale(.98)}}

/* narrower desktops: two columns, the middle air goes first */
@media (max-width:1180px) and (min-width:900px){
  .ov-ch{grid-template-columns:minmax(0,1.2fr) 0 minmax(280px,.9fr);column-gap:0}
  .ov-ch>.ov-col.ov-left{margin-right:14px}
  .ov-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ov-band-list{columns:1}
}
/* short desktop windows: tighten before anything clips */
@media (max-height:760px) and (min-width:900px){
  .ov-stage{inset:68px 18px 54px}
  .ov-tile{padding:12px 14px}
  .ov-title{font-size:clamp(34px,3.4vw,54px)}
  .ov-hl-t{min-height:0}
  .ov-lede p{-webkit-line-clamp:3}
  .ov-clamp{-webkit-line-clamp:5}
}
/* phones: the same chapters, stacked; the chapter scrolls inside itself, swipe changes chapter */
@media (max-width:899px){
  .story-page.ov-deck{border-radius:14px}
  .ov-menu{top:10px;left:10px;right:10px;transform:none;max-width:none;overflow-x:auto;justify-content:flex-start}
  .ov-menu button{padding:0 12px}
  .ov-stage{inset:64px 10px 50px}
  .ov-ch{display:flex;flex-direction:column;gap:10px;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}
  .ov-ch-overview .ov-left{justify-content:flex-start}
  .ov-col{flex:none}
  .ov-map{flex:none;height:240px}
  .ov-title{font-size:34px}
  .ov-stats{gap:8px}.ov-stat b{font-size:24px}
  .ov-hl{grid-template-columns:1fr}.ov-hl-t{min-height:0}
  .ov-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ov-band-list{columns:1;max-height:320px}
  .ov-layer{inset:58px 8px 46px}
  .ov-pager{right:12px;bottom:10px}
}
@media (prefers-reduced-motion:reduce){
  .ov-bg i,.ov-bg i.on{animation:none;transform:none;transition:opacity .3s}
  .ov-ch.ov-in :is(.ov-tile,.ov-h,.ov-intro,.ov-acts),.ov-ch.ov-out,.ov-band-list.ov-swap li{animation:none}
  .ov-h h2::after{animation:none;transform:none}
  .ov-ind{transition:none}
  .ov-layer,.ov-layer.open{transform:none;transition:opacity .2s}
}
@media (prefers-reduced-transparency:reduce){
  .ov-tile,.ov-menu,.ov-layer-in{-webkit-backdrop-filter:none;backdrop-filter:none;background:#10161b}
}
.ov-tile{box-sizing:border-box}
.ov-media,.ov-thumbs{width:100%}
.ov-cta-in .btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}
.ov-cta-in .btn small{display:block;font-size:8px;letter-spacing:.14em;opacity:.72}
.ov-right.ov-bands-wide{grid-column:2 / span 2}
@media (max-width:899px){.ov-right.ov-bands-wide{grid-column:auto}}
/* bottom-anchored without upward overflow: an auto margin collapses to 0 when space runs out,
   justify-content:flex-end would push the title up under the menu instead */
.ov-ch-overview .ov-left,.ov-ch-overview .ov-right{justify-content:flex-start}
.ov-ch-overview .ov-left>:first-child{margin-top:auto}
.ov-ch-overview .ov-right>:last-child{margin-top:auto}
.ov-ch{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.ov-ch::-webkit-scrollbar{display:none}
/* desktop: the pager joins the menu row, the stage takes the height it gave up */
@media (min-width:900px){
  .ov-pager{top:19px;bottom:auto;right:22px}
  .ov-stage{inset:76px 22px 18px}
}
@media (max-height:800px) and (min-width:900px){
  .ov-menu{top:12px}.ov-menu button{min-height:34px;padding:0 13px}
  .ov-pager{top:14px}
  .ov-stage{inset:64px 18px 14px}
  .ov-ch{gap:10px}.ov-col{gap:9px}
  .ov-tile{padding:10px 13px;border-radius:14px}
  .ov-title{font-size:clamp(30px,3vw,46px)}
  .ov-h h2{font-size:clamp(26px,2.3vw,36px)}.ov-h h2::after{margin-top:9px}
  .ov-addr{margin-top:8px}.ov-price{margin-top:6px;font-size:22px}
  .ov-stat b{font-size:24px}.ov-stat small{margin-top:5px}
  .ov-lede p,.ov-read p{font-size:13.5px;line-height:1.5}
  .ov-lede p{-webkit-line-clamp:2}.ov-clamp{-webkit-line-clamp:4}
  .ov-more{margin-top:4px;padding:4px 0}
  .ov-hl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ov-hl-t{min-height:0;gap:6px}.ov-hl-t b{font-size:14px}
  .ov-fact span{font-size:17px;margin-top:5px}
  .ov-cta-in{gap:6px}
  .ov-thumbs i{aspect-ratio:16/9}
}
@media (max-height:680px) and (min-width:900px){
  .ov-thumbs{display:none}
  .ov-lede{display:none}
}
.ov-bands .ov-band-t{flex:0 1 auto;max-height:100%}
.ov-band-list{flex:0 1 auto}

/* ═══ THE HUB (2026-09-29, second pass) — every category a module around THE LENS. ═══ */
/* ambient: at the hub the backdrop is the lens's own picture, defocused — the page takes its light
   from the photograph; opening a chapter pulls it into focus */
.ov-bg i{transition:opacity .9s var(--ov-in),transform 1.6s var(--ov-in),filter .7s var(--ov-in)}
.ov-deck.ov-at-hub .ov-bg i{inset:-8%;filter:blur(34px) brightness(.5) saturate(1.2)}
.ov-deck.ov-at-hub .ov-bg::after{background:radial-gradient(120% 90% at 50% 42%,rgba(4,8,12,.05) 0%,rgba(4,8,12,.5) 70%,rgba(4,8,12,.75) 100%)}
.ov-plate{position:absolute;inset:0;z-index:1;border-radius:20px;background:rgba(14,19,24,.55);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.55);pointer-events:none;opacity:.9}
.ov-ch{z-index:2}

.ov-hub{position:absolute;inset:0;display:grid;grid-template-columns:minmax(270px,23.5%) minmax(0,1fr) minmax(270px,23.5%);gap:20px;container-type:size;container-name:hub}
.ov-zone{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0}
/* two columns when Location has its own tab (2026-10-02): the right column's modules ride under the left, the lens takes the width */
.ov-hub.ov-hub-2{grid-template-columns:minmax(280px,26%) minmax(0,1fr)}
.ov-hub-2>.ov-zl{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.ov-hub-2>.ov-zl::-webkit-scrollbar{display:none}
/* Explore + Media: slimmer side columns so the lens gets the width (Michael, 2026-10-02: "preview screen … way too small") */
@media (min-width:1181px){.ov-deck:is([data-page="Explore"],[data-page="Media"]) .ov-hub{grid-template-columns:minmax(250px,21%) minmax(0,1fr) minmax(240px,19%);gap:16px}}
.ov-zl,.ov-zr{justify-content:flex-start}

/* the figures — naked, like an instrument's readout (no box) */
.ov-figs{display:flex;gap:22px;padding:2px 2px 4px}
.ov-fig{display:flex;flex-direction:column;gap:6px;padding-left:12px;border-left:1px solid rgba(var(--accent-rgb),.5)}
.ov-fig small{order:-1;font:500 8.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-fig b{font:300 clamp(30px,2.7vw,46px)/.95 var(--sans);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.ov-fig-price{margin:0;padding:0 2px;display:flex;align-items:baseline;gap:10px}
.ov-fig-price small{font:500 8.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-fig-price span{font:400 19px var(--sans);letter-spacing:-.01em;color:var(--accent-soft,#eef2f6)}

/* the module — one anatomy for every category */
.ov-mod{position:relative;flex:0 1 auto;display:flex;flex-direction:column;gap:12px;min-height:0;padding:13px 13px 14px 15px;border-radius:20px;background:rgba(14,19,24,.6);-webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25);border:1px solid rgba(255,255,255,.13);box-shadow:0 22px 50px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.07);overflow:hidden;transition:border-color .22s,transform .25s var(--ov-in)}
.ov-mod:hover{border-color:rgba(var(--accent-rgb),.45)}
.ov-mod-h{display:flex;align-items:center;gap:11px;cursor:pointer;min-width:0}
.ov-ring{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.55);color:var(--accent);box-shadow:inset 0 0 14px rgba(var(--accent-rgb),.14)}
.ov-ring svg{width:16px;height:16px}
.ov-mod-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ov-mod-t b{font:500 14.5px/1.15 var(--sans);letter-spacing:-.005em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-mod-t small{font:500 8.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.56);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-open{flex:none;display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.03);color:#fff;cursor:pointer;transition:border-color .2s,color .2s,transform .25s var(--ov-in)}
.ov-open svg{width:14px;height:14px}
.ov-mod:hover .ov-open,.ov-open:focus-visible{border-color:var(--accent);color:var(--accent);transform:translate(1px,-1px)}
.ov-mod-b{min-height:0}
.ov-mod-f{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:0}
.ov-mod-f .ov-more{margin:0}
.ov-lede-t{margin:0;font:300 13.5px/1.55 var(--sans);color:rgba(255,255,255,.84);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ov-hl-step small{display:block;font:600 9.5px var(--mono);letter-spacing:.2em;color:var(--accent)}
.ov-hl-step b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:6px;font:400 18px/1.28 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff}
.ov-step{display:inline-flex;align-items:center;gap:8px}
.ov-step button{display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.03);color:#fff;font:400 16px/1 var(--sans);cursor:pointer;transition:border-color .2s}
.ov-step button:hover{border-color:var(--accent)}
.ov-step-n{font:500 9px var(--mono);letter-spacing:.18em;color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums}
.ov-minis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:10px}
.ov-mini small{display:block;font:500 8.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.56)}
.ov-mini span{display:block;margin-top:4px;font:500 16px var(--sans);letter-spacing:-.01em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-feat{margin:0;padding:0;list-style:none}
.ov-feat li{padding:6px 0;border-top:1px solid rgba(255,255,255,.08);font:300 12.5px/1.4 var(--sans);color:rgba(255,255,255,.84);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-feat li span{color:rgba(255,255,255,.55)}
.ov-seg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);max-width:100%;overflow:hidden}
.ov-seg button{min-height:26px;padding:0 10px;border:0;border-radius:999px;background:none;color:rgba(255,255,255,.62);font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .3s,color .3s,box-shadow .3s}
.ov-seg button.active{background:rgba(var(--accent-rgb),.2);color:#fff;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5)}
.ov-chip-btn{min-height:28px;padding:0 12px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.1);color:#fff;font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .2s}
.ov-chip-btn:hover{background:rgba(var(--accent-rgb),.22)}
/* location: a night-mode map (the keyless embed, inverted into the room's palette) */
.ov-mod-big{flex:1 1 auto}
.ov-mod-big .ov-mod-b{flex:1;display:flex;min-height:96px}
.ov-loc-view{position:relative;flex:1;min-height:96px;border-radius:14px;overflow:hidden;background:#0b0f12;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.ov-loc-view iframe{position:absolute;inset:-40px 0 0;width:100%;height:calc(100% + 40px);border:0;filter:invert(.9) hue-rotate(180deg) saturate(.55) brightness(.92) contrast(.95);pointer-events:none}
.ov-loc-area{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transition:opacity .45s var(--ov-in)}
.ov-loc-area.on{opacity:1}
/* media: the true counts as bars — each one opens that kind */
.ov-bars{display:flex;align-items:stretch;gap:10px;height:96px}
.ov-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:0;padding:0;border:0;background:none;color:#fff;cursor:pointer}
.ov-bar i{display:block;width:100%;max-width:30px;height:calc(var(--h) * 58%);min-height:5px;border-radius:7px;background:linear-gradient(0deg,rgba(var(--accent-rgb),.9),rgba(var(--accent-rgb),.3));transform-origin:bottom;transition:filter .2s}
.ov-bar:hover i{filter:brightness(1.25)}
.ov-bar b{font:500 13px var(--sans);font-variant-numeric:tabular-nums}
.ov-bar small{font:500 7.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.58);white-space:nowrap}
.ov-mod-accent{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.55)}
.ov-mod-accent .ov-ring{background:var(--accent);color:#0a0a0a;border-color:var(--accent)}
.ov-mod-accent .ov-mod-t b{color:var(--accent-soft,#eef2f6)}

/* THE LENS */
.ov-zc{display:flex;flex-direction:column;gap:12px;min-height:0}
.ov-lens{position:relative;flex:1;min-height:0;margin:0;border-radius:24px;overflow:hidden;background:#0b0f12;border:1px solid rgba(255,255,255,.2);box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.14)}
.ov-lens-img i{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transform:scale(1.045);transition:opacity .75s var(--ov-in),transform 8s cubic-bezier(.2,.6,.3,1)}
.ov-lens-img i.on{opacity:1;transform:scale(1)}
.ov-lens::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(118deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,0) 34%);pointer-events:none}
.ov-lens::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(4,8,12,.7) 0%,rgba(4,8,12,0) 30%);pointer-events:none}
.ov-lens-tag{position:absolute;top:14px;left:14px;z-index:3;min-height:30px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(10,14,18,.55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;font:500 8.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border-color .2s}
.ov-lens-tag:hover{border-color:var(--accent)}
.ov-lens-cap{position:absolute;left:20px;right:16px;bottom:16px;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.ov-lens-l{min-width:0;font:400 20px/1.2 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-lens-cap .ov-step button{background:rgba(10,14,18,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ov-bar-cta{display:flex;align-items:center;gap:8px;padding:7px;border-radius:999px;background:rgba(14,19,24,.62);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.13)}
.ov-bar-cta .btn{flex:1 1 0;min-height:40px;border-radius:999px;white-space:nowrap}
.ov-who{flex:none;display:flex;flex-direction:column;gap:2px;padding:0 12px 0 12px;border-right:1px solid rgba(255,255,255,.12)}
.ov-who small{font:500 7.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.ov-who b{font:500 12.5px var(--sans);color:#fff;white-space:nowrap}

/* swapped text: out before in (MOTION.md §6.12) */
.ov-swap-out{opacity:0;filter:blur(3px);transition:opacity .12s var(--ov-out),filter .12s}
.ov-swap-in{animation:ovSwapIn .22s var(--ov-in) both}
@keyframes ovSwapIn{from{opacity:0;filter:blur(3px);transform:translateY(4px)}to{opacity:1;filter:none;transform:none}}

/* arrival: everything leaves the lens — left modules travel left, right ones right, the lens opens */
.ov-ch.ov-in .ov-zl>*{animation:ovFromL .72s var(--ov-in) both;animation-delay:calc(min(var(--ov-i,0),8) * 55ms + 140ms)}
.ov-ch.ov-in .ov-zr>*{animation:ovFromR .72s var(--ov-in) both;animation-delay:calc(min(var(--ov-i,0),8) * 55ms + 140ms)}
.ov-ch.ov-in .ov-lens{animation:ovLens .8s var(--ov-in) both}
.ov-ch.ov-in .ov-bar-cta{animation:ovIn .6s var(--ov-in) .3s both}
.ov-ch.ov-in .ov-bar i{animation:ovGrow .9s var(--ov-in) both;animation-delay:calc(var(--h) * 300ms + 420ms)}
@keyframes ovFromL{from{opacity:0;transform:translateX(22px) scale(.985)}to{opacity:1;transform:none}}
@keyframes ovFromR{from{opacity:0;transform:translateX(-22px) scale(.985)}to{opacity:1;transform:none}}
@keyframes ovLens{from{opacity:0;transform:scale(.965);clip-path:inset(5% 5% 5% 5% round 24px)}to{opacity:1;transform:none;clip-path:inset(0 round 24px)}}
@keyframes ovGrow{from{transform:scaleY(0)}to{transform:none}}

/* density — the hub reads its own height, not the window's */
@container hub (max-height:560px){
  .ov-hub{gap:14px}
  .ov-zone,.ov-zc{gap:9px}
  .ov-mod{gap:9px;padding:10px 11px 11px 13px;border-radius:17px}
  .ov-ring{width:30px;height:30px}.ov-open{width:27px;height:27px}
  .ov-fig b{font-size:34px}
  .ov-lede-t{-webkit-line-clamp:2}
  .ov-hl-step b{font-size:16px;-webkit-line-clamp:1}
  .ov-minis{margin-bottom:6px}.ov-feat li:nth-child(n+3){display:none}
  .ov-bars{height:74px}
  .ov-bar-cta .btn{min-height:36px}
}
@container hub (max-height:460px){
  .ov-mod-story .ov-mod-b{display:none}
  .ov-feat{display:none}
  .ov-hl-step small{display:none}
  .ov-bars{height:60px}.ov-bar small{display:none}
  .ov-fig-price{display:none}
}
@media (max-width:1180px) and (min-width:900px){
  .ov-hub{grid-template-columns:minmax(250px,27%) minmax(0,1fr) minmax(250px,27%)}
  .ov-who{display:none}
}
@media (max-width:899px){
  .ov-hub{position:static;display:flex;flex-direction:column;gap:10px;height:100%;overflow-y:auto;overscroll-behavior:contain;container-type:normal}
  .ov-zc{order:-1;flex:none}
  .ov-lens{flex:none;height:56vw;min-height:210px}
  .ov-zone{flex:none}
  .ov-bar-cta{flex-wrap:wrap;border-radius:18px}.ov-who{display:none}
  .ov-mod-big .ov-mod-b{min-height:150px}
  .ov-figs{gap:16px}.ov-fig b{font-size:30px}
}
@media (prefers-reduced-motion:reduce){
  .ov-ch.ov-in :is(.ov-zl>*,.ov-zr>*,.ov-lens,.ov-bar-cta,.ov-bar i){animation:none}
  .ov-lens-img i,.ov-lens-img i.on{transform:none;transition:opacity .3s}
}
/* refinements after the first look */
.ov-pane[hidden],.ov-pane-act[hidden]{display:none!important}
.ov-mod-f{flex-wrap:nowrap}
.ov-mod-f .ov-seg{flex:0 1 auto;min-width:0}
.ov-bars{position:relative;height:88px;gap:6px;padding-bottom:0}
.ov-bars::before{content:"";position:absolute;left:0;right:0;bottom:30px;height:1px;background:rgba(255,255,255,.1)}
.ov-bar i{max-width:10px;border-radius:5px;height:calc(var(--h) * 54%);box-shadow:0 0 14px rgba(var(--accent-rgb),.25)}
.ov-bar-cta .btn.lime{background:linear-gradient(180deg,#f3f5f7,#cbd2d8);color:#0a0d10;border-color:transparent;box-shadow:0 6px 20px rgba(0,0,0,.35),inset 0 1px 0 #fff}
.ov-bar-cta .btn.lime:hover{filter:brightness(1.05)}
@container hub (max-height:560px){.ov-bars{height:70px}.ov-bars::before{bottom:28px}}
@container hub (max-height:460px){.ov-bars{height:52px}.ov-bars::before{bottom:18px}.ov-lede-t{-webkit-line-clamp:2}.ov-mod-story .ov-mod-b{display:block}.ov-minis{margin-bottom:0}}
/* one baseline: the last module in each side column grows so both columns end where the lens bar ends */
.ov-zl>.ov-mod:last-child{flex:1 1 auto}
.ov-mod-f{margin-top:auto}
@container hub (max-height:460px){
  .ov-bars{height:auto;flex-wrap:wrap;gap:4px 12px}
  .ov-bars::before{display:none}
  .ov-bar{flex:0 0 auto;flex-direction:row;align-items:baseline;gap:5px}
  .ov-bar i{display:none}
  .ov-bar small{display:inline}
}
.ov-plate{background:rgba(12,17,21,.86)}
.ov-ch.ov-out-fast{animation:ovOutFast .2s var(--ov-out) both;pointer-events:none}
@keyframes ovOutFast{to{opacity:0;transform:scale(.99)}}
.ov-ch.ov-in.ov-in-late :is(.ov-tile,.ov-h,.ov-intro,.ov-acts){animation-delay:calc(min(var(--ov-i,0),8) * 55ms + 300ms)}
/* back to the hub: the page's outline shrinks into its module first, the hub gathers around it */
.ov-ch.ov-in.ov-in-back :is(.ov-zl>*,.ov-zr>*){animation-delay:calc(min(var(--ov-i,0),8) * 45ms + 200ms)}
.ov-ch.ov-in.ov-in-back .ov-lens{animation-delay:.12s}
.ov-ch.ov-in.ov-in-back .ov-bar-cta{animation-delay:.34s}
@media (max-width:899px){.ov-pager{display:none}}

/* ═══ CHAPTER PAGES, second pass (2026-09-29) — one concept each, the hub's module anatomy ═══ */
/* every Overview page takes its light from a defocused photograph, like the hub */
.ov-deck .ov-bg i{inset:-8%;filter:blur(30px) brightness(.5) saturate(1.2)}
.ov-deck .ov-bg::after{background:radial-gradient(120% 90% at 50% 42%,rgba(4,8,12,.05) 0%,rgba(4,8,12,.5) 70%,rgba(4,8,12,.75) 100%)}
.ov-ch:not(.ov-ch-overview){display:block}
.ov-special,.ov-spec,.ov-chart,.ov-desk{position:absolute;inset:0}
.ov-ch :is(.ov-special,.ov-spec,.ov-chart,.ov-desk)>*,.ov-groups>*,.ov-six>*,.ov-chart-side>*,.ov-desk-side>*,.ov-rows>*{--ov-d:calc(min(var(--k,0),10) * 55ms)}
.ov-ch.ov-in :is(.ov-special,.ov-spec,.ov-chart,.ov-desk) :is(.ov-mod,.ov-six-t,.ov-spec-h>*,.ov-row){animation:ovIn .7s var(--ov-in) both;animation-delay:calc(var(--ov-d,0ms) + 80ms)}
.ov-ch.ov-in.ov-in-late :is(.ov-special,.ov-spec,.ov-chart,.ov-desk) :is(.ov-mod,.ov-six-t,.ov-spec-h>*,.ov-row){animation-delay:calc(var(--ov-d,0ms) + 320ms)}
.ov-row{display:flex;align-items:center;gap:13px;width:100%;padding:12px 12px 12px 12px;border:0;border-top:1px solid rgba(255,255,255,.08);background:none;color:#fff;text-align:left;text-decoration:none;cursor:pointer;transition:background .22s}
.ov-rows .ov-row:first-child{border-top:0}
.ov-row:hover{background:rgba(var(--accent-rgb),.08)}
.ov-row-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ov-row-t b{font:500 14.5px var(--sans);letter-spacing:-.005em}
.ov-row-t small{font:300 12.5px var(--sans);color:rgba(255,255,255,.62)}
.ov-row-go{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.2);font:400 13px var(--sans);transition:border-color .2s,color .2s,transform .25s var(--ov-in)}
.ov-row:hover .ov-row-go{border-color:var(--accent);color:var(--accent);transform:translate(1px,-1px)}
.ov-rows{display:flex;flex-direction:column;margin:0 -4px}

/* 2 · THE SIX */
.ov-special{display:grid;grid-template-columns:minmax(300px,31%) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:14px}
.ov-special.ov-solo-story{grid-template-columns:minmax(0,760px)}
.ov-mod-read{grid-row:1;grid-column:1;min-height:0}
.ov-mod-listed{grid-row:2;grid-column:1}
.ov-mod-listed .ov-mod-t small{order:-1}
.ov-read-b{flex:1;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
.ov-pull{margin:2px 0 14px;font:400 clamp(21px,1.8vw,27px)/1.25 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff}
.ov-read-b .story-copy{margin:0 0 10px;font:300 14px/1.65 var(--sans);color:rgba(255,255,255,.8)}
.ov-six{grid-row:1 / span 2;grid-column:2;display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none;min-height:0}
.ov-six-t{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:0;padding:22px 22px 20px;border-radius:20px;overflow:hidden;background:rgba(14,19,24,.56);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(255,255,255,.12);box-shadow:0 22px 50px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.07);transition:border-color .25s,transform .3s var(--ov-in)}
.ov-six-t:hover{border-color:rgba(var(--accent-rgb),.5);transform:translateY(-2px)}
.ov-six-n{position:absolute;top:-.12em;right:.08em;font:400 clamp(84px,8.4vw,140px)/1 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(var(--accent-rgb),.55);pointer-events:none;transition:-webkit-text-stroke-color .3s}
.ov-six-t:hover .ov-six-n{-webkit-text-stroke-color:var(--accent)}
.ov-six-t b{position:relative;font:400 clamp(17px,1.45vw,23px)/1.28 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff;max-width:22ch}
.ov-six-t::after{content:"";position:absolute;left:22px;bottom:14px;width:28px;height:1px;background:var(--accent);opacity:.7}
.ov-six-more{position:absolute;right:6px;bottom:-30px}

/* 3 · THE SPEC WALL */
.ov-spec{display:flex;flex-direction:column;gap:16px}
.ov-spec-h{display:flex;align-items:flex-end;gap:28px;flex:none}
.ov-spec-title{flex:none}
.ov-spec-h2{margin:6px 0 0;font:400 clamp(32px,3vw,50px)/1 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;letter-spacing:-.015em;color:#fff;white-space:nowrap}
.ov-spec-h2 em{font-style:italic;color:var(--accent-soft,#eef2f6)}
.ov-spec-count{flex:none;display:flex;align-items:flex-end;gap:10px;padding-left:24px;border-left:1px solid rgba(var(--accent-rgb),.5)}
.ov-spec-count b{font:300 clamp(46px,4.2vw,68px)/.85 var(--sans);letter-spacing:-.05em;color:#fff}
.ov-spec-count small{padding-bottom:4px;font:500 8.5px/1.6 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-readout{flex:1;min-width:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 0;margin:0}
.ov-readout>div{padding:0 18px;border-left:1px solid rgba(255,255,255,.14)}
.ov-readout dt{font:500 8.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.56)}
.ov-readout dd{margin:5px 0 0;font:400 19px var(--sans);letter-spacing:-.015em;color:#fff;white-space:nowrap}
.ov-groups{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--gcols,3),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:12px}
.ov-g{min-height:0}
.ov-g-big{grid-row:span 2}
.ov-glist{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow:hidden;columns:1}
.ov-g-big .ov-glist{columns:1}
.ov-glist li{position:relative;padding:8px 0 8px 18px;border-top:1px solid rgba(255,255,255,.07);font:300 13.5px/1.42 var(--sans);color:rgba(255,255,255,.88);break-inside:avoid}
.ov-glist li:first-child{border-top:0}
.ov-glist li::before{content:"";position:absolute;left:2px;top:.95em;width:6px;height:6px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--accent)}
.ov-glist li span{color:rgba(255,255,255,.55)}
.ov-glist .ov-doc{font-size:13.5px}
.ov-g.ov-over .ov-glist{-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
.ov-g-more{align-self:flex-start;margin:0}
.ov-glist-all{columns:2;column-gap:28px}
.ov-g:hover .ov-ring{background:rgba(var(--accent-rgb),.14)}

/* 4 · CHART ROOM */
.ov-chart{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,31%);gap:14px}
.ov-chart-map{position:relative;padding:0}
.ov-chart-map .ov-loc-view{position:absolute;inset:0;border-radius:inherit}
.ov-chart-chip{position:absolute;left:16px;top:16px;z-index:2;display:flex;align-items:center;gap:11px;padding:8px 16px 8px 8px;border-radius:999px;background:rgba(10,14,18,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.16)}
.ov-chart-chip small{display:block;font:500 8px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.ov-chart-chip b{display:block;font:400 14px var(--sans);color:#fff}
.ov-chart-seg{position:absolute;right:16px;top:16px;z-index:2;background:rgba(10,14,18,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.ov-chart-side{display:flex;flex-direction:column;gap:12px;min-height:0}
.ov-chart-side .ov-mod:first-child{flex:0 1 auto}
.ov-chart-side .story-chips{margin:0}
.ov-mod-arrive{flex-direction:row;flex-wrap:wrap;align-items:center}
.ov-mod-arrive .ov-mod-h{flex:1 1 100%}
/* PARKING LEADS (2026-10-02): the arrival map is the big view's first page; the side module lists the steps */
.ov-loc-area{pointer-events:none}
.ov-loc-area.on{pointer-events:auto}
.ov-loc-area.ov-loc-park{background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#07090b;border:0;padding:0;margin:0;width:100%;height:100%;cursor:zoom-in}
.ov-chart-seg .ov-seg-go{margin-left:4px;box-shadow:inset 1px 0 0 rgba(255,255,255,.14);border-radius:0 999px 999px 0;color:#fff}
.ov-chart-seg .ov-seg-go:hover{background:rgba(255,255,255,.08)}
.ov-chart-seg button{min-height:30px;padding:0 13px;font-size:9px}
.ov-arrive-steps{flex:1 1 100%;list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.ov-arrive-steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 0;border-top:1px solid rgba(255,255,255,.08)}
.ov-arrive-steps li:first-child{border-top:0}
.ov-arrive-steps small{font:500 9px var(--mono);letter-spacing:.16em;color:rgba(var(--accent-rgb),.85)}
.ov-arrive-steps b{display:block;font:500 13.5px/1.3 var(--sans);color:#fff}
.ov-arrive-steps em{display:block;font:300 12.5px/1.45 var(--sans);font-style:normal;color:rgba(255,255,255,.66)}
.ov-mod-arrive .ov-mod-f{flex:1 1 100%}
.ov-chart-parked .ov-chart-side{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.ov-chart-parked .ov-chart-side::-webkit-scrollbar{display:none}
.ov-chart-parked .ov-chart-side>.ov-mod{flex:none}
.ov-chart-parked .ov-chart-side .story-chips{display:none}
.ov-chart-parked .ov-mod-ways{order:1}
.ov-chart-parked .ov-chart-side>.ov-mod:not(.ov-mod-arrive):not(.ov-mod-ways){order:2}
.ov-chart-parked .ov-chart-side .ov-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
@media (max-height:900px) and (min-width:900px){.ov-chart-parked .ov-mod-ways .ov-row small{display:none}.ov-arrive-steps li{padding:6px 0}}
.ov-mod-ways{flex:0 0 auto}

/* 5 · THE DESK */
.ov-desk{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:14px}
.ov-desk-main{justify-content:center;padding:28px 30px}
.ov-desk-h{margin-bottom:10px}
.ov-rows-big .ov-row{padding:18px 14px}
.ov-rows-big .ov-ring{width:44px;height:44px}
.ov-rows-big .ov-ring svg{width:20px;height:20px}
.ov-rows-big .ov-row-t b{font:400 clamp(19px,1.6vw,24px) 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif}
.ov-rows-big .ov-row-go{width:38px;height:38px}
.ov-desk-side{display:flex;flex-direction:column;gap:12px;min-height:0}
.ov-desk-people{flex:1 1 auto}
.ov-desk-people .ov-contacts{margin:0;grid-template-columns:1fr}

/* THE WAY BACK — one pill, top-left of the stage, says where Back goes */
#sxrBack{position:fixed;left:40px;top:calc(var(--sales-header-h,110px) + 18px);z-index:140;display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 16px 0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(10,14,18,.7);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;font:500 9px var(--mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);animation:ovIn .45s cubic-bezier(.16,1,.3,1) both;transition:border-color .2s}
#sxrBack span{color:var(--accent);font-size:13px;transition:transform .25s cubic-bezier(.16,1,.3,1)}
#sxrBack:hover{border-color:var(--accent)}#sxrBack:hover span{transform:translateX(-3px)}
#sxrBack[hidden]{display:none}
body.on-main #sxrBack{top:calc(var(--sales-header-h,110px) + 10px)}
@media (max-width:899px){#sxrBack{left:10px;top:calc(var(--sales-header-h,100px) + 6px);min-height:32px;padding:0 12px 0 10px;font-size:8px}}

/* chapters on shorter desktops */
@media (max-height:800px) and (min-width:900px){
  .ov-spec{gap:10px}.ov-spec-h2{font-size:clamp(28px,2.6vw,40px)}.ov-spec-count b{font-size:44px}
  .ov-readout dd{font-size:16px}.ov-glist li{padding:5px 0 5px 16px;font-size:12.5px}
  .ov-six-t{padding:16px}.ov-six-n{font-size:clamp(64px,6.4vw,100px)}.ov-six-t b{font-size:clamp(15px,1.25vw,19px)}
  .ov-pull{font-size:19px}
  .ov-desk-main{padding:18px 22px}.ov-rows-big .ov-row{padding:11px 10px}.ov-rows-big .ov-ring{width:36px;height:36px}
  .ov-row{padding:9px 10px}
}
@media (max-width:1180px) and (min-width:900px){
  .ov-readout>div:nth-child(n+5){display:none}
  .ov-special{grid-template-columns:minmax(270px,34%) minmax(0,1fr)}
}
@media (max-width:899px){
  .ov-special,.ov-spec,.ov-chart,.ov-desk{position:static;display:flex;flex-direction:column;gap:10px}
  .ov-ch:not(.ov-ch-overview){overflow-y:auto}
  .ov-spec-h{flex-wrap:wrap;gap:14px}.ov-readout{justify-content:flex-start}
  .ov-groups{display:flex;flex-direction:column}.ov-glist{overflow:visible}
  .ov-six{display:flex;flex-direction:column}.ov-six-t{min-height:120px}
  .ov-chart-map{height:260px;flex:none}
  .ov-read-b{-webkit-mask-image:none;mask-image:none}
}
@media (prefers-reduced-motion:reduce){.ov-ch.ov-in :is(.ov-special,.ov-spec,.ov-chart,.ov-desk) :is(.ov-mod,.ov-six-t,.ov-spec-h>*,.ov-row){animation:none}#sxrBack{animation:none}}
.ov-g-more[hidden],.ov-more[hidden]{display:none!important}
.ov-g-big{order:-1}
@media (max-height:800px) and (min-width:900px){
  .ov-desk-side .ov-row-t small{display:none}
  .ov-desk-people{min-height:0;overflow:auto;scrollbar-width:none}
  .ov-desk-people .ov-contacts{margin-top:0}
  .ov-desk-side{gap:9px}
}
.ov-desk-people{flex:0 1 auto;min-height:0}
.ov-desk-side>.ov-mod:last-child{flex:none}

/* ═══ EXPLORE + MEDIA HUBS (2026-09-29) — the Overview hub's grammar; pieces only these need ═══ */
.ov-hub-end{top:19px}
.ov-srows{display:flex;flex-direction:column;gap:4px;min-height:0;overflow-y:auto;margin:0 -6px;padding:0 2px;scrollbar-width:none;overscroll-behavior:contain}
.ov-srows::-webkit-scrollbar{display:none}
.ov-mod-spaces .ov-mod-b,.ov-mod-types .ov-mod-b{flex:1;min-height:0;display:flex;flex-direction:column}
.ov-srow{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:7px 10px 7px 7px;border:1px solid transparent;border-radius:14px;background:none;color:#fff;text-align:left;cursor:pointer;transition:background .25s,border-color .25s}
.ov-srow:hover{background:rgba(255,255,255,.04)}
.ov-srow.active{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.45)}
.ov-srow>i{flex:none;width:52px;height:40px;border-radius:9px;background:center/cover no-repeat #111;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.ov-srow>span:not(.ov-ring){flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ov-srow b{font:500 14px var(--sans);letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-srow small{font:500 8px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-srow em{flex:none;font:500 9px var(--mono);font-style:normal;letter-spacing:.16em;color:rgba(255,255,255,.4);font-variant-numeric:tabular-nums}
.ov-srow.active em{color:var(--accent)}
.ov-trow em{font:400 17px var(--sans);letter-spacing:-.02em;color:rgba(255,255,255,.75)}
.ov-trow .ov-ring{width:36px;height:36px}
.ov-lens-count{cursor:default}
.ov-lens-big{font-size:clamp(24px,2.3vw,36px)}
.ov-lens-big em{font-style:italic;color:var(--accent-soft,#eef2f6)}
.ov-lens{cursor:pointer}
.ov-lens-play{position:absolute;left:50%;top:50%;z-index:3;display:grid;place-items:center;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(10,14,18,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:20px;padding-left:4px;pointer-events:none}
.ov-lens-play[hidden]{display:none}
/* Explore: what a section holds, as instruments */
.ov-kinds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ov-kind{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 10px 9px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#fff;cursor:pointer;transition:border-color .2s,background .2s}
.ov-kind:hover:not(:disabled){border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.08)}
.ov-kind:disabled{opacity:.35;cursor:default}
.ov-kind b{font:300 24px/1 var(--sans);letter-spacing:-.03em}
.ov-kind small{font:500 7.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);white-space:nowrap}
.ov-rooms{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ov-room{min-height:28px;padding:0 11px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);color:rgba(255,255,255,.86);font:400 12px var(--sans);cursor:pointer;transition:border-color .2s,color .2s}
.ov-room:hover{border-color:var(--accent);color:#fff}
.ov-room-more{cursor:default;color:rgba(255,255,255,.5)}
.ov-mod-inspace .ov-mod-b{overflow:hidden}
.ov-plan{display:block;width:100%;height:84px;padding:0;border:0;border-radius:12px;background:center/contain no-repeat rgba(255,255,255,.92);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
/* Media: the contact sheet */
.ov-sheet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ov-sheet-t{position:relative;aspect-ratio:4/3;padding:0;border:0;border-radius:10px;background:center/cover no-repeat #111;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);transition:box-shadow .2s,transform .25s var(--ov-in)}
.ov-sheet-t:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.6)}
.ov-sheet-t.active{box-shadow:inset 0 0 0 2px var(--accent)}
.ov-sheet-t.video::after{content:"▶";position:absolute;right:6px;bottom:5px;font-size:9px;color:#fff;text-shadow:0 1px 4px #000}
.ov-sheet-t.bare{display:grid;place-items:center;background:rgba(255,255,255,.05)}
.ov-sheet-t.bare span{padding:6px;font:400 10.5px/1.25 var(--sans);color:rgba(255,255,255,.8);text-align:center}
.ov-hint{font:300 12px var(--sans);color:rgba(255,255,255,.5)}
.ov-zr.ov-swap-out{opacity:0;filter:none;transform:translateX(6px);transition:opacity .14s var(--ov-out),transform .14s var(--ov-out)}
.ov-zr.ov-swap-in{animation:ovFromR .5s var(--ov-in) both}
.ov-bar-cta .btn span{opacity:.7;margin-left:4px}
@container hub (max-height:560px){
  .ov-plan{height:56px}
  .ov-srow{padding:5px 8px 5px 5px}.ov-srow>i{width:44px;height:32px}
  .ov-kind{padding:7px 8px}.ov-kind b{font-size:19px}
  .ov-rooms{margin-top:8px}.ov-room:nth-child(n+6){display:none}
  .ov-sheet{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ov-mod-secstory .ov-lede-t{-webkit-line-clamp:2}
}
@container hub (max-height:460px){
  .ov-mod-plan .ov-mod-b,.ov-mod-secstory .ov-mod-b{display:none}
  .ov-rooms{display:none}
  .ov-sheet .ov-sheet-t:nth-child(n+5){display:none}
  .ov-mod-saved .ov-mod-f{display:none}
}
@media (max-width:899px){.ov-kinds{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-srows{max-height:260px}}
/* the hubs do not carry the old Explore toolbar, so they take the same top as every deck page */
html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo:has(.story-page.ov-deck[data-page]){top:88px}
@media(max-width:760px){html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo:has(.story-page.ov-deck[data-page]){top:76px}}
/* column bodies for the list-like modules (the map module is the one that lays out in a row) */
.ov-mod-inspace .ov-mod-b,.ov-mod-sheet .ov-mod-b{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:0}
.ov-kinds{flex:none}
.ov-sheet{flex:none;width:100%}
.ov-secstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px;flex:none}
@container hub (max-height:460px){.ov-secstrip{display:none}}

/* ═══ ASK SONO + OFFERS HUBS (2026-09-29) ═══ */
.ov-mod-grow{flex:1 1 auto}
/* SONO — the one breathing figure on this screen */
.ov-sono{position:relative;flex:1;min-height:0;margin:0;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.16);
  background:radial-gradient(60% 55% at 50% 36%,rgba(var(--accent-rgb),.14),rgba(var(--accent-rgb),0) 70%),rgba(10,14,18,.42);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:0 40px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12)}
.ov-sono::before,.ov-sono::after{content:"";position:absolute;left:50%;top:36%;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;border:1px solid rgba(255,255,255,.07)}
.ov-sono::before{width:min(62%,380px);aspect-ratio:1}
.ov-sono::after{width:min(84%,520px);aspect-ratio:1;border-style:dashed;border-color:rgba(var(--accent-rgb),.12)}
.ov-sono-aura{position:absolute;left:50%;top:36%;width:min(46%,290px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(.96);
  background:radial-gradient(circle,rgba(var(--accent-rgb),.42) 0%,rgba(var(--accent-rgb),.12) 42%,rgba(var(--accent-rgb),0) 70%);animation:sonoBreathe 6s ease-in-out 1.4s infinite alternate;transition:filter .5s var(--ov-in)}
@keyframes sonoBreathe{from{transform:translate(-50%,-50%) scale(.94);opacity:.72}to{transform:translate(-50%,-50%) scale(1.06);opacity:1}}
.ov-sono.listening .ov-sono-aura{filter:brightness(1.45) saturate(1.2)}
.ov-sono-face{position:absolute;left:50%;top:36%;width:min(26%,170px);aspect-ratio:1;border-radius:50%;object-fit:cover;transform:translate(-50%,-50%);
  box-shadow:0 0 0 1px rgba(var(--accent-rgb),.6),0 0 0 9px rgba(var(--accent-rgb),.07),0 30px 80px rgba(0,0,0,.6);transition:transform .5s var(--ov-in),box-shadow .5s}
.ov-sono.listening .ov-sono-face{transform:translate(-50%,-50%) scale(1.04);box-shadow:0 0 0 1px var(--accent),0 0 0 12px rgba(var(--accent-rgb),.12),0 30px 80px rgba(0,0,0,.6)}
.ov-sono figcaption{position:absolute;left:24px;right:24px;top:calc(36% + min(13%,85px) + 26px);text-align:center}
.ov-sono figcaption h2{margin:8px 0 0;font:400 clamp(24px,2.3vw,36px)/1.12 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.ov-sono figcaption h2 em{font-style:italic;color:var(--accent-soft,#eef2f6)}
.ov-sono-chips{position:absolute;left:18px;right:18px;bottom:18px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ov-sono-chip{min-height:36px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(10,14,18,.55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;font:400 13px var(--sans);cursor:pointer;
  transition:border-color .2s,transform .25s var(--ov-in),background .2s;animation:ovIn .6s var(--ov-in) both;animation-delay:calc(var(--k,0) * 70ms + 520ms)}
.ov-sono-chip:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),.14);transform:translateY(-2px)}
.ov-ask{display:flex;align-items:center;gap:10px;min-height:58px;padding:7px 7px 7px 9px;border-radius:999px;background:rgba(14,19,24,.72);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid rgba(var(--accent-rgb),.4);box-shadow:0 18px 44px rgba(0,0,0,.4)}
.ov-ask:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.14),0 18px 44px rgba(0,0,0,.4)}
.ov-ask input{flex:1;min-width:0;height:42px;border:0;background:none;color:#fff;font:400 15.5px var(--sans);outline:none}
.ov-ask input::placeholder{color:rgba(255,255,255,.5)}
.ov-ask-mic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:none;color:#fff;cursor:pointer;transition:border-color .2s,color .2s}
.ov-ask-mic svg{width:18px;height:18px}.ov-ask-mic:hover{border-color:var(--accent);color:var(--accent)}
.ov-ask-go{flex:none;min-height:42px;padding:0 24px;border-radius:999px;background:linear-gradient(180deg,#f3f5f7,#cbd2d8);color:#0a0d10;border:0;font:600 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.ov-know{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.ov-know b{display:block;font:300 24px/1 var(--sans);letter-spacing:-.03em;color:#fff}
.ov-know small{display:block;margin-top:5px;font:500 7.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.56)}
.ov-know-note{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font:300 12.5px/1.5 var(--sans);color:rgba(255,255,255,.62)}
.ov-asked{display:flex;flex-direction:column}
.ov-asked-q{padding:9px 0;border:0;border-top:1px solid rgba(255,255,255,.08);background:none;color:#fff;text-align:left;font:italic 400 15px/1.35 'Bodoni 72',Didot,Georgia,serif;cursor:pointer}
.ov-asked-q:first-child{border-top:0}.ov-asked-q:hover{color:var(--accent-soft,#eef2f6)}
.ov-mod-faq{flex:0 1 auto;min-height:0}
.ov-mod-faq .ov-mod-b{min-height:0;overflow:auto;scrollbar-width:none}
.ov-faq .cq-faqs{display:flex;flex-direction:column}
.ov-faq details{border-top:1px solid rgba(255,255,255,.08)}
.ov-faq details:first-child{border-top:0}
.ov-faq summary{padding:8px 18px 8px 0;list-style:none;position:relative;font:400 13px/1.35 var(--sans);color:#fff;cursor:pointer}
.ov-faq summary::-webkit-details-marker{display:none}
.ov-faq summary::after{content:"+";position:absolute;right:2px;top:7px;color:var(--accent);transition:transform .25s}
.ov-faq details[open] summary::after{transform:rotate(45deg)}
.ov-faq details p{margin:0 0 10px;font:300 12.5px/1.55 var(--sans);color:rgba(255,255,255,.72)}
.ov-mod-help .ov-row{padding:9px 8px}
/* OFFERS */
.ov-of-badge{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.2);cursor:default}
.ov-of-n{flex:none;font:400 clamp(56px,5vw,84px)/.8 'Bodoni 72',Didot,Georgia,serif;color:transparent;-webkit-text-stroke:1px rgba(var(--accent-rgb),.7)}
.ov-of-go{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;border-radius:14px;border:1px solid rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.14);color:#fff;font:400 19px 'Bodoni 72',Didot,Georgia,serif;text-align:left;cursor:pointer;transition:background .2s}
.ov-of-go:hover{background:rgba(var(--accent-rgb),.26)}
.ov-of-go span:last-child{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--accent);font:400 14px var(--sans);color:var(--accent)}
.ov-of-code{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 10px 10px 14px;border-radius:12px;border:1px dashed rgba(var(--accent-rgb),.6)}
.ov-of-code small{font:500 8px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.ov-of-code b{flex:1;font:500 16px var(--mono);letter-spacing:.22em;color:#fff}
.ov-of-code button{min-height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:none;color:#fff;font:500 8.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.ov-of-track{position:relative;height:4px;margin:10px 0 8px;border-radius:4px;background:rgba(255,255,255,.1)}
.ov-of-track i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 100%);border-radius:4px;background:linear-gradient(90deg,rgba(var(--accent-rgb),.35),var(--accent));transform-origin:left;animation:ovGrowX 1.2s var(--ov-in) .5s both}
.ov-of-track b{position:absolute;top:50%;left:calc(var(--p) * 100%);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(var(--accent-rgb),.2)}
@keyframes ovGrowX{from{transform:scaleX(0)}to{transform:none}}
.ov-of-ends{display:flex;justify-content:space-between;font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ov-of-desc p,.ov-of-terms p{margin:0 0 8px;font:300 13.5px/1.6 var(--sans);color:rgba(255,255,255,.84)}
.ov-clamp.ov-open-all{display:block;-webkit-line-clamp:unset;max-height:100%;overflow:auto;scrollbar-width:none}
@container hub (max-height:560px){
  .ov-sono-chip:nth-child(n+4){display:none}
  .ov-sono-face{width:min(22%,120px)}.ov-sono-aura{width:min(36%,200px)}
  .ov-sono figcaption{top:calc(34% + min(11%,60px) + 16px)}.ov-sono figcaption h2{font-size:clamp(20px,1.9vw,28px)}
  .ov-ask{min-height:50px}.ov-ask input{height:36px}.ov-ask-go,.ov-ask-mic{min-height:36px;height:36px}.ov-ask-mic{width:36px}
  .ov-mod-help .ov-row-t small{display:none}.ov-mod-help .ov-row{padding:7px 6px}
  .ov-know{gap:8px 12px}.ov-know b{font-size:20px}.ov-know-note{display:none}
}
@container hub (max-height:460px){
  .ov-sono-chip:nth-child(n+3){display:none}.ov-sono figcaption small{display:none}
  .ov-mod-faq{display:none}.ov-of-time .ov-hint{display:none}
}
@media (max-width:899px){.ov-sono{flex:none;height:420px}.ov-ask{flex-wrap:nowrap}}
@media (prefers-reduced-motion:reduce){.ov-sono-aura{animation:none}.ov-sono-chip{animation:none}.ov-of-track i{animation:none}}
/* Sono as one unit: the aura, the portrait and the rings share a centre; the words flow under it */
.ov-sono{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:22px 20px 18px}
.ov-sono::before,.ov-sono::after{display:none}
.ov-sono-core{position:relative;flex:none;width:clamp(96px,12vw,170px);aspect-ratio:1}
.ov-sono-core::before,.ov-sono-core::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.ov-sono-core::before{inset:-42%;border:1px solid rgba(255,255,255,.08)}
.ov-sono-core::after{inset:-88%;border:1px dashed rgba(var(--accent-rgb),.13)}
.ov-sono .ov-sono-aura{left:50%;top:50%;width:190%}
.ov-sono .ov-sono-face{position:absolute;inset:0;left:auto;top:auto;width:100%;height:100%;transform:none}
.ov-sono.listening .ov-sono-face{transform:scale(1.04)}
.ov-sono figcaption{position:relative;left:auto;right:auto;top:auto;flex:none;text-align:center;max-width:90%}
.ov-sono-chips{position:relative;left:auto;right:auto;bottom:auto;flex:none;max-width:94%}
.ov-can{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.ov-can li{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid rgba(255,255,255,.08)}
.ov-can li:first-child{border-top:0}
.ov-can li>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.ov-can b{font:500 13.5px var(--sans);color:#fff}
.ov-can small{font:italic 400 13px 'Bodoni 72',Didot,Georgia,serif;color:rgba(255,255,255,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-can .ov-ring{width:32px;height:32px}
@container hub (max-height:560px){.ov-sono{gap:10px;padding:14px}.ov-sono-core{width:clamp(80px,8vw,110px)}.ov-can li{padding:6px 0}.ov-can small{display:none}}
@container hub (max-height:460px){.ov-sono-core{width:70px}.ov-sono figcaption h2{font-size:20px}}
@container hub (max-height:460px){.ov-know{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}.ov-know b{font-size:18px}.ov-can li:nth-child(n+4){display:none}}

/* ═══ MOBILE VIEW (2026-09-29) — the hubs designed for a phone (and a small tablet, portrait):
   under 900px wide. One scrolling feed inside the deck: the lens (or Sono) first, the actions and
   figures under it, then the modules as a two-column bento — small ones in pairs, lists full. ═══ */
@media (max-width:899px){
  /* the deck sits under the header (it measured 76px against a 159px header) and above the dock */
  html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo:has(.story-page.ov-deck[data-page]){top:calc(var(--sales-header-h,76px) + 6px);bottom:calc(var(--foot-h,54px) + var(--hud-h,62px) + 32px)}
  /* a compact header on deck pages: the lockup and the actions on one row; the demo marker stays */
  body.on-ov-deck #brandbar{min-height:0!important;padding:8px 12px 6px!important}
  body.on-ov-deck #brandbar .brand-hero{height:34px!important;animation:none;opacity:1}
  body.on-ov-deck #brandbar #hdrInfo{gap:0;margin-top:2px}
  body.on-ov-deck #brandbar #hdrInfo .hi-name{display:none}
  body.on-ov-deck #brandbar #hdrInfo .hi-ro{flex-wrap:nowrap;overflow:hidden;font-size:8px;letter-spacing:.14em}
  body.on-ov-deck #brandbar #hdrInfo .hi-ro>:not(:last-child){display:none}
  body.on-ov-deck #brandbar #hdrAct{position:absolute!important;top:8px!important;right:10px!important;display:flex;gap:6px}
  body.on-ov-deck #brandbar #hdrAct .hbtn{height:34px;min-height:34px;padding:0 12px;font-size:8.5px}
  /* the page menu: full width, sideways-scrolling; the round Back sits before it */
  .ov-deck .ov-menu{top:8px;left:8px;right:8px}
  body.has-back .ov-deck .ov-menu{left:52px}
  .ov-deck .ov-menu button{min-height:34px;padding:0 12px;gap:6px;font-size:8.5px}
  .ov-deck .ov-menu button svg{width:15px;height:15px}
  body.on-ov-deck #sxrBack{width:36px;min-height:36px;height:36px;padding:0;justify-content:center;font-size:0;gap:0}
  body.on-ov-deck #sxrBack span{font-size:15px}
  .ov-deck .ov-stage{inset:56px 8px 0}
  /* THE FEED */
  .ov-ch.ov-ch-overview{overflow:hidden}
  .ov-deck .ov-hub{position:absolute;inset:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;align-content:start;gap:10px;overflow-y:auto;overscroll-behavior:contain;padding:0 0 18px;container-type:normal;scrollbar-width:none}
  .ov-deck .ov-hub::-webkit-scrollbar{display:none}
  .ov-deck .ov-hub>.ov-zone{display:contents}
  .ov-deck .ov-hub :is(.ov-lens,.ov-sono){order:-3;grid-column:1/-1;flex:none;height:auto;aspect-ratio:4/3;min-height:0}
  .ov-deck .ov-hub .ov-sono{aspect-ratio:auto;padding:18px 14px 14px;gap:12px}
  .ov-deck .ov-hub :is(.ov-bar-cta,.ov-ask){order:-2;grid-column:1/-1}
  .ov-deck .ov-hub .ov-figs{order:-1;grid-column:1/-1;justify-content:space-between;padding:2px 4px}
  .ov-deck .ov-hub .ov-fig-price{order:-1;grid-column:1/-1}
  .ov-deck .ov-hub .ov-mod{grid-column:1/-1;flex:none;min-height:0}
  .ov-deck .ov-hub :is(.ov-mod-offer,.ov-mod-media,.ov-mod-tours,.ov-mod-saved,.ov-mod-ofwhen,.ov-mod-ofredeem){grid-column:span 1}
  /* modules tuned for a thumb */
  .ov-deck .ov-hub .ov-mod{padding:12px 12px 13px 13px;border-radius:18px}
  .ov-deck .ov-hub .ov-mod-t b{font-size:14px}
  .ov-deck .ov-hub .ov-srows{max-height:none;overflow:visible}
  .ov-deck .ov-hub .ov-mod-big .ov-mod-b{min-height:0}
  .ov-deck .ov-hub .ov-loc-view{height:190px;flex:none}
  .ov-deck .ov-hub .ov-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ov-deck .ov-hub .ov-sheet{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ov-deck .ov-hub .ov-bars{height:84px}
  .ov-deck .ov-hub .ov-lens-cap{left:14px;right:10px;bottom:12px}
  .ov-deck .ov-hub .ov-lens-big{font-size:26px}
  .ov-deck .ov-hub .ov-bar-cta{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:999px;padding:6px}
  .ov-deck .ov-hub .ov-bar-cta::-webkit-scrollbar{display:none}
  .ov-deck .ov-hub .ov-bar-cta .btn{flex:0 0 auto;min-height:38px;padding:0 16px;font-size:9px}
  .ov-deck .ov-hub .ov-who{display:none}
  .ov-deck .ov-hub .ov-fig b{font-size:30px}
  /* Sono on a phone */
  .ov-deck .ov-hub .ov-sono-core{width:96px}
  .ov-deck .ov-hub .ov-sono figcaption h2{font-size:23px}
  .ov-deck .ov-hub .ov-sono-chips{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;max-width:100%;width:100%;padding-bottom:2px;scrollbar-width:none}
  .ov-deck .ov-hub .ov-sono-chips::-webkit-scrollbar{display:none}
  .ov-deck .ov-hub .ov-sono-chip{flex:0 0 auto}
  .ov-deck .ov-hub .ov-ask{min-height:52px}
  .ov-deck .ov-hub .ov-ask input{font-size:16px}   /* 16px: iOS does not zoom the page on focus */
  .ov-deck .ov-hub .ov-ask-go{padding:0 18px}
  .ov-deck .ov-hub .ov-know{grid-template-columns:repeat(3,minmax(0,1fr))}
  /* the offer's code and go button in a half-width tile */
  .ov-deck .ov-hub .ov-of-go{font-size:16px;padding:12px}
  .ov-deck .ov-hub .ov-of-code{flex-wrap:wrap}
}
/* a small tablet in portrait gets a taller lens and three-up minis */
@media (min-width:600px) and (max-width:899px){
  .ov-deck .ov-hub{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ov-deck .ov-hub :is(.ov-lens){aspect-ratio:16/9}
}
@media (max-width:899px){
  /* rows size to their content and the feed scrolls — a definite-height grid would squeeze auto rows to fit */
  .ov-deck .ov-hub{grid-auto-rows:max-content}
}

/* ═══ THE PAGES THE HUBS OPEN (2026-09-30) — Explore's section scene + library, the Media grid, the viewer,
   in the hub grammar. Scoped to Explore and Media: 3D/360 keeps its own column (Michael, 09-29). ═══ */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-card{background:rgba(14,19,24,.6);-webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25);border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:13px 13px 14px 15px;box-shadow:0 22px 50px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.07)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-card>h3{position:relative;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:34px;margin:0 0 12px;padding:0 0 0 45px;font:500 14.5px/1.15 var(--sans);letter-spacing:-.005em;text-transform:none;color:#fff}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-card>h3 small{display:block;margin:0;font:500 8.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.56)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-card>h3::before{content:"";position:absolute;left:0;top:50%;width:34px;height:34px;margin-top:-17px;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.55);box-shadow:inset 0 0 14px rgba(var(--accent-rgb),.14);background:none;transform:none;animation:none}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-card>h3::after{content:"";position:absolute;left:9px;top:50%;width:16px;height:16px;margin-top:-8px;background:var(--accent);-webkit-mask:var(--ci-ic) center/contain no-repeat;mask:var(--ci-ic) center/contain no-repeat;transform:none;animation:none;opacity:1}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces{--ci-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.6-6-10.5a6 6 0 1 1 12 0C18 15.4 12 21 12 21z'/%3E%3Ccircle cx='12' cy='10.5' r='2.2'/%3E%3C/svg%3E")}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view{--ci-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.5'/%3E%3C/svg%3E")}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-space{--ci-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h7v7H4zM13 5h7v4h-7zM13 11h7v8h-7zM4 14h7v5H4z'/%3E%3C/svg%3E")}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-visit{--ci-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.2 5.3 5.8.5-4.4 3.8 1.3 5.6L12 15.3 7.1 18.2l1.3-5.6L4 8.8l5.8-.5z'/%3E%3C/svg%3E")}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-nextup{--ci-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) #pgInstruments{gap:12px;scrollbar-width:none}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) #pgInstruments::-webkit-scrollbar{display:none}
/* the spaces: the hub's rows */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .story-sig{display:flex;flex-direction:column;gap:4px;margin:0 -6px}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:0;height:auto;padding:7px 10px 7px 7px;border:1px solid transparent;border-radius:14px;background:none;box-shadow:none;color:#fff;text-align:left;cursor:pointer;transform:none;transition:background .25s,border-color .25s}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card:hover{background:rgba(255,255,255,.04)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card.active{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.45)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-face{position:static;flex:none;width:52px;height:40px;border-radius:9px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);opacity:1;filter:none}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-words{position:static;flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:0;background:none;text-shadow:none}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-words b{font:500 14px var(--sans);letter-spacing:-.005em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-words small{font:500 8px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55)}
/* the view: the hub's segmented control, the plan chip, a quiet select */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-view-toggle{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-view-toggle button{min-height:28px;padding:0 12px;border:0;border-radius:999px;background:none;color:rgba(255,255,255,.62);font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,box-shadow .3s}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-view-toggle button[aria-pressed="true"]{background:rgba(var(--accent-rgb),.2);color:#fff;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-plan-link{min-height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.08);color:#fff;font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-kind-select{display:flex;align-items:center;gap:8px;font:500 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.56)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-view .story-kind-select select{min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(10,14,18,.6);color:#fff;font:400 12px var(--sans)}
/* the numbers: the hub's readout */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-stat b{display:block;font:300 24px/1 var(--sans);letter-spacing:-.03em;color:#fff}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-stat small{display:block;margin-top:5px;font:500 7.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.56)}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-note{margin:12px 0 0;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);font:300 12.5px/1.5 var(--sans);color:rgba(255,255,255,.72)}
/* the scene and the strip sit in the lens frame */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-scene,html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-strip .story-card{border-radius:24px;border:1px solid rgba(255,255,255,.18);box-shadow:0 40px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12)}

/* THE MEDIA GRID — the types as the hub's menu, the tiles as modules */
html[data-showcase-ui="glass"] #mpBody .mg-scope.mg-hub{display:flex;justify-content:center;background:none;border:0;box-shadow:none}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-bar{display:flex;justify-content:center;width:auto;padding:0;background:none;border:0}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-types{display:inline-flex;gap:2px;padding:5px;border-radius:999px;background:rgba(16,22,27,.72);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 40px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08)}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-types button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 16px;border:0;border-radius:999px;background:none;color:rgba(255,255,255,.66);font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:background .3s,color .3s,box-shadow .3s}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-types button:hover{color:#fff}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-types button.on{background:rgba(var(--accent-rgb),.16);color:#fff;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5)}
html[data-showcase-ui="glass"] #mpBody .mg-scope .mg-types button small{margin:0;color:var(--accent);font:inherit;letter-spacing:.1em}
html[data-showcase-ui="glass"] #mpBody .mg-tile{border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 44px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .25s}
html[data-showcase-ui="glass"] #mpBody .mg-tile:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.55)}
html[data-showcase-ui="glass"] #mpBody .mg-tile .mt-label{left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(0deg,rgba(4,8,12,.86),rgba(4,8,12,0));text-shadow:none}
html[data-showcase-ui="glass"] #mpBody .mg-tile .mt-label b{display:block;font:400 18px/1.2 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff;letter-spacing:0;text-transform:none}
html[data-showcase-ui="glass"] #mpBody .mg-tile .mt-label small{display:block;margin-top:4px;font:500 8px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
html[data-showcase-ui="glass"] #mpBody .mg-tile .mg-kind{top:12px;left:12px;padding:5px 10px;border-radius:999px;background:rgba(10,14,18,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18);color:#fff;font:500 8px var(--mono);letter-spacing:.16em}

/* THE VIEWER — its own ← is the way back while it is open; the global pill steps aside */
body.on-asset-stage #sxrBack{display:none!important}
html[data-showcase-ui="glass"] #ivBack{min-height:36px;padding:0 16px 0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(10,14,18,.7);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;font:500 9px var(--mono);letter-spacing:.18em;text-transform:uppercase}
html[data-showcase-ui="glass"] #ivBack:hover{border-color:var(--accent)}

/* fixes after the first look: the scene sheet's overlay + ring sat over the rows; the grid caption is a strip */
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card{overflow:visible;isolation:auto;border-radius:14px}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card::before,html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card.active::after{display:none!important}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-face{opacity:1!important;z-index:auto;transform:none!important}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-words{align-items:flex-start;justify-content:center;text-align:left}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card.active .sg-words b{color:#fff}
html[data-showcase-ui="glass"] #mpBody .mh-grid .mg-tile{padding-bottom:58px;background-color:rgba(14,19,24,.62)}
html[data-showcase-ui="glass"] #mpBody .mh-grid .mg-tile .mt-label{position:absolute;top:auto;height:58px;padding:0 14px;background:none;justify-content:center}
html[data-showcase-ui="glass"] #mpBody .mh-grid .mg-tile .mt-label b{font:400 16px/1.2 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-showcase-ui="glass"] #mpBody .mh-grid .mg-tile .mt-label small{font:500 8px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.58);margin-top:4px}

html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-card{flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;height:auto!important}
html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .ci-spaces .sg-words{flex:1 1 auto;align-self:center}

/* ═══ THE MOBILE FRAME (2026-09-30) — under 900px: a top bar, a full-width tab bar, and the content in
   between. Nothing floats over content: Back and Make it yours live in the top bar, the full-screen control
   and the fixed contact band leave (the band's links close the Overview feed, "Reach the team"). ═══ */
.ov-mod-reach{display:none}
/* …and a phone on its side counts as a phone (2026-10-03): a 932×430 Pro Max in landscape was getting the desktop
   chrome — floating dock over the Home doors, footer band, tall header */
@media (max-width:899px), (orientation:landscape) and (max-height:500px){
  /* TOP BAR — one row: [← back] [lockup] … [◇] [share] [primary] ; the demo marker as a hairline under it */
  html[data-showcase-ui="glass"] body #brandbar{display:block!important;height:auto!important;min-height:0!important;padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 6px!important;background:linear-gradient(180deg,rgba(6,9,12,.92),rgba(6,9,12,.72));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
  html[data-showcase-ui="glass"] body #brandbar .brand-center{display:flex!important;align-items:center;height:36px;padding:0;transition:padding .25s}
  html[data-showcase-ui="glass"] body.has-back #brandbar .brand-center{padding-left:44px}
  html[data-showcase-ui="glass"] body #brandbar .brand-hero{height:36px!important;max-width:118px;object-fit:contain;object-position:left center;animation:none!important;opacity:1!important}
  html[data-showcase-ui="glass"] body #brandbar #hdrInfo{display:block!important;margin:3px 0 0;padding:0;border:0}
  html[data-showcase-ui="glass"] body #brandbar #hdrInfo .hi-name{display:none!important}
  html[data-showcase-ui="glass"] body #brandbar #hdrInfo .hi-ro{display:flex;flex-wrap:nowrap;overflow:hidden;font:500 7.5px var(--mono);letter-spacing:.16em;color:rgba(255,255,255,.62)}
  html[data-showcase-ui="glass"] body #brandbar #hdrInfo .hi-ro>:not(:last-child){display:none!important}
  html[data-showcase-ui="glass"] body #brandbar #hdrAct{position:absolute!important;top:calc(env(safe-area-inset-top,0px) + 8px)!important;right:10px!important;left:auto!important;display:flex!important;align-items:center;gap:6px;margin:0;transform:none!important}
  html[data-showcase-ui="glass"] body #brandbar #hdrAct .hbtn{height:36px!important;min-height:36px;padding:0 13px!important;font-size:8.5px!important;letter-spacing:.14em!important}
  /* the primary action keeps its words but never runs into the logo; the team's STUDIO door is a compact chip */
  html[data-showcase-ui="glass"] body #brandbar #hdrAct .sales-primary{max-width:calc(100vw - 210px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block!important;line-height:36px}
  html[data-showcase-ui="glass"] body #brandbar #hdrAct .studio-door{padding:0 10px!important;font-size:8px!important;letter-spacing:.1em!important;flex:none}
  /* share as an icon — the row keeps room for the primary action */
  /* ⚠️ sxr-sessions.css (touch sizes) sets .studio-share-door min 64×44 !important — that turned this icon into a tall
     empty pill with its glyph pushed to the top (the hidden "Share" text took a second grid row). Flex, not grid, and
     the bar's own 36px wins on specificity (Michael, 2026-10-03: "it's header that's all messed up") */
  html[data-showcase-ui="glass"] body #brandbar #hdrAct .studio-share-door{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;font-size:0!important;display:flex!important;align-items:center;justify-content:center;flex:none}
  html[data-showcase-ui="glass"] body #brandbar #hdrAct .studio-share-door::before{content:"";flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='6' r='2.5'/%3E%3Ccircle cx='18' cy='18' r='2.5'/%3E%3Cpath d='m8.2 10.8 7.6-3.6M8.2 13.2l7.6 3.6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='6' r='2.5'/%3E%3Ccircle cx='18' cy='18' r='2.5'/%3E%3Cpath d='m8.2 10.8 7.6-3.6M8.2 13.2l7.6 3.6'/%3E%3C/svg%3E") center/contain no-repeat}
  @media (max-width:420px){html[data-showcase-ui="glass"] body #brandbar #hdrAct .hbtn{padding:0 11px!important;letter-spacing:.1em!important}}
  /* Make it yours, seated in the actions */
  html[data-showcase-ui="glass"] body #hdrAct #bpPill{position:static!important;inset:auto!important;width:36px;height:36px;min-height:36px;padding:0;gap:0;justify-content:center;border-radius:50%;box-shadow:none;transform:none}
  html[data-showcase-ui="glass"] body #hdrAct #bpPill i{width:24px;height:24px;font-size:11px}
  html[data-showcase-ui="glass"] body #hdrAct #bpPill span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  /* Back, at the top bar's left */
  html[data-showcase-ui="glass"] body #sxrBack{position:fixed!important;left:10px!important;top:calc(env(safe-area-inset-top,0px) + 8px)!important;width:36px;height:36px;min-height:36px;padding:0;justify-content:center;font-size:0!important;gap:0;z-index:160;animation:none}
  html[data-showcase-ui="glass"] body #sxrBack span{font-size:16px}
  body.on-asset-stage #sxrBack{display:none!important}

  /* TAB BAR — full width at the bottom, seven equal tabs, safe-area aware */
  html[data-showcase-ui="glass"] body #hud{left:0!important;right:0!important;bottom:0!important;top:auto!important;width:auto!important;max-width:none!important;transform:none!important;margin:0!important;border-radius:0!important;border-width:1px 0 0!important;padding:4px 2px calc(env(safe-area-inset-bottom,0px) + 4px)!important;display:flex!important;justify-content:stretch;background:rgba(8,11,14,.94)!important;box-shadow:0 -10px 30px rgba(0,0,0,.45)!important}
  html[data-showcase-ui="glass"] body #hud #navTabs{flex:1 1 auto;display:flex!important;justify-content:space-between;width:100%;gap:0;padding:0}
  html[data-showcase-ui="glass"] body #hud #navTabs .tab{flex:1 1 0;min-width:0;width:auto!important;height:50px;padding:5px 0 3px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px}
  html[data-showcase-ui="glass"] body #hud #navTabs .tab i,html[data-showcase-ui="glass"] body #hud #navTabs .tab svg{width:20px!important;height:20px!important}
  html[data-showcase-ui="glass"] body #hud #navTabs .tab span{display:block!important;max-width:100%;font:500 7.5px/1 var(--mono)!important;letter-spacing:.05em!important;white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:center}
  html[data-showcase-ui="glass"] body #hud :is(#hudCtl,.hud-div,#dock){display:none!important}
  /* the contact band leaves the fixed frame (its links close the Overview feed) */
  html[data-showcase-ui="glass"] body #clientFoot{display:none!important}
  .ov-mod-reach{display:flex}

  /* CONTENT — every page fills the space between the two bars */
  html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo,
  html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo:has(.story-page[data-page]),
  html[data-showcase-ui="glass"] body.on-content-browser #viewport #console.solo:has(.story-page.ov-deck[data-page]){top:calc(var(--sales-header-h,64px) + 4px)!important;bottom:calc(var(--hud-h,62px) + 6px)!important;left:6px!important;right:6px!important}
  /* Home: the hero words end above the tab bar */
  html[data-showcase-ui="glass"] #heroLayer .hero.hero-v4,html[data-showcase-ui="glass"] #heroLayer .hero.hero-editorial{bottom:calc(var(--hud-h,62px) + 14px)!important;top:calc(var(--sales-header-h,64px) + 8px)!important}
  .ch-stage{--ch-bottom:calc(var(--hud-h,62px) + 16px)!important}
  /* the hub menu no longer makes room for a Back beside it */
  body.has-back .ov-deck .ov-menu{left:8px}

  /* THE REACH MODULE */
  .ov-reach{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .ov-reach-a{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#fff;text-decoration:none;min-width:0}
  .ov-reach-a:active{background:rgba(var(--accent-rgb),.12)}
  .ov-reach-i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.5);color:var(--accent)}
  .ov-reach-i svg{width:15px;height:15px}
  .ov-reach-a>span:last-child{min-width:0;display:flex;flex-direction:column;gap:2px}
  .ov-reach-a b{font:500 12.5px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ov-reach-a small{font:400 10.5px var(--sans);color:rgba(255,255,255,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:899px){
  /* the section page's view row scrolls sideways instead of running off the edge */
  html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-toolbar-end{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;gap:8px;padding-bottom:2px}
  html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-toolbar-end::-webkit-scrollbar{display:none}
  html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-toolbar-end>*{flex:none}
  html[data-showcase-ui="glass"] body .story-page[data-page="Explore"]:not(.ov-deck) .story-sig{scrollbar-width:none}
  html[data-showcase-ui="glass"] body #hud #navTabs .tab span{font-size:8px!important}
}
@media (max-width:899px){.ov-reach-i svg{fill:currentColor;display:block}}

/* ═══ SIDEWAYS PHONES (Michael, 2026-10-03: "TURN PHONE SIDEWAYS") — a phone on its side has ~390px of height,
   and the top bar + tab bar took most of it: the fifth Home door and the Spaces panel's foot sat behind the dock.
   Any landscape screen under 500px tall: both bars slim down, and what is between them ends above the dock and
   scrolls. Nothing is hidden; portrait and desktop are untouched. ═══ */
@media (orientation:landscape) and (max-height:500px){
  html body #brandbar #hdrInfo{display:none!important}
  html[data-showcase-ui="glass"] body #brandbar{padding-top:calc(env(safe-area-inset-top,0px) + 6px)!important;padding-bottom:6px!important}
  html body #hud #navTabs .tab{height:44px!important;padding-top:3px!important;padding-bottom:2px!important;gap:3px!important}
  /* classic Home: the hero's words and doors scroll in the space between the bars */
  html body #heroLayer .hero.hero-v4{bottom:calc(var(--hud-h,52px) + 10px)!important;height:auto!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;justify-content:flex-start!important}
  /* Immersive Spaces Home: the doors column and the Spaces panel both end above the dock */
  html body #isHome #isLeft{top:68px!important;bottom:calc(var(--hud-h,52px) + 10px)!important;height:auto!important;overflow-y:auto!important;overscroll-behavior:contain;padding-bottom:6px}
  html body #isHome #isSide{top:68px!important;bottom:calc(var(--hud-h,52px) + 10px)!important;height:auto!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain}
  /* classic Home: a title sized for the height, so the doors are on screen, not below the fold */
  html body #heroLayer .hero.hero-v4 h1{font-size:clamp(26px,9vh,40px)!important;margin:4px 0 8px!important}
  html body #heroLayer .hero.hero-v4{top:64px!important}
}

/* TURN SIDEWAYS (Michael, 2026-10-03) — once a visit, when a photo, film, 360 or 3D tour opens on an upright phone */
.rotate-hint{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 118px);transform:translateX(-50%);z-index:9000;display:flex;align-items:center;gap:8px;
  padding:10px 16px;border-radius:999px;background:rgba(8,10,12,.86);border:1px solid rgba(255,255,255,.16);color:#eef2f6;
  font:500 12px/1.2 -apple-system,"Segoe UI",system-ui,sans-serif;white-space:nowrap;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 12px 34px rgba(0,0,0,.4);transition:opacity .35s ease;cursor:pointer}
.rotate-hint i{display:inline-block;font-style:normal;font-size:16px;line-height:1;animation:sxrRotateHint 1.8s ease-in-out infinite}
.rotate-hint.out{opacity:0}
@keyframes sxrRotateHint{0%,55%,100%{transform:rotate(0)}25%,35%{transform:rotate(90deg)}}
@media (prefers-reduced-motion:reduce){.rotate-hint i{animation:none}}

/* ADD TO HOME SCREEN — the steps, above the tab bar (2026-10-03) */
.install-hint{position:fixed;left:12px;right:12px;bottom:calc(var(--hud-h,56px) + env(safe-area-inset-bottom,0px) + 14px);z-index:9000;max-width:420px;margin:0 auto;
  padding:16px 18px;border-radius:16px;background:rgba(8,10,12,.92);border:1px solid rgba(255,255,255,.16);color:#eef2f6;
  font:400 13px/1.5 -apple-system,"Segoe UI",system-ui,sans-serif;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.install-hint b{display:block;font-weight:600;font-size:14px;margin-bottom:4px}
.install-hint p{margin:0 0 12px;color:rgba(238,242,246,.82)}
.install-hint .ih-k{color:#fff;font-weight:600}
.install-hint button{font:600 10px/1 ui-monospace,"SF Mono",monospace;letter-spacing:.14em;text-transform:uppercase;padding:11px 16px;border-radius:999px;border:0;background:#cbd2d9;color:#0a0a0a;cursor:pointer}

/* HOURS (website essentials, 2026-10-08) — Location + Contact chapters */
.ov-hours{list-style:none;margin:4px 0 0;padding:0}
.ov-hours li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}
.ov-hours li:first-child{border-top:0}
.ov-hours span{font:500 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.58);white-space:nowrap}
.ov-hours b{font-weight:400;font-size:13px;color:#eef2f6;text-align:right}
.ov-hours-note{margin:8px 0 0;font-size:12px;line-height:1.5;color:rgba(255,255,255,.6)}
.ov-mod-t small.ov-open{color:#eef2f6}

/* ═══ AUDIO (Michael, 2026-10-11: "redesign the audio hub to match the new look") — the sound stage (a meter that reads
   the soundscape's real output), the soundscape rows, the level, the interface-sound switch. Glass, silver light only. ═══ */
.ah-stage{position:relative;flex:1;min-height:0;margin:0;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.16);
  background:radial-gradient(60% 55% at 50% 40%,rgba(var(--accent-rgb),.12),rgba(var(--accent-rgb),0) 70%),rgba(10,14,18,.42);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:0 40px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:26px 22px 22px;text-align:center}
.ah-bars{display:flex;align-items:center;justify-content:center;gap:5px;height:clamp(70px,14vh,150px);width:min(86%,520px)}
.ah-bars i{flex:1;max-width:9px;height:100%;border-radius:4px;background:linear-gradient(180deg,rgba(var(--accent-rgb),.95),rgba(var(--accent-rgb),.35));transform:scaleY(.06);transform-origin:50% 50%;transition:transform .12s linear,opacity .35s;opacity:.5}
.ah-stage.is-on .ah-bars i{opacity:1}
.ah-stage figcaption{max-width:46ch}
.ah-stage figcaption h2{margin:6px 0 8px;font:400 clamp(26px,2.6vw,40px)/1.05 'Bodoni 72',Didot,'Cormorant Garamond',Georgia,serif;letter-spacing:-.02em;color:#fff}
.ah-stage figcaption h2 em{font-style:italic;color:var(--accent-soft,#eef2f6)}
.ah-stage figcaption p{margin:0;font:300 13.5px/1.55 var(--sans);color:rgba(255,255,255,.66)}
.ah-play{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:0 22px 0 7px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);color:#fff;font:500 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border-color .22s,background .22s,transform .12s}
.ah-play:hover{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.08)}
.ah-play:active{transform:scale(.98)}
.ah-play:focus-visible,.ah-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ah-play-i{position:relative;flex:none;width:34px;height:34px;border-radius:50%;background:var(--accent)}
.ah-play-i::before{content:"";position:absolute;left:13px;top:10px;border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent #0a0d10}
.ah-play.is-on .ah-play-i::before{left:11px;top:11px;width:12px;height:12px;border:0;border-radius:2px;background:#0a0d10}
.ah-scape .ah-dot{flex:none;width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.3);transition:background .3s,border-color .3s,box-shadow .3s}
.ah-scape.is-on{background:rgba(var(--accent-rgb),.08)}
.ah-scape.is-on .ah-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(var(--accent-rgb),.45)}
.ah-level{display:flex;align-items:center;gap:12px;width:100%;font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ah-level input{flex:1;min-width:0;min-height:44px;accent-color:var(--accent)}
.ah-level b{min-width:4ch;text-align:right;font-weight:500;color:#fff}
.ah-switch{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:8px 4px;border:0;background:none;color:#fff;text-align:left;cursor:pointer}
.ah-switch-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ah-switch-t b{font:500 14px var(--sans)}
.ah-switch-t small{font:300 12.5px var(--sans);color:rgba(255,255,255,.62)}
.ah-knob{position:relative;flex:none;width:46px;height:26px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);transition:background .3s,border-color .3s}
.ah-knob i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s}
.ah-switch[aria-checked="true"] .ah-knob{background:var(--accent);border-color:var(--accent)}
.ah-switch[aria-checked="true"] .ah-knob i{transform:translateX(20px);background:#0a0d10}
.ah-can{margin-top:2px}
@media (max-width:899px){.ov-deck .ov-hub .ah-stage{order:-3;grid-column:1/-1;flex:none;min-height:0;padding:20px 14px 16px;gap:14px}.ah-stage figcaption p{font-size:13px}.ah-bars{height:72px}}
@media (prefers-reduced-motion:reduce){.ah-bars i,.ah-knob,.ah-knob i,.ah-play,.ah-scape .ah-dot{transition:none}}
