html,body.game{height:100%;margin:0;overflow:hidden;background:var(--ink)}body.game{font-family:Rubik,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--fg);user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0;overflow:hidden}#c{display:block;width:100%;height:100%;touch-action:none}#hud{position:absolute;inset:0;pointer-events:none}#hud[hidden]{display:none}#hud button{pointer-events:auto}#hud>:not(#haze){z-index:2}.panel{position:absolute;background:var(--panel);border:1px solid var(--line);border-radius:14px;color:var(--fg)}.lbl{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.row{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-variant-numeric:tabular-nums}.bar{height:12px;border-radius:999px;background:var(--bar-bg);overflow:hidden}.bar.big{height:16px}.bar>i{display:block;height:100%;width:0;background:var(--manif);border-radius:999px;transition:width .3s linear}#obj{left:16px;top:calc(16px + env(safe-area-inset-top,0px));width:300px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}#objTitle{font-family:var(--display);font-size:30px;line-height:1;color:var(--gold);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}#clock{left:50%;top:calc(14px + env(safe-area-inset-top,0px));transform:translate(-50%);padding:6px 18px;text-align:center}#clockTime{font-family:var(--display);font-size:38px;line-height:1;font-variant-numeric:tabular-nums}#teams{right:16px;top:calc(16px + env(safe-area-inset-top,0px));width:250px;padding:10px;display:flex;flex-direction:column;gap:6px}.team{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:10px;font-weight:700;font-size:14px}.team b{margin-left:auto;font-family:var(--display);font-size:22px;font-weight:400}.team.m{background:var(--manif-soft)}.team.f{background:var(--forces-soft)}#feed{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.35;padding:2px 4px}#feed div{transition:opacity .6s}.mn{color:var(--err);font-weight:700}.fn{color:var(--forces);font-weight:700}#hint{left:50%;bottom:calc(128px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:max-content;max-width:calc(100vw - 600px);padding:8px 14px;font-size:13px;line-height:1.45;text-align:center;color:var(--muted);transition:opacity 1s}#hud.paused #cross,#hud.paused #hint,#hud.paused #zoneArrow,#hud.paused #banner{visibility:hidden}#hint b{color:var(--fg)}#status{left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:250px;padding:12px;display:flex;flex-direction:column;gap:6px}#moralBar{background:var(--ok)}#stamBar{background:var(--gold)}#hotbar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;gap:8px;padding:8px}.slot{width:84px;height:84px;border-radius:12px;background:var(--bar-bg);border:2px solid transparent;border-bottom:5px solid var(--key-edge);display:flex;flex-direction:column;justify-content:space-between;padding:6px 8px;box-sizing:border-box;cursor:pointer;color:var(--fg);font:inherit;text-align:left}.slot.on{border-color:var(--gold);background:var(--gold-soft)}.slot .n{font-size:12px;font-weight:700;color:var(--muted)}.slot .t{font-family:var(--display);font-size:16px;line-height:1}.slot .q{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.slot:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#mapBox{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));padding:8px;display:flex;flex-direction:column;gap:4px;align-items:center}#mini{width:170px;height:170px;border-radius:10px;display:block}#cross{position:absolute;left:50%;top:46%;width:26px;height:26px;margin:-13px 0 0 -13px;border:2px solid var(--fg);border-radius:50%;pointer-events:none}#cross:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--fg)}#banner{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%) scale(.9);font-family:var(--display);font-size:clamp(40px,8vw,92px);color:var(--gold);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none;white-space:nowrap}#banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#zoneFade{position:absolute;inset:0;background:var(--stone);opacity:0;transition:opacity .55s ease-out;pointer-events:none}#zoneFade.on{opacity:1;transition:opacity .18s ease-in}#haze{z-index:0;position:absolute;inset:0;background:var(--haze);opacity:0;transition:opacity .5s;pointer-events:none}#downMsg{position:absolute;left:50%;top:62%;transform:translate(-50%);display:none;padding:10px 18px;border-radius:12px;background:var(--veil);font-family:var(--display);font-size:26px;pointer-events:none}#revealMsg{position:absolute;left:50%;top:calc(150px + env(safe-area-inset-top,0px));transform:translate(-50%);display:none;padding:6px 12px;border-radius:10px;background:var(--veil);font-size:13px;pointer-events:none}#zoneArrow{position:absolute;display:none;flex-direction:column;align-items:center;gap:2px;transform:translate(-50%,-50%);pointer-events:none;font-family:var(--display);font-size:16px;color:var(--gold);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}#zoneArrow i{display:block;width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:26px solid var(--gold)}#wheel{position:absolute;left:50%;top:50%;width:360px;height:360px;margin:-180px 0 0 -180px;border-radius:50%;background:var(--veil);pointer-events:none}#wheel[hidden]{display:none}.wheel-item{position:absolute;transform:translate(-50%,-50%);padding:8px 12px;border-radius:10px;background:var(--panel-solid);border:2px solid var(--line);font-weight:700;font-size:14px;white-space:nowrap}.wheel-item.on{border-color:var(--gold);background:var(--gold-soft)}.wheel-hub{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--fg);color:var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:26px}.screen{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px;overflow-y:auto;background:var(--veil)}.screen>:first-child{margin-top:auto}.screen>:last-child{margin-bottom:auto}.screen[hidden]{display:none}#title{background:var(--veil)}.card{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;padding:22px 26px;display:flex;flex-direction:column;gap:14px;max-width:94vw}.card.small{width:440px}.card.wide{width:720px}.card h1{font-family:var(--display);font-weight:400;font-size:clamp(48px,8vw,84px);line-height:1;margin:0}.card h1 span,.logo span{color:var(--manif)}.card h2{font-family:var(--display);font-weight:400;font-size:34px;line-height:1.05;margin:0}.card h3{font-family:var(--display);font-weight:400;font-size:22px;margin:0 0 6px}.card h3.m{color:var(--err)}.card h3.f{color:var(--forces)}.card p{margin:0;line-height:1.5}.logo{font-family:var(--display);font-size:40px}.tag{font-size:18px;color:var(--fg-soft)}.fine{font-size:13px;color:var(--muted)}.camps{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;padding:0;margin:0}.camps legend{padding:0 0 6px}.camp{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:3px solid var(--line);background:var(--ink2);cursor:pointer;position:relative}.camp input{position:absolute;opacity:0;pointer-events:none}.camp.m:has(input:checked){border-color:var(--manif);background:var(--manif-soft)}.camp.f:has(input:checked){border-color:var(--forces);background:var(--forces-soft)}.camp:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:2px}.camp-name{font-family:var(--display);font-size:24px}.camp-text{font-size:14px;line-height:1.35}.camp-gear{font-size:12px;color:var(--muted)}.camp:has(input:checked) .camp-gear{color:var(--fg)}.field{display:flex;flex-direction:column;gap:6px}.field input[type=text],.field select{height:46px;border-radius:12px;border:2px solid var(--line);background:var(--ink2);color:var(--fg);font:500 17px Rubik,sans-serif;padding:0 14px;user-select:text;-webkit-user-select:text}.field input[type=range]{width:100%;height:34px;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}.field input[type=range]::-webkit-slider-runnable-track{height:14px;border-radius:8px;background:var(--bar-bg);border:2px solid var(--line);border-bottom:5px solid var(--key-edge)}.field input[type=range]::-moz-range-track{height:8px;border-radius:8px;background:var(--bar-bg);border:2px solid var(--line);border-bottom:5px solid var(--key-edge)}.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:28px;margin-top:-12px;border-radius:8px;background:var(--fg);border:2px solid var(--gold);border-bottom:5px solid var(--key-edge)}.field input[type=range]::-moz-range-thumb{width:24px;height:18px;border-radius:8px;background:var(--fg);border:2px solid var(--gold);border-bottom:5px solid var(--key-edge)}.field input[type=range]:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:10px}.keys{display:flex;gap:8px}.keys button{flex:1;min-height:42px;border-radius:10px;border:2px solid transparent;border-bottom:5px solid var(--key-edge);background:var(--bar-bg);color:var(--fg);font:700 15px Rubik,sans-serif;cursor:pointer}.keys button[aria-pressed=true]{border-color:var(--gold);background:var(--gold-soft)}.keys button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.row-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row-actions.col{flex-direction:column;align-items:stretch}.legal{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;font-size:13px}.legal a{color:var(--muted)}.teams-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}.teams-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:15px}.teams-list li.me{color:var(--gold);font-weight:700}.code{font-family:var(--display);letter-spacing:.12em;color:var(--gold)}.winner{font-family:var(--display);font-size:40px;line-height:1.1}.stats{display:grid;grid-template-columns:1fr auto;gap:6px 24px;margin:0;font-size:17px}.stats dt{color:var(--fg-soft)}.stats dd{margin:0;font-family:var(--display);font-size:22px;text-align:right}@media(max-height:700px){.card{padding:14px 18px;gap:8px}.card h2{font-size:28px}.card .btn{min-height:40px}.field input[type=text]{height:40px}}@media(max-width:760px){#obj{left:8px;top:calc(8px + env(safe-area-inset-top,0px));width:calc(100vw - 168px);padding:8px 10px;gap:4px}#objTitle{font-size:20px}#teams{right:8px;top:calc(8px + env(safe-area-inset-top,0px));width:144px;padding:6px}#feed{display:none}.team{padding:4px 8px;font-size:12px}.team b{font-size:18px}#clock{top:calc(116px + env(safe-area-inset-top,0px));padding:2px 12px}#clockTime{font-size:26px}#clockLeft,#hint,#revealMsg{display:none}#status{left:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:150px;padding:8px}#mapBox{right:8px;top:calc(100px + env(safe-area-inset-top,0px));bottom:auto;padding:5px}#mapLbl{display:none}#mini{width:96px;height:96px}#hotbar{bottom:calc(118px + env(safe-area-inset-bottom,0px));gap:4px;padding:4px}.slot{width:62px;height:62px;padding:4px 5px}.slot .t{font-size:12px}#banner{top:36%}#wheel{width:300px;height:300px;margin:-150px 0 0 -150px}.camps,.teams-list{grid-template-columns:1fr}.card{padding:16px}}@media(prefers-reduced-motion:reduce){.bar>i,#banner,#zoneFade{transition:none}}
