@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600&family=Cormorant+Garamond:wght@400;500&family=IBM+Plex+Mono:wght@400&family=Noto+Sans+JP:wght@300;400;500&display=swap');
:root{--bg:#080b09;--paper:#e6e7e2;--muted:#b0b3ad;--gold:#e6bd44;--line:#ffffff30;--mono:'IBM Plex Mono',monospace;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:var(--paper);font:14px 'Noto Sans JP',sans-serif;font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:5px}header{position:absolute;top:0;left:0;width:100%;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 3.6%;background:linear-gradient(#0007,transparent)}.brand{font:300 23px 'Noto Sans JP',sans-serif;letter-spacing:.3px;text-align:center;line-height:1}.brand small{display:block;font-size:12px;margin-top:7px;letter-spacing:1px}nav{display:flex;gap:35px;align-items:center;margin-left:auto;margin-right:5%}nav a,.text-button{font-size:10px;letter-spacing:1.3px;color:var(--muted)}nav a:hover,.text-button:hover{color:var(--gold)}.text-button{padding:0;border:0;background:none}.header-enter{font:10px var(--mono);letter-spacing:1px;background:#deded4cc;color:#171b16;border:0;padding:16px 22px;white-space:nowrap}.header-enter span{font-size:18px;margin-left:13px}.header-enter:hover{background:var(--gold)}.languages{display:flex;gap:10px;align-items:center;font-size:10px;color:var(--muted)}.languages button{border:0;background:none;font-size:10px;padding:3px;letter-spacing:1px}.languages button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px;color:var(--paper)}.scene{min-height:600px;position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid var(--line)}.scene-one{min-height:650px;padding-top:70px}.scene-image{position:absolute;inset:0;z-index:-3;background-image:url('assets/underground-atlas.png');background-size:auto 300%;background-repeat:no-repeat;background-position:center top}.scene-two .scene-image{background-position:center center}.scene-three .scene-image{background-position:center bottom}.scene-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#000b 0%,#0008 30%,#0002 63%,#0001),linear-gradient(0deg,#0004,transparent 28%)}.scene-content{padding:70px 6.2% 52px;width:100%;position:relative;z-index:2;pointer-events:none}.scene-content button{pointer-events:auto}.phase{font:11px var(--mono);letter-spacing:2px;color:#c5c8c0;margin:0 0 18px}.phase-tag{font:8px 'Noto Sans JP',sans-serif;letter-spacing:1px;display:inline-block;padding:4px 7px;border:1px solid #e6bd4470;color:var(--gold);margin-left:12px;vertical-align:middle}h1,.chapter-title{font:400 clamp(40px,4.2vw,64px)/1.1 var(--serif);letter-spacing:1px;margin:0 0 16px;white-space:nowrap}h2:not(.chapter-title),h3{font-size:clamp(18px,1.95vw,27px);font-weight:300;letter-spacing:2px;line-height:1.6;margin:0 0 29px}.story{font-size:13px;line-height:1.9;letter-spacing:.7px;color:#d2d6cd;margin:0 0 24px;max-width:520px}.english-note{font-size:10px;letter-spacing:1.5px;line-height:1.55;margin:0 0 18px;color:#c9ccc5}.outline-button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:320px;max-width:100%;border:1px solid #d4d9cd8c;background:#05080650;color:#e3e5df;padding:16px 20px;font-size:12px;letter-spacing:1.8px;text-align:left;transition:background .2s,border-color .2s}.outline-button .arrow{font-size:24px;line-height:1}.outline-button:hover{border-color:var(--gold);background:#e6bd4414}.inactive{width:max-content;min-width:185px;color:#c8cbc3;border-color:#a1aa9170;pointer-events:none}.footnote{font:8px var(--mono);letter-spacing:1px;color:#b3b7ae;margin:18px 0 0}.scene-caption{position:absolute;right:4%;bottom:100px;font-size:12px;letter-spacing:1px;line-height:1.7;text-shadow:0 2px 12px #000;margin:0;z-index:1}.scene-one .scene-caption{bottom:128px}.environment-exit{position:absolute;left:53%;top:30%;background:#101b16e6;box-shadow:0 4px 20px #0006;color:var(--gold);border:1px solid #929e7060;padding:12px 18px;transform:perspective(700px) rotateY(4deg);text-align:left;z-index:3}.environment-exit span{font:600 40px 'Barlow Condensed',sans-serif}.environment-exit small{display:block;font-size:10px;letter-spacing:1px;margin-top:2px}.environment-exit:hover{background:#233027;box-shadow:0 0 30px #e6bd4430}.wall-message{position:absolute;right:4%;top:26%;font:500 26px/.95 'Barlow Condensed',sans-serif;color:var(--gold);letter-spacing:2px;transform:rotate(-8deg);text-shadow:0 1px 5px #0008}.descend{position:absolute;bottom:22px;left:50%;font-size:25px;color:#dde3d0;transform:translateX(-50%)}.about{padding:55px 6.2%;display:grid;grid-template-columns:1fr 2fr;gap:40px;border-bottom:1px solid #ffffff15;background:#0d110e}.about .phase{margin-top:8px}.about h2{font-size:25px;margin-bottom:20px}.about p:not(.phase){font-size:12px;line-height:2;max-width:690px;color:#c8cdc2}.honest-note{font-size:10px!important;line-height:1.9!important;color:#a4afa0!important;border-top:1px solid #ffffff25;padding-top:17px;margin-top:22px}footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:30px 3.6%;color:#929b8e;font-size:10px;letter-spacing:1px}footer small{display:block;font-size:9px;margin-top:8px}footer p{color:#c8cdc2;font-size:11px}footer a{font:9px var(--mono)}dialog{background:#101811;color:var(--paper);border:1px solid #6d795e;max-width:630px;width:calc(100% - 30px);padding:32px;max-height:90dvh;overflow:auto;box-shadow:0 0 130px #0008}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}dialog .phase{margin-top:12px}dialog h2{font-size:25px!important;letter-spacing:1px!important;margin-bottom:20px!important}dialog .outline-button{width:100%}.close{position:absolute;top:7px;right:14px;background:none;border:0;font-size:29px;color:#d7dcd0}.map-intro{font-size:12px;color:var(--muted);margin:0 0 20px}.map-panel{border:1px solid #485342;background:#17201988}.map-label{display:flex;justify-content:space-between;margin:0 18px;padding:14px 0;border-bottom:1px solid #343c31;font-size:12px}.map-label small{font:8px var(--mono);display:block;margin-top:5px;letter-spacing:1px;color:var(--muted)}.map-code{font:25px 'Barlow Condensed',sans-serif;color:var(--gold)}.map-canvas{width:100%;padding:0 8px}.map-canvas svg{display:block;width:100%;max-height:45vh}.line.gray{stroke:#7a8178}.line.orange{stroke:#be865c}.line.blue{stroke:#758f92}.line.cream{stroke:#b9bbaa}.line.green{stroke:#91a675}.secret-path{stroke:var(--gold);stroke-dasharray:4 9;opacity:.6}.station{cursor:pointer}.station circle{fill:#182018;stroke:#d2d5c7;stroke-width:3}.station:hover circle,.station:focus-visible circle{fill:var(--gold)}.station .hit-area{fill:transparent;stroke:none;pointer-events:all}.station:hover .hit-area,.station:focus-visible .hit-area{fill:transparent}.station text{fill:#c7cdbd;font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:1px}.station .en{fill:#98a38e;font:8px var(--mono)}.unknown circle{stroke:var(--gold)}.unknown .pulse-ring{fill:none;stroke-width:1;opacity:.4;animation:pulse 3s ease-in-out infinite}.unknown .question{font:14px var(--mono);fill:var(--gold)}.unknown .unknown-label{fill:var(--gold);font:12px var(--mono);letter-spacing:2px}.map-bottom{border-top:1px solid #343c31;margin:0 18px;padding:14px 0;display:flex;justify-content:space-between;font:8px var(--mono);color:var(--muted);gap:12px}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:7px}.exit-sign{background:var(--gold);color:#192014;font:40px 'Barlow Condensed',sans-serif;padding:18px;margin-top:20px}.reset{margin-top:20px}.status-list{list-style:none;padding:0;display:grid;gap:24px;margin-top:30px}.status-list b{font:11px var(--mono);letter-spacing:1px;color:var(--gold)}.status-list span{display:block;font-size:12px;margin-top:9px;color:var(--muted)}@keyframes pulse{50%{opacity:1}}@media(min-width:1500px){.scene{min-height:690px}.scene-one{min-height:750px}.scene-content{padding-top:100px}.story{font-size:15px}}@media(max-width:1000px){header{gap:18px}nav{gap:20px;margin-right:0}.header-enter{padding:12px;font-size:8px}.brand{font-size:20px}.scene-caption{font-size:10px;right:3%}.scene-content{padding-left:6%}.environment-exit{left:60%;top:26%}.wall-message{font-size:23px}}@media(max-width:700px){header{padding:20px 6%;align-items:flex-start;gap:12px}.brand{font-size:18px;line-height:1.2}.brand small{font-size:10px;margin-top:3px}nav{display:none}.header-enter{margin-left:auto;padding:10px;font-size:7px;letter-spacing:.2px}.header-enter span{margin-left:5px;font-size:14px}.languages{gap:4px;font-size:9px;margin-top:7px}.languages button{font-size:9px;padding:2px}.scene{min-height:740px}.scene-one{min-height:820px;padding-top:85px}.scene-image{background-position:67% top;background-size:auto 300%}.scene-two .scene-image{background-position:65% center}.scene-three .scene-image{background-position:65% bottom}.scene-shade{background:linear-gradient(0deg,#000e 0%,#000a 37%,#0002 75%,#0005)}.scene-content{padding:320px 7% 45px}.scene-one .scene-content{padding-top:275px}h1,.chapter-title{font-size:36px;letter-spacing:.5px;white-space:normal;line-height:1.1}h2:not(.chapter-title),h3{font-size:17px;letter-spacing:1px;margin-bottom:22px}.phase{font-size:10px;margin-bottom:16px;letter-spacing:1.5px}.story{font-size:11px;line-height:2;letter-spacing:.3px;margin-bottom:21px}.english-note{font-size:9px;letter-spacing:1px}.outline-button{padding:15px 17px;width:100%;font-size:11px}.inactive{width:max-content;min-width:180px}.footnote{font-size:7px;line-height:1.8}.scene-caption{top:225px;right:7%;bottom:auto;font-size:10px;max-width:190px}.scene-one .scene-caption{top:265px;bottom:auto;right:7%}.environment-exit{top:145px;left:auto;right:16%;padding:8px 13px}.environment-exit span{font-size:34px}.environment-exit small{font-size:8px}.wall-message{top:105px;right:8%;font-size:24px}.descend{bottom:12px;font-size:20px}.about{padding:38px 7%;display:block}.about .phase{margin-bottom:24px}.about h2{font-size:23px}.about p:not(.phase){font-size:11px}footer{padding:26px 7%;align-items:flex-start;flex-wrap:wrap;gap:16px;font-size:8px}footer p{font-size:10px;margin:0}footer a{font-size:8px}dialog{padding:25px 18px}dialog h2{font-size:20px!important}.map-label{margin:0 12px}.map-bottom{font-size:7px;margin:0 12px}.map-canvas svg{max-height:43vh}.honest-note{font-size:9px!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* Match the three scene boundaries in the generated background atlas. */
.scene-one .scene-image{background-size:auto 307%}
.scene-two .scene-image{background-size:auto 316%;background-position:center 47.8%}
.scene-three .scene-image{background-size:auto 283%}
@media(max-width:700px){.scene-two .scene-image{background-position:65% 47.8%}}
/* Independent landscape images avoid enlarging slices of the atlas. */
.scene-one .scene-image{background-image:url('assets/exit-art.png');background-size:cover;background-position:center}
.scene-two .scene-image{background-image:url('assets/commons-art.png');background-size:cover;background-position:center}
.scene-three .scene-image{background-image:url('assets/city-art.png');background-size:cover;background-position:center}
@media(max-width:700px){.scene-one .scene-image{background-position:68% center}.scene-two .scene-image,.scene-three .scene-image{background-position:65% center}}

/* Let the quiet architectural illustrations carry the atmosphere. */
.scene-shade{background:linear-gradient(90deg,#0004 0%,#0002 35%,transparent 65%),linear-gradient(0deg,#0002,transparent 28%)}
.environment-exit,.wall-message{display:none}
@media(max-width:700px){.scene-shade{background:linear-gradient(0deg,#000e 0%,#000a 37%,#0001 75%,#0003)}}

/* Intermittent signal drift: the base text stays legible beneath clipped echoes. */
.unstable-text{position:relative;width:fit-content;max-width:100%;animation:signal-base 8.7s infinite;animation-delay:var(--signal-delay,0s)}
.unstable-text::before,.unstable-text::after{content:attr(data-echo) / "";position:absolute;inset:0;pointer-events:none;opacity:0;white-space:inherit;font:inherit;letter-spacing:inherit;line-height:inherit}
.unstable-text::before{color:var(--gold);animation:signal-upper 5.9s infinite steps(1,end);animation-delay:var(--signal-delay,0s)}
.unstable-text::after{color:#a6c4bd;animation:signal-lower 7.3s infinite steps(1,end);animation-delay:var(--signal-delay,0s)}
@keyframes signal-base{0%,21%,23%,61%,63%,100%{transform:translateX(0);filter:none}21.3%,22%{transform:translateX(-.6px);filter:brightness(.84)}61.4%,62%{transform:translateX(.6px)}}
@keyframes signal-upper{0%,16%,19%,48%,51%,81%,84%,100%{opacity:0;transform:none;clip-path:inset(20% 0 69% 0)}16.5%{opacity:.65;transform:translateX(-3px);clip-path:inset(20% 0 69% 0)}17.5%{opacity:.35;transform:translateX(2px);clip-path:inset(44% 0 49% 0)}48.5%{opacity:.5;transform:translateX(3px);clip-path:inset(8% 0 82% 0)}49.5%{opacity:.6;transform:translateX(-2px);clip-path:inset(37% 0 55% 0)}81.5%{opacity:.5;transform:translateX(-4px);clip-path:inset(58% 0 35% 0)}82.5%{opacity:.3;transform:translateX(2px);clip-path:inset(24% 0 69% 0)}}
@keyframes signal-lower{0%,31%,34%,70%,73%,100%{opacity:0;transform:none;clip-path:inset(65% 0 26% 0)}31.5%{opacity:.55;transform:translateX(3px);clip-path:inset(65% 0 26% 0)}32.5%{opacity:.4;transform:translateX(-2px);clip-path:inset(76% 0 17% 0)}70.5%{opacity:.4;transform:translateX(-3px);clip-path:inset(50% 0 42% 0)}71.5%{opacity:.5;transform:translateX(2px);clip-path:inset(68% 0 25% 0)}}
@media(prefers-reduced-motion:reduce){.unstable-text{animation:none}.unstable-text::before,.unstable-text::after{display:none}}
.signal-fragment{position:absolute;z-index:4;pointer-events:none;color:var(--gold);font:15px var(--mono);letter-spacing:3px;opacity:0;transform:translateY(-48px);text-shadow:2px 0 #91aaa5;background:#0a120dd9;padding:2px 7px;clip-path:inset(0 0 0 0)}
.signal-fragment.is-active{opacity:.8;animation:fragment-drift .12s steps(2,end) infinite}
@keyframes fragment-drift{50%{transform:translate(3px,-45px);clip-path:inset(15% 0 10% 0)}}
.header-enter,.outline-button[data-waitlist]{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;box-sizing:border-box;font-family:'Noto Sans JP',sans-serif;font-size:11px;font-weight:400;letter-spacing:1.8px;line-height:1.2;padding:14px 20px;white-space:nowrap;border:1px solid #e6bd4490;background:#0c130e9c;color:var(--paper)}
.header-enter{width:200px;flex-shrink:0;min-height:44px;padding:12px 17px}
.header-enter span,.outline-button[data-waitlist] .arrow{display:block;font-size:22px;line-height:1;margin:0;flex-shrink:0;color:var(--gold)}
.header-enter:hover,.outline-button[data-waitlist]:hover{background:#e6bd4420;border-color:var(--gold);color:var(--paper)}
@media(max-width:700px){.header-enter{width:145px;min-height:40px;font-size:9px;letter-spacing:1px;gap:10px;padding:10px 12px}.header-enter span{font-size:19px}.outline-button[data-waitlist]{display:flex;width:100%;max-width:320px;min-height:50px;font-size:11px}.signal-fragment{font-size:12px;transform:translateY(-36px)}}
@media(prefers-reduced-motion:reduce){.signal-fragment{display:none}}

.join-team{padding:64px 6.2%;border-bottom:1px solid var(--line);background:#0b100d}
.join-team{display:grid;grid-template-columns:1fr 2fr;gap:40px;background:radial-gradient(ellipse at right bottom,#e6bd4409,transparent 65%),#0d130f}
.join-team>.phase{padding-top:8px}
.join-content h2{font-size:clamp(22px,2.5vw,32px);margin-bottom:24px}
.join-content>p{font-size:13px;line-height:2;color:#c8cdc2}
.discord-soon{display:flex;justify-content:space-between;gap:24px;max-width:320px;margin:28px 0 16px;padding:18px 0;border-top:1px solid #e6bd4460;border-bottom:1px solid #e6bd4460;font:11px var(--mono);letter-spacing:1.5px}
.discord-soon span:last-child{color:var(--gold);font-size:9px;align-self:center}
@media(max-width:700px){.join-team{padding:42px 7%}.join-team{display:block}.join-team>.phase{margin-bottom:28px}.join-content>p{font-size:12px}}

/* Stronger fragmented transmission, with short irregular interference bursts. */
.unstable-text{animation-duration:3.8s;animation-timing-function:steps(1,end)}
.unstable-text::before{animation-duration:2.6s}
.unstable-text::after{animation-duration:3.1s}
@keyframes signal-base{0%,18%,26%,61%,69%,100%{transform:none;filter:none}19%{transform:translateX(-2px) skewX(-1deg)}21%{transform:translateX(2px);filter:brightness(.8)}24%{transform:translateX(-1px)}62%{transform:translateX(2px) skewX(1deg)}65%{transform:translateX(-2px)}}
.unstable-text.signal-burst::before{animation:burst-upper .28s steps(1,end) infinite;opacity:.9;text-shadow:3px 0 #e6bd4480}
.unstable-text.signal-burst::after{animation:burst-lower .34s steps(1,end) infinite;opacity:.8;text-shadow:-3px 0 #91b4ac80}
@keyframes burst-upper{0%{clip-path:inset(12% 0 68% 0);transform:translate(-8px,1px)}33%{clip-path:inset(42% 0 34% 0);transform:translate(7px,-1px)}66%{clip-path:inset(65% 0 17% 0);transform:translate(-5px,0)}}
@keyframes burst-lower{0%{clip-path:inset(72% 0 12% 0);transform:translate(9px,0)}33%{clip-path:inset(25% 0 52% 0);transform:translate(-7px,1px)}66%{clip-path:inset(52% 0 30% 0);transform:translate(6px,-1px)}}
.city-signal{position:relative;display:inline-grid;vertical-align:baseline;white-space:nowrap}
.city-reserve{visibility:hidden;grid-area:1/1}
.city-visible{grid-area:1/1;text-align:center}
.city-signal.is-japanese .city-visible{font-family:'Noto Sans JP',sans-serif;font-weight:300;font-size:.76em;align-self:center;letter-spacing:.16em;color:var(--gold)}
@media(prefers-reduced-motion:reduce){.unstable-text.signal-burst::before,.unstable-text.signal-burst::after{display:none}.unstable-text{animation:none}}
