/* Task-first layout: one objective, clear status, progressively disclosed options. */
:root{--bg:#101222;--line:#34364d;--muted:#bac2d4;--white:#f5f6fc;--amber:#ffe170}
body{background:radial-gradient(ellipse at 10% 0,#b4384c18,transparent 45%),#101222;font-size:14px;line-height:1.5}
.shell{max-width:1420px;padding:0 32px}header{height:78px;border-bottom:1px solid #ff677b65;box-shadow:none;margin-bottom:24px}.brand{font-size:29px;letter-spacing:3px;text-shadow:none;gap:12px}.brand svg{width:32px;height:32px;filter:none}.header-right{gap:12px}.quiet,.secondary,.game-actions button{min-height:40px;border:1px solid #545267;border-radius:6px;padding:8px 14px;background:#202337;color:#eef0fa;font-size:12px;text-shadow:none}.quiet:hover,.secondary:hover,.game-actions button:hover{border-color:#ffe170;background:#2c2e43}.quiet[aria-pressed=true]{border-color:#ffe170;color:#ffe170;background:#3b3426}.layout{grid-template-columns:minmax(0,1fr) 240px;gap:24px;align-items:start}.hud{display:flex;align-items:center;justify-content:space-between;height:78px;padding:12px 18px;background:#1b1e32;border:1px solid #4b4553;border-bottom:0;box-shadow:none;border-radius:10px 10px 0 0}.tiny{text-transform:none;font:11px 'DM Sans',Arial,sans-serif;letter-spacing:.3px;color:#b9c1d4}.hud strong,.hud-last strong{font-size:24px;color:#ffe582!important;text-shadow:none!important}.hud #lives{font-size:20px;color:#63fff1;text-shadow:none;letter-spacing:3px;line-height:1.5}.round-heading{text-align:center}.round-heading strong{display:block;font:19px 'DM Sans',Arial,sans-serif;color:#f7f6fc!important;font-weight:600}.hud-last{text-align:right}.hud-last .tiny{display:block}.arena{border:1px solid #4f5570;box-shadow:none;aspect-ratio:160/104;border-radius:0;background:#080f18}.arena-label{top:10px;left:auto;right:12px;border:0;padding:0;background:none;color:#bcc3d2;font:10px 'DM Sans',Arial,sans-serif;letter-spacing:0;pointer-events:none}.arena-label span{font-size:10px!important;color:#bdc6d8!important}.screen{background:linear-gradient(120deg,#111c30e8,#271c35d9);backdrop-filter:blur(2px)}.start-inner{max-width:620px;padding:22px 20px}.start-inner h1{font-size:clamp(44px,4.8vw,66px);line-height:1.02;letter-spacing:-.5px;margin:0 0 16px}.start-inner h1 span{color:#ffe170;text-shadow:0 0 24px #ffce541e}.start-inner>p{font-size:13px;line-height:1.6;color:#dde2ee!important;margin:0 0 18px}.difficulty-picker{margin:0 auto 18px;max-width:330px}.difficulty-picker legend{font:12px 'DM Sans',Arial,sans-serif;text-align:left;color:#c9cfdf;letter-spacing:0;margin-bottom:8px}.difficulty-picker button{font-size:13px;min-height:54px;padding:10px 12px;border:1px solid #68617c;background:#24243b;box-shadow:none!important;border-radius:5px}.difficulty-picker button[aria-pressed=true]{border-color:#ffe170;background:#4a3b28;color:#fff2b7}.difficulty-picker small{font:10px 'DM Sans',Arial,sans-serif;color:#c2bfd1}.primary{min-height:44px;min-width:210px;border:1px solid #fff1ac;background:#ffe170;box-shadow:none;border-radius:6px;padding:11px 22px;display:block;font:600 14px 'DM Sans',Arial,sans-serif;text-transform:none;letter-spacing:0;color:#2c2108}.primary:hover{background:#fff0a6;box-shadow:0 0 16px #ffdf7033;transform:none}.practice-link{font-size:12px;color:#d2ccdf;min-height:32px;margin:8px auto;padding:6px 10px}.start-inner .move-hint{font-size:11px;color:#b7bfd0!important;margin:9px 0 2px}.control-layout{font:12px 'DM Sans',Arial,sans-serif;letter-spacing:0;color:#c2c8d6;display:flex;align-items:center;gap:10px;margin:10px auto;justify-content:center}.control-layout select{background:#202236;border:1px solid #656176;border-radius:5px;color:#f5f5ff;font:12px 'DM Sans',Arial,sans-serif;padding:8px 10px;min-height:38px}.round-clock{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:#1d2034;border:1px solid #4f5570;border-top:0;min-height:68px;border-radius:0 0 8px 8px}.round-clock>div:first-child{gap:10px;flex-shrink:0}.round-clock span{font:12px 'DM Sans',Arial,sans-serif;letter-spacing:0;color:#c1c8da}.round-clock strong{font-size:22px;color:#ffe582;text-shadow:none}.round-track{height:3px;flex:1;background:#3e3650;max-width:230px}.round-track>div{box-shadow:none;background:#ffe170}.game-actions{display:flex;gap:6px}.game-actions button{font-size:11px;padding:7px 10px;min-height:36px}.field-note{border:0;background:none;box-shadow:none;min-height:0;color:#d4d9e7;font:13px/1.6 'DM Sans',Arial,sans-serif;padding:0;margin:13px 0 5px}.pickup-status{border:0;background:none;box-shadow:none;color:#8ce8df;padding:0;margin:0;font:11px/1.6 'DM Sans',Arial,sans-serif;letter-spacing:0;min-height:18px}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#b8c1d2;margin:14px 0}.legend>span{display:flex;align-items:center;gap:6px}.legend i{display:inline-flex;width:7px;height:7px;align-items:center;justify-content:center}.legend .pickup-swatch{width:11px;height:11px;border:1px solid #76f8eb;color:#fff;font-size:10px;font-style:normal;line-height:9px}.surface-map{width:120px;right:12px;bottom:12px;border-color:#ddc47777;box-shadow:none}.surface-map span{font:9px 'DM Sans',Arial,sans-serif;color:#e4d6ad;padding:4px 7px;background:#252439}.practice-badge{padding:5px 8px;bottom:12px;left:12px;background:#1e343ac9;border:1px solid #59a79e70;font:10px 'DM Sans',Arial,sans-serif;letter-spacing:0}.encounter-banner{top:8%;padding:9px;left:10%;right:10%;background:linear-gradient(90deg,transparent,#101526bb,transparent)}.encounter-banner>span{font:10px 'DM Sans',Arial,sans-serif;letter-spacing:0;color:#e5d1a2}.encounter-banner strong{font-size:26px}.encounter-banner small{font:11px 'DM Sans',Arial,sans-serif;color:#d0d5e3}.side-panel{display:block;background:#1a1d30;border:1px solid #3d3c53;border-radius:8px;padding:15px;margin:0 0 12px;box-shadow:none}.side-panel>.tiny{display:block;margin-bottom:8px}.side-panel h3{font-size:18px;margin:0 0 7px;color:#f4f3fc}.side-copy{font:12px/1.65 'DM Sans',Arial,sans-serif;color:#b9c2d5;margin:0 0 8px}.charge-label{font:10px 'DM Sans',Arial,sans-serif;color:#c2bdd3}.recharge-track{margin-top:13px;height:3px;background:#3b3650}#recharge{box-shadow:none;background:#ffe170}.next-upgrade{font:11px 'DM Sans',Arial,sans-serif;color:#e5d4a4;margin:12px 0}details>summary{cursor:pointer;color:#e9e8f2;font-size:13px;font-weight:500;min-height:24px;list-style-position:inside}details[open]>summary{margin-bottom:12px}details details{margin-top:9px}details details>summary{font-size:11px;color:#abb5c8;font-weight:400}.side-panel small{font:11px/1.6 'DM Sans',Arial,sans-serif;color:#aeb9cf;display:block}.side-panel .control-layout{justify-content:space-between;flex-wrap:wrap;margin:10px 0}.control-row{display:flex;justify-content:space-between;gap:12px;margin:10px 0;font-size:12px;color:#bfc8d9}kbd{font:11px 'IBM Plex Mono',monospace;color:#a6fff0}.side-panel select{max-width:140px}.weapon-tags{gap:4px;margin-top:8px}.weapon-tags span{font:9px 'DM Sans',Arial,sans-serif;background:#26263b;border-color:#5b536e;color:#ded7ef;padding:4px 6px}.encounter-list{display:grid;gap:3px}.encounter-item{font-size:11px;padding:8px 9px;background:none;border:1px solid transparent;margin:0;border-radius:4px;box-shadow:none!important;color:#bfc4d6}.encounter-item.active{border:1px solid #c6a35388;background:#493c294f}.encounter-item.active:after{display:none}.encounter-item .number{font-size:10px;color:#d1b58d}.encounter-item.done{background:none;color:#aebfd0;border-color:transparent}aside{display:block;padding:0}.side-panel dl div{font-size:12px;margin:12px 0}.side-panel dl dd{font-size:11px;color:#ffe170}.side-panel dl dt{color:#b9c2d5}.volume-label{display:flex;justify-content:space-between;gap:12px;color:#d1d5e3;font-size:12px;margin:6px 0 9px}#musicVolume{width:100%;accent-color:#ffe170;margin:0 0 12px;min-height:24px}#soundBtn{width:100%;margin-top:5px}#practiceTools{margin-top:14px;font-size:11px;color:#c5cada}.practice-select select{min-width:0;max-width:none;width:100%;font-size:11px}.practice-select button{font-size:11px;padding:6px 9px}.upgrade-inner h2{font-size:44px}.upgrade-card{border-radius:8px;box-shadow:none!important;border-color:#8f6a8c;background:linear-gradient(145deg,#342e42,#302238)}.upgrade-card>b{color:#ffe88b;text-shadow:none}.upgrade-card>span{font-size:9px}.upgrade-card>p{font-size:12px}.upgrade-card>small{font-size:10px}.upgrade-help{font-size:11px;letter-spacing:0}.end-inner h2{font-size:50px;text-shadow:none}.screen .end-inner p{font-size:13px}.upgrade-screen{background:#171628f5}footer{border-top:1px solid #3e3d53;display:flex;justify-content:space-between;font-size:11px;letter-spacing:0;color:#aab4ca;margin-top:22px;padding:17px 0 24px}footer a{font-size:11px;color:#e1cb8e;margin:0}dialog{background:#1c2035;border-color:#6e5f71;border-radius:10px;box-shadow:0 15px 70px #0009;padding:26px}dialog p{font-size:13px;color:#cad2e3}dialog h3{font-size:15px;color:#ffe170}.dialog-top>span{font-size:13px;color:#c4c9d8}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #ffe170;outline-offset:4px}
@media(max-width:1050px){.shell{padding:0 22px}.layout{grid-template-columns:minmax(0,1fr) 215px;gap:18px}.game-actions button{font-size:10px;padding:6px 8px}.round-clock{flex-wrap:wrap;gap:10px}.round-track{max-width:none}.game-actions{margin-left:auto}.start-inner h1{font-size:52px}}
@media(max-width:760px){.shell{padding:0 12px}header{height:64px;margin-bottom:14px}.brand{font-size:25px;gap:8px}.brand svg{width:27px;height:27px}.header-right{gap:7px}.quiet{font-size:11px;padding:7px 10px;min-height:38px}.layout{display:flex;flex-direction:column;gap:16px}.play-column{width:100%}.hud{padding:10px 12px;height:70px}.hud strong,.hud-last strong{font-size:20px}.hud #lives{font-size:16px;letter-spacing:1px}.hud .tiny{font-size:10px;letter-spacing:0}.round-heading strong{font-size:15px!important}.arena{aspect-ratio:160/130}.arena:has(#startScreen:not(.hidden)){aspect-ratio:160/190}.start-inner{padding:18px 12px}.start-inner h1{font-size:48px;margin:0 0 15px}.start-inner>p{font-size:12px;margin-bottom:16px}.difficulty-picker{max-width:300px;margin-bottom:17px}.difficulty-picker legend{font-size:11px}.difficulty-picker button{font-size:12px;min-height:49px}.difficulty-picker small{font-size:10px}.primary{font-size:14px;min-height:44px}.practice-link{font-size:12px}.start-inner .control-layout{font-size:11px;margin:8px auto}.control-layout select{font-size:12px;padding:8px}.round-clock{padding:11px 12px;flex-wrap:wrap;min-height:65px}.round-clock strong{font-size:20px}.round-clock span{font-size:11px}.round-track{min-width:30px;max-width:none}.game-actions{width:100%;justify-content:flex-end}.game-actions button{font-size:11px;min-height:36px}.field-note{font-size:12px;margin-top:12px}.pickup-status{font-size:11px}.legend{gap:13px;font-size:10px;margin:11px 0}.surface-map{width:89px;bottom:10px;right:10px}.surface-map span{font-size:8px}.practice-badge{font-size:9px;bottom:10px;left:10px}.encounter-banner{top:9%;left:3%;right:3%}.encounter-banner strong{font-size:22px}.encounter-banner small{font-size:10px}.encounter-banner>span{font-size:9px}aside{display:grid;grid-template-columns:1fr;gap:10px;width:100%}.side-panel{margin:0;padding:14px}.side-panel:first-child{display:block}.side-panel summary{min-height:29px}.side-panel h3{font-size:17px}.side-panel .control-layout{justify-content:flex-start;gap:14px}.side-panel .control-row{max-width:320px}.side-panel small{font-size:11px}footer{display:flex;line-height:1.5;font-size:10px;padding:15px 0}.upgrade-inner h2{font-size:36px}.end-inner h2{font-size:39px}.upgrade-inner{padding-top:12px}.upgrade-screen .eyebrow{font-size:10px;letter-spacing:0}.upgrade-help{font-size:11px}.run-stats b{font-size:19px}.screen .end-inner>p{font-size:12px}dialog{padding:22px}dialog h2{font-size:34px}.arena:fullscreen .start-inner h1{font-size:54px}}
@media(pointer:coarse){.surface-map{top:35px;bottom:auto}.practice-badge{bottom:auto;top:35px}}
@media(prefers-reduced-motion:reduce){.screen{backdrop-filter:none}}

@media(max-width:760px){.arena:has(#startScreen:not(.hidden)){aspect-ratio:auto;min-height:540px}}

/* A decorative heartbeat separator retains the cardiac theme without extra labels. */
header{margin-bottom:0}.cardiac-strip{padding:12px 0 16px;opacity:1}.cardiac-strip svg{display:block;width:100%;height:26px}.cardiac-strip path{stroke:#ff7185;stroke-width:1.8;filter:drop-shadow(0 0 3px #ff586f66)}footer{justify-content:flex-end}
