:root{color-scheme:dark;font-family:Songti SC,"Noto Serif CJK SC",SimSun,serif;color:#d4dbd9;background:#101518;font-synthesis:none;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 32%,#263032 0,#151c1e 46%,#0b1012)}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:1px solid #bac5bf;outline-offset:4px}button:disabled{opacity:.32;cursor:default}button:hover:not(:disabled){color:#fff}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}#shell{width:min(960px,calc((100dvh - 130px)*4/3),calc(100vw - 32px));margin:20px auto}header{height:48px;display:flex;align-items:center;gap:18px;white-space:nowrap}.wordmark{font-size:16px;letter-spacing:4px;color:#cbd2cf}.wordmark i{font-size:10px;font-style:normal;color:#7e8c89}.chapter-label{font-size:12px;letter-spacing:2px;color:#7f908e}nav{margin-left:auto;display:flex;gap:16px;font-size:12px;color:#9eaaa6}nav button{padding:8px 0}#stage{width:100%;aspect-ratio:4/3;position:relative;overflow:hidden;background:#000;box-shadow:0 0 0 1px #53615d42,0 24px 75px #0008}#world{position:absolute;inset:0}#world canvas{display:block!important;width:100%!important;height:100%!important}#game-ui{position:absolute;inset:0;width:640px;height:480px;transform:scale(var(--game-scale,1));transform-origin:0 0;pointer-events:none;overflow:hidden}#game-ui button,#dialogue,#battle-ui,#chapter-end,#fault{pointer-events:auto}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#080b0d;color:#a5b6b3;letter-spacing:4px;font-size:16px}#title-menu{position:absolute;left:404px;top:287px;width:168px;display:flex;flex-direction:column;gap:5px;align-items:stretch}#title-menu button{text-align:left;font-size:25px;padding:8px 20px;letter-spacing:6px;color:#b5bdbb}#title-menu button:hover{background:#f8ead60c;color:#f0e8dd}#title-menu span{font-family:Georgia,serif;font-size:11px;color:#677271;margin:17px 20px}#dialogue{position:absolute;left:70px;top:305px;width:500px;min-height:90px;display:flex;align-items:flex-start;gap:14px;padding:14px 17px 18px;background:#0b1112e8;border:1px solid #91a49b88;box-shadow:0 2px 8px #0008;color:#e0e5df;font-size:20px;line-height:1.55;cursor:pointer}#dialogue.monologue{width:560px;left:40px!important;top:175px!important;min-height:100px;justify-content:center;align-items:center;border:0;background:transparent;box-shadow:none;text-align:center;font-size:22px;text-shadow:0 2px 4px #000}#portrait{width:70px;height:88px;object-fit:contain;flex:none;background:#151918}#dialogue-text{white-space:pre-wrap;overflow-wrap:anywhere;min-height:28px}.dialogue-body{flex:1;min-width:0}#next-line{display:block;position:absolute;right:12px;bottom:1px;color:#adbdaf;font-size:16px;padding:3px 7px;animation:breathe 1.6s infinite}#choices{display:flex;gap:12px;margin-top:10px}#choices:empty{display:none}#choices button{padding:4px 16px;border:1px solid #81938a80;font-size:18px;background:#080e0e}#choices button:hover{background:#53645b70}#battle-ui{position:absolute;left:0;right:0;bottom:0;height:125px;background:linear-gradient(#0c1216ea,#0a1015fa);border-top:1px solid #63736f88;display:grid;grid-template-columns:165px 1fr;column-gap:12px;padding:12px 17px;color:#dbe1db}#battle-status{font-size:14px;line-height:1.5}.bar{height:4px;width:130px;margin:3px 0 7px;background:#2b3331;overflow:hidden}.bar i{display:block;height:100%;background:#839d8b}.bar.sp i{background:#b1a277}.fighter-label{display:flex;justify-content:space-between;font-size:12px;color:#b6c1bc}.stat-title{font-size:19px;margin-bottom:3px;letter-spacing:4px}#battle-command{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px}#battle-command button{font-size:17px;padding:4px 11px;border:1px solid #88948766;background:#26342c44}#battle-command button.target{font-size:14px;max-width:175px}#battle-command button:hover{background:#87948445}#battle-command button small{font-size:10px;color:#acb9ae;margin-left:6px}#battle-detail{grid-column:2;position:absolute;left:194px;bottom:8px;right:15px;font-size:11px;color:#94a7a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-label{font-size:19px;letter-spacing:4px;color:#ddd6c9;padding:7px}.battle-log{font-size:13px;line-height:1.5;color:#c5ccc3;max-width:400px}#chapter-end,#fault{position:absolute;inset:0;background:#0c1418eb;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}#chapter-end small{font-size:14px;letter-spacing:8px;color:#82988d}#chapter-end h1{font-size:42px;font-weight:400;letter-spacing:14px;margin:18px 0}#chapter-end p{font-size:18px;line-height:1.9;color:#bdcac4}#chapter-end .end-note{font-size:12px;color:#789287;margin:0 0 16px}#chapter-end button,#fault button{font-size:16px;margin:5px;padding:9px 28px;border:1px solid #5e7769}#fault h2{font-size:22px;font-weight:400}#fault p{font:13px/1.7 monospace;padding:0 45px;color:#bdb6a9;max-width:600px;overflow-wrap:anywhere}#toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%);font-size:13px;color:#e0e7dc;background:#14251fed;padding:9px 22px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}#toast.visible{opacity:1}footer{height:34px;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.5px;color:#7d8c86}#location{color:#819a90}#touch-controls{display:none;justify-content:space-between;align-items:center;margin:10px 0;-webkit-user-select:none;user-select:none}.dpad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,36px);gap:4px}.dpad button{background:#748d831c;border:1px solid #71857855;border-radius:3px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2;grid-column:1}.dpad button:nth-child(3){grid-row:2;grid-column:2}.dpad button:nth-child(4){grid-row:2;grid-column:3}#touch-confirm{border:1px solid #71857855;padding:14px 20px;background:#748d831c;touch-action:none}#panel{width:min(720px,calc(100vw - 30px));max-height:85dvh;overflow:auto;padding:24px 32px;background:#192422;color:#d6dfd3;border:1px solid #5b7065;box-shadow:0 24px 80px #0008}#panel::backdrop{background:#040907cf}.panel-heading{display:flex;align-items:center;border-bottom:1px solid #5c726250;padding-bottom:12px;margin-bottom:18px}.panel-heading h2{font-weight:400;font-size:20px;margin:0;letter-spacing:5px}.panel-heading button{margin-left:auto;font:26px Georgia;padding:0 5px}#panel-content{font-size:15px;line-height:1.9}#panel-content p{margin:1em 0}#panel-content h1,#panel-content h2{font-weight:400;line-height:1.5;letter-spacing:3px}#panel-content h1{font-size:26px}#panel-content h2{font-size:20px;margin-top:32px}#panel-content .menu-list{display:flex;gap:12px;flex-wrap:wrap}#panel-content .menu-list button{padding:8px 18px;border:1px solid #627c6b;font-size:15px}#panel-content .muted{color:#91a696;font-size:12px}.history-line{padding:10px 0;border-bottom:1px solid #72857730;white-space:pre-wrap}.inventory-row{padding:6px 0;border-bottom:1px solid #72857730;display:flex;justify-content:space-between}.inventory-row small{display:block;color:#92a497;font-size:11px;max-width:450px;line-height:1.7}.ink-red{color:#dba99b}@keyframes breathe{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}@media(hover:hover){#stage button{transition:color .15s,background .15s}}@media(max-width:620px){body{align-items:flex-start}#shell{width:calc(100vw - 24px);margin:12px auto}header{gap:8px;height:44px}.wordmark{font-size:13px;letter-spacing:2px}.chapter-label{display:none}nav{gap:14px}#touch-controls{display:flex}footer{height:30px;font-size:9px}#help{max-width:72%}#panel{padding:18px 20px}.panel-heading h2{font-size:18px}}@media(max-height:500px)and (min-width:621px){#shell{margin:4px auto;width:min(calc((100dvh - 65px)*4/3),calc(100vw - 170px))}header{height:32px}footer{height:25px}#touch-controls{display:flex;position:fixed;inset:auto 16px 15px;pointer-events:none}.dpad,#touch-confirm{pointer-events:auto}.chapter-label{display:none}}
