/* unum · the mint — 3D intro UI over a fixed WebGL scene, then hands over to the site */
.w-top a,.w-menu a,.w-stage a{color:inherit;text-decoration:none}
.w-top button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}


:root{
  --w-bg:#0b0b0c;
  --w-fg:#f1f1ef;
  --w-fg-2:#c9c9c6;
  --w-mute:#8c8c88;
  --w-dim:#5e5e5b;
  --w-line:rgba(255,255,255,.12);
  --w-sans:"Geist",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --w-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --w-ease:cubic-bezier(.16,1,.3,1);
  --w-gx:clamp(18px,3.4vw,48px);
}

#world{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}
.w-shade{position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(11,11,12,.72) 0%,rgba(11,11,12,.35) 34%,rgba(11,11,12,0) 56%)}
.w-track{position:relative;z-index:0;pointer-events:none}
.w-track div{height:100svh}
.w-dive{height:90svh;pointer-events:none}

/* hand-over: the intro owns the screen until the dive ends, then the site does */
#world{transition:none}
.w-top,.w-stages,.w-bottom,.w-shade{transition:opacity .35s ease}
.w-off{opacity:0 !important;visibility:hidden !important;pointer-events:none !important}
body.is-intro .rails,body.is-intro .grain{opacity:0}
.rails,.grain{transition:opacity .8s var(--w-ease)}
.nav{transition:transform .7s var(--w-ease),opacity .6s var(--w-ease)}
html.js body.is-intro .nav{opacity:0;pointer-events:none;transform:translateY(-120%)}
html.js body.is-site .nav{opacity:1}
body.no-gl #world,body.no-gl .w-shade,body.no-gl .w-top,body.no-gl .w-stages,body.no-gl .w-bottom,body.no-gl .w-loader,body.no-gl .w-track,body.no-gl .w-dive{display:none}

/* ---------- top bar ---------- */
.w-top{position:fixed;top:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px var(--w-gx);pointer-events:none}
.w-top>*{pointer-events:auto}
.w-brand{display:inline-flex;align-items:center;gap:10px;width:max-content;font-size:20px;font-weight:600;letter-spacing:-.045em}
.w-mark{width:24px;height:24px;fill:currentColor}
.w-dots{display:flex;align-items:center;gap:6px}
.w-dots button{display:grid;place-items:center;width:30px;height:24px}
.w-dots i{display:block;width:6px;height:6px;border-radius:6px;background:rgba(255,255,255,.32);transition:width .6s var(--w-ease),background-color .4s}
.w-dots button:hover i{background:rgba(255,255,255,.7)}
.w-dots button.is-on i{width:22px;background:var(--w-fg)}
.w-right{display:flex;align-items:center;justify-content:flex-end;gap:22px}
.w-link{font-family:var(--w-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--w-fg-2);transition:color .3s}
.w-link:hover{color:var(--w-fg)}
.w-menu-btn{position:relative;display:flex;align-items:center;gap:12px;height:38px;padding:0 6px 0 16px;border-radius:999px;font-family:var(--w-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--w-line);transition:background-color .3s}
.w-menu-btn:hover{background:rgba(255,255,255,.12)}
.w-menu-btn i{position:absolute;right:13px;width:14px;height:1.5px;background:var(--w-fg);transition:transform .5s var(--w-ease)}
.w-menu-btn i:first-of-type{transform:translateY(-3px)}
.w-menu-btn i:last-of-type{transform:translateY(3px)}
.w-menu-btn span{margin-right:24px}
.w-menu-btn[aria-expanded="true"] i:first-of-type{transform:rotate(45deg)}
.w-menu-btn[aria-expanded="true"] i:last-of-type{transform:rotate(-45deg)}

.w-menu{position:fixed;inset:0;z-index:15;display:flex;flex-direction:column;justify-content:center;gap:40px;padding:120px var(--w-gx) 48px;background:rgba(8,8,9,.86);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;visibility:hidden;transition:opacity .5s var(--w-ease),visibility 0s linear .5s}
.w-menu.is-open{opacity:1;visibility:visible;transition:opacity .5s var(--w-ease)}
.w-menu nav{display:flex;flex-direction:column}
.w-menu nav a{display:flex;align-items:baseline;gap:18px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:clamp(34px,6vw,72px);font-weight:600;letter-spacing:-.045em;line-height:1;text-transform:uppercase;opacity:0;transform:translateY(30px);transition:opacity .6s var(--w-ease),transform .8s var(--w-ease)}
.w-menu nav a span{font-family:var(--w-mono);font-size:12px;letter-spacing:.12em;color:var(--w-dim);font-weight:400}
.w-menu nav a:hover{color:var(--w-fg-2)}
.w-menu.is-open nav a{opacity:1;transform:none}
.w-menu.is-open nav a:nth-child(2){transition-delay:.05s}
.w-menu.is-open nav a:nth-child(3){transition-delay:.1s}
.w-menu.is-open nav a:nth-child(4){transition-delay:.15s}
.w-menu.is-open nav a:nth-child(5){transition-delay:.2s}
.w-menu p{margin:0;font-family:var(--w-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--w-dim)}

/* ---------- stage copy ---------- */
.w-stages{position:fixed;left:var(--w-gx);top:50%;z-index:10;width:min(560px,46vw);transform:translateY(-46%);pointer-events:none}
.w-stage{position:absolute;left:0;top:0;width:100%;transform:translateY(-50%);visibility:hidden}
.w-stage.is-on{visibility:visible;pointer-events:auto}
.w-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 22px;font-family:var(--w-mono);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--w-fg-2)}
.w-eyebrow i{display:block;width:34px;height:1px;background:var(--w-fg-2);transform-origin:left}
.w-title{margin:0 0 22px;font-size:clamp(42px,5.4vw,86px);font-weight:620;line-height:.93;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance}
.w-title .ln-mask{padding:.06em 0 .12em;margin:-.06em 0 -.12em}
.w-sub{max-width:40ch;margin:0 0 30px;font-size:16px;line-height:1.6;color:var(--w-fg-2)}
.w-cta{display:inline-flex;align-items:center;gap:14px;font-size:14px;letter-spacing:.01em;color:var(--w-fg)}
.w-cta-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);transition:background-color .35s,color .35s,transform .5s var(--w-ease)}
.w-cta-ic svg{width:15px;height:15px}
.w-cta:hover .w-cta-ic{background:var(--w-fg);color:var(--w-bg);transform:rotate(-45deg)}
.w-cta--solid .w-cta-ic{background:var(--w-fg);color:var(--w-bg)}
.w-cta--solid:hover .w-cta-ic{background:transparent;color:var(--w-fg)}

/* ---------- bottom HUD ---------- */
.w-bottom{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;padding:0 var(--w-gx) 24px;pointer-events:none}
.w-meta{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--w-mute)}
.w-meta b{font-weight:500;color:var(--w-fg-2)}
.w-stats{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-family:var(--w-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--w-dim)}
.w-stats b{font-weight:400;color:var(--w-fg-2);font-variant-numeric:tabular-nums}
.w-scroll{display:flex;flex-direction:column;align-items:center;gap:12px;font-family:var(--w-mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--w-fg-2)}
.w-scroll i{position:relative;display:block;width:44px;height:2px;border-radius:2px;background:rgba(255,255,255,.18);overflow:hidden}
.w-scroll i::after{content:"";position:absolute;inset:0;background:var(--w-fg);transform:translateX(-100%);animation:wScroll 2.2s var(--w-ease) infinite}
@keyframes wScroll{60%,100%{transform:translateX(100%)}}
.w-count{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-family:var(--w-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--w-dim)}
.w-count b{font-weight:400;color:var(--w-fg)}
.w-count-name{color:var(--w-fg-2)}

/* ---------- loader ---------- */
.w-loader{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:var(--w-bg);transition:opacity .9s var(--w-ease),visibility 0s linear .9s}
.w-loader.is-done{opacity:0;visibility:hidden}
.w-loader-in{display:flex;flex-direction:column;align-items:center;gap:18px;font-family:var(--w-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--w-mute)}
.w-loader .w-mark{width:34px;height:34px;color:var(--w-fg);animation:wSpin 3s linear infinite}
@keyframes wSpin{to{transform:rotate(360deg)}}
.w-loader i{display:block;width:140px;height:1px;background:rgba(255,255,255,.14);overflow:hidden}
.w-loader i b{display:block;height:100%;background:var(--w-fg);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--w-ease)}
.w-noscript{position:fixed;inset:auto 0 40%;z-index:40;text-align:center;color:var(--w-fg-2)}

/* ---------- small screens ---------- */
@media (max-width:767px){
  .w-top{grid-template-columns:1fr auto;padding:16px var(--w-gx)}
  .w-dots{display:none}
  .w-shade{background:linear-gradient(0deg,rgba(11,11,12,.92) 0%,rgba(11,11,12,.7) 34%,rgba(11,11,12,0) 54%)}
  .w-link{display:none}
  .w-stages{top:auto;bottom:118px;width:auto;right:var(--w-gx);transform:none}
  .w-stage{top:auto;bottom:0;transform:none}
  .w-title{font-size:clamp(34px,10.5vw,52px)}
  .w-sub{font-size:14.5px;margin-bottom:22px}
  .w-bottom{grid-template-columns:1fr auto;padding-bottom:18px}
  .w-scroll{display:none}
  .w-meta>span,.w-meta>b{display:none}
  .w-stats{margin-top:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}
