:root {
  --ink: #070a0f;
  --navy: #0b111b;
  --navy-2: #121c2b;
  --cream: #f1e7d1;
  --muted: #aeb8c5;
  --gold: #c7a86a;
  --gold-2: #edd7a8;
  --burgundy: #7b2634;
  --glass: rgba(9, 14, 22, .56);
  --hairline: rgba(237, 215, 168, .25);
  --mx: 50%;
  --my: 50%;
  --ease: cubic-bezier(.2,.8,.2,1);
  --ease-spring: cubic-bezier(.18,.89,.32,1.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-snap-type: y mandatory; scroll-padding-top: 0; background: var(--ink); }
body {
  margin: 0;
  min-width: 320px;
  background: var(--ink);
  color: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(199,168,106,.55) #070a0f;
}
body::-webkit-scrollbar { width: 8px; }
body::-webkit-scrollbar-track { background: #070a0f; }
body::-webkit-scrollbar-thumb { background: rgba(199,168,106,.55); border-radius: 99px; }
button, a { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
::selection { background: var(--gold); color: #111; }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  background: var(--cream); color: #111; padding: 12px 16px; border-radius: 8px;
}
.skip-link:focus { top: 16px; }

.preloader {
  position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center;
  align-content: center; gap: 22px; background: #080c12; transition: opacity .8s var(--ease), visibility .8s;
}
.preloader img { width: 112px; height: 112px; object-fit: contain; animation: loaderFloat 1.6s ease-in-out infinite; }
.preloader__line { width: min(320px, 70vw); height: 2px; background: rgba(255,255,255,.12); overflow: hidden; }
.preloader__line span { display:block; width: 0%; height: 100%; background: linear-gradient(90deg,var(--gold),var(--gold-2)); transition: width .25s ease; }
.preloader p { margin: 0; font-size: 11px; letter-spacing: .28em; color: var(--muted); }
body.is-loaded .preloader { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes loaderFloat { 50% { transform: translateY(-8px) rotate(-2deg); } }

.topbar {
  position: fixed; z-index: 100; top: 0; left: 0; right: 0; height: 86px;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 clamp(22px, 3vw, 58px); pointer-events: none;
  background: linear-gradient(180deg, rgba(4,7,11,.62), transparent);
}
.topbar > * { pointer-events: auto; }
.brand { display:flex; align-items:center; gap: 10px; width:max-content; font-weight: 800; letter-spacing: .14em; font-size: 13px; }
.brand img { filter: drop-shadow(0 4px 14px rgba(0,0,0,.45)); }
.topnav { display:flex; gap: 30px; justify-content:center; }
.topnav a { position: relative; color: rgba(241,231,209,.78); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.topnav a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--gold-2); transition:right .3s var(--ease); }
.topnav a:hover::after, .topnav a:focus-visible::after { right: 0; }
.ca-pill { justify-self:end; display:flex; align-items:center; gap:8px; border:1px solid var(--hairline); background:rgba(10,15,23,.6); color:var(--cream); border-radius:999px; padding:10px 13px; cursor:pointer; backdrop-filter: blur(12px); transition: border-color .25s, background .25s, transform .25s; }
.ca-pill:hover { border-color: rgba(237,215,168,.6); background:rgba(17,24,34,.82); }
.ca-pill__label { color:var(--muted); font-size:10px; letter-spacing:.15em; }
.ca-pill strong { font-size:11px; letter-spacing:.12em; }
.ca-pill__icon { opacity:.66; }

.rail {
  position: fixed; z-index: 90; right: clamp(16px,2.2vw,42px); top: 50%; transform: translateY(-50%);
  display:flex; flex-direction:column; align-items:flex-end; gap: 18px; mix-blend-mode: screen;
}
.rail__case { font-size:9px; letter-spacing:.2em; color:rgba(241,231,209,.5); writing-mode:vertical-rl; transform:rotate(180deg); margin-right:3px; }
.rail nav { display:grid; gap:13px; }
.rail a { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; position:relative; color:transparent; }
.rail a::before { content:""; width:5px; height:5px; border-radius:50%; background:rgba(241,231,209,.32); box-shadow:0 0 0 0 rgba(199,168,106,.0); transition:.35s var(--ease); }
.rail a span { position:absolute; right:35px; color:rgba(241,231,209,0); font-size:9px; letter-spacing:.16em; transition:.25s; }
.rail a:hover span, .rail a.is-active span { color:rgba(241,231,209,.8); }
.rail a.is-active::before { width:8px; height:8px; background:var(--gold-2); box-shadow:0 0 0 7px rgba(199,168,106,.12), 0 0 18px rgba(237,215,168,.45); }

.scroll-hint { position:fixed; left: clamp(22px,3vw,58px); bottom:28px; z-index:80; display:flex; align-items:center; gap:13px; color:rgba(241,231,209,.48); font-size:9px; letter-spacing:.22em; pointer-events:none; }
.scroll-hint i { position:relative; width:66px; height:1px; background:rgba(241,231,209,.18); overflow:hidden; }
.scroll-hint i::after { content:""; position:absolute; width:22px; height:1px; background:var(--gold-2); animation:scrollLine 2.1s ease-in-out infinite; }
@keyframes scrollLine { 0%{left:-25px} 50%,100%{left:70px} }

main { position:relative; }
.scene {
  position:relative; height:100svh; min-height:640px; scroll-snap-align:start; scroll-snap-stop:always;
  overflow:hidden; isolation:isolate; background:#090d14;
}
.scene__canvas {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(100vw, calc(100svh * 16 / 9));
  height:min(100svh, calc(100vw * 9 / 16));
  min-width:min(100vw, 1137px);
  min-height:min(100svh, 640px);
  overflow:hidden; background:#0a1019;
}
.scene__bg { position:absolute; inset:-3%; background-size:cover; background-position:center; transform:scale(1.045) translate3d(var(--bg-x,0), var(--bg-y,0),0); transition: transform .2s linear; will-change:transform; }
.scene--home .scene__bg { background-image: url("assets/bg-home.webp"); }
.scene--lore .scene__bg { background-image: url("assets/bg-lore.webp"); }
.scene--roadmap .scene__bg { background-image: url("assets/bg-roadmap.webp"); }
.scene--join .scene__bg { background-image: url("assets/bg-join.webp"); }
.scene__vignette { position:absolute; inset:0; background: linear-gradient(90deg, rgba(3,6,10,.86) 0%, rgba(3,6,10,.34) 46%, rgba(3,6,10,.2) 68%, rgba(3,6,10,.68) 100%), linear-gradient(180deg, rgba(3,5,9,.3), transparent 35%, rgba(3,5,9,.42)); }
.scene--lore .scene__vignette { background:linear-gradient(90deg,rgba(4,7,10,.84),rgba(4,7,10,.22) 53%,rgba(4,7,10,.42)),linear-gradient(180deg,rgba(0,0,0,.25),transparent 50%,rgba(0,0,0,.45)); }
.scene--roadmap .scene__vignette { background:linear-gradient(90deg,rgba(4,8,13,.45),rgba(4,8,13,.28) 47%,rgba(4,8,13,.68)),linear-gradient(180deg,rgba(0,0,0,.15),transparent 50%,rgba(0,0,0,.52)); }
.scene--join .scene__vignette { background:linear-gradient(90deg,rgba(2,5,10,.8),rgba(2,5,10,.25) 52%,rgba(2,5,10,.3)),linear-gradient(180deg,rgba(0,0,0,.15),transparent 52%,rgba(0,0,0,.58)); }
.scene__spotlight { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at var(--mx) var(--my), rgba(218,233,255,.12) 0, rgba(194,213,237,.04) 16%, transparent 38%); mix-blend-mode:screen; opacity:.9; transition:opacity .4s; }
.dust { position:absolute; inset:0; pointer-events:none; opacity:.4; background-image:radial-gradient(circle at 12% 22%,rgba(255,255,255,.5) 0 1px,transparent 1.4px),radial-gradient(circle at 78% 34%,rgba(255,255,255,.32) 0 1px,transparent 1.4px),radial-gradient(circle at 38% 72%,rgba(237,215,168,.4) 0 1px,transparent 1.5px),radial-gradient(circle at 61% 16%,rgba(255,255,255,.35) 0 1px,transparent 1.4px); background-size:260px 260px,340px 340px,410px 410px,520px 520px; animation:dustDrift 25s linear infinite; }
@keyframes dustDrift { to { background-position:160px -100px,-140px 100px,80px -160px,-180px 120px; } }

.scene-copy { position:absolute; z-index:10; left:7.2%; top:25%; width:46%; }
.eyebrow { margin:0 0 20px; font-size:10px; font-weight:800; letter-spacing:.32em; color:var(--gold-2); text-transform:uppercase; }
.display { margin:0; font-family: Georgia,"Times New Roman",serif; font-size:clamp(74px,7.2vw,138px); line-height:.82; letter-spacing:-.055em; font-weight:700; color:#f4ead5; text-shadow:0 12px 40px rgba(0,0,0,.4); }
.display--join { font-size:clamp(68px,6vw,116px); line-height:.9; }
.display--join em { color:var(--gold-2); font-weight:400; }
.split-text .char { display:inline-block; opacity:0; transform:translateY(60%) rotateX(-70deg); transform-origin:50% 100%; }
.scene.is-active .split-text .char { animation:letterIn .8s var(--ease) forwards; animation-delay:calc(var(--i) * 55ms + 120ms); }
@keyframes letterIn { to { opacity:1; transform:translateY(0) rotateX(0); } }
.lede { margin:26px 0 0; color:rgba(236,240,244,.82); font-size:clamp(16px,1.35vw,25px); line-height:1.5; font-weight:430; }
.hero-actions, .join-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:0 20px; border-radius:5px; border:1px solid transparent; cursor:pointer; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:850; transition:transform .28s var(--ease),border-color .28s,background .28s,color .28s,box-shadow .28s; position:relative; overflow:hidden; }
.button::before { content:""; position:absolute; inset:0; transform:translateX(-110%) skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent); transition:transform .65s var(--ease); }
.button:hover::before { transform:translateX(110%) skewX(-20deg); }
.button--gold { background:linear-gradient(135deg,#d3b677,#a98645); color:#111217; box-shadow:0 10px 36px rgba(164,124,59,.16); }
.button--gold:hover { box-shadow:0 14px 42px rgba(197,157,82,.3); }
.button--ghost { border-color:rgba(241,231,209,.28); background:rgba(7,12,18,.4); backdrop-filter:blur(10px); }
.button--ghost:hover { border-color:rgba(237,215,168,.62); background:rgba(12,19,28,.74); }
.button--glass { border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.08); backdrop-filter:blur(12px); }
.button--glass:hover { border-color:rgba(255,255,255,.4); background:rgba(255,255,255,.12); }
.micro { margin-top:18px; color:rgba(241,231,209,.38); font-size:10px; letter-spacing:.13em; }

.figure-wrap { position:absolute; z-index:8; width:30%; aspect-ratio:3/4; transform-style:preserve-3d; perspective:900px; }
.figure-wrap--home { right:14%; bottom:-2%; width:31%; }
.figure-wrap--lore { right:8%; bottom:-4%; width:29%; }
.figure-wrap--roadmap { right:5.2%; bottom:-4%; width:24.5%; }
.figure-wrap--join { right:11%; bottom:-3%; width:30%; }
.figure { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center bottom; transform:translate3d(var(--fx,0px),var(--fy,0px),0) rotateY(var(--fry,0deg)) rotateX(var(--frx,0deg)) rotateZ(var(--frz,0deg)); transform-origin:50% 78%; filter:drop-shadow(0 40px 38px rgba(0,0,0,.58)); will-change:transform,opacity,filter; animation:catBreath 4.4s ease-in-out infinite; transition:filter .35s, opacity .22s; user-select:none; }
@keyframes catBreath { 0%,100% { margin-top:0; } 50% { margin-top:-8px; } }
.figure-aura { position:absolute; width:74%; height:35%; left:13%; top:27%; border-radius:50%; background:radial-gradient(circle,rgba(211,182,119,.24),rgba(91,119,153,.08) 45%,transparent 72%); filter:blur(25px); opacity:.7; transform:translateZ(-20px); animation:auraPulse 4s ease-in-out infinite; }
@keyframes auraPulse { 50% { transform:scale(1.12); opacity:.95; } }
.figure-shadow { position:absolute; left:22%; right:18%; height:6%; bottom:2%; border-radius:50%; background:rgba(0,0,0,.55); filter:blur(16px); transform:scaleX(1.1); }
.figure-hit { position:absolute; inset:3% 8% 5%; border:0; background:transparent; cursor:pointer; outline:none; border-radius:45% 45% 20% 20%; }
.figure-hit:focus-visible { box-shadow:0 0 0 2px var(--gold-2),0 0 0 8px rgba(199,168,106,.18); }
.figure-wrap:hover .figure { filter:drop-shadow(0 42px 42px rgba(0,0,0,.5)) drop-shadow(0 0 24px rgba(237,215,168,.13)); }
.figure-wrap.is-pop .figure { animation:catPop .56s var(--ease-spring) both; }
@keyframes catPop { 0%{transform:translate3d(var(--fx,0),var(--fy,0),0) rotateY(var(--fry,0)) rotateX(var(--frx,0)) scale(1)} 45%{transform:translate3d(var(--fx,0),calc(var(--fy,0) - 16px),0) rotateY(var(--fry,0)) rotateX(var(--frx,0)) rotateZ(-2deg) scale(1.045)} 100%{transform:translate3d(var(--fx,0),var(--fy,0),0) rotateY(var(--fry,0)) rotateX(var(--frx,0)) scale(1)} }
.figure-wrap.is-swapping .figure { opacity:0; transform:scale(.96) translateY(12px); }

.home-stamp { position:absolute; z-index:9; left:7.2%; bottom:14%; display:flex; align-items:center; gap:12px; padding:12px 14px; width:max-content; }
.stamp-dot { width:9px; height:9px; background:#9ed38f; border-radius:50%; box-shadow:0 0 0 5px rgba(158,211,143,.12),0 0 15px rgba(158,211,143,.5); }
.home-stamp small, .home-stamp b { display:block; }
.home-stamp small { color:var(--muted); font-size:8px; letter-spacing:.18em; }
.home-stamp b { margin-top:2px; font-size:10px; letter-spacing:.12em; }
.card-glass { border:1px solid rgba(237,215,168,.18); background:linear-gradient(135deg,rgba(8,14,22,.78),rgba(11,18,28,.48)); box-shadow:0 24px 70px rgba(0,0,0,.25); backdrop-filter:blur(14px); }
.scene-index { position:absolute; right:7%; bottom:5.5%; z-index:8; margin:0; font-size:9px; color:rgba(241,231,209,.3); letter-spacing:.22em; }

.lore-panel { position:absolute; z-index:9; left:7%; top:18%; width:55%; padding:clamp(26px,3vw,50px); border-radius:4px; }
.section-title { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(46px,4.2vw,82px); line-height:.98; letter-spacing:-.035em; font-weight:600; max-width:820px; }
.lore-lead, .section-subtitle { margin:16px 0 28px; font-family:Georgia,"Times New Roman",serif; color:var(--gold-2); font-size:clamp(17px,1.35vw,25px); font-style:italic; }
.lore-columns { display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:850px; }
.lore-columns p { margin:0; color:rgba(232,237,241,.74); line-height:1.72; font-size:clamp(12px,.92vw,16px); }
blockquote { margin:27px 0 0; border-left:2px solid var(--gold); padding:4px 0 4px 18px; font-family:Georgia,"Times New Roman",serif; font-style:italic; color:rgba(241,231,209,.92); font-size:clamp(16px,1.2vw,22px); }
.lore-meta { display:flex; gap:22px; margin-top:30px; padding-top:20px; border-top:1px solid rgba(237,215,168,.13); }
.lore-meta span { min-width:0; color:rgba(241,231,209,.8); font-size:10px; letter-spacing:.08em; }
.lore-meta small { display:block; margin-bottom:5px; color:rgba(174,184,197,.52); font-size:7px; letter-spacing:.18em; }
.case-tag { position:absolute; z-index:10; right:7%; top:17%; transform:rotate(3deg); border:1px solid rgba(237,215,168,.28); padding:10px 12px; color:rgba(237,215,168,.78); background:rgba(4,7,11,.48); }
.case-tag span, .case-tag b { display:block; font-size:8px; letter-spacing:.18em; }
.case-tag b { margin-top:4px; font-size:12px; }

.roadmap-copy { position:absolute; z-index:9; top:14.5%; left:7%; width:61%; }
.roadmap-copy .section-title { font-size:clamp(42px,3.6vw,68px); }
.roadmap-grid { position:absolute; z-index:10; left:7%; right:28%; top:35%; bottom:13%; display:grid; grid-template-columns:1fr 1fr; gap:14px; list-style:none; margin:0; padding:0; }
.road-card { position:relative; display:grid; grid-template-columns:54px 1fr; gap:16px; padding:22px; border-radius:4px; overflow:hidden; transition:transform .35s var(--ease),border-color .35s,background .35s; }
.road-card:hover { transform:translateY(-6px); border-color:rgba(237,215,168,.42); background:linear-gradient(135deg,rgba(14,22,33,.9),rgba(13,20,30,.65)); }
.road-card::after { content:""; position:absolute; left:-20%; bottom:-60%; width:80%; aspect-ratio:1; background:radial-gradient(circle,rgba(199,168,106,.15),transparent 68%); pointer-events:none; }
.road-card.is-now { border-color:rgba(237,215,168,.36); box-shadow:0 0 0 1px rgba(199,168,106,.05) inset,0 20px 60px rgba(0,0,0,.3); }
.road-num { font-family:Georgia,"Times New Roman",serif; font-size:34px; color:rgba(237,215,168,.42); line-height:1; }
.road-card small { color:var(--gold-2); font-size:8px; font-weight:900; letter-spacing:.2em; }
.road-card h3 { margin:7px 0 8px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(20px,1.65vw,31px); font-weight:600; }
.road-card p { margin:0; color:rgba(226,232,238,.64); font-size:clamp(10px,.78vw,14px); line-height:1.55; }

.join-copy { position:absolute; z-index:10; left:7.2%; top:25%; width:58%; }
.join-note { margin-top:18px; color:rgba(241,231,209,.38); font-size:10px; letter-spacing:.09em; }
.footer-line { position:absolute; z-index:12; left:7.2%; right:7.2%; bottom:4.5%; display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid rgba(237,215,168,.16); color:rgba(241,231,209,.42); font-size:8px; letter-spacing:.18em; text-transform:uppercase; }
.footer-line a { color:rgba(241,231,209,.72); }

.reveal-group > *:not(.split-text), .reveal-card { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.scene.is-active .reveal-group > *:not(.split-text), .scene.is-active .reveal-card { opacity:1; transform:translateY(0); }
.scene.is-active .reveal-group > *:nth-child(1) { transition-delay:.12s; }
.scene.is-active .reveal-group > *:nth-child(2) { transition-delay:.2s; }
.scene.is-active .reveal-group > *:nth-child(3) { transition-delay:.28s; }
.scene.is-active .reveal-group > *:nth-child(4) { transition-delay:.36s; }
.scene.is-active .reveal-group > *:nth-child(5) { transition-delay:.44s; }
.roadmap-grid .reveal-card:nth-child(1) { transition-delay:.24s; }
.roadmap-grid .reveal-card:nth-child(2) { transition-delay:.32s; }
.roadmap-grid .reveal-card:nth-child(3) { transition-delay:.4s; }
.roadmap-grid .reveal-card:nth-child(4) { transition-delay:.48s; }

.toast { position:fixed; z-index:1000; left:50%; bottom:32px; transform:translate(-50%,16px); padding:12px 16px; border:1px solid rgba(237,215,168,.3); border-radius:999px; background:rgba(7,11,17,.85); backdrop-filter:blur(12px); color:var(--gold-2); font-size:9px; letter-spacing:.2em; opacity:0; visibility:hidden; transition:.3s var(--ease); }
.toast.is-showing { opacity:1; visibility:visible; transform:translate(-50%,0); }

.cursor { position:fixed; inset:0 auto auto 0; z-index:9998; pointer-events:none; opacity:0; transition:opacity .25s; }
.cursor__dot, .cursor__ring, .cursor__paw { position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
.cursor__dot { width:5px; height:5px; border-radius:50%; background:var(--gold-2); box-shadow:0 0 18px rgba(237,215,168,.75); }
.cursor__ring { width:34px; height:34px; border:1px solid rgba(237,215,168,.52); border-radius:50%; transition:width .2s,height .2s,border-color .2s,background .2s; }
.cursor__paw { font-size:9px; color:var(--gold-2); opacity:0; transition:opacity .2s,transform .2s; }
body.has-cursor .cursor { opacity:1; }
body.is-hovering .cursor__ring { width:54px; height:54px; background:rgba(237,215,168,.08); border-color:rgba(237,215,168,.78); }
body.is-hovering .cursor__paw { opacity:1; transform:translate(-50%,-50%) rotate(45deg); }
.paw-burst { position:fixed; z-index:9997; pointer-events:none; width:6px; height:6px; border-radius:50%; background:var(--gold-2); box-shadow:0 0 12px rgba(237,215,168,.65); animation:burst .7s var(--ease) forwards; }
@keyframes burst { to { transform:translate(var(--dx),var(--dy)) scale(0); opacity:0; } }

.noscript { position:fixed; z-index:10001; left:16px; right:16px; bottom:16px; padding:14px; background:#111923; border:1px solid var(--hairline); color:var(--cream); }

@media (pointer:fine) and (hover:hover) {
  body { cursor:none; }
  a,button,.figure-hit { cursor:none; }
}

@media (max-aspect-ratio: 4/3) {
  .scene__canvas { width:100vw; height:100svh; }
  .scene__bg { inset:-8%; }
}

@media (max-width: 980px) {
  .topbar { height:72px; grid-template-columns:1fr auto; }
  .topnav { display:none; }
  .ca-pill { grid-column:2; }
  .rail, .scroll-hint { display:none; }
  .scene { min-height:760px; }
  .scene__canvas { width:100vw; height:100svh; min-height:760px; }
  .scene__vignette { background:linear-gradient(180deg,rgba(3,6,10,.46),rgba(3,6,10,.5) 48%,rgba(3,6,10,.9)); }
  .scene-copy, .join-copy { left:7%; top:16%; width:86%; }
  .display { font-size:clamp(54px,15vw,104px); }
  .lede { max-width:680px; }
  .figure-wrap--home { right:-2%; bottom:-6%; width:58%; }
  .home-stamp { left:7%; bottom:10%; }
  .lore-panel { left:5%; top:12%; width:90%; padding:26px; max-height:66%; overflow:auto; }
  .lore-columns { grid-template-columns:1fr; gap:12px; }
  .lore-meta { flex-wrap:wrap; }
  .figure-wrap--lore { right:-7%; bottom:-12%; width:48%; opacity:.7; }
  .case-tag { display:none; }
  .roadmap-copy { left:6%; top:11%; width:88%; }
  .roadmap-grid { left:6%; right:6%; top:31%; bottom:7%; gap:10px; }
  .figure-wrap--roadmap { display:none; }
  .road-card { padding:16px; grid-template-columns:42px 1fr; }
  .footer-line { left:6%; right:6%; flex-wrap:wrap; gap:8px; }
  .figure-wrap--join { right:-4%; bottom:-6%; width:52%; opacity:.8; }
}

@media (max-width: 640px) {
  .brand span { display:none; }
  .ca-pill { padding:9px 11px; }
  .scene { min-height:780px; }
  .scene__canvas { min-height:780px; }
  .display { font-size:clamp(49px,17vw,84px); }
  .hero-actions,.join-actions { align-items:stretch; }
  .button { width:100%; max-width:360px; }
  .figure-wrap--home { width:76%; right:-15%; bottom:-7%; opacity:.82; }
  .home-stamp { display:none; }
  .lore-panel { top:10%; max-height:71%; }
  .section-title { font-size:clamp(39px,12vw,58px); }
  .lore-meta { display:none; }
  .figure-wrap--lore { width:60%; right:-18%; bottom:-11%; opacity:.55; }
  .roadmap-grid { grid-template-columns:1fr; overflow:auto; padding-bottom:25px; }
  .road-card { min-height:150px; }
  .join-copy { top:14%; }
  .figure-wrap--join { width:72%; right:-16%; bottom:-8%; opacity:.64; }
  .footer-line span:nth-child(2) { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .scene__bg,.figure { transform:none !important; }
  .cursor { display:none !important; }
}
