:root{color-scheme:dark;--bg:#0a0e16;--surface:#101722;--line:#2e3745;--pale:#edf0f1;--muted:#aeb8c4;--blue:#a1e4f5;--gold:#edb26f;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--display:Georgia,"Times New Roman",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 50% 10%,#182031 0,transparent 58%),var(--bg);color:var(--pale);font-family:Arial,Helvetica,sans-serif;min-height:100svh}button,a{font:inherit}button{cursor:pointer}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}button:disabled{opacity:.55;cursor:default}[hidden]{display:none!important}header{border-bottom:1px solid #262e3a;background:#0c111a}.bar,main{width:min(1280px,calc(100% - clamp(32px,7.6vw,112px)));margin:auto}.bar{display:flex;align-items:center;height:70px;gap:18px}.brand{display:flex;gap:10px;align-items:center;font-size:16px;font-weight:850;letter-spacing:.01em;white-space:nowrap}.brand b{font-weight:500;color:#c4cad2}.division{background:var(--line);height:20px;width:1px}.edition,.eyebrow,.tiny,.hero-tags,.game-path,.scene-id,.stage-caption,.character,.ep-meta,.key-hint{font:600 10px/1.35 var(--mono);letter-spacing:.13em}.edition,.tiny,.game-path{color:var(--muted)}nav{margin-left:auto;display:flex;gap:12px}nav button,.small-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;font-size:12px;background:#121924;color:#d9dfe5;min-height:36px}nav button:hover,.small-btn:hover,.ghost:hover,.back:hover{color:white;background:#263344}nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ui-icon{font-size:17px;line-height:14px}.soundwaves,#sound[aria-pressed=true] .mute-mark{display:none}#sound[aria-pressed=true] .soundwaves{display:block}#home{padding-top:24px}.hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #344352;border-radius:14px;min-height:440px;display:flex;align-items:center;background:#111923}.hero-art,.hero-shade{position:absolute;inset:0;z-index:-1}.hero-art{background-image:url('assets/hero.webp'),url('assets/episode-1.webp');background-position:65% 40%;background-size:cover}.hero-shade{background:linear-gradient(90deg,rgba(8,14,23,.97) 0%,rgba(9,16,26,.85) 22%,rgba(9,16,26,.43) 42%,transparent 63%),linear-gradient(0deg,#080e18a6,transparent 24%)}.hero-body{padding:48px clamp(20px,4.25vw,66px) 54px;width:min(650px,59%)}.eyebrow{color:var(--blue);display:flex;align-items:center;gap:11px;letter-spacing:.16em}.eyebrow i{width:23px;height:2px;background:var(--blue);border-radius:2px}.hero-brow b{color:#738494}.hero h1{font:500 clamp(59px,6.75vw,105px)/.98 var(--display);letter-spacing:-.07em;margin:27px 0 21px;white-space:nowrap;text-shadow:0 2px 12px #0a101576}.hero h1 small{display:block;font:italic 400 clamp(19px,2vw,31px)/1.3 var(--display);letter-spacing:0;margin:0 0 4px;color:#e5e2d5}.hero h1 em{font-weight:normal;color:var(--gold);font-size:.85em}.hero p{font-size:clamp(15px,1.22vw,18px);color:#d6dbe1;line-height:1.55;max-width:375px;margin:0 0 26px}.hero-actions,.dialog-actions{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.primary,.ghost,.secondary{font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:44px;border-radius:6px;padding:0 18px}.primary{background:var(--blue);color:#101a22;border:1px solid #b2e8f6;box-shadow:0 0 18px #8edafb15}.primary:hover{background:#c5f1ff;transform:translateY(-1px)}.playicon{display:inline-block;border-left:9px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}.ghost,.secondary{color:#edf0f2;background:#19212cca;border:1px solid #465362}.ghost span{font-size:18px}.hero-tags{position:absolute;bottom:16px;right:20px;display:flex;align-items:center;gap:8px;color:#eef0e9;font-size:8px;text-shadow:0 1px 4px black}.hero-tags i{color:#c8a072}.lights{width:6px;height:6px;border-radius:50%;background:#e8a764;box-shadow:0 0 8px #f1ba78}.archive{margin-top:31px;scroll-margin-top:14px}.section-bar,.game-top,.game-foot,.readouts,.mission,.console,footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.archive h2{font:400 clamp(30px,3vw,43px)/1.1 var(--display);letter-spacing:-.045em;margin:9px 0 18px}.archive h2 span{color:var(--gold)}.episode-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ep-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#131a25;text-align:left;padding:0 0 13px;transition:background .15s,transform .15s,border-color .15s}.ep-card:hover{transform:translateY(-3px);border-color:#91a8bc;background:#1c2634}.ep-img{position:relative;display:block;height:clamp(78px,7.5vw,115px);overflow:hidden;border-bottom:1px solid #344053;background:#121820}.ep-img img{width:100%;height:100%;object-fit:cover;object-position:center 46%;transform:scale(1.5)}.ep-n{position:absolute;bottom:8px;left:10px;background:#080d15e8;border:1px solid #5d6b7c;font:600 10px/1 var(--mono);letter-spacing:.12em;border-radius:3px;padding:5px 6px;color:#e3e8ec}.ep-main{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:13px 12px 0}.ep-main strong{font:500 clamp(16px,1.45vw,22px)/1.2 var(--display);letter-spacing:-.035em}.chev{color:var(--blue)}.ep-meta{font-size:8px;letter-spacing:.13em;display:block;margin:7px 12px 0;color:var(--muted)}footer,.game-foot{border-top:1px solid #29313e;margin:24px 0 0;padding:17px 0 25px;color:var(--muted);font-size:12px}footer strong{color:#d4dce6;font-weight:500}footer a,.game-foot a,.source{color:var(--blue)}footer a:hover,.game-foot a:hover,.source:hover{text-decoration:underline}
#game{max-width:1140px;padding:17px 0}.game-top{margin:0 0 12px}.back{padding:8px 2px;color:#c7d0db;font-size:13px}.machine{--tint:var(--blue);border:1px solid #3a4659;border-radius:13px;background:#121923;overflow:hidden}.machine.amber{--tint:#f2bb78}.readouts{padding:15px 21px;border-bottom:1px solid #394452}.readouts .tiny,.mission .tiny{font-size:9px;letter-spacing:.14em;color:#aabacc}.readouts h2{margin:4px 0 0;font:normal 27px/1.08 var(--display);letter-spacing:-.025em}.character{display:flex;align-items:center;gap:7px;color:var(--tint);border:1px solid #3e4b59;border-radius:99px;padding:8px 12px;letter-spacing:.09em}.character i{height:7px;width:7px;border-radius:50%;background:var(--tint);box-shadow:0 0 10px var(--tint)}.viewport{position:relative;background:#0e1727;overflow:hidden;touch-action:none}canvas{width:100%;height:clamp(265px,38vw,470px);display:block}.scene-id,.stage-caption{position:absolute;pointer-events:none;left:12px;border-radius:4px;background:#09101be8;color:#e5ebf1;border:1px solid #455568;font-size:9px;padding:5px 8px}.scene-id{top:12px;color:#cedce7}.stage-caption{bottom:10px;left:50%;transform:translateX(-50%);text-align:center;max-width:95%;width:max-content;letter-spacing:0;font:600 13px/1.25 Arial}.stage-caption:empty{display:none}.mission{padding:12px 20px;background:#17202c;border-top:1px solid #3b4657;border-bottom:1px solid #323d4b}.mission strong{font:600 14px/1.35 Arial;display:block;margin-top:3px}.traces{white-space:nowrap;font:600 11px var(--mono);color:var(--tint)}.console{padding:10px 20px;user-select:none;touch-action:none}.stick{position:relative;width:106px;height:48px;border:1px solid #435364;border-radius:99px;background:#0b1018;display:flex;align-items:center;justify-content:space-between;padding:0 8px;touch-action:none}.stick i{color:#a4bfd2;font:400 19px Arial}.stick span{position:absolute;left:calc(50% - 17px);width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#71869b,#3c5068 60%,#28384a);border:1px solid #a0b4c8;box-shadow:0 3px 5px #0007}.key-hint{letter-spacing:0;color:var(--muted);font-size:11px}.key-hint kbd{display:inline-block;border:1px solid #48525f;border-bottom:2px solid #505c6b;font:10px var(--mono);padding:3px 5px;border-radius:3px;margin:0 2px}.action-keys{display:flex;align-items:center;gap:8px}.action-keys button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 13px;min-height:44px;min-width:72px;border-radius:99px;background:#1f2c3b;border:1px solid #536274;font-size:12px;font-weight:700;touch-action:none}.action-keys button:active{transform:scale(.96)}.action-keys #giftBtn{color:var(--tint);border-color:var(--tint)}.action-keys span{font-size:19px}.game-foot{border:0;margin:0}.game-path{font-size:9px}.small-btn{min-height:33px}
dialog{margin:auto;padding:0;color:var(--pale);background:linear-gradient(130deg,#1b2634,#101722 70%);border:1px solid #52657b;border-radius:13px;width:min(510px,calc(100% - 26px));max-height:93svh;box-shadow:0 20px 85px #000a}dialog::backdrop{background:#050910cc;backdrop-filter:blur(5px)}.dialog-body{position:relative;padding:30px}.dialog-body h2{font:400 clamp(30px,5vw,43px)/1.1 var(--display);letter-spacing:-.05em;margin:16px 0 12px}.dialog-body p{font-size:15px;line-height:1.55;color:#c8d3dc;margin:10px 0 18px}.dialog-body .brief{font-size:13px;color:#c6d2df;padding:10px 14px;border-left:2px solid var(--gold);background:#202a36;margin:15px 0 21px}.dialog-body .brief b{color:var(--gold)}.dialog-body .source{font-size:12px;margin-top:18px;display:inline-block}.dialog-body .dismiss{position:absolute;right:12px;top:8px;font-size:24px;color:#c2ccd6;min-width:36px;min-height:36px}.dialog-body .eyebrow{padding-right:15px}.guide-list{display:grid;grid-template-columns:80px 1fr;gap:10px;font-size:13px;line-height:1.5;margin:20px 0}.guide-list dt{color:var(--blue);font-weight:700}.guide-list dd{margin:0;color:#c5d0da}.puzzle-line{padding:14px 16px;text-align:center;background:#0a111b;border:1px solid #384b5e;border-radius:7px;margin:14px 0;font:600 18px var(--mono);letter-spacing:.09em;color:var(--gold)}.puzzle-options{display:grid;gap:7px}.puzzle-options button{border:1px solid #475c6c;border-radius:6px;text-align:left;padding:10px 14px;background:#192635;color:#edf0f2;font-weight:600}.puzzle-options button:hover{background:#263b4e}.feedback{min-height:1.3em;color:var(--gold);font:600 12px Arial;margin-top:9px}.dialog-actions{margin-top:15px}.dialog-actions .secondary:hover{background:#29394b}
@media (max-width:920px){.bar,main{width:calc(100% - 40px)}.hero{min-height:400px}.hero-body{width:62%;padding-left:28px}.episode-grid{gap:8px}.ep-main{padding-left:9px;padding-right:8px}.ep-meta{margin-left:9px}.key-hint{display:none}}
@media (max-width:650px){.bar,main{width:calc(100% - 24px)}.bar{height:54px;gap:9px}.brand{font-size:13px;gap:6px}.brand img{width:29px;height:29px}.division,.edition{display:none}nav{gap:6px}nav button{font-size:11px;gap:5px;padding:4px 8px;min-height:32px}#home{padding-top:12px}.hero{min-height:0;align-items:flex-end}.hero-art{background-size:auto 68%;background-repeat:no-repeat;background-position:74% top;background-color:#0c131e}.hero-shade{background:linear-gradient(0deg,#0c131e 19%,#0c131ef5 34%,#0c131eaa 50%,transparent 74%)}.hero-body{padding:52vw 17px 23px;width:100%}.hero h1{font-size:clamp(52px,12vw,74px);margin:12px 0 10px}.hero h1 small{font-size:19px}.hero p{font-size:14px;margin:0 0 16px;max-width:420px}.hero-brow{font-size:8px;gap:7px}.hero-tags{display:none}.primary,.ghost,.secondary{min-height:41px;padding:0 12px;font-size:12px}.hero-actions{gap:8px}.archive{margin-top:23px}.section-bar .eyebrow,.section-bar .tiny{font-size:8px}.archive h2{margin-bottom:12px}.episode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ep-img{height:84px}.ep-main strong{font-size:19px}footer,.game-foot{font-size:10px;align-items:flex-start;line-height:1.45}.readouts{padding:9px 12px}.readouts h2{font-size:22px}.character{font-size:9px;padding:6px 8px}.game-path{display:none}#game{padding-top:8px}.game-top{margin-bottom:6px}.mission{padding:9px 11px}.mission strong{font-size:12px}.traces{font-size:9px}.console{padding:8px}.action-keys button{min-width:65px;min-height:45px;padding:6px 9px}.stick{width:110px;height:47px}.scene-id{top:6px;left:6px;font-size:7px}.dialog-body{padding:23px 18px}.dialog-body p{font-size:14px}.stage-caption{font-size:11px}.viewport canvas{height:clamp(245px,66vw,340px)}}
@media(max-height:540px) and (orientation:landscape){body.playing header{display:none}body.playing main{padding:2px 0;width:min(960px,98%)}.game-top{margin:0}.game-top button{min-height:24px;height:24px;padding:0 5px}.readouts{padding:3px 10px}.readouts h2{font-size:17px;display:inline-block;margin-left:9px}.character{padding:3px 7px}.viewport canvas{height:calc(100svh - 145px);min-height:145px}.mission{padding:3px 9px}.mission .tiny{display:none}.mission strong{font-size:11px;margin:0}.console{padding:3px 9px}.stick{height:39px}.action-keys button{min-height:38px}.game-foot{padding:2px 0;font-size:9px}.dialog-body{padding:15px 20px}.dialog-body h2{margin:6px 0;font-size:26px}.dialog-body p{margin:5px 0 10px;font-size:13px}.dialog-body .brief{margin:7px 0;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.meter{position:relative;background:#0b111c;height:35px;border:1px solid #546171;border-radius:5px;margin:18px 0;overflow:hidden}.meter span{position:absolute;inset-block:3px;border-radius:2px}.meter i{position:absolute;top:0;height:100%;width:4px;background:white;box-shadow:0 0 7px white;transform:translateX(-50%)}.sequence,.drumpads{display:flex;gap:5px;margin:14px 0}.sequence span{flex:1;text-align:center;padding:10px 1px;background:#0c1420;border:1px solid #3c4c5d;border-radius:4px;font:600 12px var(--mono)}.sequence span.lit{background:#215461;color:#c7f1f4}.drumpads button{flex:1;min-height:54px;border:1px solid #52677c;border-radius:6px;background:linear-gradient(#283b50,#1a2737);font-weight:bold;font-size:13px}.drumpads button b{display:block;color:var(--blue);font:10px var(--mono);margin-bottom:4px}.prism-panel{display:block;width:100%;background:#101b28;border:1px solid #344556;border-radius:6px;margin-top:10px}.ep-card:nth-child(3) img{object-position:center 37%;transform:scale(1.04)}.ep-card:nth-child(5) img{object-position:center 36%;transform:scale(1.03)}
