
@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-muted: var(--muted);
  --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent);
  --color-accent-foreground: var(--accent-foreground);
  --color-border: var(--border);
  --color-input: var(--input);
  --color-ring: var(--ring);
  --radius-lg: var(--radius);
}

:root {
  --ink: #101014;
  --paper: #f5f5f1;
  --silver: #d8d9de;
  --acid: #d7ff28;
  --blue: #446cff;
  --pink: #ff4db8;
  --signal: #ffffff;
  --signal-soft: rgba(255, 255, 255, .45);
  --background: var(--paper);
  --foreground: var(--ink);
  --card: #ffffff;
  --card-foreground: var(--ink);
  --popover: #ffffff;
  --popover-foreground: var(--ink);
  --primary: var(--ink);
  --primary-foreground: #ffffff;
  --secondary: #e7e7e2;
  --secondary-foreground: var(--ink);
  --muted: #e7e7e2;
  --muted-foreground: #64646c;
  --accent: var(--acid);
  --accent-foreground: var(--ink);
  --destructive: #e03131;
  --border: #bbbcc2;
  --input: #bbbcc2;
  --ring: var(--blue);
  --radius: 1.2rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
::selection { background: var(--pink); color: white; }

.site-shell {
  --mode-filter: saturate(.82);
  position: relative;
  min-height: 100svh;
  overflow: clip;
  background: var(--paper);
}
.site-shell[data-signal='blue'] { --signal: #7691ff; --signal-soft: rgba(75, 108, 255, .32); --mode-filter: saturate(1.2) hue-rotate(9deg); }
.site-shell[data-signal='pink'] { --signal: #ff69bf; --signal-soft: rgba(255, 77, 184, .28); --mode-filter: saturate(1.42) hue-rotate(-10deg); }
.site-shell[data-burst='1'] .grain { animation: signal-burst .45s steps(2); }

.grain {
  position: fixed;
  z-index: 80;
  inset: 0;
  opacity: .085;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}
.signal-notice {
  position: fixed;
  z-index: 70;
  right: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 13px;
  border: 1px solid var(--ink);
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(12px);
  font: 800 9px/1 monospace;
  letter-spacing: .15em;
  box-shadow: 4px 4px 0 rgba(16,16,20,.92);
}
.signal-notice span, .live-dot { width: 7px; height: 7px; border-radius: 50%; background: #65e94e; box-shadow: 0 0 12px #65e94e; animation: live 1s ease-in-out infinite; }

.topbar {
  position: absolute;
  z-index: 20;
  inset: 0 0 auto;
  height: 84px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  padding: 0 4vw;
  border-bottom: 1px solid #1a1a1d;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}
.brand { display: flex; align-items: center; gap: 10px; justify-self: start; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--ink); color: #fff; font: 900 22px/1 Arial Black, sans-serif; transform: rotate(-7deg); box-shadow: inset -4px -4px 7px rgba(255,255,255,.18); }
.top-links { display: flex; gap: 32px; }
.top-links a { position: relative; }
.top-links a::after { content: ''; position: absolute; inset: auto 0 -5px; height: 2px; background: var(--ink); transform: scaleX(0); transition: transform .2s; }
.top-links a:hover::after { transform: scaleX(1); }
.nav-actions { display: flex; align-items: center; justify-self: end; gap: 12px; }
.sound-button { width: 42px !important; height: 42px !important; border: 2px solid var(--ink) !important; border-radius: 50% !important; background: white !important; color: var(--ink) !important; cursor: pointer; }

.buy-button, .x-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 55px;
  padding: 0 22px;
  border: 2px solid var(--ink);
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
  box-shadow: 6px 6px 0 var(--ink);
  transition: transform .18s, box-shadow .18s, background .18s;
}
.buy-button { background: var(--acid); }
.x-button { background: #fff; }
.buy-button:hover, .x-button:hover { transform: translate(4px, 4px); box-shadow: 2px 2px 0 var(--ink); }
.buy-button.compact { min-height: 42px; padding: 0 16px; box-shadow: 4px 4px 0 var(--ink); }

.side-dock {
  position: fixed;
  z-index: 35;
  left: 18px;
  top: 50%;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transform: translateY(-50%);
  padding: 7px;
  border: 1px solid rgba(0,0,0,.22);
  border-radius: 50px;
  background: rgba(255,255,255,.6);
  backdrop-filter: blur(14px);
}
.side-dock a { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font: 800 8px/1 monospace; transition: .2s; }
.side-dock a:hover { background: var(--ink); color: #fff; transform: rotate(-12deg) scale(1.05); }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: center;
  gap: 3vw;
  padding: 128px 6vw 72px;
  isolation: isolate;
  background: radial-gradient(circle at 70% 15%, var(--signal) 0 15%, transparent 48%), linear-gradient(120deg, #f8f8f5, #e6e6e9);
  transition: background .45s ease;
}
.hero::before { content: ''; position: absolute; z-index: -2; width: 48vw; height: 48vw; max-width: 760px; max-height: 760px; right: 0; top: 46%; translate: 22% -50%; border: 1px solid #9b9ca3; border-radius: 50%; box-shadow: 0 0 0 70px var(--signal-soft), 0 0 0 71px #c4c4c8; transition: box-shadow .4s; }
.hero::after { content: 'P / O / N / S / C'; position: absolute; left: -31px; bottom: 22%; rotate: -90deg; font: 800 9px/1 monospace; letter-spacing: .32em; }
.hero-copy { position: relative; z-index: 2; max-width: 700px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 8px 12px; border: 1px solid; border-radius: 100px; font: 800 10px/1 monospace; letter-spacing: .15em; background: #fff; }
h1, h2 { text-wrap: balance; }
.hero h1 { margin: 0; font: 900 clamp(64px, 7.6vw, 138px)/.78 Arial Black, Arial, sans-serif; letter-spacing: -.075em; transform: scaleX(.92); transform-origin: left; }
.hero-lede { max-width: 580px; margin: 30px 0; font-size: clamp(16px, 1.4vw, 21px); line-height: 1.45; font-weight: 600; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.keyboard-hint { display: flex; align-items: center; gap: 8px; margin: 26px 0 0; font: 800 9px/1 monospace; letter-spacing: .12em; color: #55565e; }
.keyboard-hint kbd { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #777; border-radius: 4px; background: #fff; color: #111; box-shadow: 2px 2px 0 #999; }
.hero-object { --rx: 0deg; --ry: 0deg; position: relative; min-height: min(70vw, 760px); display: grid; place-items: center; perspective: 1200px; }
.crystal-frame { position: relative; z-index: 3; width: min(36vw, 530px); aspect-ratio: 1; border-radius: 46% 54% 42% 58% / 50% 45% 55% 50%; overflow: hidden; filter: drop-shadow(0 40px 32px rgba(19,19,28,.18)) var(--mode-filter); transform: rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(3deg); transition: transform .15s ease-out, filter .4s; animation: levitate 4.5s ease-in-out infinite; }
.crystal-frame::after { content: ''; position: absolute; inset: 0; background: linear-gradient(112deg, transparent 30%, var(--signal-soft) 46%, rgba(255,96,194,.16) 51%, transparent 60%); mix-blend-mode: color; pointer-events: none; }
.crystal-frame img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.prism-flare { position: absolute; width: 9px; height: 9px; background: #fff; box-shadow: 0 0 18px 8px #fff, 18px 0 25px 2px #5882ff, -14px 0 20px 2px #ff49b0; border-radius: 50%; animation: flare 2.4s ease-in-out infinite; }
.flare-one { left: 27%; top: 20%; }
.flare-two { right: 21%; bottom: 24%; animation-delay: -1.2s; }
.orbit { position: absolute; z-index: 5; width: 86%; height: 36%; border: 2px solid #151519; border-radius: 50%; transform: rotate(-12deg); animation: orbit 12s linear infinite; pointer-events: none; }
.orbit-two { width: 72%; height: 55%; transform: rotate(62deg); animation-duration: 17s; animation-direction: reverse; }
.orbit span { position: absolute; left: 8%; top: -12px; padding: 5px 10px; background: var(--pink); color: #fff; border: 2px solid #111; font: 900 9px/1 monospace; letter-spacing: .12em; white-space: nowrap; }
.orbit-two span { left: auto; right: 8%; background: var(--blue); }
.tune-button { position: absolute !important; z-index: 8; right: 4%; bottom: 10%; height: auto !important; padding: 13px 16px !important; border: 2px solid var(--ink) !important; border-radius: 4px !important; background: #fff !important; color: var(--ink) !important; font: 900 10px/1 monospace !important; letter-spacing: .1em; transform: rotate(-5deg); box-shadow: 4px 4px 0 var(--ink); cursor: pointer; }
.tune-button:hover { background: var(--acid) !important; transform: rotate(0deg) scale(1.04); }
.floating-tag { position: absolute; z-index: 4; padding: 10px 12px; border: 1px solid #222; background: rgba(255,255,255,.78); backdrop-filter: blur(8px); font: 800 8px/1.45 monospace; letter-spacing: .13em; }
.tag-one { top: 18%; right: 4%; transform: rotate(5deg); }
.tag-two { right: 43%; bottom: 9%; transform: rotate(-6deg); }
.scroll-cue { position: absolute; bottom: 18px; left: 50%; display: flex; align-items: center; gap: 15px; transform: translateX(-50%); font: 800 8px/1 monospace; letter-spacing: .18em; }
.scroll-cue i { width: 42px; height: 1px; background: #111; animation: pulse-line 1.5s infinite; }

.ticker { overflow: hidden; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); background: var(--ink); color: white; transform: rotate(-1deg) scale(1.02); }
.ticker > div { width: max-content; display: flex; align-items: center; gap: 34px; padding: 15px 0; animation: marquee 23s linear infinite; }
.ticker span { font: 900 18px/1 Arial Black, sans-serif; letter-spacing: .04em; }
.ticker svg { width: 15px; color: var(--acid); }

.section-head, .decoder-topline { display: flex; justify-content: space-between; gap: 30px; padding: 26px 5vw; border-bottom: 1px solid #7f8086; font: 800 9px/1 monospace; letter-spacing: .16em; }
.story-section { position: relative; min-height: 900px; padding-bottom: 80px; background: #e5e5e7; overflow: hidden; }
.story-section::before { content: 'UNSENT'; position: absolute; right: -2vw; bottom: -7vw; color: rgba(255,255,255,.48); font: 900 20vw/.7 Arial Black, sans-serif; letter-spacing: -.08em; }
.story-stage { position: relative; min-height: 740px; display: grid; grid-template-columns: .55fr 1.45fr; align-items: center; gap: 7vw; max-width: 1450px; margin: auto; padding: 70px 7vw; }
.story-count { align-self: start; color: #b2b3b8; font: 900 clamp(120px, 18vw, 300px)/.8 Arial Black, sans-serif; letter-spacing: -.1em; }
.story-count small { display: block; margin: 28px 0 0 16px; color: var(--ink); font: 800 11px/1 monospace; letter-spacing: .1em; }
.story-card { position: relative; max-width: 760px; padding: 42px 45px 48px; border: 1px solid #222; background: rgba(255,255,255,.86); box-shadow: 18px 18px 0 var(--ink); animation: card-in .46s cubic-bezier(.2,.8,.2,1); }
.story-card::before { content: ''; position: absolute; z-index: -1; inset: -22px 22px 22px -22px; border: 1px dashed #8f9097; }
.story-kicker, .section-label { margin: 0 0 26px; font: 800 9px/1 monospace; letter-spacing: .18em; color: #676870; }
.story-card h2 { margin: 0 0 25px; font: 900 clamp(35px, 4vw, 72px)/.88 Arial Black, sans-serif; letter-spacing: -.055em; }
.story-main { margin: 0; font-size: clamp(17px, 1.55vw, 23px); line-height: 1.5; font-weight: 600; }
.story-side { margin: 36px 0 0; padding: 18px 0 0 32px; border-top: 1px solid #aaa; border-left: 5px solid var(--pink); font: 700 13px/1.55 monospace; color: #55565e; }
.story-controls { position: absolute; right: 9vw; bottom: 38px; display: flex; align-items: center; gap: 15px; }
.story-controls > button { width: 48px !important; height: 48px !important; border: 2px solid var(--ink) !important; border-radius: 50% !important; background: white !important; color: var(--ink) !important; cursor: pointer; }
.story-controls > button:hover { background: var(--acid) !important; transform: rotate(-8deg); }
.chapter-pips { display: flex; gap: 6px; }
.chapter-pips button { width: 22px; height: 5px; padding: 0; border: 0; background: #96979e; cursor: pointer; transition: .2s; }
.chapter-pips button.active { width: 46px; background: var(--ink); }

.world-section { min-height: 940px; display: grid; grid-template-columns: .7fr 1.3fr; background: white; border-top: 1px solid #222; border-bottom: 1px solid #222; }
.world-copy { display: flex; flex-direction: column; justify-content: center; padding: 9vw 5vw 9vw 7vw; border-right: 1px solid #222; }
.world-copy h2, .roadmap-copy h2 { margin: 0; font: 900 clamp(52px, 6.5vw, 108px)/.82 Arial Black, sans-serif; letter-spacing: -.07em; }
.world-copy > p:not(.section-label):not(.secret-message), .roadmap-copy > p:last-child { max-width: 560px; margin: 34px 0; font-size: 18px; line-height: 1.55; font-weight: 600; }
.collection-readout { display: flex; justify-content: space-between; align-items: end; max-width: 450px; padding: 16px 0; border-top: 2px solid; border-bottom: 2px solid; font: 800 10px/1 monospace; letter-spacing: .12em; }
.collection-readout strong { font: 900 38px/1 Arial Black, sans-serif; }
.secret-message { max-width: 470px; margin: 28px 0 0; padding: 18px; border: 1px dashed #999; background: #f3f3f0; font: 700 12px/1.5 monospace; opacity: .22; filter: blur(5px); transition: .5s; }
.secret-message.revealed { opacity: 1; filter: none; background: var(--acid); border-color: var(--ink); transform: rotate(-1deg); }
.world-art { position: relative; min-height: 760px; overflow: hidden; background: #ececef; isolation: isolate; }
.world-art::after { content: ''; position: absolute; z-index: 1; inset: 0; background: radial-gradient(circle at center, rgba(255,255,255,.96) 0, rgba(255,255,255,.18) 35%, transparent 68%); pointer-events: none; }
.world-art > img { width: 100%; height: 100%; object-fit: cover; filter: var(--mode-filter); transition: filter .4s, transform 7s ease; }
.world-art:hover > img { transform: scale(1.035); }
.prop-button { position: absolute !important; z-index: 4; width: 45px !important; height: 45px !important; border: 2px solid var(--ink) !important; border-radius: 50% !important; background: var(--acid) !important; color: var(--ink) !important; box-shadow: 4px 4px 0 var(--ink); cursor: pointer; animation: prop-pulse 2s ease-in-out infinite; }
.prop-button span { position: absolute; top: 51px; left: 50%; width: max-content; max-width: 110px; padding: 5px 7px; transform: translateX(-50%); background: var(--ink); color: #fff; font: 800 8px/1 monospace; letter-spacing: .07em; opacity: 0; pointer-events: none; transition: .2s; }
.prop-button:hover span, .prop-button:focus-visible span { opacity: 1; }
.prop-button.collected { background: var(--pink) !important; color: #fff !important; animation: none; transform: scale(.84) rotate(15deg); }

.decoder-section { min-height: 830px; padding-bottom: 80px; background: #111116; color: #f4f4ef; }
.decoder-topline { border-color: #56565d; }
.decoder-grid { display: grid; grid-template-columns: 1fr 1.1fr .72fr; gap: 3vw; max-width: 1500px; margin: auto; padding: 100px 6vw 30px; align-items: center; }
.decoder-dial { min-width: 0; }
.dial-number { font: 900 clamp(115px, 15vw, 240px)/.76 Arial Black, sans-serif; letter-spacing: -.1em; color: transparent; -webkit-text-stroke: 2px #f4f4ef; }
.decoder-dial > span { display: block; margin: 22px 0 40px; color: #a6a6ac; font: 800 10px/1 monospace; letter-spacing: .17em; }
.frequency-slider { padding: 20px 0; }
.frequency-slider [data-slot='slider-track'] { height: 6px !important; border-radius: 0 !important; background: #45454b !important; overflow: visible !important; }
.frequency-slider [data-slot='slider-range'] { background: linear-gradient(90deg, var(--blue), var(--pink), var(--acid)) !important; }
.frequency-slider [data-slot='slider-thumb'] { width: 28px !important; height: 40px !important; border: 2px solid #fff !important; border-radius: 2px !important; background: var(--ink) !important; box-shadow: 5px 5px 0 var(--pink); cursor: ew-resize; }
.frequency-marks { display: flex; justify-content: space-between; padding: 10px 0; }
.frequency-marks i { width: 1px; height: 8px; background: #777780; }
.frequency-marks i:nth-child(5n + 1) { height: 18px; background: #fff; }
.decoded-message { min-height: 410px; display: flex; flex-direction: column; justify-content: center; padding: 46px; border: 1px solid #64646c; background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.01)); animation: card-in .35s ease; }
.decoded-message > p { display: flex; align-items: center; gap: 8px; margin: 0 0 42px; color: var(--acid); font: 800 10px/1 monospace; letter-spacing: .15em; }
.decoded-message h2 { margin: 0; font: 900 clamp(36px, 4.4vw, 72px)/.92 Arial Black, sans-serif; letter-spacing: -.055em; }
.decoded-message blockquote { margin: 38px 0 0; padding-left: 20px; border-left: 3px solid var(--pink); font: 600 16px/1.6 monospace; color: #c9c9ce; }
.scan-window { position: relative; height: 490px; overflow: hidden; border: 1px solid #66666d; background: radial-gradient(circle, #313139, #17171d 70%); }
.scan-letter { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); color: rgba(255,255,255,.08); font: 900 280px/1 Arial Black, sans-serif; }
.scan-window > i { position: absolute; z-index: 3; inset: 0 0 auto; height: 2px; background: var(--acid); box-shadow: 0 0 24px 5px var(--acid); transition: transform .25s ease; }
.scan-noise { position: absolute; inset: 0; opacity: .27; background: repeating-linear-gradient(0deg, transparent 0 4px, rgba(255,255,255,.17) 5px 6px); animation: scan-noise .22s steps(2) infinite; }

.roadmap-section { position: relative; min-height: 1080px; display: grid; grid-template-columns: .65fr 1.35fr; align-items: center; gap: 3vw; padding: 110px 6vw; background: #f0f0ed; overflow: hidden; }
.roadmap-section::before { content: ''; position: absolute; width: 45vw; height: 45vw; left: -25vw; bottom: -20vw; border: 1px solid #aaa; border-radius: 50%; box-shadow: 0 0 0 70px #fff, 0 0 0 71px #aaa; }
.roadmap-copy { position: relative; z-index: 2; }
.constellation { position: relative; width: min(68vw, 820px); aspect-ratio: 1; margin-left: auto; }
.constellation svg { position: absolute; inset: 5%; width: 90%; height: 90%; overflow: visible; }
.constellation path { fill: none; stroke: #242429; stroke-width: .32; stroke-dasharray: 1.5 2; animation: dash 30s linear infinite; }
.constellation .inner-path { stroke: var(--pink); stroke-width: .2; stroke-dasharray: .8 2.5; animation-direction: reverse; animation-duration: 22s; }
.map-centre { position: absolute; z-index: 2; inset: 50% auto auto 50%; width: 42%; min-height: 42%; display: flex; flex-direction: column; align-items: center; justify-content: center; transform: translate(-50%,-50%); padding: 30px; border: 2px solid var(--ink); border-radius: 50%; background: rgba(255,255,255,.9); text-align: center; box-shadow: 0 0 0 14px rgba(255,255,255,.5), 0 0 0 15px #9d9ea5; }
.map-centre::before { content: 'P'; position: absolute; z-index: -1; color: rgba(67,104,255,.08); font: 900 220px/1 Arial Black, sans-serif; }
.map-centre > span { margin-bottom: 13px; color: var(--pink); font: 900 9px/1 monospace; letter-spacing: .15em; }
.map-centre strong { font: 900 clamp(24px, 3vw, 44px)/.9 Arial Black, sans-serif; letter-spacing: -.05em; }
.map-centre p { margin: 18px 0 0; font: 600 12px/1.55 monospace; }
.map-node { position: absolute; z-index: 4; width: 62px; height: 62px; display: grid; place-items: center; transform: translate(-50%,-50%); border: 2px solid var(--ink); border-radius: 50%; background: #fff; color: var(--ink); font: 900 10px/1 monospace; cursor: pointer; box-shadow: 5px 5px 0 var(--ink); transition: .22s; }
.map-node i { position: absolute; width: 12px; height: 12px; border: 2px solid #111; border-radius: 50%; background: var(--acid); transform: translate(28px,-27px); }
.map-node:hover, .map-node.active { background: var(--ink); color: #fff; transform: translate(-50%,-50%) scale(1.14) rotate(8deg); }
.map-node.active i { background: var(--pink); box-shadow: 0 0 19px var(--pink); }
.map-hint { position: absolute; right: 6vw; bottom: 48px; display: flex; align-items: center; gap: 8px; font: 800 9px/1 monospace; letter-spacing: .13em; }

.final-section { position: relative; min-height: 760px; display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 4vw; padding: 80px 8vw; overflow: hidden; background: var(--ink); color: #fff; }
.final-section::before { content: ''; position: absolute; width: 460px; height: 460px; right: -180px; top: -180px; border: 1px solid #555; border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 71px #555; }
.final-prism { position: relative; width: min(40vw, 530px); aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: #fff; box-shadow: 0 0 100px rgba(255,255,255,.16); animation: levitate 5s ease-in-out infinite; }
.final-prism img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.4) contrast(1.08); mix-blend-mode: screen; }
.final-prism::after { content: ''; position: absolute; inset: 0; background: conic-gradient(from 40deg, rgba(67,104,255,.4), transparent 25%, rgba(255,77,184,.4), transparent 55%, rgba(215,255,40,.25), transparent); mix-blend-mode: color; animation: orbit 10s linear infinite; }
.final-copy { position: relative; z-index: 2; }
.final-copy > p { color: var(--acid); font: 800 10px/1 monospace; letter-spacing: .18em; }
.final-copy h2 { margin: 22px 0 45px; font: 900 clamp(62px, 7.5vw, 126px)/.78 Arial Black, sans-serif; letter-spacing: -.075em; }
.final-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.buy-button.dark { border-color: #fff; box-shadow: 6px 6px 0 #fff; color: var(--ink); }
.x-button.dark { border-color: #fff; box-shadow: 6px 6px 0 #fff; background: transparent; color: #fff; }

footer { min-height: 120px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; padding: 0 5vw; border-top: 1px solid #444; background: var(--ink); color: #fff; font: 800 9px/1 monospace; letter-spacing: .12em; }
footer > p { text-align: center; }
footer > a { justify-self: end; }
.footer-brand .brand-mark { background: #fff; color: var(--ink); }

@keyframes levitate { 50% { translate: 0 -16px; } }
@keyframes orbit { to { rotate: 360deg; } }
@keyframes pulse-line { 50% { transform: scaleX(.35); transform-origin: right; } }
@keyframes flare { 50% { transform: scale(1.7) rotate(45deg); opacity: .35; } }
@keyframes live { 50% { opacity: .35; } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes card-in { from { opacity: 0; transform: translateX(35px) rotate(1deg); } }
@keyframes prop-pulse { 50% { transform: translateY(-5px); box-shadow: 4px 9px 0 var(--ink); } }
@keyframes scan-noise { 50% { transform: translateY(5px); opacity: .16; } }
@keyframes dash { to { stroke-dashoffset: -100; } }
@keyframes signal-burst { 50% { opacity: .32; filter: contrast(2); } }

@media (max-width: 1040px) {
  .top-links { display: none; }
  .topbar { grid-template-columns: 1fr 1fr; }
  .hero { grid-template-columns: 1fr 1fr; padding-inline: 5vw; }
  .tag-one, .tag-two { display: none; }
  .world-section { grid-template-columns: 1fr; }
  .world-copy { border-right: 0; border-bottom: 1px solid; padding: 110px 8vw 80px; }
  .world-art { min-height: 720px; }
  .decoder-grid { grid-template-columns: 1fr 1fr; }
  .scan-window { grid-column: 1 / -1; height: 280px; }
  .scan-letter { font-size: 210px; }
  .roadmap-section { grid-template-columns: 1fr; padding-top: 100px; }
  .roadmap-copy { max-width: 680px; }
  .constellation { width: min(86vw, 760px); margin: 40px auto 0; }
}

@media (max-width: 760px) {
  .side-dock { display: none; }
  .topbar { padding: 0 18px; }
  .brand span:last-child { display: none; }
  .nav-actions { gap: 8px; }
  .buy-button.compact { font-size: 9px; padding-inline: 11px; }
  .hero { grid-template-columns: 1fr; padding: 125px 20px 70px; }
  .hero h1 { font-size: clamp(58px, 18vw, 100px); }
  .hero-object { min-height: 480px; margin-top: -24px; }
  .crystal-frame { width: min(82vw, 470px); }
  .hero::before { width: 96vw; height: 96vw; top: 76%; right: 10%; }
  .hero::after, .scroll-cue { display: none; }
  .orbit { width: 96%; }
  .tune-button { right: 0; bottom: 6%; }
  .story-section { min-height: 840px; }
  .section-head, .decoder-topline { align-items: flex-start; flex-direction: column; padding-inline: 20px; }
  .story-stage { min-height: 720px; display: block; padding: 62px 22px 110px; }
  .story-count { position: absolute; top: 20px; right: 12px; font-size: 170px; opacity: .4; }
  .story-card { padding: 35px 25px; box-shadow: 10px 10px 0 var(--ink); }
  .story-card h2 { font-size: 39px; }
  .story-controls { right: 22px; bottom: 38px; }
  .world-copy { padding: 90px 24px 70px; }
  .world-copy h2, .roadmap-copy h2 { font-size: clamp(50px, 15vw, 80px); }
  .world-art { min-height: 620px; }
  .world-art > img { object-position: center; }
  .prop-button { width: 41px !important; height: 41px !important; }
  .decoder-section { min-height: 1040px; }
  .decoder-grid { grid-template-columns: 1fr; padding: 80px 22px 20px; }
  .dial-number { font-size: 38vw; }
  .decoded-message { min-height: 360px; padding: 34px 24px; }
  .scan-window { grid-column: auto; }
  .roadmap-section { min-height: 900px; padding: 90px 22px 100px; }
  .constellation { width: 96vw; margin-left: -4vw; }
  .map-centre { width: 48%; min-height: 48%; padding: 19px; }
  .map-centre strong { font-size: 24px; }
  .map-centre p { font-size: 9px; }
  .map-node { width: 49px; height: 49px; }
  .map-node i { transform: translate(22px,-22px); }
  .map-hint { bottom: 36px; }
  .final-section { grid-template-columns: 1fr; padding: 90px 22px; }
  .final-prism { width: min(82vw, 480px); }
  .final-copy h2 { font-size: clamp(58px, 17vw, 92px); }
  footer { grid-template-columns: 1fr; min-height: 240px; padding: 45px 22px; text-align: center; }
  footer > *, footer > a, .footer-brand { justify-self: center; }
}

@media (max-width: 480px) {
  .hero-actions > a, .final-actions > a { width: 100%; }
  .sound-button { width: 36px !important; height: 36px !important; }
  .signal-notice { left: 12px; right: auto; bottom: 12px; }
  .map-centre p { display: none; }
  .map-centre { width: 44%; min-height: 44%; }
  .map-node { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Standalone domain package controls — no framework CSS required. */
.plain-icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 2px solid var(--ink); border-radius: 50%; background: white; color: var(--ink); font-size: 18px; cursor: pointer; }
.plain-story-button { width: 48px; height: 48px; display: grid; place-items: center; border: 2px solid var(--ink); border-radius: 50%; background: white; color: var(--ink); font-size: 20px; cursor: pointer; }
.plain-story-button:hover { background: var(--acid); transform: rotate(-8deg); }
.static-frequency { width: 100%; height: 40px; appearance: none; background: transparent; cursor: ew-resize; }
.static-frequency::-webkit-slider-runnable-track { height: 6px; background: linear-gradient(90deg, var(--blue), var(--pink), var(--acid)); }
.static-frequency::-moz-range-track { height: 6px; background: linear-gradient(90deg, var(--blue), var(--pink), var(--acid)); }
.static-frequency::-webkit-slider-thumb { appearance: none; width: 28px; height: 40px; margin-top: -17px; border: 2px solid #fff; border-radius: 2px; background: var(--ink); box-shadow: 5px 5px 0 var(--pink); }
.static-frequency::-moz-range-thumb { width: 28px; height: 40px; border: 2px solid #fff; border-radius: 2px; background: var(--ink); box-shadow: 5px 5px 0 var(--pink); }
.static-prop { display: grid; place-items: center; font: 900 18px/1 Arial, sans-serif; }
.static-prop.is-collected { background: var(--pink) !important; color: white !important; animation: none; transform: scale(.84) rotate(15deg); }
.static-prop.is-collected .prop-label { opacity: 1; }
