:root{--ink:#0d0b11;--surface-hi:#24202cf0;--surface-lo:#131119f0;--gold:#d2a04a;--gold-hi:#f3cf7c;--gold-lo:#8c6529;--line-soft:#efe6d229;--ivory:#efe6d2;--ivory-dim:#efe6d2ad;--cyan:#6fe3e6;--health:#a8342f;--health-hi:#d9564a;--health-back:#241216;--hostile:#ec7a6c;--neutral:#ecc566;--ui-scale:1;--font:"Crimson Pro", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-display:"Cinzel", "Trajan Pro", "Palatino Linotype", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}html,body{height:100%;color:var(--ivory);font-family:var(--font);font-size:calc(17px * var(--ui-scale));-webkit-font-smoothing:antialiased;background:#0b0b10;margin:0;line-height:1.25;overflow:hidden}#game{touch-action:none;cursor:default;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#hud[hidden]{display:none}.panel,.slip{--cut:7px;isolation:isolate;background:linear-gradient(160deg, var(--gold-hi), var(--gold) 38%, var(--gold-lo));clip-path:polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));position:relative}.panel:before,.slip:before{content:"";z-index:-1;clip-path:inherit;background:linear-gradient(var(--surface-hi), var(--surface-lo));position:absolute;inset:1px}.slip{--cut:13px;clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% 50%, calc(100% - var(--cut)) 100%, 0 100%);background:linear-gradient(90deg, #d2a04a40, var(--gold) 70%, var(--gold-hi))}.zone{padding:9px 34px 8px 24px;position:absolute;top:18px;left:0}.zone-name{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-size:1.12em;font-weight:600;display:block}.zone-sub{letter-spacing:.03em;color:var(--ivory-dim);margin-top:1px;font-size:.8em;display:block}.corner{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:18px;right:20px}.map{--cut:10px;padding:5px;line-height:0}.map-canvas{clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px);width:176px;height:176px;display:block}.lighting{pointer-events:auto;gap:4px;display:flex}.lighting button,.chip{font:inherit;letter-spacing:.03em;color:var(--ivory-dim);border:1px solid var(--line-soft);cursor:pointer;background:#131119d1;border-radius:1px;padding:3px 11px 4px;font-size:.9em}.lighting button:hover,.chip:hover{color:var(--ivory);border-color:#d2a04a99}.lighting button[aria-pressed=true]{color:var(--gold-hi);border-color:var(--gold);background:#3c2c16db}.lighting button:focus-visible,.ability:focus-visible,.chip:focus-visible,.gold-button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.debug{font-family:var(--font-mono);white-space:pre;color:var(--ivory-dim);min-width:300px;padding:10px 13px;font-size:.68em;line-height:1.5}.debug[hidden]{display:none}.frame{--cut:9px;min-width:250px;padding:8px 14px 11px}.frame-title{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.frame-name{letter-spacing:.01em;font-size:1.12em;font-weight:600}.frame-note{font-family:var(--font-display);color:var(--ivory-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.66em;font-weight:600}.bar{background:var(--health-back);height:13px;box-shadow:0 0 0 1px var(--ink), 0 0 0 2px #d2a04a73;position:relative;overflow:hidden}.bar-fill{transform-origin:0;background:linear-gradient(var(--health-hi), var(--health) 55%, #7e2523);transition:transform .12s linear;position:absolute;inset:0}.bar-fill:after{content:"";background:#ffd6be52;height:2px;position:absolute;inset:1px 0 auto}.bar-text{letter-spacing:.04em;color:var(--ivory);text-shadow:0 1px 1px #000000e6;place-items:center;font-size:.7em;font-weight:600;display:grid;position:absolute;inset:0}.player{position:absolute;bottom:22px;left:20px}.effects{gap:6px;margin-top:9px;display:flex}.effects:empty{display:none}.effect{color:var(--ivory);background:#6fe3e61f;border:1px solid #6fe3e666;padding:1px 8px 2px;font-size:.82em}.effect.combat{background:#a8342f38;border-color:#ec7a6c73}.target{position:absolute;top:18px;left:50%;transform:translate(-50%)}.target[hidden]{display:none}.target[data-faction=hostile] .frame-note{color:var(--hostile)}.target[data-faction=neutral] .frame-note{color:var(--neutral)}.abilities{pointer-events:auto;gap:12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.slot{flex-direction:column;align-items:center;gap:5px;display:flex}.ability{--cd:0;--cut:6px;width:60px;height:60px;color:var(--ivory);cursor:pointer;font:inherit;border:0;padding:0}.ability:before{background:radial-gradient(at 50% 30%,#4a2a2c,#251a22 62%,#17131b)}.ability svg{width:38px;height:38px;fill:var(--ivory);filter:drop-shadow(0 1px #0009);margin:11px auto 0;display:block}.ability svg .shade{fill:#b9ad97}.ability:after{content:"";clip-path:inherit;background:conic-gradient(#08070ccc calc(var(--cd) * 360deg), transparent 0);pointer-events:none;position:absolute;inset:1px}.ability-key{text-align:center;min-width:22px;color:var(--ivory);background:#131119e0;border:1px solid #d2a04a80;border-radius:2px;padding:0 6px 1px;font-size:.82em;font-weight:600}.ability-time{z-index:1;text-shadow:0 1px 2px #000;place-items:center;font-size:1.15em;font-weight:600;display:grid;position:absolute;inset:0}.ability[data-state=cooling] svg{opacity:.38}.ability[data-state=active]{background:linear-gradient(160deg, #c8fbfb, var(--cyan) 45%, #2f9aa3)}.ability.denied{animation:.28s ease-out denied}@keyframes denied{0%{background:var(--hostile);transform:translate(-2px)}50%{transform:translate(2px)}to{transform:none}}.toast{--cut:12px;clip-path:polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% 50%, calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 50%);background:linear-gradient(90deg, var(--gold-lo), var(--gold-hi) 50%, var(--gold-lo));color:#f5dfae;white-space:nowrap;opacity:0;padding:6px 30px 7px 22px;transition:opacity .18s;position:absolute;top:22%;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.hint{pointer-events:auto;flex-direction:column;align-items:flex-end;max-width:320px;display:flex;position:absolute;bottom:22px;right:20px}.help{--cut:10px;margin-bottom:8px;padding:13px 16px 14px;font-size:.92em;line-height:1.5}.help[hidden]{display:none}.help h2,.fatal h2,.death h2,.notice h2{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);margin:0 0 8px;font-weight:600}.help h2{font-size:.95em}.help dl{grid-template-columns:auto 1fr;gap:1px 14px;margin:0;display:grid}.help dt{color:var(--gold-hi);white-space:nowrap}.help dd{color:var(--ivory-dim);margin:0}.death{text-align:center;background:radial-gradient(#0a080e40,#0a080ebd);place-content:center;display:grid;position:absolute;inset:0}.death[hidden]{display:none}.death h2{text-shadow:0 2px 10px #000;margin-bottom:4px;font-size:2em}.death p{color:var(--ivory);text-shadow:0 1px 4px #000;margin:0;font-size:1.1em}.labels{position:absolute;inset:0;overflow:hidden}.plate{text-align:center;will-change:transform;width:150px;margin-left:-75px;position:absolute;top:0;left:0}.plate[hidden]{display:none}.plate-name{text-shadow:0 1px 2px #000,0 0 6px #000000e6;white-space:nowrap;font-size:1.08em;font-weight:600}.plate[data-faction=hostile] .plate-name{color:#f6d3cb}.plate[data-faction=neutral] .plate-name{color:#f3e0ad}.plate .bar{height:8px;margin:4px 12px 0}.plate[data-faction=neutral] .bar{display:none}.float{font-family:var(--font-display);color:var(--ivory);text-shadow:0 1px 2px #000,0 0 6px #000000e6;white-space:nowrap;will-change:transform, opacity;font-size:1.3em;font-weight:700;animation:.95s ease-out forwards float-up;position:absolute;top:0;left:0}.float.taken{color:#ff9d8e}.float.guarded{color:var(--cyan);font-size:1.05em}.float.miss{color:var(--ivory-dim);font-size:1em}@keyframes float-up{0%{opacity:0;margin-top:6px}12%{opacity:1;margin-top:0}70%{opacity:1}to{opacity:0;margin-top:-46px}}#loading{background:radial-gradient(at 50% 42%,#1d1a26,#0b0b10 70%);grid-template-rows:auto 1fr;justify-items:center;padding:6vh 20px 5vh;transition:opacity .5s,background-color .6s;display:grid;position:fixed;inset:0}#loading.ready{background:radial-gradient(at 50% 46%,#0b0a1033,#0b0a1080 55%,#0b0a10e6)}#loading.done{opacity:0;pointer-events:none}.loading-mark{filter:drop-shadow(0 6px 22px #000000bf);width:min(600px,78vw);height:auto}.loading-panel{background:radial-gradient(#0d0b11c7,#0d0b1100 72%);grid-row:2;align-self:center;justify-items:center;gap:14px;width:min(380px,80vw);margin-top:12vh;padding:20px 26px 18px;display:grid}.title-rule{width:100%;font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--ivory);align-items:center;gap:14px;margin:0;font-size:1.15em;font-weight:600;display:flex}.title-rule:before,.title-rule:after{content:"";background:linear-gradient(90deg, transparent, var(--gold-hi));flex:1;min-width:28px;height:2px}.title-rule:after{background:linear-gradient(90deg, var(--gold-hi), transparent)}.loading-bar{width:100%;height:5px;box-shadow:0 0 0 1px var(--ink);background:#efe6d21f;overflow:hidden}.loading-fill{transform-origin:0;background:linear-gradient(90deg, var(--gold-lo), var(--gold-hi));width:100%;height:100%;transition:transform .2s ease-out;transform:scaleX(0)}.loading-status{color:var(--ivory-dim);min-height:1.3em;margin:0;font-size:.95em}.loading-note{color:var(--ivory-dim);text-shadow:0 1px 3px #000;margin:2px 0 0;font-size:.85em}#loading.ready .loading-bar,#loading.ready .loading-status{display:none}.gold-button{--cut:8px;width:100%;font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:#2a1c08;text-shadow:0 1px #ffecb48c;cursor:pointer;clip-path:polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));filter:drop-shadow(0 3px 8px #0009);background:linear-gradient(#fff4cd80,#fff4cd00 34%),linear-gradient(#e9b85a,#c58c34 58%,#9c6a22);border:0;padding:9px 20px 10px;font-size:1.2em;font-weight:700;box-shadow:inset 0 0 0 1px #ffe8aab3,inset 0 -3px #58380e73}.gold-button[hidden]{display:none}.gold-button:hover{background:linear-gradient(#fff8dc9e,#fff8dc00 38%),linear-gradient(#f3c66a,#d2993f 58%,#a9742a)}.gold-button:active{transform:translateY(1px)}.fatal{text-align:left;grid-row:2;align-self:center;max-width:560px;padding:18px 22px 20px;line-height:1.45}.fatal p{color:var(--ivory-dim);margin:0 0 14px}.fatal button{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-hi);border:1px solid var(--gold);cursor:pointer;background:#3c2c16db;padding:6px 18px 7px;font-weight:600}.notice{text-align:center;z-index:5;padding:16px 22px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.notice[hidden]{display:none}@media (prefers-reduced-motion:reduce){.float{opacity:1;animation-duration:10ms;animation-iteration-count:1}.ability.denied{background:var(--hostile);animation:none}.bar-fill,.loading-fill,#loading,.toast{transition:none}}@media (max-width:900px){.zone-sub,.hint,.map{display:none}.frame{min-width:180px}.ability{width:52px;height:52px}.ability svg{width:32px;height:32px;margin-top:10px}}.download-cache-note{max-width:360px;color:var(--ivory-dim);margin-top:16px;font-size:.8em}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(./cinzel-latin-600-normal-Dd5YO2UX.woff2)format("woff2"),url(./cinzel-latin-600-normal-CH_LB4su.woff)format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(./cinzel-latin-700-normal-Dkw14w9r.woff2)format("woff2"),url(./cinzel-latin-700-normal-C-gK7hA8.woff)format("woff")}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./crimson-pro-latin-400-normal-B4SlG4wx.woff2)format("woff2"),url(./crimson-pro-latin-400-normal-BzhyrSeK.woff)format("woff")}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./crimson-pro-latin-600-normal-vJ8oEdKU.woff2)format("woff2"),url(./crimson-pro-latin-600-normal-Ca4fy0Cf.woff)format("woff")}
