:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:#e2eeee;background:#081b23;font-size:16px;--gold:#ebca86;--muted:#94b1b5;--line:#789b9e2d;--green:#8ee1b0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 35% 0,#163942,transparent 65%),#081b23}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:#183b43;border-radius:9px;min-height:44px;padding:9px 14px}button:hover{background:#28515a;border-color:#82b4b1}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:inherit;text-decoration:none}kbd{font:12px inherit;color:#afc4c6;border:1px solid #94b0b03c;border-radius:4px;padding:2px 5px;white-space:nowrap}[hidden]{display:none!important}.topbar{height:82px;max-width:1600px;margin:auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.brand{display:flex;align-items:center;gap:10px;font-size:24px;color:var(--gold)}.brand span{font-size:15px;color:#b5ced0}.title{display:flex;align-items:baseline;gap:16px}.title h1{font-size:25px;letter-spacing:4px;margin:0;font-family:Georgia,'Songti SC',serif}.title span{font-size:13px;color:var(--muted)}.quiet{background:transparent;font-size:14px;display:flex;gap:12px;align-items:center}.game-layout{max-width:1600px;margin:auto;padding:22px 30px 0;display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:22px}.play-panel{border:1px solid #7ba2a13a;border-radius:15px;overflow:hidden;min-width:0;box-shadow:0 18px 60px #0004}.world-bar{height:65px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;background:#102b34}.world-bar>div{display:flex;align-items:center;gap:14px}.chapter-tag{font-size:12px;color:var(--gold);border-right:1px solid #83a1a53b;padding-right:14px;letter-spacing:1px}.world-bar h2{font-size:18px;font-weight:550;letter-spacing:1px;margin:0}.weather{font-size:13px;color:#9db9bc}.viewport{position:relative;height:calc(100dvh - 271px);min-height:330px;max-height:850px;background:#0d222b;overflow:hidden}#game{width:100%;height:100%;display:block;touch-action:none;outline-offset:-3px}.objective{position:absolute;top:17px;left:18px;right:18px;display:flex;align-items:center;gap:10px;width:fit-content;max-width:calc(100% - 36px);font-size:14px;line-height:1.6;background:#09242ce8;border:1px solid #99bdb53d;border-radius:8px;padding:9px 14px;pointer-events:none;box-shadow:0 4px 20px #0003}.objective i{width:7px;height:7px;transform:rotate(45deg);background:var(--gold);flex-shrink:0}.notice{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);text-align:center;max-width:80%;width:max-content;font-size:14px;line-height:1.6;padding:10px 18px;border:1px solid #c4dbd242;border-radius:9px;background:#092731ed;pointer-events:none;opacity:0;transition:opacity .2s}.notice.show{opacity:1}.notice[data-type=hurt],.notice[data-type=danger]{border-color:#e5a08077;color:#ffccb2}.notice[data-type=heal],.notice[data-type=win]{color:#c1f2be}.scene-label{position:absolute;right:16px;bottom:15px;color:#91aeb5;font-size:12px;letter-spacing:2px;pointer-events:none}.boss-hud{position:absolute;top:78px;left:50%;transform:translateX(-50%);width:min(340px,65%);text-align:center;pointer-events:none}.boss-hud>span{font-size:14px;color:#f2d6b5;text-shadow:0 2px 5px #000}.boss-hud>div{height:7px;border:1px solid #b98f7055;background:#10232bea;border-radius:9px;margin:7px 0}.boss-hud i{display:block;height:100%;background:linear-gradient(90deg,#b15e50,#e49d73);border-radius:9px}.boss-hud small{font-size:12px;text-shadow:0 2px 4px #000;color:#d1e0d6}.action-bar{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px;background:#102b34;border-top:1px solid var(--line)}.health{width:200px;flex-shrink:0}.health>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:9px;color:#abc4c5}.health b{font-size:14px;color:#f6dad1;margin-left:8px}.health-track{height:8px;background:#243b43;border-radius:8px;overflow:hidden}.health-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#d26f68,#efa897);transition:width .2s}.health #heartbeat{color:#ecaaa0;font-size:18px}.actions{display:flex;gap:7px;justify-content:flex-end;flex:1}.actions button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:80px;min-height:45px;font-size:14px;padding:9px 12px;background:#193b44}.actions button#interact{border-color:#ccbd8255;background:#49493244}.actions button#eat{border-color:#916b4d77}.actions button.active{background:#567750}.actions b{font-weight:500;color:var(--gold)}.journal{padding-top:4px;min-width:0}.journal-title{display:flex;justify-content:space-between;font-size:15px;color:#d7e0d6;letter-spacing:2px;padding-bottom:17px}.compass{font-size:12px;color:var(--gold)}#minimap{width:100%;height:auto;aspect-ratio:1.2;background:#102a3266;border:1px solid var(--line);border-radius:8px}.map-caption{display:flex;align-items:center;justify-content:space-between;margin:6px 0 19px;color:#a5c3b8;font-size:12px}.map-caption button{background:none;border:0;padding:6px;min-height:32px;font-size:12px}.route{border-top:1px solid var(--line);padding-top:18px}.route small{font-size:12px;color:#8eabae;letter-spacing:1px}.route ol{list-style:none;padding:0;margin:14px 0 18px}.route li{padding:6px 0 6px 22px;position:relative;font-size:14px;color:#68868c}.route li:before{content:'';position:absolute;width:5px;height:5px;border:1px solid #53737a;border-radius:50%;left:2px;top:13px}.route li.done{color:#a2b9af}.route li.current{color:var(--gold)}.route li.current:before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 12px #e6cb8170}.collection{border-top:1px solid var(--line);padding-top:15px}.collection>div{display:flex;justify-content:space-between;margin-bottom:13px;font-size:13px;color:var(--muted)}.collection b{font-weight:500;color:#d5dfd3}.tip{font-size:13px;line-height:1.85;color:#8facb1;margin-top:20px}.save-state{font-size:12px;color:#6f9199}.footnote{max-width:1600px;margin:17px auto;display:flex;justify-content:space-between;padding:0 32px;font-size:12px;color:#76969c;gap:15px}.trap-panel{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);background:#172e36f5;border:1px solid #d3ad6e;padding:18px;border-radius:12px;max-width:95%;text-align:center;width:380px}.trap-panel strong,.trap-panel>span{display:block;margin-bottom:10px}.trap-panel>span{font-size:14px;color:#b7cbcc}.trap-panel>div{display:flex;justify-content:center;gap:8px}.trap-panel button.done{background:#568b6a}.touch-pad{display:none}dialog{padding:0;border:1px solid #8cae9c66;background:#102d36;color:#e6ece0;border-radius:20px;width:min(660px,calc(100% - 28px));max-height:90dvh;overflow:auto;box-shadow:0 30px 110px #0008}dialog::backdrop{background:#03141dc9;backdrop-filter:blur(6px)}#dialog-art{display:none;height:185px;background:linear-gradient(0deg,#102d36,transparent 60%),url('/games/assets/chapter-scenes.png') center 82%/cover}dialog.intro #dialog-art{display:block}dialog.intro.has-art #dialog-art{height:240px;background-image:linear-gradient(0deg,#102d36,transparent 60%),url('/games/assets/school-cover.png');background-position:center 54%}.dialog-content{padding:30px 34px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--gold)}dialog h2{font-family:Georgia,'Songti SC',serif;font-size:32px;letter-spacing:3px;margin:12px 0 16px}#dialog-text{font-size:16px;line-height:1.9;color:#b7ccca}#dialog-text p{margin:8px 0}.dialog-buttons{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.dialog-buttons button{flex:1;min-width:140px;font-size:15px}.dialog-buttons .primary{background:#e7c98c;color:#283f3e;border-color:#e7c98c;font-weight:650}.dialog-buttons .primary:hover{background:#f9dba0}.control-hints{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:13px;color:#95b3b8;margin-top:20px}.control-hints span{display:flex;gap:6px;align-items:center}.runes{display:flex;gap:12px;margin-top:20px}.runes button{font-size:22px;flex:1;height:60px}.puzzle-progress{color:var(--gold);text-align:center;letter-spacing:6px;margin:18px 0 0}.map-dialog{width:min(940px,94vw)}.map-dialog canvas{width:100%;max-height:60dvh;object-fit:contain;background:#0b2028}.journal .trial{color:#e6c780}@media(max-width:1150px){.game-layout{padding:18px 18px 0;grid-template-columns:minmax(0,1fr) 195px;gap:15px}.actions button{padding:9px;min-width:65px;gap:6px}.health{width:150px}.action-bar{gap:12px;padding:12px}.actions kbd{display:none}.topbar{padding:0 22px}.footnote{padding:0 20px}.title span{display:none}}@media(max-width:850px){.game-layout{grid-template-columns:1fr;padding:12px 12px 0}.journal{display:none}.topbar{height:68px;padding:0 16px}.title h1{font-size:22px}.brand span{display:none}.viewport{height:calc(100dvh - 245px);min-height:280px;max-height:none}.world-bar{height:52px;padding:0 14px}.action-bar{min-height:85px}.footnote{margin:12px auto}.footnote span:last-child{display:none}}@media(max-width:540px){.topbar{height:58px}.topbar .quiet kbd{display:none}.world-bar h2{font-size:16px}.chapter-tag{display:none}.weather{font-size:12px}.game-layout{padding:8px 8px 0}.viewport{height:calc(100dvh - 260px);min-height:280px}.action-bar{flex-wrap:wrap;gap:10px;padding:12px}.health{width:100%}.health>div:first-child{margin-bottom:5px}.actions{justify-content:stretch}.actions button{flex:1;font-size:13px;min-width:0;padding:8px 4px}.objective{font-size:12px;top:10px;left:10px;padding:8px 10px;max-width:calc(100% - 20px)}.boss-hud{top:75px}.notice{bottom:12px;font-size:13px;max-width:92%}.dialog-content{padding:24px}.dialog-buttons button{min-width:110px}dialog h2{font-size:28px}.footnote{font-size:11px}dialog.intro.has-art #dialog-art{height:190px}}@media(pointer:coarse){.touch-pad{display:grid;position:absolute;bottom:20px;left:18px;grid-template-columns:repeat(3,39px);grid-template-rows:repeat(2,39px);gap:5px}.touch-pad button{padding:0;min-height:39px;font-size:20px;touch-action:none;background:#173b46be;border-color:#b1cdca44;user-select:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1;grid-row:2}.touch-pad button:nth-child(3){grid-column:2;grid-row:2}.touch-pad button:nth-child(4){grid-column:3;grid-row:2}.notice{bottom:118px}.scene-label{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-height:600px) and (min-width:851px){.topbar{height:60px}.game-layout{padding-top:10px}.world-bar{height:48px}.viewport{height:calc(100dvh - 218px);min-height:200px}.action-bar{min-height:70px}.journal .route,.journal .tip{display:none}.footnote{margin:10px auto}.journal-title{padding-bottom:9px}.map-caption{margin-bottom:10px}}
.knowledge-meter{display:flex;justify-content:space-between;align-items:center;gap:5px;width:100%;font-size:12px;min-height:18px;margin-top:7px;border:0;background:transparent;padding:0;color:#b8b3d7}.knowledge-meter:hover{background:transparent;color:#ead2ff}.health .knowledge-meter b{font-size:12px;margin-left:2px;color:#e8d4ff}.knowledge-meter span{margin-left:auto}.inscription-glyphs{text-align:center;padding:17px;margin:18px 0 6px;border:1px solid #baa0d44d;border-radius:10px;background:#203442;color:#e1c5ff;font-size:29px;letter-spacing:12px}.decoded-list{margin-top:16px}.decoded-list details{border-top:1px solid var(--line);padding:13px 0}.decoded-list summary{cursor:pointer;line-height:1.6;font-size:15px;color:#dfcef3}.decoded-list p{line-height:1.8;font-size:15px;color:#bed0cf}.notice[data-type=knowledge]{color:#e5cafa;border-color:#b59bce77}

#beasts-button{white-space:nowrap;font-size:14px}@media(max-width:540px){.topbar{gap:8px}.topbar .title{margin-right:auto}.topbar .title h1{font-size:19px;letter-spacing:1px}.topbar .quiet{padding:8px;font-size:13px}}

.measurement-card{margin-top:20px;padding:20px;border:1px solid #b6b29d55;background:linear-gradient(135deg,#253731,#101e23);border-radius:6px}.measurement-row{display:grid;grid-template-columns:1fr auto;gap:10px 16px;padding:8px 0 20px;color:#bac8c0;font-size:15px}.measurement-row strong{color:#e7ddbe;font-size:22px;font-variant-numeric:tabular-nums}.measurement-ruler{grid-column:1/-1;height:21px;border:1px solid #a49c7a;background:repeating-linear-gradient(90deg,#3e433b 0 1px,transparent 1px var(--tick-step,12.5%)),linear-gradient(#c5bd9a 0 7px,#9b9478 7px 10px,#c5bd9a 10px);transform-origin:left}.measurement-ruler.unmeasured{opacity:.15;background:none;border-style:dashed}.measurement-question{margin:4px 0 0;border-top:1px solid #acbaa530;padding-top:17px;font-family:Georgia,'Songti SC',serif;color:#ddd5bd;font-size:17px;line-height:1.8}.notice[data-type=mystery]{color:#e6ddc2;border-color:#c0b89777}

.brand img{display:block;width:32px;height:32px;flex-shrink:0;border-radius:7px}

.actions{flex-wrap:wrap}#student-button[hidden]{display:none}#student-button{min-height:44px;border-color:#8db9b966;background:#23434b;color:#d0e3df}
