:root{font-family:"Microsoft JhengHei",sans-serif;color:#efe6cf;background:#121c19;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:1px solid #b5af8766;background:#17241de0;color:#f6eddb;padding:10px 18px;cursor:pointer;transition:background .2s}button:hover{background:#535e37}button:focus-visible{outline:2px solid #edc783;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}a{color:#edc783}#stage,canvas{width:100%;height:100dvh;display:block}canvas{touch-action:none;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 45%,#06140c88)}header{position:absolute;top:0;left:0;right:0;padding:26px 34px;display:flex;justify-content:space-between;align-items:start;z-index:12;pointer-events:none}header>*{pointer-events:auto}.brand{text-decoration:none;color:#f5e5bd;font-family:"PMingLiU",serif;font-size:26px;letter-spacing:.2em}.brand span{display:block;font:9px sans-serif;letter-spacing:.26em;margin-top:7px;opacity:.6}nav{display:flex;gap:7px}nav button{font-size:12px;padding:8px 12px;background:#13201aa3}h1,h2,p{margin:0}.overlay{position:absolute;inset:0;z-index:15;display:flex;align-items:center;background:linear-gradient(90deg,#081a13ee, #0b17188a 43%,transparent 74%);padding:8vh 8vw}.overlay[hidden],[hidden]{display:none!important}.intro-copy{max-width:530px;padding-top:50px}.eyebrow{font-size:12px;letter-spacing:.3em;color:#d4b875;margin-bottom:20px}.intro-copy h1{font:clamp(76px,12vh,142px)/1.15 "PMingLiU",serif;letter-spacing:.13em;text-shadow:0 4px 20px #000}.intro-copy h1 span{color:#e3c07f}.intro-copy h2{font:22px "PMingLiU",serif;letter-spacing:.1em;margin:20px 0}.intro-copy p{font-size:14px;line-height:1.9;color:#c4c9b7}.primary{background:#d1b77b;color:#15241a;border-color:#d1b77b;font-weight:bold;padding:15px 35px;min-width:190px;margin:26px 0 14px}.primary:hover{background:#f3d79d}.chapter-picker{display:flex;gap:5px;flex-wrap:wrap}.chapter-picker button{padding:8px 11px;font-size:12px}#loading{font-size:12px;margin-top:13px;max-width:430px}details{font-size:11px;margin-top:24px;max-width:380px;color:#b2bbaa}details p{font-size:11px!important}summary{cursor:pointer}.intro-seal{margin-left:auto;align-self:center;background:#832e24b8;padding:15px 12px;font:24px/1.35 "PMingLiU",serif;border:1px solid #bc66544d}.chapter{position:absolute;top:120px;left:34px;max-width:370px;text-shadow:0 2px 6px #000}.chapter small{font-size:11px;letter-spacing:.2em;color:#e0c084}.chapter h1{font:40px "PMingLiU",serif;letter-spacing:.13em;margin:10px 0}.chapter p{font-size:14px;line-height:1.7}.progress{width:190px;height:3px;background:#c0c4a533;margin-top:16px}.progress i{display:block;height:100%;background:#edd59c;width:0}.controls{position:absolute;bottom:24px;left:34px;right:30px;display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:#d4d9c8;text-shadow:0 1px 3px #000}.controls span{white-space:nowrap}kbd{font:10px sans-serif;padding:3px 5px;border:1px solid #a4b29c80;background:#1c2b207a;color:#f7e9d1}.weapon{position:absolute;right:35px;bottom:85px;text-align:right}.weapon span{font:27px "PMingLiU",serif;letter-spacing:.12em}.weapon small{display:block;font-size:11px;color:#bdc8b7;margin-top:9px}#crosshair{position:absolute;left:50%;top:50%;width:18px;height:18px;border:1px solid #fff6;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}#crosshair i{position:absolute;left:7px;top:7px;width:2px;height:2px;background:#fff}#crosshair.locked{border-color:#e5b256;box-shadow:0 0 12px #e5b25680}#target-label{position:absolute;top:calc(50% + 22px);left:50%;transform:translateX(-50%);font-size:11px;color:#f1d099;text-shadow:0 1px 4px #000}#charge{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);width:245px;display:flex;align-items:center;gap:10px;font-size:12px}#charge>div{height:5px;background:#bec9b550;flex:1}#charge i{display:block;height:100%;width:0;background:#d9bb77}#charge b{width:34px;font-size:11px}.letterbox{position:absolute;left:0;right:0;height:0;background:#080d0b;z-index:10;pointer-events:none;transition:height .3s}.letterbox.top{top:0}.letterbox.bottom{bottom:0}body.cinematic .letterbox{height:6vh}body.cinematic .controls,body.cinematic .weapon{opacity:0}#caption{position:absolute;bottom:13vh;left:20%;right:20%;text-align:center;font:21px "PMingLiU",serif;letter-spacing:.1em;z-index:13;text-shadow:0 2px 6px #000;pointer-events:none}#callout{position:absolute;top:30%;left:50%;transform:translateX(-50%);text-align:center;font:30px "PMingLiU",serif;letter-spacing:.14em;text-shadow:0 3px 12px #000;white-space:nowrap}.panel{max-width:460px;background:#11231bed;padding:38px;border:1px solid #aa956d66;margin:auto;text-align:center}.panel h2{font:34px "PMingLiU",serif;margin:20px 0}.panel small{letter-spacing:.3em;color:#bba16b;font-size:10px}.panel p{line-height:1.8;color:#cfccb9}.panel button{display:block;width:100%;margin:12px 0}.panel .primary{margin-top:28px}#touch{position:absolute;left:15px;right:15px;bottom:25px;justify-content:space-between;display:flex;z-index:14;pointer-events:none}#touch button{pointer-events:auto;padding:16px;background:#12221cc9;touch-action:none}.dpad{display:grid;grid-template-columns:repeat(3,42px)}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}#touch>div:last-child{display:flex;align-items:end;gap:5px}@media(max-width:800px){header{padding:18px}nav button{padding:7px;font-size:10px}.brand{font-size:20px}.intro-copy{padding-top:35px}.intro-copy h1{font-size:80px}.intro-copy h2{font-size:18px}.intro-copy p{font-size:12px}.eyebrow{font-size:10px}.intro-seal{display:none}.chapter{left:20px;top:94px;max-width:260px}.chapter h1{font-size:28px}.chapter p{font-size:12px}.controls{display:none}.weapon{right:20px;bottom:135px}#charge{bottom:180px}#caption{font-size:16px;left:10%;right:10%}#callout{font-size:23px}details{margin-top:12px}#touch>div:last-child{max-width:250px;flex-wrap:wrap;justify-content:end}}
:root #review-panel{position:absolute;z-index:25;right:16px;top:90px;width:230px;background:#14231bef;border:1px solid #b5af8777;padding:18px;font-size:12px}#review-panel label{display:block;margin:13px 0}#review-panel select,#review-panel input{display:block;width:100%;margin-top:5px;padding:6px}#review-panel button{font-size:12px;width:100%;margin-top:5px}#verification-output{max-height:140px;overflow:auto;font-size:10px;white-space:pre-wrap}

header{z-index:20}#verification-output{max-height:150px;overflow:auto;font-size:11px}#review-panel{max-height:calc(100vh - 110px);overflow:auto}

#hud{pointer-events:none}canvas.aiming{cursor:none}
.quote-overlay{z-index:22;justify-content:center;overflow:auto;background:linear-gradient(105deg,#081410f5,#16281edf 72%,#152419bd);padding:7vh 8vw}.quote-card{width:min(1040px,100%);margin:auto}.quote-card h1{font:600 clamp(30px,4.4vw,63px)/1.65 "PMingLiU","Noto Serif TC",serif;letter-spacing:.06em;color:#f1ddb0;text-wrap:balance}.quote-card #quote-en{font:italic clamp(17px,2vw,25px)/1.6 Georgia,serif;color:#e1e7d6;max-width:800px;margin:20px 0 5px}.loose{font-size:9px;letter-spacing:.22em;color:#b7a784}.quote-card #quote-source{font-size:12px;line-height:1.9;color:#a9b7a4;max-width:780px;margin:24px 0 6px}.quote-card a{font-size:11px}.quote-mission{border-left:2px solid #c8ad6d;padding:4px 0 4px 18px;margin-top:22px}.quote-mission small{font-size:9px;letter-spacing:.25em;color:#c7ac70}.quote-mission p{font-size:15px;line-height:1.6;margin-top:8px}.quote-card .primary{margin:22px 0 0}.chapter h1{font:600 27px/1.25 Georgia,serif;letter-spacing:.015em;max-width:300px}.intro-copy{max-width:590px}.intro-copy h1{font-size:clamp(76px,11vh,124px)}.intro-copy h2{margin:10px 0 14px}#scene-label{display:none}header nav{align-items:center}.intro-copy details{margin-top:14px}.weapon span{font:20px Georgia,serif;letter-spacing:.03em}.quote-overlay .eyebrow{margin-bottom:18px}@media(max-height:760px){.intro-copy{padding-top:40px}.intro-copy h1{font-size:72px}.intro-copy .primary{margin:15px 0 12px;padding:12px 25px}.overlay{padding:9vh 7vw}.quote-card h1{font-size:clamp(27px,3.8vw,50px)}.quote-card #quote-source{margin-top:14px}.quote-mission{margin-top:14px}details{max-height:105px;overflow:auto}}

.intro-seal{text-align:center}.intro-seal .seal-note{display:block;font-size:13px;line-height:1.8;white-space:nowrap}
#heaven-finish{position:absolute;inset:0;z-index:40;pointer-events:none;display:grid;place-items:center}#heaven-finish .heaven-black{position:absolute;inset:0;background:#000;opacity:var(--black,0)}#heaven-finish>span{position:relative;color:#fdf1d0;font:bold clamp(160px,42vh,430px)/1 KaiTi,"Microsoft JhengHei",serif;text-shadow:0 0 10px #ff4820,0 0 45px #f10;opacity:var(--glyph,0);transform:scale(var(--glyph-scale,1))}.heaven-finishing header,.heaven-finishing #hud,.heaven-finishing #caption{opacity:0}.heaven-finishing .letterbox{display:none}

body.ink-wash{color:#272d29;background:#ede9da;color-scheme:light}
.ink-wash .vignette{background:radial-gradient(ellipse,transparent 65%,#d1c7ab55)}
.ink-wash .brand,.ink-wash .intro-copy h1{color:#1e2725;text-shadow:none}
.ink-wash .intro-copy h1 span{color:#983e2e}
.ink-wash button{background:#ebe5d8e8;color:#2a312e;border-color:#575d4e55}
.ink-wash button:hover{background:#d2cbb9}.ink-wash button:focus-visible{outline-color:#963e2c}
.ink-wash .primary{background:#933f30;color:#fff5db;border-color:#933f30}.ink-wash .primary:hover{background:#783021}
.ink-wash .overlay{background:linear-gradient(90deg,#eee9daee,#ece7dca6 43%,transparent 80%)}
.ink-wash .intro-copy p,.ink-wash details,.ink-wash .panel p{color:#434f47}
.ink-wash .eyebrow,.ink-wash a,.ink-wash .chapter small,.ink-wash .quote-mission small{color:#863e30}
.ink-wash .intro-seal{background:#923b2cef;color:#fff3d9;border:3px double #eadbc4}
.ink-wash .chapter{background:linear-gradient(90deg,#eeeadcf5,#eeeadcd9 76%,#eeeadc00);padding:12px 25px 15px 14px;left:20px;top:106px;text-shadow:0 1px 2px #f5efdf}
.ink-wash .controls{color:#1b2821;text-shadow:0 1px 3px #fff8e9;background:#ece7d6bb;width:fit-content;padding:8px}
.ink-wash kbd{background:#f5eedbbb;color:#28312c;border-color:#52625666}
.ink-wash .weapon{background:#ede7d4cc;padding:10px 14px}.ink-wash .weapon small{color:#4a554f}
.ink-wash .progress{background:#525c4633}.ink-wash .progress i,.ink-wash #charge i{background:#943c2a}
.ink-wash #charge{color:#26352c;background:#eae4d9da;padding:8px;width:265px}
.ink-wash #crosshair{border:2px solid #973c2a;box-shadow:0 0 0 1px #fff9}.ink-wash #crosshair i{background:#8d271c;left:6px;top:6px}
.ink-wash #target-label{color:#8e3021;text-shadow:0 1px 3px #fff}
.ink-wash #caption,.ink-wash #callout{color:#842e21;text-shadow:0 1px 2px #fffa,0 0 12px #fff8}
.ink-wash .quote-overlay{background:linear-gradient(100deg,#eee9dcf5,#ddd8c9ee)}
.ink-wash .quote-card h1{color:#242d28}.ink-wash .quote-card #quote-en{color:#4e594f}.ink-wash .quote-card #quote-source,.ink-wash .loose{color:#646952}
.ink-wash .quote-mission{border-color:#993c2c}.ink-wash .panel{background:#ece6d8f5;border-color:#7d786755}
.ink-wash .panel small{color:#8e4131}.ink-wash .letterbox{background:#1f2926}
.ink-wash #review-panel{color:#f3e5c7}
@media(max-width:800px){.ink-wash .chapter{top:82px;left:6px}.ink-wash .controls{display:none}header nav{flex-wrap:wrap;justify-content:flex-end;max-width:75%}}
