/* Karoxid · Polar Night. Fixed footage stage behind a scrolling story. */
@font-face{font-family:"Bodoni Moda";font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-weight:500;font-display:swap;src:url(fonts/bodoni-moda-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-weight:400;font-display:swap;src:url(fonts/schibsted-grotesk-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-weight:500;font-display:swap;src:url(fonts/schibsted-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Martian Mono";font-weight:400;font-display:swap;src:url(fonts/martian-mono-latin-400-normal.woff2) format("woff2")}

:root{
  --night:#05070a;
  --night-2:#0c1015;
  --snow:#eef0ec;
  --frost:#8b949c;
  --line:#1c232b;
  --iris:#f2b705;
  --f-display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --f-body:"Schibsted Grotesk","Helvetica Neue",Arial,sans-serif;
  --f-mono:"Martian Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --glide:cubic-bezier(.16,1,.3,1);
  --gl:max(28px,env(safe-area-inset-left,0px));
  --gr:max(28px,env(safe-area-inset-right,0px));
  color-scheme:dark;
}
@media (max-width:820px){:root{--gl:max(18px,env(safe-area-inset-left,0px));--gr:max(18px,env(safe-area-inset-right,0px))}}
*{box-sizing:border-box}
html{background:var(--night);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--snow);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-weight:400;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
.mono{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--frost)}
.eyebrow{display:block;margin-bottom:22px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:50;background:var(--snow);color:var(--night);padding:10px 14px;border-radius:2px;font-weight:500}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--iris);outline-offset:3px}

/* Loader */
#loader{position:fixed;inset:0;z-index:40;background:var(--night);display:grid;place-items:center;transition:opacity 700ms var(--glide),visibility 0s linear 700ms}
#loader.done{opacity:0;visibility:hidden}
.loader-in{text-align:center}
.count{font-family:var(--f-display);font-size:clamp(56px,9vw,110px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.loader-in .mono{display:block;margin-top:14px}

/* Stage: footage canvas is screen-blended, so black in the footage becomes the page's night */
.stage{position:fixed;inset:0;z-index:0;pointer-events:none}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#owl{mix-blend-mode:screen}
video.src{position:fixed;width:2px;height:2px;opacity:0;pointer-events:none;left:0;top:0}

/* Header */
.bar{position:fixed;top:0;left:0;right:0;z-index:30;padding-top:env(safe-area-inset-top,0px)}
.bar::before{content:"";position:absolute;inset:0 0 -40px;background:linear-gradient(var(--night),rgba(5,7,10,0));opacity:.85;pointer-events:none}
.bar-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px var(--gr) 20px var(--gl)}
.lockup{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.lockup .mk{width:34px;height:auto}
.lockup .wm{height:13px;width:auto}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-body);font-weight:500;font-size:14px;line-height:1;color:var(--night);background:var(--snow);padding:13px 18px;border-radius:2px;border:0;text-decoration:none;cursor:pointer;transition:background 180ms ease-out}
.btn i{display:block;width:7px;height:7px;border-radius:50%;background:var(--night)}
.btn:hover{background:var(--iris)}
.btn.big{font-size:15px;padding:17px 22px}
.btn[disabled]{opacity:.6;cursor:progress}

/* HUD */
.hud{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-between;gap:16px;padding:0 var(--gr) calc(20px + env(safe-area-inset-bottom,0px)) var(--gl);pointer-events:none;font-variant-numeric:tabular-nums;transition:opacity 400ms ease-out}
.hud .mono{white-space:nowrap}
.hud.off{opacity:0}

main{position:relative;z-index:10}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:0 var(--gr) 0 var(--gl)}
.hero-copy{width:100%;max-width:1280px;margin:0 auto;padding-block:120px}
.hero-copy>*{max-width:640px}
.hero h1{font-family:var(--f-display);font-size:clamp(46px,6.2vw,92px);line-height:1;letter-spacing:-.01em}
.hero .sub{font-size:18px;color:#c9cfd2;margin-top:28px;max-width:44ch}
.cta{display:flex;align-items:center;gap:20px;margin-top:36px;flex-wrap:wrap}
.cue{position:absolute;left:50%;transform:translateX(-50%);bottom:64px;text-align:center}
.cue i{display:block;width:1px;height:36px;margin:10px auto 0;background:linear-gradient(var(--frost),transparent);animation:cue 2.4s var(--glide) infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 900ms var(--glide),transform 900ms var(--glide)}
.ready .reveal{opacity:1;transform:none}
.ready .reveal.d1{transition-delay:80ms}.ready .reveal.d2{transition-delay:160ms}.ready .reveal.d3{transition-delay:240ms}

/* Acts */
.act{position:relative}
#see{height:330vh}#flight{height:380vh}#strike{height:300vh}
.pin{position:sticky;top:0;height:100svh;overflow:hidden}
.act-label{position:absolute;top:calc(96px + env(safe-area-inset-top,0px));left:var(--gl)}
.step{position:absolute;left:var(--gl);right:var(--gr);bottom:15vh;max-width:620px;opacity:0;transform:translateY(24px);transition:opacity 700ms var(--glide),transform 700ms var(--glide);pointer-events:none}
.step.top{bottom:auto;top:calc(140px + env(safe-area-inset-top,0px))}
.step.on{opacity:1;transform:none;pointer-events:auto}
.step::before{content:"";position:absolute;inset:-56px -90px;background:radial-gradient(closest-side,rgba(5,7,10,.82),rgba(5,7,10,0));z-index:-1}
.step h2{font-family:var(--f-display);font-size:clamp(34px,4.8vw,66px);line-height:1.04}
.step p{color:#c9cfd2;font-size:17px;margin-top:18px;max-width:46ch}
.seen{color:var(--iris)}
.examples{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px;max-width:52ch}
.examples li{position:relative;padding-left:22px;color:#d5dadc;font-size:16px}
.examples li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--iris)}

/* Floating task labels */
#tags{position:absolute;inset:0}
.tag{position:absolute;left:0;top:0;opacity:0;transition:opacity 500ms var(--glide);will-change:transform}
.tag.on{opacity:1}
.tag span{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--snow);padding:6px 9px;background:rgba(5,7,10,.78);border-left:1px solid var(--iris);white-space:nowrap}
.tag em{font-style:normal;color:var(--iris)}
.tag.flowmode span{white-space:nowrap;max-width:none}
@media (max-width:820px){.tag.flowmode{transition:none}}

/* Quote */
.quote{position:relative;min-height:100svh;display:flex;align-items:center;padding:140px var(--gr) 120px var(--gl)}
.quote-in{width:100%;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:end}
.quote-copy{grid-column:2;grid-row:1}
.form{grid-column:2;grid-row:2}
.quote h2{font-family:var(--f-display);font-size:clamp(34px,4.4vw,60px);line-height:1.04}
.quote-copy p{color:#c9cfd2;font-size:17px;margin-top:18px;max-width:46ch}
.quote-copy .direct{margin-top:22px}
.sel{color:var(--snow);user-select:all}
.form{display:grid;gap:18px;margin-top:-28px}
.field{display:grid;gap:8px;min-width:0}
.field label{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--frost)}
.field label span{text-transform:none;letter-spacing:0}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
input,textarea,select{font:inherit;font-size:16px;color:var(--snow);background:rgba(12,16,21,.86);border:1px solid #2a333c;border-radius:2px;padding:13px 14px;width:100%;transition:border-color 180ms ease-out}
textarea{resize:vertical;min-height:132px;line-height:1.5}
input::placeholder,textarea::placeholder{color:#5c656e}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--iris)}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--frost) 50%),linear-gradient(135deg,var(--frost) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.field.bad input,.field.bad textarea{border-color:#d0573f}
.hp{position:absolute;left:-9999px}
.send{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.status{font-size:15px;color:#c9cfd2;max-width:40ch}
.status.ok{color:var(--snow)}
.status.err{color:#e98a76}

/* Footer */
.foot{position:relative;z-index:10;background:var(--night);border-top:1px solid var(--line)}
.foot-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:34px var(--gr) calc(34px + env(safe-area-inset-bottom,0px)) var(--gl)}

@media (max-width:820px){
  .bar-in{padding-block:14px}
  .lockup .mk{width:30px}
  .lockup .wm{height:11px}
  .btn{padding:11px 14px;font-size:13px}
  .hero{align-items:flex-end}
  .hero-copy{padding-block:54svh 64px}
  .hero h1{font-size:clamp(40px,11vw,58px)}
  .hero .sub{font-size:16px;margin-top:18px}
  .cue{display:none}
  .hud .r{display:none}
  .act-label{top:calc(76px + env(safe-area-inset-top,0px))}
  .step{bottom:7vh}
  .step.top{top:auto;bottom:7vh}
  .step h2{font-size:clamp(30px,8.6vw,44px)}
  .step p{font-size:15px;margin-top:12px}
  .step::before{inset:-40px -30px}
  .examples{margin-top:16px;gap:8px}
  .examples li{font-size:14px}
  .tag span{font-size:9.5px;padding:5px 7px;white-space:normal;max-width:150px}
  .quote{padding-top:44svh}
  .quote-in{grid-template-columns:minmax(0,1fr);gap:32px}
  .quote-copy,.form{grid-column:1;grid-row:auto}
  .form{margin-top:0}
  .row{grid-template-columns:minmax(0,1fr)}
  .foot-in{flex-direction:column;align-items:flex-start;gap:12px}
}
@media (prefers-reduced-motion:reduce){
  .reveal,.step{transition:opacity 200ms linear;transform:none}
  .cue i{animation:none}
}
