/* Allan Beke visit cards: Project 14 universe F (Glass Futurist) on top of scrollcraft.css.
   The sector accent comes from --sc-accent / --acc-rgb set in each page. */
:root{
  --sc-canvas:#0A0D16; --sc-surface:#141826; --sc-ink:#F4F2ED; --sc-ink-soft:#A9AFBD;
  --sc-accent-ink:#0A0D16;
  --sc-font-display:"Playfair Display",Georgia,serif; --sc-font-text:Inter,system-ui,sans-serif;
  --line:rgba(244,242,237,.12); --glass:rgba(16,20,32,.55);
  --acc-soft:rgba(var(--acc-rgb),.14); --acc-line:rgba(var(--acc-rgb),.45);
  --r:22px;
}
/* Static baseline: with JS off everything the engine would fade in is shown. */
.no-js [data-sc-cue], .no-js [data-sc-in], .no-js [data-sc-stagger] > *{opacity:1!important;transform:none!important}
.no-js [data-sc-stage]{position:relative;height:100svh;min-height:640px;overflow:hidden}
.no-js .sc-stage__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.no-js .sc-copy--trail, .no-js video{display:none}

body{background:var(--sc-canvas);color:var(--sc-ink);font-family:var(--sc-font-text)}
::selection{background:var(--sc-accent);color:var(--sc-accent-ink)}

/* top bar */
.bar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:20px 32px;
  background:linear-gradient(180deg,rgba(10,13,22,.9),rgba(10,13,22,.55) 60%,rgba(10,13,22,0))}
.bar img{height:22px}
.pill{font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--sc-accent);border:1px solid var(--acc-line);background:rgba(10,13,22,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 12px;border-radius:999px}
.eye{font:500 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--sc-accent);display:flex;align-items:center;gap:12px}
.eye::before{content:"";width:28px;height:1px;background:var(--sc-accent)}

/* hero */
.lead{display:grid;gap:18px;max-width:640px}
.lead .eye::before{display:none}
.lead h1{font:500 clamp(38px,5.2vw,68px)/1.03 "Playfair Display",Georgia,serif;letter-spacing:-.015em}
.lead h1 em,.h2 em{color:var(--sc-accent)}
.who{display:flex;align-items:center;gap:14px}
.who img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#cfd2d8;border:1.5px solid var(--sc-accent)}
.who b{display:block;font:600 17px/1.2 Inter}
.who span{font:400 13px/1.4 Inter;color:var(--sc-ink-soft)}
.fit{font:500 11.5px/1.6 "IBM Plex Mono",monospace;letter-spacing:.08em;display:flex;flex-wrap:wrap;gap:4px 16px}
.fit i{font-style:normal;color:var(--sc-accent)}
.ctas{display:flex;gap:10px;flex-wrap:wrap}
.btn{font:600 14px/1 Inter;padding:16px 24px;border-radius:999px;text-decoration:none;text-align:center;transition:transform .25s,box-shadow .25s,background .25s}
.btn.p{background:var(--sc-accent);color:var(--sc-accent-ink);box-shadow:0 10px 30px -10px rgba(var(--acc-rgb),.7)}
.btn.g{color:var(--sc-ink);border:1px solid var(--line);background:rgba(244,242,237,.06);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.btn:hover{transform:translateY(-2px)}
.city{font:500 11px/1.5 "IBM Plex Mono",monospace;letter-spacing:.2em;color:var(--sc-accent)}

/* sections with a cinematic photo behind */
.sec{position:relative;padding:88px 0;overflow:hidden;overflow:clip;isolation:isolate}
.bgl{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;z-index:-2;opacity:.62;filter:saturate(.9)}
.has-bg::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,var(--sc-canvas) 0%,rgba(10,13,22,.35) 18%,rgba(10,13,22,.5) 72%,var(--sc-canvas) 100%),
             radial-gradient(80% 60% at 15% 30%,rgba(10,13,22,.55),transparent 70%)}
@supports (animation-timeline: view()){
  .bgl{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  @keyframes drift{from{transform:scale(1.18) translateY(-5%)}to{transform:scale(1.02) translateY(5%)}}
}
@media (prefers-reduced-motion:reduce){ .bgl{animation:none!important} }

.wrap{max-width:1160px;margin:0 auto;padding:0 32px;display:grid;gap:40px}
.h2{font:500 clamp(32px,4.4vw,56px)/1.06 "Playfair Display",serif;letter-spacing:-.015em;max-width:860px}
.h2--xl{font-size:clamp(38px,6vw,80px);max-width:980px}
.note{font:400 12px/1.6 Inter;color:var(--sc-ink-soft);max-width:860px}
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}

/* numbers */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px 40px}
.stat{display:grid;gap:10px;padding-top:18px;border-top:1px solid var(--acc-line)}
.stat b{font:500 clamp(36px,4.2vw,58px)/1 "IBM Plex Mono",monospace;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat span{font:400 14px/1.45 Inter;color:var(--sc-ink-soft);max-width:240px}
.cities{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cities div{padding:22px 24px;border-radius:var(--r);background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:grid;gap:8px}
.cities b{font:500 13px/1 "IBM Plex Mono",monospace;letter-spacing:.2em;color:var(--sc-accent)}
.cities span{font:400 15px/1.5 Inter;color:var(--sc-ink)}

/* pillars */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);padding:32px 28px 26px;
  background:linear-gradient(170deg,rgba(var(--acc-rgb),.10),rgba(16,20,32,.62) 45%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  display:flex;flex-direction:column;gap:16px;transition:transform .35s,border-color .35s}
.card:hover,.case:hover{transform:translateY(-4px);border-color:var(--acc-line)}
.ghost{position:absolute;top:-14px;right:14px;font:italic 500 110px/1 "Playfair Display",serif;color:rgba(var(--acc-rgb),.13);pointer-events:none}
.card h3{font:600 21px/1.25 Inter;letter-spacing:-.015em;max-width:80%}
.card ul{list-style:none;display:grid;gap:10px;font:400 15px/1.5 Inter;color:var(--sc-ink-soft);flex:1}
.card li{padding-left:18px;position:relative}
.card li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--sc-accent)}
.proof{margin-top:6px;padding-top:16px;border-top:1px solid var(--line);font:400 13.5px/1.5 Inter;color:var(--sc-ink)}
.proof b{display:block;font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--sc-accent);margin-bottom:8px}

/* corporate ecosystem */
.corp{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:32px;align-items:center;padding:32px}
.fund{font:500 22px/1.35 "Playfair Display",serif;margin-top:12px}
.logorow,.wall{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:26px 30px;align-items:center}
.logo{display:block;max-width:120px;max-height:34px;width:auto;height:auto;margin:auto;filter:brightness(0) invert(1);opacity:.78;transition:opacity .3s}
.logo:hover{opacity:1}
.logo--text,.clogo--text{filter:none;font:600 14px/1.2 Inter;letter-spacing:.02em;color:var(--sc-ink);opacity:.8;text-align:center;max-height:none}

/* cases */
.case{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);padding:30px 30px 28px;display:grid;gap:8px;align-content:start;
  background:radial-gradient(120% 90% at 100% 0%,rgba(var(--acc-rgb),.20),transparent 55%),rgba(16,20,32,.62);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .35s,border-color .35s}
.case header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:18px;min-height:40px}
.clogo{display:block;max-width:150px;max-height:38px;width:auto;height:auto;filter:brightness(0) invert(1)}
.clogo--text{font:600 18px/1.2 Inter;text-align:left}
.status{font:500 10px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--sc-ink-soft);border:1px solid var(--line);padding:7px 10px;border-radius:999px;white-space:nowrap}
.big{font:500 clamp(54px,6vw,80px)/.95 "IBM Plex Mono",monospace;letter-spacing:-.04em;color:var(--sc-accent)}
.lbl{font:500 14px/1.4 Inter;color:var(--sc-ink)}
.case p{margin-top:10px;padding-top:14px;border-top:1px solid var(--line);font:400 14.5px/1.55 Inter;color:var(--sc-ink-soft)}
.wall{padding:30px 0 4px;border-top:1px solid var(--line)}

/* team */
.person--lead{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:center;padding:28px;border-radius:var(--r);border:1px solid var(--acc-line);
  background:linear-gradient(120deg,rgba(var(--acc-rgb),.16),rgba(16,20,32,.66) 55%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.person--lead .pic > img{width:240px;height:240px;border-radius:18px;object-fit:cover}
.person--lead h3{font:500 clamp(28px,3vw,40px)/1.1 "Playfair Display",serif}
.person--lead .txt p:last-child{font:400 16px/1.6 Inter;color:var(--sc-ink);max-width:620px}
.role{font:500 11px/1.5 "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--sc-accent);margin:8px 0 12px}
.crew{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.crew .person{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:rgba(16,20,32,.62);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:flex;flex-direction:column;transition:transform .35s,border-color .35s}
.crew .person:hover{transform:translateY(-4px);border-color:var(--acc-line)}
.crew .pic{aspect-ratio:1/1;overflow:hidden;background:var(--sc-surface)}
.crew .pic > img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.crew .person:hover .pic > img{transform:scale(1.04)}
.crew .ph,.person--lead .ph{width:100%;height:100%;display:grid;place-items:center;font:500 54px/1 "Playfair Display",serif;color:var(--sc-accent);
  background:radial-gradient(circle at 50% 40%,rgba(var(--acc-rgb),.22),var(--sc-surface) 70%)}
.crew .txt{padding:20px 22px 24px}
.crew h3{font:600 18px/1.25 Inter;letter-spacing:-.01em}
.crew .txt p:last-child{font:400 14px/1.55 Inter;color:var(--sc-ink-soft)}
.story{padding:18px 24px}
.story summary{cursor:pointer;font:600 15px/1.4 Inter}
.story ul{list-style:none;display:grid;gap:10px;margin:16px 0 12px;font:400 14.5px/1.5 Inter;color:var(--sc-ink-soft)}
.story li b{display:inline-block;min-width:104px;font:500 12px/1.5 "IBM Plex Mono",monospace;color:var(--sc-accent)}
.clients{font:400 13px/1.5 Inter;color:var(--sc-ink-soft)}

/* what we look for */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.chips li{font:500 14px/1 Inter;padding:13px 18px;border-radius:999px;border:1px solid var(--acc-line);background:rgba(10,13,22,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.open{font:italic 500 clamp(20px,2.2vw,28px)/1.35 "Playfair Display",serif;max-width:760px}

/* close */
.close{padding-bottom:48px;min-height:92vh;display:flex;align-items:flex-end}
.close .wrap{width:100%}
.mail{font:500 15px/1 "IBM Plex Mono",monospace;color:var(--sc-ink-soft);user-select:all}
.foot{margin-top:72px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;font:400 12px/1.5 Inter;color:var(--sc-ink-soft)}
.foot img{height:20px;opacity:.85}

@media (max-width:860px){
  .bar{padding:16px 20px} .bar img{height:18px}
  .sec{padding:96px 0} .wrap{padding:0 20px;gap:30px}
  .grid3,.grid2,.cities{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:24px 20px}
  .corp{grid-template-columns:1fr;padding:24px}
  .logorow,.wall{grid-template-columns:repeat(3,1fr);gap:22px 18px}
  .person--lead{grid-template-columns:1fr;gap:20px;padding:22px}
  .person--lead .pic > img{width:132px;height:132px}
  .crew{grid-template-columns:1fr;gap:12px}
  .crew .person{flex-direction:row;align-items:stretch}
  .crew .pic{width:104px;height:104px;flex:none;aspect-ratio:1/1;align-self:flex-start;margin:14px 0 14px 14px;border-radius:14px}
  .crew .txt{padding:14px 16px 16px}
  .crew h3{font-size:16px}
  .crew .role{margin:4px 0 8px}
  .crew .txt p:last-child{font-size:13.5px}
  .foot{flex-direction:column;align-items:flex-start}
  .btn{flex:1;padding:16px 10px}
}

/* nationality badge on portraits */
.pic{position:relative}
.flags{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;padding:5px;border-radius:8px;background:rgba(10,13,22,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.flag{display:block;width:24px;height:18px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 .5px rgba(255,255,255,.35)}
.person--lead .pic{width:240px}
@media (max-width:860px){ .person--lead .pic{width:132px} .flags{left:6px;bottom:6px;gap:4px;padding:4px} .flag{width:20px;height:15px} }

/* ---------- case rail: 3D depth carousel (universe F) ---------- */
.rail{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.rail.is-3d{display:block;height:560px;perspective:1800px;perspective-origin:50% 45%;touch-action:pan-y;outline:none}
.rail .case{min-height:420px;overflow:hidden;isolation:isolate;padding:26px 26px 28px;display:flex;flex-direction:column;justify-content:space-between;background:#0E121D}
.rail.is-3d .case{position:absolute;top:50%;left:50%;width:min(380px,78vw);height:500px;margin:-250px 0 0 calc(min(380px,78vw) / -2);cursor:pointer;
  transform-style:preserve-3d;box-shadow:0 40px 90px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.14);
  transition:transform .62s cubic-bezier(.22,.7,.24,1),opacity .62s ease,border-color .4s ease,box-shadow .4s ease;will-change:transform,opacity}
.rail .case:hover{transform:none}
.case-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.22,.7,.24,1)}
.case-tint{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,13,22,.55) 0%,rgba(10,13,22,.25) 30%,rgba(10,13,22,.78) 62%,rgba(10,13,22,.96) 100%)}
.rail .case header{margin:0}
.case-body{display:grid;gap:8px}
.rail .case .big{font-size:clamp(54px,6vw,72px)}
.rail .case p{margin-top:6px}
.rail.is-3d .case.is-active{border-color:var(--acc-line);box-shadow:0 50px 110px rgba(0,0,0,.6),0 0 60px rgba(var(--acc-rgb),.14),inset 0 1px 0 rgba(255,255,255,.2)}
.rail.is-3d .case.is-active:hover .case-bg{transform:scale(1.05)}
.rail.is-3d .case:not(.is-active) .case-body,.rail.is-3d .case:not(.is-active) header{opacity:.55}
.rail-ui{display:none}
.rail.is-3d + .rail-ui{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:8px}
.rail-ui > button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:rgba(244,242,237,.05);color:var(--sc-ink);cursor:pointer;font-size:15px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .2s,color .2s}
.rail-ui > button:hover{border-color:var(--acc-line);color:var(--sc-accent)}
.rail-dots{display:flex;gap:9px}
.rail-dots button{width:8px;height:8px;padding:0;border-radius:999px;border:0;background:rgba(244,242,237,.3);cursor:pointer;transition:width .35s,background .35s}
.rail-dots button.on{width:26px;background:var(--sc-accent)}
@media (prefers-reduced-motion:reduce){ .rail.is-3d .case{transition:opacity .2s} }
@media (max-width:860px){ .rail{grid-template-columns:1fr} .rail.is-3d{height:540px} }

/* ---------- flags: clean badges, top-right of each team card ---------- */
.person{position:relative}
.person > .flags{position:absolute;top:14px;right:14px;left:auto;bottom:auto;display:flex;gap:6px;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:2}
.person > .flags .flag{width:26px;height:19.5px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 2px 8px rgba(0,0,0,.35)}
@media (max-width:860px){ .person > .flags{top:12px;right:12px;gap:4px} .person > .flags .flag{width:22px;height:16.5px} }

/* ================= Draper Full pass (2026-10-16): original code, ideas studied on draper.vc ================= */
/* eyebrows become bracketed mono labels */
.eye::before{content:"[";width:auto;height:auto;background:none;color:var(--sc-accent)}
.eye::after{content:"]";color:var(--sc-accent)}
.lead .eye::before{display:inline}

/* hairline column rules and corner chrome (desktop) */
.hairlines{position:fixed;inset:0;z-index:5;pointer-events:none;display:flex;justify-content:space-between;max-width:1160px;margin:0 auto;padding:0 32px}
.hairlines i{width:1px;height:100%;background:rgba(244,242,237,.05)}
.readout,.corner-cta{position:fixed;bottom:20px;z-index:21;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--sc-ink-soft)}
.readout{left:32px}.readout b{color:var(--sc-ink);font-weight:500}
.corner-cta{right:32px;text-decoration:none;color:var(--sc-accent);padding:10px 14px;border:1px solid var(--acc-line);border-radius:999px;background:rgba(10,13,22,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* hand-off: last drone frame shrinks into a rounded window */
.handoff{position:relative;height:150vh;--h:0}
.ho-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;align-content:end;justify-items:center;padding:0 32px 9vh}
.ho-img{position:absolute;inset:0;z-index:0}
.ho-img img{width:100%;height:100%;object-fit:cover;
  clip-path:inset(calc(var(--h) * 9%) calc(var(--h) * 12%) calc(var(--h) * 47%) calc(var(--h) * 12%) round calc(var(--h) * 14px));
  filter:brightness(calc(1 - var(--h) * .25))}
.ho-copy{position:relative;z-index:1;width:100%;max-width:1160px;display:grid;gap:22px}
.fx-on .ho-copy{opacity:calc((var(--h) - .2) * 2);transform:translateY(calc((1 - var(--h)) * 40px))}
.ho-copy .stats{margin-top:4px}
.no-js .handoff{height:auto}.no-js .ho-stage{position:relative;height:auto;min-height:100vh}.no-js .ho-copy{opacity:1;transform:none}
.no-js .ho-img img{clip-path:inset(9% 12% 47% 12% round 14px)}

/* statement lit word by word */
.statement{position:relative;height:130vh}
.st-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;place-items:center;padding:0 32px}
.stmt{font:500 clamp(34px,5.4vw,76px)/1.12 "Playfair Display",serif;letter-spacing:-.015em;max-width:1000px;text-align:center}
.fx-on .stmt .w{opacity:.18;transition:opacity .25s linear}
.stmt .acc{color:var(--sc-accent);font-style:italic}
.no-js .statement{height:auto}.no-js .st-stage{position:relative;height:auto;padding:120px 32px}.no-js .stmt .w{opacity:1}

/* rolling sector list with a synced photo */
.roll{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
.roll-media{position:sticky;top:18vh;aspect-ratio:4/5;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--sc-surface)}
.roll-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}
.roll-media img.on{opacity:1}
.roll-list{list-style:none;padding:10vh 0;display:grid;gap:4px}
.roll-list li{font:500 clamp(26px,3.2vw,44px)/1.15 "Playfair Display",serif;padding:14px 0;border-bottom:1px solid var(--line);transition:color .3s}
.roll-list li.on{color:var(--sc-accent)}
.roll-list .n{font:500 12px "IBM Plex Mono",monospace;letter-spacing:.14em;color:var(--sc-ink-soft);vertical-align:middle;margin-right:8px}

/* prism carousel (default); fan stays under .mode-fan */
.rail-pin.mode-prism{height:calc(var(--faces, 4) * 42vh + 100vh)}
.rail-pin.mode-prism .rail-sticky{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;perspective:1100px;perspective-origin:50% 40%}
.rail.mode-prism{height:540px;transform-style:preserve-3d;perspective:none}
.rail.mode-prism .case{transition:opacity .2s linear,border-color .4s ease,box-shadow .4s ease;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.rail.mode-prism .case:not(.is-active) .case-body,.rail.mode-prism .case:not(.is-active) header{opacity:1}

/* More toggles: summary visible, detail behind a button */
.fx-on .more{display:none}
.is-open .more,.no-js .more{display:inline}
.more-btn{margin-left:8px;font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--sc-accent);background:none;border:1px solid var(--acc-line);border-radius:999px;padding:6px 10px;cursor:pointer;vertical-align:middle}
.no-js .more-btn{display:none}
.case.is-open .case-bg{filter:blur(6px) brightness(.7);transform:scale(1.06)}
.case-bg{transition:filter .3s ease,transform .8s cubic-bezier(.22,.7,.24,1)}

/* bottom glass dock (phones) */
.dock{display:none}
@media (max-width:860px){
  .hairlines,.readout,.corner-cta{display:none}
  .dock{display:flex;position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:30;justify-content:space-between;gap:4px;padding:6px;
    border-radius:999px;border:1px solid var(--line);background:rgba(16,20,32,.72);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 10px 40px rgba(0,0,0,.45)}
  .dock a{flex:1;text-align:center;font:600 12.5px/1 Inter;color:var(--sc-ink);text-decoration:none;padding:12px 4px;border-radius:999px}
  .dock .dock-cta{background:var(--sc-accent);color:var(--sc-accent-ink)}
  .lead{padding-bottom:76px}
  .close{padding-bottom:110px}
  .handoff{height:140vh}.ho-stage{padding:0 20px 14vh}
  .ho-img img{clip-path:inset(calc(var(--h) * 11%) calc(var(--h) * 6%) calc(var(--h) * 52%) calc(var(--h) * 6%) round calc(var(--h) * 14px))}
  .no-js .ho-img img{clip-path:inset(11% 6% 52% 6% round 14px)}
  .st-stage{padding:0 20px}
  .roll{grid-template-columns:1fr;gap:0}
  .roll-media{top:72px;aspect-ratio:16/10;z-index:1}
  .roll-list{padding:6vh 0 30vh}
  .rail.mode-prism{height:520px}
}
.rail.mode-prism{height:620px}
.rail.mode-prism .case{width:min(440px,80vw);height:560px;margin:-280px 0 0 calc(min(440px,80vw) / -2)}
.rail-count{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;color:var(--sc-ink-soft);min-width:84px;text-align:center}
@media (max-width:860px){ .rail.mode-prism{height:540px} .rail.mode-prism .case{width:80vw;height:500px;margin:-250px 0 0 -40vw} }

/* review fixes 2026-10-16 */
.rail.is-3d{touch-action:pan-y pinch-zoom}
.rail:focus-visible{outline:2px solid var(--acc-line);outline-offset:6px;border-radius:24px}
[id]{scroll-margin-top:84px}
.rail.mode-prism .case.is-open .case-body{max-height:62%;overflow:auto;overscroll-behavior:contain}
@media (max-width:860px){
  .rail-pin.mode-prism .rail-sticky{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .rail.mode-prism{height:min(520px, calc(100svh - 230px))}
  .rail.mode-prism .case{height:min(500px, calc(100svh - 250px));margin-top:calc(min(500px, calc(100svh - 250px)) / -2)}
}

/* numbered chapter headers (2026-10-22): the page reads as 01 Cathay at a glance ... 06 Contact */
.chap{display:flex;align-items:center;gap:14px;font:500 13px/1 "IBM Plex Mono",monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--sc-ink);
  padding-top:18px;border-top:1px solid var(--acc-line);max-width:1160px;width:100%}
.chap b{display:inline-grid;place-items:center;min-width:44px;height:30px;padding:0 10px;border-radius:999px;font-weight:500;letter-spacing:.08em;
  color:var(--sc-accent-ink);background:var(--sc-accent)}
@media (max-width:860px){ .chap{font-size:12px;gap:10px} .chap b{min-width:38px;height:26px} }
/* key figures on the first screen (2026-10-22) */
.kpis{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:10px 28px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kpis div{display:grid;gap:4px}
.kpis b{font:500 clamp(22px,2.4vw,30px)/1 "IBM Plex Mono",monospace;letter-spacing:-.02em;color:var(--sc-ink)}
.kpis span{font:400 11.5px/1.3 Inter;color:var(--sc-ink-soft);max-width:120px}
@media (max-width:860px){ .kpis{grid-template-columns:repeat(4,1fr);gap:8px 12px;padding:10px 0} .kpis b{font-size:19px} .kpis span{font-size:10.5px} }
/* flags style C (2026-10-22): round mini-flags inline with the cities */
.where{display:flex;align-items:center;gap:6px;margin:-4px 0 12px;font:500 11px/1.2 "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--sc-ink-soft)}
.where img{width:15px;height:15px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.where span{margin-left:4px}
.person--lead .where{margin:-2px 0 14px;font-size:12px}
.where{gap:4px;font-size:10.5px;letter-spacing:.03em}
.where img{width:14px;height:14px}
.where span{margin-left:3px;white-space:nowrap}
.where{font-size:10px;letter-spacing:0}
.where img{width:13px;height:13px}
/* Sol tuning review 2026-10-22 */
@media (max-width:860px){ .rail.mode-prism .case{min-height:0} .where{flex-wrap:wrap} .where span{white-space:normal} }
/* location line never clips (2026-10-22): the text drops under the flags when it does not fit */
.where{flex-wrap:wrap;row-gap:6px;padding-right:8px}
.where span{white-space:nowrap;margin-left:4px}
@media (max-width:860px){ .where span{white-space:normal} }
.where{column-gap:5px}
.where span{margin-left:0}
/* Safari fix (2026-10-22): logo min-content widened grid tracks past the viewport on iPhone */
.wrap{grid-template-columns:minmax(0,1fr)}
.wrap > *,.corp > *,.grid3 > *,.grid2 > *,.crew > *,.stats > *{min-width:0}
.logorow,.wall{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr))}
.logorow li,.wall li{min-width:0}
.logo{max-width:min(120px,100%)}
@media (max-width:860px){ .logorow,.wall{grid-template-columns:repeat(3,minmax(0,1fr))} }
/* hand-off on phones (2026-10-22): window is a top band, copy sits fully below it */
@media (max-width:860px){
  .ho-img img{clip-path:inset(calc(var(--h) * 9%) calc(var(--h) * 5%) calc(var(--h) * 66%) calc(var(--h) * 5%) round calc(var(--h) * 14px))}
  .no-js .ho-img img{clip-path:inset(9% 5% 66% 5% round 14px)}
  .ho-stage{padding:0 20px calc(96px + env(safe-area-inset-bottom))}
  .ho-copy{gap:14px}
  .ho-copy .h2{font-size:clamp(24px,7vw,30px)}
  .ho-copy .stats{gap:14px 16px}
  .ho-copy .stat{padding-top:10px;gap:6px}
  .ho-copy .stat b{font-size:30px}
  .ho-copy .stat span{font-size:12.5px}
}
@media (max-width:860px) and (max-height:740px){
  .ho-img img{clip-path:inset(calc(var(--h) * 9%) calc(var(--h) * 5%) calc(var(--h) * 75%) calc(var(--h) * 5%) round calc(var(--h) * 12px))}
  .ho-stage{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .ho-copy{gap:10px} .ho-copy .h2{font-size:22px}
  .ho-copy .stats{gap:10px 14px} .ho-copy .stat{padding-top:8px;gap:4px}
  .ho-copy .stat b{font-size:24px} .ho-copy .stat span{font-size:11.5px}
}

/* ================= short card (2026-10-22) ================= */
.is-short .sec{padding:64px 0}
.swipe{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.scase{position:relative;isolation:isolate;overflow:hidden;scroll-snap-align:start;min-height:300px;border-radius:20px;border:1px solid var(--line);
  padding:20px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;color:var(--sc-ink);text-decoration:none;background:#0E121D}
.scase > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.scase::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,13,22,.45),rgba(10,13,22,.2) 30%,rgba(10,13,22,.92) 75%)}
.scase .scase-top{position:absolute;top:18px;left:20px;right:20px}
.scase .clogo{max-width:130px;max-height:30px}
.scase .big{font-size:48px}
.scase .lbl{font-size:13px}
.scase .status{align-self:flex-start;margin-top:6px}
.crit{font:500 13px/1.6 "IBM Plex Mono",monospace;letter-spacing:.04em;color:var(--sc-ink)}
.faces{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:18px 14px}
.faces li{display:grid;justify-items:center;text-align:center;gap:6px}
.faces img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:1.5px solid var(--acc-line)}
.faces b{font:600 13.5px/1.2 Inter}
.faces span{font:500 10.5px/1.3 "IBM Plex Mono",monospace;color:var(--sc-ink-soft)}
.close--short{min-height:auto;padding-top:40px}
.full-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 16px;padding:24px 26px;border-radius:22px;text-decoration:none;color:var(--sc-ink);
  border:1px solid var(--acc-line);background:linear-gradient(120deg,rgba(var(--acc-rgb),.18),rgba(16,20,32,.7) 60%);margin-bottom:8px}
.full-cta span{font:500 clamp(24px,3.4vw,34px)/1.1 "Playfair Display",serif}
.full-cta small{grid-column:1;font:400 13px/1.4 Inter;color:var(--sc-ink-soft)}
.full-cta b{grid-row:1/3;grid-column:2;font:500 34px/1 Inter;color:var(--sc-accent)}
@media (max-width:860px){ .swipe{grid-auto-columns:78%} .faces{grid-template-columns:repeat(3,minmax(0,1fr))} .faces img{width:72px;height:72px} }
@media (max-width:860px){ .is-short .close--short{padding-bottom:calc(120px + env(safe-area-inset-bottom))} }
