@font-face{font-family:'Inter Tight';font-style:normal;font-weight:400 600;font-display:swap;src:url(../assets/fonts/InterTight.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/IBMPlexMono-500.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/IBMPlexMono-600.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --blue:#40C4E0; --yellow:#FEBA06; --ink:#0B0D0E; --graphite:#12171A; --muted:#565D61;
  --paper:#F5F3EE; --stone:#EAE7DF; --line:rgba(11,13,14,.13);
  --gx:clamp(16px,3.4vw,52px);
  --pad:max(clamp(18px,4vw,48px),calc((100vw - 1120px)/2));
  --hh:62px; --r:18px;
  font-family:'Inter Tight',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 24px)}
body{background:var(--paper);color:var(--ink);font-size:clamp(16px,.9vw + 12px,18.5px);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.skip{position:absolute;left:-999px;top:8px;background:var(--yellow);padding:8px 14px;border-radius:var(--r);z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
.dark :focus-visible,.door :focus-visible,.scene :focus-visible{outline-color:#fff}

/* ---------- header ---------- */
.top{position:fixed;top:10px;left:50%;width:min(1240px,calc(100% - 20px));transform:translateX(-50%);height:var(--hh);z-index:50;display:flex;align-items:center;gap:24px;padding:0 10px 0 clamp(16px,2vw,26px);
  background:rgba(245,243,238,.9);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid rgba(11,13,14,.1);border-radius:999px;box-shadow:0 18px 40px -26px rgba(11,13,14,.5);transition:height .35s,background .35s,box-shadow .35s}
.top::after{content:"";position:absolute;left:26px;right:26px;bottom:-1px;height:2px;background:var(--yellow);transform:scaleX(var(--prog,0));transform-origin:left;border-radius:2px}
.top.sm{--hh:54px;background:rgba(245,243,238,.92)}
.brand img{height:40px;width:auto;transition:height .35s}
.top.sm .brand img{height:34px}
.top nav{margin-left:auto;display:flex;gap:clamp(16px,2vw,28px)}
.top nav a{text-decoration:none;font-weight:500;font-size:.9rem;position:relative;padding:6px 0;color:#2a3033}
.top nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.top nav a:hover::after,.top nav a[aria-current]::after{transform:scaleX(1)}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r);background:transparent;cursor:pointer;position:relative}
.menu-btn span,.menu-btn::before,.menu-btn::after{content:"";position:absolute;left:12px;right:12px;height:2px;background:var(--ink);transition:transform .3s,opacity .2s}
.menu-btn::before{top:15px}.menu-btn span{top:21px}.menu-btn::after{top:27px}
.top.open .menu-btn::before{transform:translateY(6px) rotate(45deg)}
.top.open .menu-btn span{opacity:0}
.top.open .menu-btn::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--yellow);color:var(--ink);font-weight:600;text-decoration:none;
  padding:13px 24px;border-radius:999px;border:1px solid rgba(11,13,14,.9);transition:transform .25s,box-shadow .25s,background .25s;white-space:nowrap;cursor:pointer;font:inherit;font-weight:600;line-height:1.2;position:relative;isolation:isolate;overflow:hidden}
.btn::before{content:"";position:absolute;inset:-60%;z-index:-2;background:conic-gradient(from var(--a,0deg),transparent 0 70%,rgba(255,255,255,.95) 85%,transparent);opacity:0;transition:opacity .3s;animation:trace 2.4s linear infinite paused}
.btn::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:inherit;background:var(--yellow);transition:background .25s}
.btn:hover::before{opacity:1;animation-play-state:running}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes trace{to{--a:360deg}}
.btn .arr{display:inline-block;transition:transform .3s}.btn:hover .arr{transform:translateX(5px)}
.btn.ghost::before,.btn.ghost::after{display:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(11,13,14,.55)}
.btn:hover .ico{animation:ring .6s}
.btn.sm{padding:9px 16px;font-size:.92rem}
.btn.big{padding:17px 30px;font-size:1.1rem}
.btn.ghost{background:transparent;border-color:var(--line);color:inherit;font-weight:500}
.btn.ghost:hover{background:rgba(11,13,14,.04);box-shadow:none}
.door .btn.ghost,.dark .btn.ghost{border-color:rgba(255,255,255,.3);color:#fff}
.door .btn.ghost:hover,.dark .btn.ghost:hover{background:rgba(255,255,255,.08)}
@keyframes ring{20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(6deg)}}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(22px,3vw,34px)}

/* ---------- type ---------- */
.eyebrow{display:flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--yellow);flex:none;border-radius:50%}
h1,h2,h3{font-weight:600;line-height:1.04;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2.5rem,6vw,5.4rem);font-weight:600;max-width:15ch}
h2{font-size:clamp(1.9rem,3.8vw,3.3rem);max-width:21ch}
h3{font-size:1.2rem;letter-spacing:-.012em;line-height:1.2}
.hl{position:relative;display:block}
.hl::after{content:"";display:block;width:64px;height:3px;margin-top:20px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .9s .25s cubic-bezier(.2,.8,.2,1)}
.hl.in::after{transform:scaleX(1)}
.rm .hl::after,.no-js .hl::after{transform:scaleX(1)}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;overflow:hidden;background:var(--graphite)}
.scene,.door{position:absolute;inset:0}
.scene{color:#fff;background:var(--graphite);overflow:hidden}
.sph{position:absolute;inset:0}
.sph img{width:100%;height:100%;object-fit:cover;object-position:72% 70%;filter:saturate(.9) contrast(1.08)}
.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,14,.92) 0%,rgba(11,13,14,.72) 38%,rgba(11,13,14,.2) 72%,rgba(11,13,14,.05)),linear-gradient(0deg,rgba(11,13,14,.55),transparent 40%);pointer-events:none}
.stmt{position:absolute;z-index:2;left:var(--pad);right:24px;top:52%;transform:translateY(-50%);max-width:620px}
.stmt .kick{font:500 .74rem 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);margin-bottom:18px}
.stmt .big{font-size:clamp(2.5rem,6vw,5.4rem);font-weight:600;line-height:1;letter-spacing:-.035em}
.stmt .big span{display:block}
.stmt .big span:last-child{color:var(--yellow)}
.stmt .sl{margin-top:22px;max-width:36ch;font-size:clamp(1rem,1.4vw,1.2rem);color:rgba(255,255,255,.8);text-wrap:pretty}
.pins{position:absolute;inset:0;z-index:2;list-style:none;margin:0;padding:0;pointer-events:none}
.pins li{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:12px}
.pins i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 6px rgba(254,186,6,.22)}
.pins b,.pins span{white-space:nowrap}
.pins li>b{padding:9px 6px 9px 16px;border-radius:999px 0 0 999px;background:rgba(11,13,14,.78);border:1px solid rgba(255,255,255,.18);border-right:0;font-weight:600;font-size:1.02rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.pins li>span{margin-left:-12px;padding:9px 16px 9px 6px;border-radius:0 999px 999px 0;background:rgba(11,13,14,.78);border:1px solid rgba(255,255,255,.18);border-left:0;font:500 .72rem 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);line-height:1.15rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.js:not(.rm) .stmt .kick,.js:not(.rm) .stmt .big span,.js:not(.rm) .stmt .sl,.js:not(.rm) .pins li{opacity:0}
@media (max-width:620px){
  .stmt{top:calc(var(--hh) + 34px);transform:none}
  .stmt .big{font-size:clamp(2.4rem,11vw,3.2rem)}
  .sph img{object-position:78% 80%}
  .scene::after{background:linear-gradient(180deg,rgba(11,13,14,.9) 0%,rgba(11,13,14,.6) 48%,rgba(11,13,14,.25) 62%,rgba(11,13,14,.85) 100%)}
  .pins{inset:auto var(--pad) 22px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pins li{position:static;display:block;padding:12px 14px;border-radius:14px;background:rgba(11,13,14,.78);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .pins i{display:none}
  .pins li>b,.pins li>span{display:block;padding:0;margin:0;border:0;background:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;white-space:normal}
  .pins li>span{margin-top:4px;font-size:.64rem}
}
.rm .hero{display:flex;flex-direction:column}
.rm .door{order:1}
.rm .scene{order:2;position:relative;min-height:100svh}

.door{z-index:4;color:#fff;background:linear-gradient(180deg,#1a2126 0%,#10161a 100%);box-shadow:0 30px 60px -20px rgba(0,0,0,.6);will-change:transform;overflow:hidden}
.door::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 85% 0%,rgba(64,196,224,.22),transparent 70%),radial-gradient(50% 50% at 10% 100%,rgba(254,186,6,.08),transparent 70%);pointer-events:none}
.ribs{position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0 calc(11.1vh - 2px),rgba(0,0,0,.55) calc(11.1vh - 2px) calc(11.1vh - 1px),rgba(255,255,255,.07) calc(11.1vh - 1px) 11.1vh);z-index:1;pointer-events:none}
.door .copy{position:absolute;z-index:2;left:var(--pad);right:24px;top:calc(var(--hh) + clamp(28px,8vh,100px))}
.door .lede{font-size:clamp(1.05rem,1.6vw,1.35rem);max-width:34ch;text-wrap:balance;margin-top:24px;font-weight:400;color:rgba(255,255,255,.8)}
.door .eyebrow{color:rgba(255,255,255,.7)}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.rm .hero,.no-hero-pin .hero{height:auto;min-height:100svh}
.rm .door{position:relative;min-height:100svh}

/* ---------- sections + thread ---------- */
.rest{position:relative}
.sec{position:relative;padding:clamp(80px,10vw,140px) 0 clamp(60px,8vw,110px)}
.s-paper{background:var(--paper)}.s-stone{background:var(--stone)}.s-dark{background:var(--graphite);color:#fff}
.wrap{padding:0 clamp(18px,4vw,48px) 0 var(--pad);margin-left:0}
.wrap.two{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,6vw,90px);align-items:start;padding-right:max(24px,calc((100vw - 1120px)/2))}
.wrap:not(.two){padding-right:max(24px,calc((100vw - 1120px)/2))}
.s-dark .eyebrow{color:rgba(255,255,255,.65)}
.js:not(.rm) .rv{opacity:0;transform:translateY(22px)}

/* ---------- what we haul ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px);margin-top:clamp(30px,4vw,56px)}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;transform-style:preserve-3d;transition:box-shadow .4s,border-color .4s;--mx:50%;--my:50%}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px circle at var(--mx) var(--my),rgba(254,186,6,.16),transparent 70%);opacity:0;transition:opacity .35s;pointer-events:none}
.card:hover{border-color:rgba(11,13,14,.4);box-shadow:0 34px 50px -34px rgba(11,13,14,.55)}
.card:hover::after{opacity:1}
.card .ph{position:relative;aspect-ratio:4/3;overflow:hidden;margin:8px 8px 0;border-radius:15px;background:#222}
.card .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.1s cubic-bezier(.2,.8,.2,1),filter .6s;filter:saturate(.92) contrast(1.03)}
.card:hover .ph img{transform:scale(1.12)}
.card .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,14,.3),transparent 35%,rgba(11,13,14,.28));pointer-events:none}
.card .idx{position:absolute;z-index:2;left:12px;top:12px;font:500 .72rem 'IBM Plex Mono',monospace;letter-spacing:.14em;color:#fff;padding:5px 11px;border-radius:999px;background:rgba(11,13,14,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22)}
.card .cb{display:flex;flex-direction:column;flex:1;padding:clamp(18px,2vw,26px) clamp(18px,2vw,26px) clamp(20px,2.2vw,28px)}
.card h3{margin-bottom:8px}.card p{color:var(--muted);font-size:.97em}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:18px;list-style:none;padding-left:0}
.tags li{font:500 .68rem 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border:1px solid var(--line);border-radius:999px;color:#2a3033}

/* ---------- rig ---------- */
.wheel{transform-box:fill-box;transform-origin:center;animation:spin .5s linear infinite}
@keyframes spin{to{transform:rotate(-360deg)}}
.specs{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.6vw,20px);margin-top:clamp(14px,1.6vw,22px);padding:0}
.specs li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2vw,26px)}
.specs b{display:block;font-size:clamp(1.9rem,3.2vw,3rem);font-weight:600;letter-spacing:-.035em;line-height:1}
.specs b small{font-size:.42em;font-weight:500;margin-left:6px;letter-spacing:0;color:var(--muted)}
.specs b.mono{font-size:clamp(1.2rem,2vw,1.8rem);letter-spacing:0;padding-top:.5em;font-weight:600}
.specs li>span{display:block;margin-top:12px;color:var(--muted);font-size:.9rem;padding-top:12px;border-top:1px solid var(--line)}

/* ---------- where ---------- */
.where{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:center;margin-top:clamp(30px,4vw,56px)}
.where ul{list-style:none;padding:0}
.where li{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line);font-weight:500}
.where li:last-child{border-bottom:1px solid var(--line)}
.where li span{font:500 .72rem 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-self:center}
/* ---------- faq ---------- */
.s-stone .wrap.two p,.lead-col p{max-width:46ch;margin-top:14px;color:var(--muted)}
@keyframes open{from{opacity:0;transform:translateY(-6px)}}

/* ---------- finale ---------- */
.fin h2{font-size:clamp(2.4rem,6vw,5.4rem);max-width:none}
.odo{display:flex;flex-wrap:nowrap;align-items:center;margin:clamp(20px,3vw,34px) 0;text-decoration:none;font-weight:600;font-size:clamp(2.1rem,8vw,7rem);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.odo .dg{display:inline-block;height:1em;overflow:hidden;background:#1d2428;color:var(--yellow);border-radius:.08em;margin-right:.04em;padding:0 .05em;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 -.12em .2em rgba(0,0,0,.45)}
.odo .col{display:block;will-change:transform}
.odo .col span{display:block;height:1em;line-height:1em;text-align:center}
.odo .sep{display:inline-block;width:.32em;text-align:center;opacity:.6;margin:0 .02em}
.odo:hover .dg{background:#273036}
.ul{text-underline-offset:4px;font-weight:500}
.fin p:last-child{font-size:1.05rem;color:rgba(255,255,255,.75)}

/* ---------- inner pages ---------- */
.inner{--pad:max(clamp(18px,4vw,48px),calc((100vw - 1120px)/2))}
.page-head{background:var(--stone);padding:calc(var(--hh) + clamp(48px,8vw,110px)) 0 clamp(40px,6vw,80px);border-bottom:1px solid var(--line)}
.page-head .wrap{padding-left:var(--pad)}
.page-head h1{max-width:18ch}
.page-head .lede{margin-top:22px;max-width:44ch;color:var(--muted);font-size:1.12em}
.inner main>section{padding:clamp(48px,7vw,96px) 0}
.prose{max-width:62ch}
.prose h2{font-size:clamp(1.4rem,2.4vw,2rem);margin:2.2em 0 .6em;max-width:none}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:#2f3538;margin-top:.9em}
.prose ul{padding-left:1.2em}
.prose a{text-underline-offset:3px}
.kv{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.6vw,20px);list-style:none;padding:0;margin-top:clamp(28px,4vw,48px)}
.kv li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px}
.kv b{display:block;font-size:1.7rem;font-weight:600;letter-spacing:-.03em;line-height:1.05}
.kv span{display:block;margin-top:10px;font:500 .7rem 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.6vw,20px);counter-reset:s;margin-top:clamp(24px,3vw,40px)}
.steps li{counter-increment:s;border-top:2px solid var(--ink);padding-top:16px}
.steps li::before{content:"0" counter(s);display:block;font:500 .75rem 'IBM Plex Mono',monospace;letter-spacing:.14em;color:var(--muted);margin-bottom:14px}
.steps b{display:block;font-weight:600;font-size:1.1rem}
.steps span{display:block;margin-top:6px;color:var(--muted);font-size:.95rem}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(24px,5vw,72px);align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,34px)}
.panel dl{display:grid;gap:18px}
.panel dt{font:500 .7rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.panel dd{margin-top:4px;font-weight:500;font-size:1.1rem}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.6vw,20px)}
.gal figure{aspect-ratio:4/3;border-radius:var(--r);border:1px dashed rgba(11,13,14,.3);display:grid;place-items:center;color:var(--muted);font:500 .7rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;background:repeating-linear-gradient(135deg,transparent 0 12px,rgba(11,13,14,.025) 12px 24px)}
.note{margin-top:clamp(22px,3vw,34px);max-width:52ch;color:var(--muted)}

/* ---------- footer ---------- */
.foot{border-top:1px solid rgba(255,255,255,.1);background:var(--graphite);color:rgba(255,255,255,.7);padding:clamp(48px,6vw,80px) clamp(18px,4vw,48px) 28px;font-size:.95rem}
.foot-in{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:clamp(24px,4vw,56px)}
.foot img{height:54px;width:auto;margin-bottom:16px;filter:brightness(0) invert(1)}
.foot h4{font:500 .7rem 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:16px}
.foot ul{list-style:none;padding:0;display:grid;gap:10px}
.foot a{text-decoration:none;transition:color .2s}
.foot a:hover{color:var(--yellow)}
.foot .blurb{max-width:30ch}
.foot-bar{max-width:1120px;margin:clamp(32px,5vw,56px) auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem;color:rgba(255,255,255,.5)}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .menu-btn{display:block;margin-left:0}
  .top nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;margin:0;padding:8px clamp(14px,3vw,40px) 18px;background:var(--paper);border-bottom:1px solid var(--line);display:none}
  .top.open nav{display:flex}
  .top nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem}
  .top .btn{margin-left:auto}
}
@media (max-width:900px){
  .cards,.specs,.kv,.steps{grid-template-columns:1fr 1fr}
  .wrap.two,.where,.contact-grid{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  :root{--hh:60px;--gx:12px;--pad:18px}
  .inner{--pad:18px}
  .brand img{height:36px}.top .long{display:none}
  .cards{grid-template-columns:1fr}.specs,.kv,.steps{grid-template-columns:1fr 1fr}
  .hero .copy{top:calc(var(--hh) + 24px)}
  .foot-in{grid-template-columns:1fr 1fr}.foot-in>div{grid-column:1/-1}
  .gal{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- round-3: image-led, micro-animation ---------- */
.ticker{overflow:hidden;background:var(--graphite);color:#fff;border-block:1px solid rgba(255,255,255,.08);padding:18px 0;position:relative;z-index:6}
.tk{display:flex;width:max-content;animation:tk 38s linear infinite}
.tk span{font:500 clamp(1.1rem,2.4vw,1.9rem) 'Inter Tight',sans-serif;letter-spacing:-.02em;text-transform:uppercase;padding:0 clamp(18px,2.6vw,36px);display:flex;align-items:center;gap:clamp(18px,2.6vw,36px);color:rgba(255,255,255,.88)}
.tk span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--yellow);flex:none}
.tk span:nth-child(3n){-webkit-text-stroke:1px rgba(255,255,255,.7);color:transparent}
@keyframes tk{to{transform:translateX(-50%)}}
.ticker:hover .tk{animation-play-state:paused}

.band{position:relative;z-index:6;min-height:clamp(440px,64vw,760px);display:grid;align-items:end;overflow:hidden;color:#fff;background:var(--graphite)}
.band img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;object-position:50% 60%;will-change:transform;filter:saturate(1.12) contrast(1.06)}
.band::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,16,20,.72),rgba(10,16,20,.18) 48%,transparent 70%),linear-gradient(0deg,rgba(10,16,20,.45),transparent 40%)}
.band-in{position:relative;z-index:2;padding:clamp(40px,6vw,80px) var(--pad);padding-right:24px}
.band h2{max-width:15ch;margin-bottom:28px}
.band .btn.ghost{color:#fff}

.where{align-items:stretch}
.where ul li{transition:padding .35s,color .3s}
.where ul li:hover{padding-left:12px}
.mapph{position:relative;min-height:clamp(300px,36vw,460px);border-radius:26px;overflow:hidden;background:var(--graphite);clip-path:inset(0 0 0 0 round 26px)}
.mapph .mi{position:absolute;left:0;top:-10%;width:100%;height:120%;will-change:transform}
.mapph img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.04)}
.mapph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,14,16,.55),transparent 45%),linear-gradient(180deg,rgba(10,14,16,.25),transparent 30%)}
.mapph figcaption{position:absolute;z-index:2;right:16px;bottom:14px;font:500 .68rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.pin{position:absolute;z-index:2;left:clamp(18px,3vw,34px);bottom:clamp(18px,3vw,34px);display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;color:#fff;padding:12px 18px 12px 14px;border-radius:999px;background:rgba(10,16,20,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}
.pin i{grid-row:span 2;width:12px;height:12px;border-radius:50%;background:var(--yellow);position:relative}
.pin i::before,.pin i::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--yellow);animation:ping 2.4s ease-out infinite}
.pin i::after{animation-delay:1.2s}
@keyframes ping{from{transform:scale(1);opacity:.9}to{transform:scale(4.2);opacity:0}}
.pin b{font-weight:600;line-height:1.1}.pin small{font:500 .64rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}

/* rig: modern specs, no boxes */
.specs li{border-radius:20px;position:relative;overflow:hidden;transition:transform .4s,border-color .4s}
.specs li:hover{transform:translateY(-4px);border-color:rgba(11,13,14,.4)}
.specs li::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.specs li:hover::after,.specs li.in::after{transform:scaleX(1)}
.panel,.kv li,.steps li{border-radius:18px}
.gal figure{border-radius:20px}

/* split headline words, image wipe, cursor glow */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.w>i{display:inline-block;font-style:normal;will-change:transform}
.js:not(.rm) [data-split]:not(.sp){visibility:hidden}
.cursor-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(254,186,6,.09),transparent 65%);opacity:0;transition:opacity .4s;mix-blend-mode:multiply}
.s-dark .glow2{position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px circle at var(--gx2,50%) var(--gy2,40%),rgba(254,186,6,.12),transparent 70%)}
.js:not(.rm) .top{transform:translate(-50%,-140%)}
.js.ready .top{transform:translate(-50%,0);transition:transform .9s cubic-bezier(.2,.8,.2,1),height .35s,background .35s,box-shadow .35s}
.rm .top{transform:translateX(-50%)}
@media (max-width:1000px){.top nav{border-radius:24px;top:calc(100% + 8px);border:1px solid var(--line)}}
@media (max-width:620px){.top{width:calc(100% - 12px);top:6px;padding-left:14px}.band h2{font-size:2rem}.mapph figcaption{display:none}.pin{padding:9px 14px 9px 12px}}

.doorph{position:absolute;z-index:0;right:0;top:0;bottom:0;width:68%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 55%);mask-image:linear-gradient(90deg,transparent,#000 55%);opacity:.62}
.doorph img{width:100%;height:112%;object-fit:cover;object-position:60% 50%;animation:kb 26s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(-3%,-2%,0)}}
.doorph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#10161a,transparent 40%)}
.stage{position:relative;margin:clamp(30px,4vw,54px) 0 0;height:clamp(240px,34vw,460px);border-radius:28px;overflow:hidden;background:var(--graphite)}
.stage .si{position:absolute;left:0;top:-10%;width:100%;height:120%;will-change:transform}
.stage img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) contrast(1.05)}
.stage::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,14,16,.55),transparent 55%)}
.specs{position:relative;z-index:2;margin:calc(clamp(30px,4vw,56px) * -1) clamp(10px,2vw,28px) 0}
.specs li{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
@media (max-width:620px){.doorph{width:100%;opacity:.38}.specs{margin:-24px 0 0}}

/* ---------- round 3: FAQ (dividers only, animated), ask card ---------- */
.faq{counter-reset:q;border-top:0}
.faq details{position:relative;counter-increment:q;border-bottom:1px solid var(--line)}
.faq details::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(11,13,14,.28);transform-origin:left}
.js:not(.rm) .faq details::before{transform:scaleX(0)}
.js:not(.rm) .faq details.drawn::before{transform:scaleX(1);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.faq details::after{content:"";position:absolute;left:-14px;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--yellow);transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.faq details.is-open::after{transform:scaleY(1)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:clamp(14px,2vw,26px);padding:24px 4px;font-weight:500;font-size:clamp(1.05rem,1.4vw,1.3rem);letter-spacing:-.01em;transition:transform .35s cubic-bezier(.2,.8,.2,1),color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:counter(q,decimal-leading-zero);flex:none;font:500 .74rem 'IBM Plex Mono',monospace;letter-spacing:.14em;color:var(--muted);transition:color .3s}
.faq summary::after{content:"";margin-left:auto;flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(11,13,14,.25);background:
  linear-gradient(var(--ink),var(--ink)) center/12px 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center/1.5px 12px no-repeat;transition:transform .45s cubic-bezier(.2,.8,.2,1),background-color .3s,border-color .3s}
.faq summary:hover{transform:translateX(6px)}
.faq summary:hover::before{color:var(--ink)}
.faq summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:8px}
.faq details.is-open summary::after{transform:rotate(135deg);background-color:var(--yellow);border-color:var(--ink)}
.faq details.is-open summary::before{color:var(--ink)}
.faq details>p{overflow:hidden;padding:0 56px 24px calc(2.2rem + clamp(14px,2vw,26px));margin:0!important;color:var(--muted);max-width:none!important}
.ask{margin-top:clamp(22px,3vw,34px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;background:var(--graphite);color:#fff;border-radius:24px;padding:clamp(22px,3vw,34px);position:relative;overflow:hidden}
.ask::before{content:"";position:absolute;inset:-40% -10% auto auto;width:360px;height:360px;background:radial-gradient(circle,rgba(254,186,6,.22),transparent 65%);animation:drift 9s ease-in-out infinite alternate}
.ask>*{position:relative}
.ask b{display:block;font-size:clamp(1.3rem,2vw,1.7rem);font-weight:600;letter-spacing:-.02em}
.ask span{display:block;margin-top:4px;color:rgba(255,255,255,.7);max-width:34ch}
.ask-btns{display:flex;gap:10px;flex-wrap:wrap}
.ask .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3)}
@keyframes drift{to{transform:translate(-60px,50px) scale(1.2)}}
.rm .ask::before{animation:none}
.faq-page{max-width:820px}

/* ---------- round 3: page hero image (every page except Home) ---------- */
.page-head.has-img{position:relative;isolation:isolate;overflow:hidden;background:var(--graphite);color:#fff;border:0;min-height:clamp(400px,62vh,600px);display:flex;align-items:flex-end;padding:calc(var(--hh) + 90px) 0 clamp(36px,5vw,64px)}
.page-head.has-img .wrap{width:100%}
.page-head.has-img .ph-img{position:absolute;inset:0;z-index:-2}
.page-head.has-img .ph-img img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;filter:saturate(1.1) contrast(1.05);will-change:transform}
.js:not(.rm) .page-head.has-img .ph-img img{animation:kb 2.4s cubic-bezier(.2,.8,.2,1) both}
@keyframes kb{from{scale:1.14;opacity:.6}to{scale:1;opacity:1}}
.page-head.has-img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(10,16,20,.82),rgba(10,16,20,.15) 62%),linear-gradient(90deg,rgba(10,16,20,.55),transparent 65%)}
.page-head.has-img h1{color:#fff;max-width:16ch}
.page-head.has-img .lede{color:rgba(255,255,255,.82)}

/* ---------- round 3: contact form ---------- */
.cform{background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,34px);display:grid;gap:16px}
.f label{display:block;font:500 .7rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.f input,.f textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid rgba(11,13,14,.18);border-radius:14px;padding:14px 16px;transition:border-color .25s,box-shadow .25s,background .25s}
.f textarea{resize:vertical;min-height:130px}
.f input:focus,.f textarea:focus{outline:0;border-color:var(--ink);background:#fff;box-shadow:0 0 0 4px rgba(254,186,6,.35)}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:#b3261e;box-shadow:0 0 0 3px rgba(179,38,30,.15)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fhint{font-size:.85rem;color:var(--muted);margin-top:-6px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ts{min-height:65px}
.cform .btn{justify-self:start;border:0;cursor:pointer;font:inherit;font-weight:600}
.cform .btn[disabled]{opacity:.6;cursor:wait}
.fstatus{min-height:1.4em;font-weight:500}
.fstatus.ok{color:#17623a}.fstatus.err{color:#b3261e}
.fstatus a{text-underline-offset:3px}
@media (max-width:620px){.f2{grid-template-columns:1fr}}

/* ---------- round 3: new Home motion ---------- */
.ruler{position:relative;margin:clamp(30px,3.5vw,44px) 0 clamp(14px,2vw,22px);height:56px}
.ruler i{position:absolute;left:0;right:0;top:0;height:8px;border-radius:2px;background:var(--yellow)}
.js:not(.rm) .ruler i{transform:scaleX(0);transform-origin:left;transition:transform 1.8s cubic-bezier(.65,0,.35,1)}
.js:not(.rm) .ruler.on i{transform:scaleX(1)}
.ruler::before,.ruler::after{content:"";position:absolute;left:0;right:0;border-right:1px solid rgba(11,13,14,.55)}
.ruler::before{top:12px;height:10px;background:repeating-linear-gradient(90deg,rgba(11,13,14,.45) 0 1px,transparent 1px 2.857143%)}
.ruler::after{top:12px;height:18px;background:repeating-linear-gradient(90deg,rgba(11,13,14,.7) 0 1px,transparent 1px 14.285714%)}
.ruler .rl{position:absolute;left:0;right:0;top:34px;height:20px;font:500 .72rem 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ruler .rl b{position:absolute;top:0;white-space:nowrap;font-weight:500;transform:translateX(-50%)}
.ruler .rl b:first-child{transform:none}.ruler .rl b:last-child{transform:translateX(-100%)}
.bigtext{position:absolute;inset:0;overflow:hidden;pointer-events:none;display:flex;flex-direction:column;justify-content:center;gap:2vw;z-index:0}
.bigtext span{white-space:nowrap;font-weight:600;font-size:clamp(4rem,13vw,13rem);line-height:.9;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.09);will-change:transform}
.s-dark .wrap.fin{position:relative;z-index:1}
.where ul li{position:relative}
.where ul li::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.where ul li.in::after{transform:scaleX(1)}
.band-in h2,.band-in .btn{will-change:transform}
.ask>div:first-child{flex:1 1 220px}
.ask-btns{flex:none}.ask-btns .btn{white-space:nowrap}

/* hero rail: yellow bar + small gray pill under the door */
.rail{position:absolute;z-index:3;left:0;right:0;bottom:0;height:22px;background:linear-gradient(#222a2f,#0a0d0f);border-top:3px solid var(--yellow);display:flex;justify-content:center;align-items:center}
.rail span{width:110px;height:6px;border-radius:4px;background:#3a4246}
.rm .rail span{display:none}

/* ---------- round 5/6: why Guardian (light, end of Home), sublede, FAQ photo ---------- */
.sub{max-width:52ch;margin-top:14px;color:var(--muted)}
.band-in .sub{color:rgba(255,255,255,.82);margin:0 0 26px}
.why .lead-col p{color:var(--muted)}
.why .hl::after{background:var(--yellow)}
.why h2{max-width:18ch}
.reasons{list-style:none;padding:0;margin:0;counter-reset:r;border-top:1px solid var(--line)}
.reasons li{counter-increment:r;display:grid;grid-template-columns:3rem 1fr;gap:4px 18px;padding:26px 0;border-bottom:1px solid var(--line)}
.reasons li::before{content:counter(r,decimal-leading-zero);grid-row:span 2;font:500 .78rem 'IBM Plex Mono',monospace;letter-spacing:.14em;color:var(--ink);padding-top:.5em;box-shadow:inset 0 -3px 0 var(--yellow);align-self:start;justify-self:start;padding-bottom:3px}
.reasons h3{font-size:clamp(1.2rem,1.7vw,1.55rem);font-weight:600;letter-spacing:-.015em;line-height:1.2}
.reasons p{color:var(--muted);max-width:48ch}
.reasons a{color:var(--ink)}
.faq-ph{margin-top:clamp(22px,3vw,34px);border-radius:24px;overflow:hidden;aspect-ratio:4/3;background:var(--graphite)}
.faq-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;filter:saturate(.95) contrast(1.04)}
@media (max-width:700px){.reasons li{grid-template-columns:2.4rem 1fr}}
