.world-page {
  --world-ink: #f7f2ff;
  --world-muted: #bdb2d1;
  --world-violet: #9d5cff;
  --world-hot: #e35aff;
  --world-cyan: #57f1ff;
  --world-green: #7fffc2;
  min-height: 100dvh;
  overflow: hidden;
  color: var(--world-ink);
  font-family: Inter, "Avenir Next", ui-sans-serif, system-ui, sans-serif;
  background: #06020d;
}

.world-page::before { display: none; }

.world-page .skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: 10px 14px;
  transform: translateY(-150%);
  border: 1px solid var(--world-cyan);
  background: #0a0315;
}

.world-page .skip-link:focus { transform: translateY(0); }

.world-topbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 80;
  border: 0;
  background: linear-gradient(180deg, rgba(5, 1, 12, .84), rgba(5, 1, 12, 0));
  box-shadow: none;
  backdrop-filter: none;
}

.world-topbar .nav { min-height: 78px; }
.world-topbar .brand { font-family: "Space Mono", monospace; font-size: 17px; letter-spacing: .16em; }
.world-topbar .brand::before { width: 44px; height: 44px; }
.world-topbar .navlinks a,
.world-topbar .navlinks a[href="/subscription"],
.world-topbar .nav-login,
.world-topbar .nav-cta,
.world-topbar .nav-logout {
  min-height: 36px !important;
  padding: 0 12px;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  font-family: "Space Mono", monospace;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.world-topbar .navlinks a:hover,
.world-topbar .navlinks a:focus-visible { border-color: rgba(87, 241, 255, .34); color: #fff; background: rgba(87, 241, 255, .07); }
.world-topbar .navlinks .nav-cta { border: 1px solid rgba(227, 90, 255, .56); background: rgba(108, 42, 158, .25); }

.void-world { position: relative; min-height: 100dvh; isolation: isolate; }
.world-stage { position: relative; width: 100%; min-height: 100dvh; overflow: hidden; perspective: 1200px; }
.world-layer,
.world-location,
.world-ground { position: absolute; transform: translate3d(calc(var(--pointer-x, 0) * var(--shift-x, 0px)), calc(var(--pointer-y, 0) * var(--shift-y, 0px)), 0); transition: transform .18s cubic-bezier(.2,.7,.2,1); will-change: transform; }

.world-sky {
  inset: -5%;
  --shift-x: -12px;
  --shift-y: -8px;
  background:
    radial-gradient(circle at 52% 40%, rgba(95, 31, 164, .28), transparent 19%),
    radial-gradient(circle at 80% 22%, rgba(32, 140, 171, .13), transparent 24%),
    radial-gradient(circle at 17% 34%, rgba(191, 44, 183, .11), transparent 22%),
    radial-gradient(circle at 50% 120%, #34125e 0, #110621 46%, #05010b 75%);
}

.world-sky::before,
.world-sky::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .62;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.9) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(87,241,255,.75) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(227,90,255,.65) 0 1px, transparent 1.5px);
  background-size: 127px 113px, 173px 157px, 211px 193px;
  background-position: 13px 19px, 61px 47px, 107px 5px;
}

.world-sky::after { opacity: .22; transform: scale(1.35) rotate(8deg); filter: blur(.4px); }

.world-moon {
  top: 12%;
  right: 20%;
  width: clamp(150px, 17vw, 300px);
  aspect-ratio: 1;
  --shift-x: -20px;
  --shift-y: -14px;
  border: 1px solid rgba(163, 104, 255, .18);
  border-radius: 50%;
  background:
    radial-gradient(circle at 36% 31%, rgba(255,255,255,.22) 0 2%, transparent 2.5%),
    radial-gradient(circle at 62% 68%, rgba(34, 6, 56, .5) 0 9%, transparent 10%),
    linear-gradient(145deg, #7449b1, #211238 62%, #0c0713);
  box-shadow: inset -28px -30px 56px #09030f, 0 0 90px rgba(149, 89, 255, .23);
  opacity: .58;
}

.world-moon::after { content: ""; position: absolute; inset: -10%; border: 1px solid rgba(87,241,255,.09); border-radius: 46% 54% 52% 48%; transform: rotate(27deg); }

.world-far-city {
  inset: auto -4% 12%;
  height: 35%;
  --shift-x: -24px;
  --shift-y: -10px;
  opacity: .42;
  clip-path: polygon(0 100%,0 68%,4% 66%,5% 42%,7% 42%,8% 64%,14% 62%,16% 20%,17% 20%,18% 60%,24% 58%,25% 37%,27% 37%,28% 58%,35% 54%,37% 6%,38% 6%,39% 53%,45% 50%,47% 28%,49% 28%,50% 50%,57% 47%,59% 16%,61% 16%,62% 48%,70% 54%,73% 36%,75% 36%,76% 56%,83% 61%,85% 24%,87% 24%,88% 62%,94% 66%,95% 48%,97% 48%,98% 68%,100% 70%,100% 100%);
  background: linear-gradient(180deg, rgba(74,35,111,.8), #080210 72%);
  filter: drop-shadow(0 -9px 22px rgba(134,72,255,.22));
}

.world-runes {
  inset: 12% 13% 20%;
  --shift-x: -34px;
  --shift-y: -20px;
  opacity: .24;
  background:
    linear-gradient(120deg, transparent 48%, rgba(87,241,255,.32) 49%, transparent 50%) 4% 12% / 170px 170px no-repeat,
    linear-gradient(60deg, transparent 48%, rgba(227,90,255,.38) 49%, transparent 50%) 91% 18% / 210px 210px no-repeat;
}

.world-particles { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.world-particles i { position: absolute; left: var(--x); top: var(--y); width: var(--size); height: var(--size); border-radius: 50%; background: var(--color); box-shadow: 0 0 14px currentColor; opacity: 0; animation: mote var(--duration) linear var(--delay) infinite; }

@keyframes mote { 0% { opacity: 0; transform: translate3d(0, 30px, 0) scale(.4); } 18% { opacity: .7; } 80% { opacity: .25; } 100% { opacity: 0; transform: translate3d(var(--drift), -150px, 0) scale(1.4); } }

.world-intro {
  position: absolute;
  z-index: 20;
  top: 18%;
  left: max(5vw, calc((100vw - 1440px) / 2));
  width: min(500px, 37vw);
  animation: world-enter .9s .15s both;
}

@keyframes world-enter { from { opacity: 0; transform: translateY(18px); } }

.world-kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--world-green); font: 700 10px/1.4 "Space Mono", monospace; letter-spacing: .15em; text-transform: uppercase; }
.world-kicker span { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 14px currentColor; animation: online 1.8s ease-in-out infinite; }
@keyframes online { 50% { opacity: .35; } }

.world-intro h1 { margin: 0; font-size: clamp(42px, 5.6vw, 84px); line-height: .92; letter-spacing: -.04em; text-transform: uppercase; text-wrap: balance; }
.world-intro h1 em { display:inline-block; color: transparent; font-size:.78em; font-style: normal; line-height:1.03; letter-spacing:-.025em; white-space:nowrap; -webkit-text-stroke: .85px rgba(233, 207, 255, .72); text-shadow: 0 0 26px rgba(157,92,255,.17); }
.world-intro > p:not(.world-kicker) { max-width: 430px; margin: 24px 0 0; color: #cfc4dc; font-size: 14px; }
.world-intro-actions { display: flex; align-items: center; gap: 18px; margin-top: 27px; }
.world-primary,
.lore-action { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 19px; border: 1px solid rgba(227,90,255,.7); border-radius: 2px; color: #fff; background: linear-gradient(135deg, rgba(126,34,206,.82), rgba(79,70,229,.74)); box-shadow: 0 0 34px rgba(157,92,255,.2), inset 0 0 22px rgba(255,255,255,.05); font: 700 11px/1 "Space Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.world-text-button { padding: 10px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.28); color: var(--world-muted); background: transparent; font: 700 11px/1 "Space Mono", monospace; text-transform: uppercase; cursor: pointer; }

.world-location { z-index: 12; }
.location-gate { left: 7%; bottom: 14%; width: min(19vw, 290px); --shift-x: 45px; --shift-y: 20px; }
.location-archive { right: 7%; bottom: 16%; width: min(16vw, 240px); --shift-x: -32px; --shift-y: 15px; }
.location-oracle { right: 24%; top: 25%; width: min(13vw, 180px); --shift-x: -44px; --shift-y: -22px; }
.location-core { left: 39%; top: 17%; width: min(10vw, 150px); --shift-x: 38px; --shift-y: -24px; }

.tech-gate { position: relative; width: 100%; aspect-ratio: .82; border: 10px solid rgba(63, 19, 96, .78); clip-path: polygon(50% 0, 93% 23%, 100% 78%, 72% 100%, 28% 100%, 0 78%, 7% 23%); background: radial-gradient(ellipse at 50% 68%, rgba(87,241,255,.25), transparent 45%), linear-gradient(180deg, rgba(32,7,54,.5), rgba(7,1,13,.9)); box-shadow: inset 0 0 40px rgba(227,90,255,.28), 0 0 42px rgba(157,92,255,.18); }
.tech-gate::before { content: ""; position: absolute; inset: 17%; border: 2px solid rgba(87,241,255,.4); clip-path: inherit; box-shadow: 0 0 28px rgba(87,241,255,.24); animation: gate-breathe 3.4s ease-in-out infinite; }
.tech-gate::after { content: ""; position: absolute; inset: 24% 32% 18%; background: linear-gradient(180deg, rgba(227,90,255,.08), rgba(87,241,255,.26)); clip-path: polygon(50% 0, 100% 100%, 0 100%); filter: blur(3px); }
.tech-gate i { position: absolute; width: 5px; height: 38%; bottom: 7%; background: #8e4be7; box-shadow: 0 0 14px #8e4be7; }
.tech-gate i:nth-child(1){left:8%}.tech-gate i:nth-child(2){right:8%}.tech-gate i:nth-child(3){left:49%;height:14%;bottom:82%}
@keyframes gate-breathe { 50% { opacity: .45; transform: scale(.94); } }

.archive-tower { position: relative; width: 100%; height: min(32vh, 300px); clip-path: polygon(8% 100%,13% 32%,22% 25%,27% 13%,39% 13%,43% 4%,57% 4%,61% 13%,73% 13%,78% 25%,87% 32%,92% 100%); background: linear-gradient(104deg,#10051d 0 19%,#2b103f 19% 43%,#421755 43% 56%,#251031 56% 79%,#0d0614 79%); border-bottom:4px solid rgba(157,92,255,.32); filter:drop-shadow(0 0 24px rgba(126,67,182,.18)); }
.archive-tower::before { content:""; position:absolute; inset:27% 33% 13%; clip-path:polygon(14% 0,86% 0,100% 12%,100% 88%,84% 100%,16% 100%,0 88%,0 12%); background:repeating-linear-gradient(180deg,rgba(168,100,221,.28) 0 3px,rgba(17,7,26,.3) 3px 18px); border:1px solid rgba(192,123,255,.24); }
.archive-tower::after { content:""; position:absolute; left:50%; top:0; width:22%; height:31%; transform:translate(-50%,-36%); clip-path:polygon(50% 0,100% 44%,72% 100%,28% 100%,0 44%); background:linear-gradient(120deg,#5e2b8c,#b06af0 48%,#35134e); box-shadow:0 0 18px rgba(174,102,241,.34); }
.archive-tower i { position:absolute; bottom:0; width:9%; height:var(--h,70%); clip-path:polygon(28% 0,100% 10%,72% 100%,0 100%); background:linear-gradient(90deg,#170823,#552166); opacity:.92; }.archive-tower i:nth-child(1){left:5%;--h:52%}.archive-tower i:nth-child(2){left:22%;--h:82%}.archive-tower i:nth-child(3){right:21%;--h:76%;transform:scaleX(-1)}.archive-tower i:nth-child(4){right:4%;--h:48%;transform:scaleX(-1)}

.core-ring { width:100%;aspect-ratio:1;border:2px solid rgba(227,90,255,.54);border-radius:50%;box-shadow:0 0 32px rgba(227,90,255,.28),inset 0 0 22px rgba(87,241,255,.2);animation:core-spin 12s linear infinite; }
.core-ring::before,.core-ring::after{content:"";position:absolute;inset:13%;border:1px dashed rgba(87,241,255,.52);border-radius:42%;transform:rotate(45deg)}
.core-ring::after{inset:35%;border-style:solid;background:#b24bff;box-shadow:0 0 25px #b24bff}
@keyframes core-spin{to{transform:rotate(360deg)}}

.hotspot { --node-accent:#a663ef; position: absolute; z-index: 5; left: 50%; bottom: -8px; display:flex; align-items:center; gap:9px; width:max-content; max-width:220px; padding:7px 10px 7px 7px; transform:translate(-50%,50%); border:1px solid color-mix(in srgb,var(--node-accent) 44%,transparent); border-radius:2px; color:#fff; background:linear-gradient(135deg,rgba(8,3,18,.9),rgba(34,17,44,.84)); box-shadow:0 12px 30px rgba(0,0,0,.34); backdrop-filter:blur(8px); cursor:pointer; font:700 10px/1.25 "Space Mono",monospace; letter-spacing:.03em; text-align:left; text-transform:uppercase; transition:border-color .2s,transform .2s,box-shadow .2s; }
.hotspot::before{content:"";position:absolute;left:50%;top:-8px;width:8px;height:8px;border:1px solid var(--node-accent);background:#110719;transform:translateX(-50%) rotate(45deg);box-shadow:0 0 11px color-mix(in srgb,var(--node-accent) 42%,transparent)}
.location-gate .hotspot{--node-accent:#9a67db}.location-archive .hotspot{--node-accent:#bc71ee}.location-oracle .hotspot{--node-accent:#b86bea}.location-core .hotspot{--node-accent:#d06eea}
.hotspot img { width:36px;height:36px;object-fit:contain;filter:drop-shadow(0 0 9px rgba(227,90,255,.56)); }
.hotspot small{display:inline;margin-right:5px;color:var(--world-cyan)}
.hotspot:hover,.hotspot:focus-visible{border-color:var(--node-accent);transform:translate(-50%,45%) scale(1.04);box-shadow:0 0 28px color-mix(in srgb,var(--node-accent) 24%,transparent)}

.voidex-actor { position:absolute; z-index:18; left:55%; bottom:4%; width:min(38vw,600px); height:min(73vh,720px); padding:0; border:0; background:transparent; transform:translateX(-50%); cursor:pointer; filter:drop-shadow(0 34px 28px rgba(0,0,0,.68)); animation: actor-enter 1.1s .08s both; }
@keyframes actor-enter { from { opacity:0; transform:translate(-50%,35px) scale(.96) } }
.voidex-actor img { position:relative; z-index:2; width:100%;height:100%;object-fit:contain;object-position:center bottom;transition:transform .28s ease,filter .28s ease; }
.voidex-actor:hover img,.voidex-actor:focus-visible img{transform:translateY(-6px) scale(1.012);filter:brightness(1.08) saturate(1.08)}
.voidex-actor:focus-visible{outline:0}
.voidex-actor:focus-visible::after{content:"";position:absolute;left:50%;top:20%;width:66px;height:66px;border:1px solid rgba(87,241,255,.58);transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
.actor-aura { position:absolute;z-index:0;left:50%;top:44%;width:64%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(156,61,255,.28),rgba(67,32,136,.11) 44%,transparent 69%);filter:blur(5px);animation:aura 3.2s ease-in-out infinite; }
.actor-aura::before,.actor-aura::after{content:"";position:absolute;inset:11%;border:1px solid rgba(87,241,255,.16);transform:rotate(45deg);animation:reverse-spin 18s linear infinite}.actor-aura::after{inset:24%;border-color:rgba(227,90,255,.26);animation-duration:11s;animation-direction:reverse}
@keyframes aura{50%{opacity:.55;transform:translate(-50%,-50%) scale(1.07)}}
@keyframes reverse-spin{to{transform:rotate(405deg)}}
.actor-shadow{position:absolute;z-index:1;left:50%;bottom:1%;width:68%;height:7%;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.72);filter:blur(14px)}

.voidex-dialogue { position:absolute;z-index:24;left:auto;right:3%;top:72px;width:min(240px,21vw);padding:12px 15px;border:1px solid rgba(87,241,255,.25);border-radius:2px;background:rgba(7,3,15,.84);box-shadow:0 18px 44px rgba(0,0,0,.3);backdrop-filter:blur(8px);pointer-events:none;transition:opacity .2s,transform .2s; }
.voidex-dialogue::before{content:"";position:absolute;left:-9px;bottom:14px;width:16px;height:16px;border-left:1px solid rgba(87,241,255,.25);border-bottom:1px solid rgba(87,241,255,.25);background:rgba(7,3,15,.9);transform:rotate(45deg)}
.dialogue-speaker{color:var(--world-cyan);font:700 9px/1 "Space Mono",monospace;letter-spacing:.15em}.voidex-dialogue p{margin:6px 0 0;color:#efe6fa;font-size:12px;line-height:1.45}
.voidex-dialogue.is-changing{opacity:0;transform:translateY(5px)}

.world-ground { z-index:8;left:-10%;right:-10%;bottom:-17%;height:44%;--shift-x:52px;--shift-y:30px;transform-origin:center bottom;transform:translate3d(calc(var(--pointer-x,0) * 52px),calc(var(--pointer-y,0) * 30px),0) rotateX(63deg);background:radial-gradient(ellipse at center,rgba(118,44,181,.22),transparent 56%);pointer-events:none; }
.ground-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(120,63,177,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(120,63,177,.18) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(180deg,transparent,#000 38%)}
.bridge{position:absolute;left:39%;top:0;width:22%;height:100%;clip-path:polygon(37% 0,63% 0,100% 100%,0 100%);background:repeating-linear-gradient(180deg,rgba(115,59,161,.28) 0 2px,transparent 2px 29px),linear-gradient(90deg,transparent,rgba(87,241,255,.1),transparent);border-top:1px solid rgba(87,241,255,.34)}

.archive-beacon{position:absolute;z-index:22;right:5.5%;bottom:11%;display:grid;width:198px;padding:13px 16px 12px;overflow:hidden;border:1px solid rgba(87,241,255,.34);clip-path:polygon(0 0,91% 0,100% 18%,100% 100%,9% 100%,0 82%);color:#e9e0f2;background:linear-gradient(135deg,rgba(12,7,20,.9),rgba(33,15,46,.82));transform:perspective(560px) rotateY(-8deg);transform-origin:right center;box-shadow:0 18px 36px rgba(0,0,0,.32);font-family:"Space Mono",monospace;pointer-events:none}
.archive-beacon::after{content:"";position:absolute;inset:-35% 0 auto;height:34%;background:linear-gradient(180deg,transparent,rgba(87,241,255,.13),transparent);animation:beacon-scan 4.8s steps(10,end) infinite}
@keyframes beacon-scan{to{transform:translateY(420%)}}
.archive-beacon-rune{position:absolute;right:12px;top:9px;color:var(--world-cyan);font-size:21px;line-height:1;opacity:.58;transform:rotate(45deg)}
.archive-beacon-label{color:#76efda;font-size:7px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.archive-beacon strong{display:block;margin-top:8px;color:var(--world-cyan);font:800 clamp(25px,2.25vw,36px)/1 "Space Mono",monospace;letter-spacing:-.08em;font-variant-numeric:tabular-nums;text-shadow:2px 0 rgba(228,87,255,.5)}
.archive-beacon-caption{margin-top:5px;color:#b9adbf;font-size:8px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.archive-beacon small{margin-top:9px;padding-top:8px;border-top:1px solid rgba(216,180,254,.14);color:#776f80;font-size:7px;letter-spacing:.08em;text-transform:uppercase}.archive-beacon small b{color:#e3d7ea;font-size:9px}
.public-stats-ready .archive-beacon strong{animation:beacon-lock .42s steps(4,end) both}@keyframes beacon-lock{from{opacity:.2;transform:translateX(7px)}}

.world-compass { position:absolute;z-index:30;right:24px;top:50%;display:grid;gap:4px;transform:translateY(-50%); }
.compass-label{margin:0 0 7px;color:#81758e;font:700 8px/1 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl;position:absolute;right:-1px;top:-84px}
.world-compass button{display:flex;align-items:center;gap:9px;width:45px;height:42px;padding:0 11px;overflow:hidden;border:1px solid rgba(216,180,254,.17);border-radius:2px;color:#fff;background:rgba(8,3,18,.54);backdrop-filter:blur(8px);cursor:pointer;transition:width .22s,border-color .2s,background .2s}.world-compass button:hover,.world-compass button:focus-visible{width:130px;border-color:rgba(87,241,255,.5);background:rgba(22,8,40,.88)}.world-compass b{flex:0 0 22px;color:var(--world-cyan);font:700 10px/1 "Space Mono",monospace}.world-compass span{white-space:nowrap;color:#ded4e7;font:700 10px/1 "Space Mono",monospace;text-transform:uppercase}

.world-hint{position:absolute;z-index:22;left:24px;bottom:19px;color:#81798b;font:700 9px/1 "Space Mono",monospace;letter-spacing:.08em;text-transform:uppercase}.mouse-mark{display:inline-block;width:12px;height:18px;margin-right:7px;border:1px solid #766c81;border-radius:8px;vertical-align:middle}.mouse-mark::after{content:"";display:block;width:2px;height:4px;margin:3px auto;background:var(--world-cyan);animation:mouse-wheel 1.6s infinite}@keyframes mouse-wheel{to{transform:translateY(5px);opacity:0}}
.world-legal{position:absolute;z-index:22;right:22px;bottom:18px;display:flex;gap:14px}.world-legal a{color:#81798b;font:700 9px/1 "Space Mono",monospace;text-transform:uppercase}.world-legal a:hover{color:#fff}

.lore-panel { position:fixed;inset:auto 5vw 5vh auto;width:min(480px,calc(100vw - 32px));max-height:min(720px,86dvh);margin:0;padding:34px;border:1px solid rgba(177,107,255,.45);border-radius:3px;color:#f7f2ff;background:linear-gradient(160deg,rgba(29,11,49,.96),rgba(7,3,15,.98));box-shadow:0 28px 90px rgba(0,0,0,.68),inset 0 0 40px rgba(116,45,174,.07);backdrop-filter:blur(20px);overflow:auto; }
.lore-panel[open]{animation:panel-in .3s ease-out both}@keyframes panel-in{from{opacity:0;transform:translateX(26px)}}
.lore-panel::backdrop{background:rgba(2,0,7,.58);backdrop-filter:blur(3px)}
.lore-close{position:absolute;right:17px;top:17px;width:34px;height:34px;border:1px solid rgba(216,180,254,.25);border-radius:2px;color:#fff;background:rgba(255,255,255,.04);font:400 23px/1 Manrope,sans-serif;cursor:pointer}.lore-close:hover{border-color:var(--world-cyan)}
.lore-index{color:var(--world-cyan);font:700 9px/1 "Space Mono",monospace;letter-spacing:.16em;text-transform:uppercase}.lore-rune{display:block;width:84px;height:84px;margin:25px 0 17px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(227,90,255,.35))}.lore-panel h2{max-width:370px;margin:0 0 15px;font-size:clamp(30px,4vw,48px);line-height:.96;letter-spacing:-.045em}.lore-panel p{color:#c8bcd2}.lore-panel ul{display:grid;gap:9px;margin:20px 0 25px;padding:0;list-style:none}.lore-panel li{position:relative;padding-left:18px;color:#e8dff0;font-size:13px}.lore-panel li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--world-green);box-shadow:0 0 9px var(--world-green);transform:rotate(45deg)}.lore-action{width:100%;margin-top:4px}.lore-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.lore-stats div{padding:16px;border:1px solid rgba(87,241,255,.16);background:rgba(87,241,255,.04)}.lore-stats strong{display:block;color:#fff;font:800 30px/1 Manrope,sans-serif}.lore-stats span{display:block;margin-top:7px;color:#9e91aa;font:700 9px/1.4 "Space Mono",monospace;text-transform:uppercase}

@media (max-width: 1050px) {
  .world-intro{top:17%;width:43vw}.voidex-actor{left:58%;width:min(44vw,560px)}.voidex-dialogue{left:auto;right:76px;top:74px;width:220px}.archive-beacon{right:76px;bottom:70px;width:174px}.location-core{left:45%}.location-oracle{right:17%}.location-archive{right:3%}.location-gate{left:3%}
}

@media (max-width: 820px) {
  .world-page{overflow:auto}.world-topbar{position:absolute}.world-topbar .nav{min-height:64px}.world-topbar .brand::before{width:40px;height:40px}.world-topbar .nav-toggle{border-color:rgba(216,180,254,.22);background:rgba(8,3,18,.7)}
  .world-stage{min-height:900px}.world-particles{display:none}.world-intro{top:98px;left:20px;width:calc(100% - 40px);text-align:center}.world-intro h1{font-size:clamp(40px,12vw,66px)}.world-intro>p:not(.world-kicker){max-width:550px;margin:17px auto 0}.world-kicker{justify-content:center;margin-bottom:14px}.world-intro-actions{justify-content:center;margin-top:18px}
  .voidex-actor{left:50%;bottom:5%;width:min(76vw,520px);height:52%;}.voidex-dialogue{left:auto;right:16px;top:auto;bottom:36%;width:min(220px,50vw)}
  .location-gate{left:3%;bottom:20%;width:24vw}.location-archive{right:2%;bottom:21%;width:22vw}.location-oracle{right:5%;top:39%;width:18vw}.location-core{left:7%;top:42%;width:17vw}
  .hotspot{padding:5px}.hotspot img{width:30px;height:30px}.hotspot span{display:none}
  .world-compass{top:auto;right:50%;bottom:14px;grid-template-columns:repeat(4,1fr);transform:translateX(50%)}.compass-label{display:none}.world-compass button,.world-compass button:hover,.world-compass button:focus-visible{width:54px;height:42px}.world-compass button span{display:none}.world-compass b{flex:1;text-align:center}
  .world-hint,.world-legal{display:none}.world-ground{bottom:-8%;height:32%}.archive-beacon{left:50%;right:auto;bottom:100px;width:154px;padding:10px 12px;transform:translateX(-50%)}.archive-beacon strong{font-size:23px}.archive-beacon-caption{font-size:7px}.lore-panel{inset:auto 12px 12px;width:calc(100vw - 24px);max-height:76dvh;padding:28px 22px}
}

@media (max-width: 520px) {
  .world-stage{min-height:820px}.world-intro{top:86px}.world-intro h1{font-size:41px}.world-intro>p:not(.world-kicker){font-size:12px}.world-intro-actions{gap:10px;flex-direction:column}.world-primary{min-height:42px}.world-text-button{padding:6px 0}
  .voidex-actor{bottom:5%;width:92vw;height:48%}.voidex-dialogue{right:9px;bottom:34%;width:170px;padding:9px 11px}.voidex-dialogue p{font-size:10px}
  .location-gate{bottom:18%;width:30vw}.location-archive{bottom:20%;width:26vw}.location-oracle{top:42%;width:22vw}.location-core{top:45%;width:21vw}.lore-stats{grid-template-columns:1fr}.lore-panel h2{font-size:34px}.lore-rune{width:64px;height:64px;margin-top:18px}
}

@media (prefers-reduced-motion: reduce) {
  .world-page *, .world-page *::before, .world-page *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .world-layer,.world-location,.world-ground{transform:none !important}
}

.voidex-lite .hotspot,.voidex-lite .voidex-dialogue,.voidex-lite .world-compass button{backdrop-filter:none}

/* WebGL low-poly scene. Raster fallback stays visible if WebGL or CDN fails. */
.world-webgl,
.world-webgl-fallback {
  position: absolute;
  inset: 0;
  z-index: 9;
  width: 100%;
  height: 100%;
}

.world-webgl {
  display: block;
  pointer-events: none;
  image-rendering: pixelated;
  opacity: 0;
  transition: opacity .6s ease;
}

.webgl-ready .world-webgl { opacity: 1; }

.world-webgl-fallback {
  display: grid;
  place-items: end center;
  pointer-events: none;
  transition: opacity .35s ease;
}

.world-webgl-fallback img {
  width: min(42vw, 620px);
  height: min(74vh, 720px);
  object-fit: contain;
  filter: drop-shadow(0 30px 35px rgba(0,0,0,.7));
}

.webgl-ready .world-webgl-fallback { opacity: 0; }
.webgl-ready .world-moon,
.webgl-ready .world-far-city,
.webgl-ready .world-runes,
.webgl-ready .tech-gate,
.webgl-ready .archive-tower,
.webgl-ready .core-ring,
.webgl-ready .world-ground { opacity: 0; }

.world-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  opacity: .19;
  background:
    linear-gradient(90deg, rgba(222,214,229,.018) 50%, rgba(0,0,0,.018) 50%) 0 0 / 4px 4px,
    repeating-linear-gradient(180deg, rgba(255,255,255,.022) 0 1px, rgba(0,0,0,.075) 1px 3px),
    radial-gradient(ellipse at center, transparent 48%, rgba(0,0,0,.38) 100%);
  mix-blend-mode: overlay;
}

.world-location { z-index: 23; }
.world-location .hotspot { bottom: 18px; }
.webgl-capable .world-location { width: 1px; height: 1px; }
.webgl-capable .location-gate { left: 19%; bottom: 32%; }
.webgl-capable .location-archive { right: 22%; bottom: 35%; }
.webgl-capable .location-oracle { right: 30%; top: 28%; }
.webgl-capable .location-core { left: 42%; top: 46%; }

.voidex-actor {
  z-index: 21;
  left: 56%;
  bottom: 6%;
  width: min(31vw, 470px);
  height: min(68vh, 680px);
  filter: none;
}

.voidex-actor span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.voidex-actor:hover,
.voidex-actor:focus-visible { background: transparent; }

.webgl-ready .world-particles { opacity: .25; }

@media (max-width: 820px) {
  .world-webgl-fallback img { width: min(82vw, 540px); height: 54%; }
  .voidex-actor { left: 50%; bottom: 4%; width: 68vw; height: 50%; }
  .webgl-capable .location-gate { left: 17%; bottom: 25%; }
  .webgl-capable .location-archive { right: 20%; bottom: 29%; }
  .webgl-capable .location-oracle { right: 12%; top: 39%; }
  .webgl-capable .location-core { left: 14%; top: 46%; }
}

@media (max-width: 520px) {
  .world-intro h1 em { letter-spacing: -.015em; }
  .webgl-capable .location-gate { left: 19%; }
}
