:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e3e0d2;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--app-height:100dvh;--gold:#d4bd95;--border:#a4bab95c;background:#0b1b22;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}body{height:var(--app-height);-webkit-text-size-adjust:100%;position:fixed;inset:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:1px solid var(--border);background:#172e37;border-radius:6px;min-width:44px;min-height:44px}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:active,button.held{filter:brightness(1.35);border-color:#ead9a4}button:disabled{cursor:default;opacity:.4}[hidden]{display:none!important}#world{width:100%;height:var(--app-height);touch-action:none;display:block}.grain{pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 0 120px #020a1066}#menu{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);background:linear-gradient(90deg,#07151bea,#0000 90%);flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}header{color:#a0b5b9;letter-spacing:1px;flex:none;align-items:center;gap:12px;padding:20px 5%;font-size:11px;display:flex}.seal{color:#e3c2a5;background:#8f3934;flex:none;place-items:center;width:34px;height:38px;font-family:serif;font-size:24px;display:grid}header>span:nth-child(2){flex:1}header button{background:#14242ab8;padding:0 12px;font-size:12px}.title{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:12px 9% 24px;display:flex}.title>p:first-child{color:var(--gold);letter-spacing:4px;margin:0 0 12px;font-size:12px}h1{letter-spacing:10px;margin:8px 0 20px;font-family:Songti SC,STSong,serif;font-size:clamp(64px,9vw,120px);font-weight:500;line-height:1.05}h1 span{color:#c8ae83;margin-top:5px;font-size:.8em;display:block}.rule{background:linear-gradient(90deg,#bda17c,#0000);width:210px;height:1px}.verse{letter-spacing:3px;color:#b7c5c2;margin:18px 0;font-size:13px}#start{color:#11242c;letter-spacing:2px;text-align:left;background:#bca17a;border-color:#d6bf91;min-width:236px;min-height:50px;padding:12px 22px;font-size:15px}#start:disabled{cursor:wait;opacity:.6}#new-game{color:#c2cfcc;background:#14262dcc;min-height:44px;margin-top:10px;padding:8px 16px;font-size:12px}.title>small{color:#a4b7bc;letter-spacing:1px;margin-top:14px;font-size:11px}footer{color:#a0b6ba;letter-spacing:2px;flex:none;justify-content:space-between;gap:12px;padding:10px 5% 16px;font-size:11px;display:flex}.mobile-hint{display:none}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;touch-action:none;position:fixed;inset:0}#hud button,#joystick{pointer-events:auto;touch-action:none}#hud *{-webkit-touch-callout:none}.vitals{left:calc(var(--safe-l) + 20px);top:calc(var(--safe-t) + 16px);width:150px;position:absolute}.vitals>small{letter-spacing:3px;color:#d9d5be;font-size:11px}.track{background:#06121bea;border:1px solid #7c8a8055;height:7px;margin-top:6px}.track i{background:#b85747;width:100%;height:100%;transition:width .15s;display:block}.track.stamina{height:4px;margin-top:4px}.stamina i{background:#c2bb98}.track.spirit{height:3px;margin-top:4px}.spirit i{background:#83c5c7;width:0}.vitals button{background:#10262de6;min-width:48px;height:44px;padding:0 8px;font-size:13px;position:absolute;top:48px;left:0}.vitals button span{color:#dcc69c;margin-left:4px;font-size:11px}#weapon{left:calc(var(--safe-l) + 80px);top:calc(var(--safe-t) + 64px);color:#e2ccaa;white-space:nowrap;text-overflow:ellipsis;background:#10262de6;width:106px;height:44px;padding:0 8px;font-size:12px;position:absolute;overflow:hidden}.pause,#map{top:calc(var(--safe-t) + 12px);background:#10252ee6;border-radius:50%;width:44px;height:44px;font-size:17px;position:absolute}.pause{right:calc(var(--safe-r) + 12px)}#map{right:calc(var(--safe-r) + 68px)}#objective{left:50%;top:calc(var(--safe-t) + 16px);color:#dccdae;letter-spacing:1px;text-align:center;white-space:nowrap;text-overflow:ellipsis;width:min(42%,420px);font-size:12px;line-height:1.5;position:absolute;overflow:hidden;transform:translate(-50%)}#boss{left:50%;top:calc(var(--safe-t) + 46px);text-align:center;width:min(36vw,380px);position:absolute;transform:translate(-50%)}#boss small{letter-spacing:2px;color:#e6d5b5;font-size:12px}#boss .track{height:5px}#boss .posture{background:#15262c;width:70%;height:3px;margin:4px auto}.posture i{background:#d6b578;width:0;height:100%;display:block}#message{letter-spacing:3px;color:#ebd6af;text-shadow:0 2px 8px #000;text-align:center;pointer-events:none;max-width:66%;font-family:serif;font-size:21px;line-height:1.6;position:absolute;top:22%;left:50%;transform:translate(-50%)}#combat-cue{bottom:calc(var(--safe-b) + 120px);color:#e2d5ae;letter-spacing:1px;pointer-events:none;white-space:nowrap;text-shadow:0 2px 4px #000;font-size:13px;position:absolute;left:50%;transform:translate(-50%)}#interact{left:50%;bottom:calc(var(--safe-b) + 24px);color:#e1c69a;background:#152e38ed;border-color:#d8b78088;min-width:112px;height:44px;padding:0 12px;font-size:13px;position:absolute;transform:translate(-50%)}#joystick{width:112px;height:112px;bottom:calc(var(--safe-b) + 24px);left:calc(var(--safe-l) + 28px);background:#10293266;border:1px solid #a5bbc166;border-radius:50%;place-items:center;display:grid;position:absolute}#stick{background:#7a9ba56b;border:1px solid #bacdca99;border-radius:50%;width:46px;height:46px;box-shadow:0 3px 20px #00121b55}.controls{right:calc(var(--safe-r) + 20px);bottom:calc(var(--safe-b) + 24px);width:304px;height:208px;position:absolute}.controls button{background:radial-gradient(circle at 30% 20%,#3d5153e8,#122830ed);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:60px;height:60px;padding:0;font-family:serif;font-size:24px;display:flex;position:absolute;box-shadow:0 0 0 2px #0a202b66}.controls small{color:#c0d2d3;margin-top:3px;font-family:system-ui;font-size:9px}.controls button.held{box-shadow:0 0 0 4px #ead9a444}#light{background:radial-gradient(circle at 30% 20%,#806d50ed,#263e43ed);border-color:#d4bb91;width:78px;height:78px;font-size:32px;bottom:0;right:0}#dodge{bottom:0;right:92px}#parry{width:56px;height:56px;bottom:68px;right:160px}#heavy{border-color:#bea27d;bottom:130px;right:82px}#burst{border-color:#81aaa8;width:52px;height:52px;font-size:22px;bottom:100px;right:0}#blink{border-color:#8fabc0;width:52px;height:52px;font-size:22px;bottom:140px;right:164px}#burst.ready{color:#fff0c6;background:radial-gradient(#96bdb6,#25474d);box-shadow:0 0 18px #a8e9db77}.key-hint{text-align:center;color:#9fb6bb;letter-spacing:1px;width:100%;font-size:10px;position:absolute;bottom:4px}#overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:calc(var(--safe-t) + 12px) calc(var(--safe-r) + 12px) calc(var(--safe-b) + 12px) calc(var(--safe-l) + 12px);touch-action:pan-y;background:#05121de8;place-items:center;display:grid;position:fixed;inset:0}#dialog{overscroll-behavior:contain;text-align:center;scrollbar-width:thin;touch-action:pan-y;background:#10262ff5;border:1px solid #a18e6677;border-radius:12px;width:min(520px,100%);max-height:100%;padding:24px;overflow:auto}#dialog h2{letter-spacing:4px;color:#e0c79f;margin:0 0 18px;font-family:serif;font-size:28px;font-weight:500}#dialog p{color:#c0d1d5;margin:14px 0;font-size:14px;line-height:1.8}#dialog>button{background:#233c44;min-height:48px;margin:6px;padding:10px 18px;font-size:14px}#dialog button.primary{color:#11242b;background:#bba27c;border-color:#c7b28f}.help-lines{text-align:left}.dialog-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dialog-actions button{min-height:48px;padding:10px;font-size:14px}.dialog-actions .primary{grid-column:1/-1}.dialog-actions #exit{color:#c8b3aa}#dialog:has(.dialog-actions){width:min(440px,100%)}:is(#dialog:has(.weapon-grid),#dialog:has(#journey-map)){flex-direction:column;display:flex}#armory-close,#map-close{flex:none;align-self:stretch;position:sticky;bottom:0;box-shadow:0 -8px 16px #10262f}#journey-map{max-height:calc(var(--app-height) - var(--safe-t) - var(--safe-b) - 150px);object-fit:contain;border:1px solid #657c7d66;flex:none;width:auto;max-width:100%;margin:0 auto;display:block}#dialog:has(#journey-map){width:min(560px,100%);padding:16px}#dialog:has(#journey-map) h2{margin:0 0 10px;font-size:22px}.weapon-grid{flex:none;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px;display:grid}#dialog .weapon-card{text-align:left;color:#d7dace;background:#142b30;border:1px solid #5a747799;flex-direction:column;gap:8px;min-width:0;min-height:106px;margin:0;padding:14px;display:flex}.weapon-card.selected{border-color:var(--weapon-color)!important;background:#20383c!important}.weapon-card strong{color:var(--weapon-color);font-size:18px;font-weight:500}.weapon-card small{color:#b9ccce;font-size:12px}.weapon-card span{color:#c1d2d3;font-size:12px;line-height:1.6}#dialog .combo-guide{margin:4px 0 10px;font-size:12px;line-height:1.7}.display-guide{text-align:left}.display-guide a{color:#dbc699}#unsupported{background:#081b25;place-items:center;padding:30px;display:grid;position:fixed;inset:0}#impact,#danger{pointer-events:none;position:fixed;inset:0}#impact{opacity:0;z-index:20;background:#e9f4ed}#impact.flash{animation:.22s ease-out impact}#danger{transition:box-shadow .5s;box-shadow:inset 0 0 100px #ad352a00}#danger.low{box-shadow:inset 0 0 100px #ad352a66}@keyframes impact{0%{opacity:.22}to{opacity:0}}@media (pointer:coarse){.controls small,.key-hint{display:none}.mobile-hint{display:inline}footer .desktop-hint{display:none}}@media (height<=540px) and (aspect-ratio>=1){header{gap:10px;padding:8px 4%}.seal{width:30px;height:34px;font-size:22px}.title{padding:4px 7% 8px}.title>p:first-child{letter-spacing:3px;margin:0 0 4px;font-size:11px}.title h1{gap:8px;margin:4px 0 8px;font-size:48px;display:flex}.title h1 span{margin:0;font-size:1em}.verse{margin:8px 0;font-size:12px}.rule{width:160px}#start{min-height:46px;padding:8px 18px}#new-game{margin-top:8px}.title>small{margin-top:8px;font-size:11px}footer{padding:4px 4% 8px;font-size:10px}.vitals{left:calc(var(--safe-l) + 12px);top:calc(var(--safe-t) + 10px);width:120px}.vitals button{top:44px}#weapon{left:calc(var(--safe-l) + 72px);top:calc(var(--safe-t) + 54px);width:98px}#objective{top:calc(var(--safe-t) + 10px);width:42%;font-size:11px}#boss{top:calc(var(--safe-t) + 36px);width:33vw}#boss small{font-size:11px}.pause,#map{top:calc(var(--safe-t) + 8px)}#joystick{width:100px;height:100px;left:calc(var(--safe-l) + 20px);bottom:calc(var(--safe-b) + 20px)}.controls{width:250px;height:172px;right:calc(var(--safe-r) + 12px);bottom:calc(var(--safe-b) + 20px)}#light{width:68px;height:68px;font-size:29px}#dodge{width:56px;height:56px;right:80px}#parry{width:52px;height:52px;bottom:54px;right:144px}#heavy{width:56px;height:56px;bottom:116px;right:70px}#burst{width:48px;height:48px;bottom:90px;right:0}#blink{width:48px;height:48px;bottom:122px;right:156px}#message{letter-spacing:2px;max-width:55%;font-size:16px;top:27%}#combat-cue{bottom:calc(var(--safe-b) + 90px);font-size:12px}#interact{bottom:calc(var(--safe-b) + 20px);min-width:102px}#dialog{padding:14px}#dialog h2{margin:0 0 10px;font-size:23px}.weapon-grid{gap:8px;margin-bottom:6px}#dialog .weapon-card{gap:4px;min-height:78px;padding:10px}.weapon-card strong{font-size:16px}.weapon-card small,.weapon-card span{font-size:11px}#dialog .combo-guide{margin:2px 0 6px;font-size:11px;line-height:1.5}#dialog>button{min-height:44px;margin:4px;font-size:13px}#journey-map{max-height:calc(var(--app-height) - var(--safe-t) - var(--safe-b) - 124px)}}@media (aspect-ratio<=1){header{gap:8px;padding:12px 5%}header>span:nth-child(2){letter-spacing:0;font-size:10px}header button{padding:0 10px;font-size:12px}.title{padding:14px 8% 24px}.title h1{margin:8px 0 16px;font-size:clamp(56px,18vw,88px)}.title>p:first-child{letter-spacing:3px;font-size:11px}footer{letter-spacing:1px;font-size:10px}.vitals{left:calc(var(--safe-l) + 12px);top:calc(var(--safe-t) + 12px);width:122px}.vitals button{width:44px;min-width:44px;top:48px}#weapon{left:calc(var(--safe-l) + 64px);top:calc(var(--safe-t) + 60px);width:100px}#objective{left:auto;right:calc(var(--safe-r) + 12px);top:calc(var(--safe-t) + 66px);width:calc(100% - var(--safe-l) - var(--safe-r) - 188px);text-align:right;white-space:normal;max-height:38px;font-size:11px;line-height:1.6;transform:none}#boss{top:calc(var(--safe-t) + 116px);width:70vw}#boss small{font-size:11px}#joystick{width:100px;height:100px;left:calc(var(--safe-l) + 14px);bottom:calc(var(--safe-b) + 24px)}.controls{width:184px;height:200px;right:calc(var(--safe-r) + 12px);bottom:calc(var(--safe-b) + 24px)}#light{width:68px;height:68px;font-size:29px}#dodge{width:52px;height:52px;right:80px}#parry{width:50px;height:50px;bottom:64px;right:118px}#heavy{width:54px;height:54px;bottom:126px;right:52px}#burst{width:48px;height:48px;bottom:96px;right:0}#blink{width:48px;height:48px;bottom:136px;right:126px}#message{letter-spacing:1px;max-width:85%;font-size:17px;top:25%}#combat-cue{bottom:calc(var(--safe-b) + 238px);font-size:12px}#interact{bottom:calc(var(--safe-b) + 210px)}.key-hint{display:none}#dialog{padding:18px 14px}.weapon-grid{gap:8px}#dialog .weapon-card{min-height:112px;padding:12px}.weapon-card strong{font-size:17px}.weapon-card span{font-size:11px}#dialog h2{font-size:25px}#journey-map{max-height:calc(var(--app-height) - var(--safe-t) - var(--safe-b) - 150px)}}@media (width<=359px) and (aspect-ratio<=1){header>span:nth-child(2){display:none}header .seal{margin-right:auto}.title>small{letter-spacing:0}.vitals{width:110px}#joystick{width:94px;height:94px}.weapon-card small{font-size:11px}#dialog .weapon-card{padding:9px}.weapon-card strong{font-size:16px}.weapon-card span{font-size:10px}}@media (height<=400px) and (aspect-ratio>=1){.verse,.title>small,footer{display:none}.title h1{margin:4px 0 8px;font-size:42px}.title>p:first-child{font-size:10px}.title{padding-bottom:12px}#dialog:has(.weapon-grid) .combo-guide{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}#impact.flash{animation:none}}@media (aspect-ratio<=1){#interact{bottom:calc(var(--safe-b) + 220px)}#combat-cue{bottom:calc(var(--safe-b) + 282px)}}.vitals button{justify-content:center;align-items:center;gap:4px;padding:0 5px;display:flex}.vitals button span{margin-left:0}@media (height<=540px) and (aspect-ratio>=1){.dialog-actions .primary{grid-column:auto}}
