:root{color-scheme:dark;--bone:#e3dfca;--muted:#aeb8b4;--gold:#cfb786;--red:#763b43;--ink:#101b25;font-family:'Segoe UI',sans-serif;color:var(--bone)}
#round-announcement{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:min(620px,90vw);padding:24px 30px;text-align:center;pointer-events:none;background:radial-gradient(ellipse,#0b1624ad 0%,#0b162456 45%,transparent 72%);text-shadow:0 3px 8px #060b13;z-index:3}
#announcement-eyebrow{display:flex;align-items:center;justify-content:center;gap:16px;font:11px 'Segoe UI',sans-serif;text-transform:uppercase;letter-spacing:.24em;color:var(--gold)}
#announcement-eyebrow::before,#announcement-eyebrow::after{content:'';height:1px;width:64px;background:linear-gradient(90deg,transparent,#cfb78688)}
#announcement-eyebrow::after{transform:rotate(180deg)}
#announcement-title{display:block;margin:12px 0 4px;font:clamp(30px,4vw,54px)/1.12 Georgia,serif;font-weight:400;color:var(--bone);overflow-wrap:anywhere}
#round-announcement[data-kind=countdown] #announcement-title{font-size:clamp(88px,12vw,128px);font-variant-numeric:lining-nums tabular-nums;margin:4px 0}
#round-announcement[data-kind=fight] #announcement-title{color:var(--gold);font-size:clamp(50px,7vw,78px)}
#round-announcement[data-kind=waiting] #announcement-title{font-size:clamp(25px,3vw,34px)}
#announcement-score{display:block;font:32px/1.5 Georgia,serif;letter-spacing:.12em;color:var(--gold)}
#announcement-score:empty{display:none}#announcement-detail{font:12px/1.65 'Segoe UI',sans-serif;color:#c3c9bf;margin:8px 0 0;letter-spacing:.025em}
#round-announcement:not([hidden])~#message{opacity:0}
.wardrobe-grid article.equipped{border-color:#cfb78688}.armory-starter{max-width:640px;line-height:1.65;color:var(--muted)}
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#182732}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}#game{position:fixed;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none}#interface{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 4px #081019}header{position:absolute;top:30px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:flex-start}.wordmark{font-family:Georgia,serif;font-size:24px;letter-spacing:.04em}.wordmark span{display:block;margin-top:7px;font:12px 'Segoe UI',sans-serif;color:var(--muted);letter-spacing:.03em}.session-label{font-size:12px;color:#bdc9c7;display:flex;align-items:center;gap:8px}.session-label i{width:5px;height:5px;border-radius:50%;background:#b6caa3}#menu{position:absolute;left:38px;top:50%;transform:translateY(-43%);width:400px;max-height:calc(100vh - 145px);overflow-y:auto;pointer-events:auto;padding:26px 25px 18px;background:linear-gradient(100deg,#101a24ed,#132330dd);border:1px solid #b5b7a426;box-shadow:0 10px 70px #0b142736}h1{font:35px/1.15 Georgia,serif;margin:0 0 16px;font-weight:400;letter-spacing:-.025em}.menu-ornament{font-size:22px;color:var(--gold);margin-bottom:18px}#menu-copy{font-size:14px;color:#bfc8c0;line-height:1.65;margin:0 0 24px}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;background:#c1ac80;color:#17232b;border:1px solid #d4c39b;padding:14px 16px;font-weight:600;transition:background .15s}.primary:hover{background:#dfcba2}.primary span{font-size:20px;font-weight:400}#input-note{font-size:11px;color:#9daea9;text-align:center;margin:11px 0 23px}.controls{display:grid;gap:10px;font-size:11px;color:#b9c6c3}.controls>div{display:grid;grid-template-columns:86px 1fr 57px 1fr;align-items:center;gap:4px}kbd{font:10px 'Segoe UI',sans-serif;color:#e2dfce}.controls>div:nth-child(3){grid-template-columns:86px 1fr 77px 1fr}details{border-top:1px solid #bec8b828;margin-top:22px;padding-top:12px;font-size:12px}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;padding:3px 0;color:#d0d6c8}summary::-webkit-details-marker{display:none}details label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;color:#bfcac7}input[type=range]{width:120px;accent-color:var(--gold)}output{width:28px;text-align:right;font-size:11px}select{background:#182934;color:var(--bone);padding:5px;border:1px solid #ffffff24;font-size:12px}input[type=checkbox]{accent-color:var(--gold)}.menu-footnote{font-size:10px;color:#899e9f;margin:20px 0 0}#target{position:absolute;left:50%;top:36px;transform:translateX(-50%);width:220px;text-align:center;font-size:13px;opacity:0;transition:opacity .2s}#target.visible{opacity:1}.target-track{height:3px;background:#111b28bd;margin:8px 0;border:1px solid #b9a67a36;box-sizing:content-box}#target-fill{height:100%;width:100%;background:#b3a17c;transition:width .12s}#target-health{font-size:10px;color:#b9c6c6}#reticle{position:absolute;left:50%;top:50%;width:4px;height:4px;border:1px solid #f0ecd390;transform:translate(-50%,-50%);box-shadow:0 0 3px #071119}#hitmarker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:32px Georgia,serif;color:#e8d2a3;opacity:0;transition:opacity .12s}#hitmarker.hit{opacity:1}#floating-damage{position:absolute;left:calc(50% + 27px);top:calc(50% - 55px);font:26px Georgia,serif;color:#edcda0;opacity:0;transition:opacity .18s,transform .35s}#floating-damage.hit{opacity:1;transform:translateY(-12px)}#combat-hud{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);width:220px}#action-label{font:14px Georgia,serif;display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}#action-label span{font:10px 'Segoe UI',sans-serif;color:#c6cfc9}.stamina-track{height:3px;background:#0e1b27b3}.stamina-track>div{height:100%;background:#a5b2a0;width:100%;transition:width .06s}#stamina-caption{font-size:10px;margin-top:7px;display:flex;justify-content:space-between;color:#b7c0b5}#help-line{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:#aebcbb}#help-line b{color:#697f83;font-weight:400;margin:0 8px}#practice-log{position:absolute;bottom:64px;left:38px;font:14px Georgia,serif}#practice-log small{font:11px 'Segoe UI',sans-serif;display:block;color:#a7b7b5;margin-top:9px}#perf{position:absolute;right:30px;bottom:25px;text-align:right;font-size:10px;line-height:1.8;color:#a7b9b6;font-variant-numeric:tabular-nums}#message{position:absolute;left:50%;top:68%;transform:translateX(-50%);font:16px Georgia,serif;opacity:0;transition:opacity .2s;color:#e6d3aa;text-align:center}#message.visible{opacity:1}.playing #menu{display:none}body:not(.playing) #reticle,body:not(.playing) #combat-hud,body:not(.playing) #help-line,body:not(.playing) #practice-log{opacity:0}#loading,#error{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#101b25;font:16px Georgia,serif}#loading .sigil{font-size:54px;color:var(--gold)}#loading p{color:#bbc7c2}#error[hidden],[hidden]{display:none!important}#error{padding:30px;text-align:center}#error button{padding:12px 25px;color:var(--ink);background:var(--gold);border:0}#error p{max-width:520px;line-height:1.6}.paused #target{opacity:0}body.playing header .wordmark{opacity:.7}.unsupported{color:#dfb673!important}
@media(max-width:850px){header{top:20px;left:20px;right:20px}.wordmark{font-size:19px}.session-label{font-size:10px}#menu{left:20px;width:350px;padding:20px;max-height:calc(100vh - 115px)}h1{font-size:30px}#target{top:87px;width:180px}#practice-log{left:20px;bottom:100px;font-size:12px}#help-line{font-size:9px}#perf{right:15px;bottom:58px}#help-line b{margin:0 3px}.controls{font-size:10px}}
@media(max-height:730px){#menu{top:100px;transform:none;max-height:calc(100vh - 125px)}.menu-ornament{display:none}#menu-copy{margin-bottom:16px}.controls{gap:7px}#input-note{margin-bottom:16px}details{margin-top:16px}.menu-footnote{margin-top:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.drill-picker{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin:0 0 20px;color:#cdd1be}.combat-tip{font-size:11px;line-height:1.6;color:#b5c3bf;margin:18px 0 0}.controls>div,.controls>div:nth-child(3){grid-template-columns:90px 1fr 81px 1fr}.controls{font-size:10px}#menu{width:425px}#menu .controls kbd{font-size:10px}#action-label #weapon-label{font:14px Georgia,serif;color:var(--bone)}.timing-track{height:2px;margin-top:7px}#timing-fill{height:100%;background:#8bcad3;width:0}#reticle.parry{width:10px;height:10px;border-color:#94e2ed;transform:translate(-50%,-50%) rotate(45deg)}#defense-hud{position:absolute;right:30px;bottom:103px;font-size:12px;text-align:right;display:grid;gap:7px;color:#c2ceca}#defense-hud small{font-size:10px;color:#9eafae}#player-health{font:15px Georgia,serif}#incoming{position:absolute;top:105px;left:50%;transform:translateX(-50%);color:#d1b780;font-size:12px}body:not(.playing) #defense-hud,body:not(.playing) #incoming{display:none}.hurt #interface{box-shadow:inset 0 0 150px #91334290}#last-defense{max-width:275px}#menu{scrollbar-width:thin;scrollbar-color:#6b7a78 #15232d}@media(max-width:850px){#menu{width:390px;max-width:calc(100vw - 40px)}#defense-hud{bottom:138px;right:20px}#incoming{top:153px}}

#match-hud{position:absolute;top:105px;left:50%;transform:translateX(-50%);text-align:center;color:#d1b780;font-size:12px;display:grid;gap:8px}#round-score{font:26px Georgia,serif;letter-spacing:.08em;color:#e3dfca}body:not(.playing) #match-hud{top:32%;left:auto;right:10%;transform:none;width:260px;line-height:1.6}#connection{max-width:200px;text-align:right}@media(max-width:850px){#match-hud{top:148px}body:not(.playing) #match-hud{display:none}}
