@font-face{font-family:Pixelify Sans;font-weight:400;font-style:normal;font-display:block;src:url(/fonts/PixelifySans-400.woff2)format("woff2")}@font-face{font-family:Pixelify Sans;font-weight:600;font-style:normal;font-display:block;src:url(/fonts/PixelifySans-600.woff2)format("woff2")}@font-face{font-family:"Jacquarda Bastarda 9";font-weight:400;font-style:normal;font-display:block;src:url(/fonts/JacquardaBastarda9-400.woff2)format("woff2")}@font-face{font-family:IM Fell English SC;font-weight:400;font-style:normal;font-display:block;src:url(/fonts/IMFellEnglishSC-400.woff2)format("woff2")}:root{--ink:#f1ebe2;--ink-dim:#f1ebe2b8;--gold:#d8b45a;--gold-dim:#8f7640;--hp:#b8322f;--hp-lag:#e6dcc0;--st:#ddd1ad;--mp:#7d92c4;--hostile:#d0453a;--panel:#120e169e;--shadow:0 1px 0 #000000d9, 0 0 6px #00000073;--pixel:"Pixelify Sans", monospace;--serif:"IM Fell English SC", Georgia, serif;--gothic:"Jacquarda Bastarda 9", "IM Fell English SC", serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--pixel);-webkit-user-select:none;user-select:none;background:#120e16;margin:0;overflow:hidden}#app{position:fixed;inset:0}#game-canvas{image-rendering:auto;display:block}#stats{color:#d9f0c8;z-index:50;pointer-events:none;background:#0000008c;margin:0;padding:6px 8px;font:12px/1.35 monospace;display:none;position:fixed;top:8px;left:8px}#loading{z-index:100;cursor:default;background:radial-gradient(at 50% 40%,#463a588c,#0a080ef5 70%),#0d0a11;place-items:center;transition:opacity .9s;display:grid;position:fixed;inset:0}#loading.ready{cursor:pointer;background:radial-gradient(at 50% 40%,#28203459,#0a080ecc 75%)}#loading.hidden{opacity:0;pointer-events:none}.loading-inner{text-align:center;width:min(520px,86vw)}.loading-inner .title{font-family:var(--gothic);letter-spacing:.02em;color:#efe6d4;text-shadow:0 3px #2a2030,0 0 24px #d8b45a40;font-size:clamp(56px,9vw,104px);line-height:1}.loading-inner .subtitle{font-family:var(--serif);color:#b7aac2;letter-spacing:.08em;margin:6px 0 28px;font-size:18px}.loading-inner .bar{border:1px solid var(--gold-dim);width:70%;height:4px;margin:0 auto 12px;padding:1px}#loading-bar{background:var(--gold);width:0;height:100%;transition:width .25s}#loading-text{font-family:var(--serif);color:#cfc2d8;letter-spacing:.06em;font-size:16px}#loading.ready #loading-text{color:var(--ink);animation:1.8s ease-in-out infinite pulse}#loading.ready .bar{opacity:0}@keyframes pulse{50%{opacity:.45}}#hud{pointer-events:none;z-index:20;text-shadow:var(--shadow);position:fixed;inset:0}.hidden{display:none!important}.compass{width:380px;height:44px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.compass-line{border-top:1px solid #f0eae0bf;border-bottom:1px solid #f0eae059;height:3px;position:absolute;top:24px;left:0;right:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.compass-strip span{position:absolute;transform:translate(-50%)}.compass-strip .card{font:600 17px/1 var(--pixel);color:var(--ink);letter-spacing:0;top:0}.compass-strip .dot{background:#f0eae0cc;width:2px;height:3px;top:22px}.compass-strip .tick{background:#f0eae0e6;width:2px;height:7px;top:20px}.compass-marks span{position:absolute;transform:translate(-50%)}.compass-marks .m-hostile{background:var(--hostile);width:6px;height:6px;top:22px;box-shadow:0 0 4px #d0453acc}.compass-marks .m-poi{color:var(--ink-dim);top:30px}.compass-center{position:absolute;top:28px;left:50%;transform:translate(-50%)}.target{text-align:center;width:240px;position:absolute;top:62px;left:50%;transform:translate(-50%)}.target-name{font-family:var(--serif);letter-spacing:.05em;color:var(--ink);font-variant:small-caps;margin-bottom:4px;font-size:21px}.target-bar,.vitals .bar{height:4px;margin:0 6px;position:relative}.target-bar .fill,.target-bar .lag,.vitals .fill,.vitals .lag{position:absolute;top:0;bottom:0;left:0}.target-bar .lag{background:var(--hp-lag);opacity:.85}.target-bar .fill{background:var(--hp)}.target-bar .cap,.vitals .cap{background:#f0eae0d9;width:2px;height:12px;position:absolute;top:-4px;left:-6px}.target-bar .cap.r,.vitals .cap.r{left:auto;right:-6px}.vitals{width:210px;transition:opacity .6s;position:absolute;bottom:34px;left:26px}.vitals .bar{background:#0a080e73;height:4px;margin:0 6px 7px}.vitals .hp .fill{background:var(--hp)}.vitals .st .fill{background:var(--st)}.vitals .mp .fill{background:var(--mp)}.vitals .lag{background:#fff5e18c}.crosshair{transition:opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.prompt{text-align:center;position:absolute;top:calc(50% + 26px);left:50%;transform:translate(-50%)}.prompt .p-name{font-family:var(--serif);color:var(--ink);font-size:19px}.prompt .p-action{font:14px var(--pixel);color:var(--ink-dim);margin-top:2px}.toast{font:600 20px var(--pixel);color:var(--ink);letter-spacing:.04em;opacity:0;transition:opacity .35s,transform .35s;position:absolute;top:38%;left:50%;transform:translate(-50%,6px)}.toast.show{opacity:1;transform:translate(-50%)}.banner{text-align:center;opacity:0;transition:opacity 1.2s;position:absolute;top:24%;left:50%;transform:translate(-50%)}.banner.show{opacity:1}.banner .b-title{font-family:var(--gothic);color:#efe6d4;text-shadow:0 3px #1a1420,0 0 18px #0009;font-size:54px}.banner .b-sub{font-family:var(--serif);color:#cbbfd5;letter-spacing:.06em;margin-top:4px;font-size:18px}.charge-ring{transform-origin:32px 32px;width:64px;height:64px;position:absolute;top:0;left:0}.hintbar{font:13px var(--serif);color:var(--ink-dim);white-space:nowrap;background:#0e0a1273;border:1px solid #d8b45a8c;padding:3px 12px 2px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.hurt{opacity:0;background:radial-gradient(#0000 45%,#780e128c 100%);position:absolute;inset:0}.death{text-align:center;pointer-events:auto;cursor:pointer;background:radial-gradient(#14060a40,#0c0408d9);place-content:center;display:grid;position:absolute;inset:0}.death .d-title{font-family:var(--gothic);color:#c9b9c4;text-shadow:0 4px #120a10;font-size:72px}.death .d-sub{font:18px var(--serif);color:#a796a8;margin-top:8px;animation:1.8s ease-in-out infinite pulse}#menu{z-index:60;font-family:var(--serif);color:var(--ink);background:radial-gradient(at 50% 40%,#1e18288c,#08060ce0);place-items:center;display:grid;position:fixed;inset:0}#menu.hidden{display:none}.menu-panel{text-align:center;width:min(460px,90vw)}.menu-title{font-family:var(--gothic);text-shadow:0 3px #1a1420;margin-bottom:18px;font-size:64px}.menu-list button{width:100%;color:var(--ink);font:20px var(--serif);letter-spacing:.05em;cursor:pointer;background:#140f1a8c;border:1px solid #d8b45a59;margin:6px 0;padding:9px 0 7px;display:block}.menu-list button:hover{border-color:var(--gold);background:#30243ab3}.menu-settings{text-align:left;margin-top:10px}.menu-settings label{grid-template-columns:1fr 180px;align-items:center;gap:12px;margin:10px 0;font-size:17px;display:grid}.menu-settings input[type=range]{accent-color:var(--gold)}.menu-settings select{color:var(--ink);border:1px solid var(--gold-dim);font:15px var(--serif);background:#1a1420;padding:3px}.controls-grid{text-align:left;grid-template-columns:auto 1fr;gap:6px 18px;width:-moz-fit-content;width:fit-content;margin:10px auto;font-size:17px;display:grid}.controls-grid b{font:600 14px var(--pixel);color:var(--gold);padding-top:2px}.menu-foot{color:#9b8fa6;margin-top:16px;font-size:13px}.hitmarker{opacity:0;width:0;height:0;position:absolute;top:50%;left:50%}.hitmarker i{background:#f4eee6;width:9px;height:2px;position:absolute;box-shadow:0 0 2px #000000b3}.hitmarker i:first-child{transform:translate(-15px,-10px)rotate(45deg)}.hitmarker i:nth-child(2){transform:translate(6px,-10px)rotate(-45deg)}.hitmarker i:nth-child(3){transform:translate(-15px,8px)rotate(-45deg)}.hitmarker i:nth-child(4){transform:translate(6px,8px)rotate(45deg)}.hitmarker.show{opacity:1}.hitmarker.anim{animation:.25s ease-out forwards hitpop}.hitmarker.crit i{background:#ffd27a;width:11px}.hitmarker.kill i{background:#d0453a;width:13px;height:3px}.hitmarker.kill.anim{animation:.5s ease-out forwards hitpop}.hitmarker.block i{background:#9aa6c8}@keyframes hitpop{0%{opacity:1;transform:scale(.6)}30%{opacity:1;transform:scale(1.25)}to{opacity:0;transform:scale(1)}}.dmg-dirs{position:absolute;top:50%;left:50%}.dmg-dir{border:5px solid #0000;border-top-color:#be2828d9;border-radius:50%;width:220px;height:220px;animation:.9s ease-out forwards dmgfade;position:absolute;top:0;left:0;-webkit-mask-image:radial-gradient(circle,#0000 60%,#000 61%)}@keyframes dmgfade{0%{opacity:1}to{opacity:0}}#overlay{pointer-events:none;z-index:22;text-shadow:var(--shadow);position:fixed;inset:0}.objective{max-width:360px;font:18px/1.3 var(--serif);color:var(--ink);letter-spacing:.02em;border-left:2px solid var(--gold);background:linear-gradient(90deg,#0e0a129e,#0e0a1200);flex-wrap:wrap;align-items:baseline;gap:9px;padding:8px 14px 9px 12px;transition:opacity .8s;display:flex;position:absolute;top:22px;left:26px}.objective .o-label{width:100%;font:600 11px var(--pixel);letter-spacing:.18em;color:var(--gold);text-transform:uppercase;margin-bottom:-2px}.objective .o-dia{color:var(--gold);font-size:12px}.objective .o-meta{font:14px var(--pixel);color:var(--ink-dim)}.objective.fresh{animation:1.4s ease-out objin}.objective.done{opacity:0;transition:opacity 1.6s .4s}.objective.done .o-text{-webkit-text-decoration:line-through #d8b45acc;text-decoration:line-through #d8b45acc}@keyframes objin{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.target{top:118px}.subtitle{text-align:center;background:linear-gradient(#0000,#0c08108c 30% 70%,#0000);width:min(760px,86vw);padding:10px 18px 12px;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}.subtitle .s-name{font:600 15px var(--pixel);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}.subtitle .s-text{font:21px/1.35 var(--serif);color:#f3ecdf;min-height:1.35em}.hint{max-width:330px;font:16px/1.4 var(--serif);color:var(--ink);background:#0e0a12a8;border:1px solid #d8b45a73;padding:8px 14px 9px;animation:.5s ease-out objin;position:absolute;top:44%;left:26px}.teach{background:#0e0a12b8;border:1px solid #d8b45a8c;align-items:center;gap:14px;max-width:420px;padding:10px 16px 10px 12px;transition:opacity .5s,transform .5s;animation:.45s ease-out objin;display:flex;position:absolute;top:44%;left:26px}.teach.done{opacity:0;transform:translate(-12px)}.teach.done .t-text{color:#b8e0a0}.teach .t-keys{flex-shrink:0;align-items:center;gap:5px;display:flex}.teach .t-text{font:18px/1.3 var(--serif);color:var(--ink)}.teach .t-text small{font:14px var(--serif);color:var(--ink-dim);margin-top:2px;display:block}.key{box-sizing:border-box;min-width:34px;height:34px;font:600 15px var(--pixel);color:#1a1420;background:linear-gradient(#f1e6cc,#d6c6a2);border-radius:4px;place-items:center;padding:0 8px;display:grid;box-shadow:0 3px #8a7a5a,0 4px 6px #00000080}.key.wide{min-width:64px}.key-plus{font:15px var(--pixel);color:var(--ink-dim)}.mouse svg{filter:drop-shadow(0 3px 2px #00000080);display:block}.loadout{align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:28px;right:26px}.slot{color:#cbbfae;background:#0e0a128c;border:1px solid #d8b45a59;place-items:center;width:50px;height:50px;transition:transform .15s,border-color .15s,opacity .2s;display:grid;position:relative}.slot svg{width:34px;height:34px}.slot .num{font:600 11px var(--pixel);color:var(--ink-dim);position:absolute;top:1px;left:3px}.slot.active{border-color:var(--gold);color:#f6ead0;background:#281e28b3;transform:translateY(-4px);box-shadow:0 0 10px #d8b45a59}.slot.active .num{color:var(--gold)}.slot.locked{opacity:.28}.slot.gap{margin-left:10px}.slot .cd{background:#08060cb3;position:absolute;bottom:0;left:0;right:0}.slot.low{color:#6a6a8a}.esc-hint{font:12px var(--serif);color:var(--ink-dim);opacity:.8;position:absolute;bottom:8px;right:28px}.hint kbd{font:600 13px var(--pixel);color:#1a1420;background:#e9dcc0;border-radius:2px;margin:0 2px;padding:0 5px}.bossbar{text-align:center;width:min(620px,64vw);position:absolute;top:62px;left:50%;transform:translate(-50%)}.bossbar .b-plabel{font:600 10px var(--pixel);letter-spacing:.2em;color:#c9a860;text-transform:uppercase;margin-top:3px}.bossbar .b-name{font:22px var(--serif);font-variant:small-caps;color:#efe4d4;letter-spacing:.05em;margin:0 0 5px}.bossbar .b-track{background:#0a080e99;height:6px;margin:0 8px;position:relative}.bossbar .b-lag,.bossbar .b-hp{position:absolute;top:0;bottom:0;left:0}.bossbar .b-lag{background:#e8dcc0}.bossbar .b-hp{background:#a42a2a}.bossbar .cap{background:#f0eae0d9;width:2px;height:16px;position:absolute;top:-5px;left:-8px}.bossbar .cap.r{left:auto;right:-8px}.bossbar .b-posture{background:#0a080e80;justify-content:center;width:60%;height:5px;margin:7px auto 0;display:flex;position:relative}.bossbar .b-pfill{background:linear-gradient(90deg,#c9952e,#ffd27a,#c9952e);width:0;height:100%;transition:width .12s}.bossbar .b-pfill.full{background:#fff1c2;box-shadow:0 0 8px #ffd27a}.fade{opacity:0;background:#07050a;position:absolute;inset:0}.chapter-card{text-align:center;transition:opacity 1.2s;animation:1.6s ease-out cardin;position:absolute;top:30%;left:50%;transform:translate(-50%)}.chapter-card.out{opacity:0}.chapter-card .c-num{font:16px var(--serif);letter-spacing:.4em;color:var(--gold);text-transform:uppercase}.chapter-card .c-title{font-family:var(--gothic);color:#f1e8d6;text-shadow:0 4px #120c16,0 0 24px #0000008c;font-size:76px;line-height:1.05}.chapter-card .c-sub{font:18px var(--serif);color:#d2c6da;letter-spacing:.06em;margin-top:6px}@keyframes cardin{0%{opacity:0;letter-spacing:.1em}to{opacity:1}}.menu-panel.wide{text-align:left;grid-template-columns:380px 1fr;gap:44px;width:min(980px,94vw);display:grid}.menu-col.controls{grid-template-columns:auto 1fr;align-content:start;gap:6px 14px;padding-top:18px;font-size:16px;display:grid}.menu-col.controls .c-group{font:600 12px var(--pixel);letter-spacing:.2em;color:var(--gold);text-transform:uppercase;border-bottom:1px solid #d8b45a40;grid-column:1/-1;margin-top:10px;padding-bottom:3px}.menu-col.controls .c-row{display:contents}.menu-col.controls .c-keys{transform-origin:100%;justify-content:flex-end;align-items:center;gap:4px;display:flex;transform:scale(.82)}.menu-col.controls .c-row>span:last-child{color:#e6dccb;align-self:center}.menu-panel.wide .menu-title{text-align:left;font-size:56px}
