:root{--night: #1e2214;--night-2: #2a2f1c;--olive: #5b6b3a;--sand: #d9c79a;--manila: #d8c79a;--manila-dark: #c4b07f;--ink: #2b2618;--signal: #e8942a;--signal-dark: #9a5a14;--stamp: #b3261e;--text: #f0ead6;--stencil: "Black Ops One", "Impact", sans-serif;--body: "Barlow Semi Condensed", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(ellipse 70% 60% at 35% 45%,#3a4127 0%,transparent 70%),linear-gradient(var(--night-2),var(--night));color:var(--text);font:500 17px/1.4 var(--body)}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--signal);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:6px;border:2px solid var(--olive);background:var(--night-2);color:var(--text);font:700 16px/1.2 var(--body);text-decoration:none;cursor:pointer}.btn:hover{border-color:var(--signal)}.btn:disabled{opacity:.6;cursor:wait}.btn .icon{width:22px;height:22px}.btn.ghost{background:#1e221499}.btn.play{font:400 22px/1 var(--stencil);letter-spacing:.04em;padding:14px 24px;background:var(--signal);color:var(--ink);border-color:var(--signal-dark);box-shadow:0 3px 0 var(--signal-dark)}.btn.play:hover{background:#f2a443}.btn.play:active{transform:translateY(2px);box-shadow:0 1px 0 var(--signal-dark)}.btn.alt{background:transparent;border-color:#2b26188c;color:var(--ink)}.btn.alt:hover{border-color:var(--ink);background:#2b26180f}.field{padding:8px 10px;border-radius:6px;border:2px solid rgba(43,38,24,.55);background:#fffcf059;color:var(--ink);font:600 16px/1.2 var(--body);min-width:0}.field:focus{outline:none;border-color:var(--ink)}.field.code{width:6.6em;text-transform:uppercase;letter-spacing:.2em;text-align:center}.menu{position:relative;z-index:2;min-height:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,410px);grid-template-rows:auto auto minmax(320px,1fr) auto;height:100%;grid-template-areas:"top top" "title title" "stage card" "status status";gap:8px 40px;max-width:1180px;margin:0 auto;padding:16px 32px 24px}.menu-top{grid-area:top;display:flex;justify-content:space-between;align-items:center}.title{grid-area:title;margin:8px 0 0;font:400 clamp(2.4rem,6vw,4.4rem)/.95 var(--stencil);color:var(--sand);text-shadow:0 4px 0 rgba(0,0,0,.45)}.stage-wrap{grid-area:stage;position:relative;min-height:320px}.stage{position:absolute;inset:0;cursor:grab;touch-action:none}.stage:active{cursor:grabbing}.kit{position:absolute;left:0;bottom:4px;margin:0;max-width:44ch;color:#cfc6a4;font-weight:500;pointer-events:none}.status{grid-area:status;margin:0;color:#9e9878;font-size:.9rem}.card{position:relative;background:radial-gradient(circle at 18% 12%,rgba(255,250,230,.55),transparent 45%),radial-gradient(circle at 85% 90%,rgba(120,96,50,.18),transparent 50%),var(--manila);color:var(--ink);border-radius:4px;padding:22px 24px 20px;box-shadow:0 18px 40px #00000073,inset 0 0 0 1px #2b261826}.enlist{grid-area:card;align-self:center;display:flex;flex-direction:column;gap:14px;transform:rotate(.6deg)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-title{margin:0;font:400 1.5rem/1.1 var(--stencil)}.stamp{font:400 1.05rem/1 var(--stencil);color:var(--stamp);border:3px double var(--stamp);border-radius:4px;padding:5px 9px 3px;transform:rotate(-9deg) translateY(4px);opacity:.85;mix-blend-mode:multiply;white-space:nowrap}.line{display:grid;grid-template-columns:6.5em 1fr;align-items:baseline;gap:4px 10px;margin:0;padding:0 0 6px;border:0;border-bottom:1.5px solid rgba(43,38,24,.35)}.line-label{color:#2b2618b3;font-weight:600;padding:0;float:left}.typed{font:600 1.15rem/1.3 Courier New,monospace;color:var(--ink);background:transparent;border:0;padding:0;min-width:0;width:100%}.typed:focus{outline:none;background:#fffcf066}input.typed::placeholder{color:#2b261866}.choice{display:block}.choice legend{width:6.5em;margin-right:10px}.choice .opts{display:flex;flex-wrap:wrap;gap:4px 22px}.choice label{cursor:pointer;font:600 1.1rem/1.3 Courier New,monospace;display:inline-flex;gap:6px;align-items:baseline}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice label span:before{content:"☐";font-size:1.2em}.choice input:checked+span:before{content:"☒"}.choice input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}.row .btn.alt:first-child{margin-right:auto}.error{margin:0;color:var(--stamp);font-weight:700}.game{position:fixed;inset:0}.game canvas{display:block;cursor:none}.overlay{position:fixed;inset:0;z-index:6;display:grid;place-items:center;padding:16px;background:#14160f8c}.pause-card{display:flex;flex-direction:column;gap:10px;width:min(340px,100%);text-align:center}.note{margin:0 0 6px;color:#2b2618cc}.crosshair{position:fixed;left:-14px;top:-14px;width:28px;height:28px;pointer-events:none;z-index:3;background:linear-gradient(#fff,#fff) 50% 0 / 2px 9px no-repeat,linear-gradient(#fff,#fff) 50% 100% / 2px 9px no-repeat,linear-gradient(#fff,#fff) 0 50% / 9px 2px no-repeat,linear-gradient(#fff,#fff) 100% 50% / 9px 2px no-repeat;filter:drop-shadow(0 0 1px #000) drop-shadow(0 0 1px #000)}.ammo{position:absolute;left:22px;top:22px;font:700 13px/1 var(--body);color:#fff;white-space:nowrap;text-shadow:0 1px 2px #000,0 0 3px #000}.ammo.low{color:#ff8a6a}.crosshair.hit{animation:hitmark .18s ease-out}.crosshair.bullseye{animation:bullseye .25s ease-out}@keyframes hitmark{0%{filter:drop-shadow(0 0 2px #ff3b1f) drop-shadow(0 0 4px #ff3b1f)}}@keyframes bullseye{0%{filter:drop-shadow(0 0 3px #ffd23f) drop-shadow(0 0 6px #ffd23f)}}.help{position:fixed;left:50%;bottom:16px;transform:translate(-50%);margin:0;padding:6px 14px;border-radius:6px;background:#1d1f16b3;font-size:.9rem;pointer-events:none;white-space:nowrap}.score{position:fixed;top:16px;right:16px;z-index:3;display:flex;gap:14px;padding:8px 14px;border-radius:8px;background:#1d1f16bf;border:2px solid var(--olive);pointer-events:none}.score div{display:flex;flex-direction:column;align-items:center;min-width:52px}.score span{font-size:.75rem;opacity:.75}.score b{font:400 1.3rem/1.1 var(--stencil);color:var(--sand)}.board{position:fixed;top:84px;right:16px;z-index:3;min-width:200px;padding:8px 10px;border-radius:8px;background:#1d1f16b3;border:2px solid var(--olive);font-size:.9rem;pointer-events:none}.board-head{opacity:.8;margin-bottom:4px;font-size:.8rem}.board-head b{color:var(--signal);letter-spacing:.15em}.board-line{display:flex;gap:8px;align-items:baseline;padding:1px 0}.board-line .rank{width:1.2em;opacity:.6}.board-line .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.board-line .name i{opacity:.6;font-style:normal;font-size:.8rem}.board-line b{color:var(--sand)}.board-line.me .name{color:var(--signal);font-weight:700}.labels{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.label{position:absolute;left:0;top:0;padding:1px 7px;border-radius:5px;background:#1d1f1699;font:600 13px/1.4 var(--body);white-space:nowrap}.popups{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.popup{position:absolute;transform:translate(-50%,-50%);font:400 22px/1 var(--stencil);color:#fff3c4;text-shadow:0 2px 0 #000,0 0 6px rgba(0,0,0,.6);animation:rise .9s ease-out forwards}.popup.big{font-size:30px;color:#ffd23f}@keyframes rise{0%{opacity:1;transform:translate(-50%,-50%) scale(.6)}20%{transform:translate(-50%,-80%) scale(1.15)}to{opacity:0;transform:translate(-50%,-220%) scale(1)}}@media(max-width:820px){.menu{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"top" "title" "stage" "card" "status";height:auto;padding:12px 16px 20px}.stage-wrap{min-height:0}.stage{position:relative;height:340px}.kit{position:static;margin-top:4px}.enlist{transform:none}}@media(prefers-reduced-motion:reduce){.popup,.crosshair.hit,.crosshair.bullseye{animation:none}}
