*{box-sizing:border-box}body{margin:0;background:#173e34;font-family:Arial,sans-serif;color:#f3f3e7;overflow:hidden}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #ffffff2b;border-radius:9px;background:#315449;color:#f2f4e6;padding:10px 13px}button:hover{background:#466a54}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #d7ee8e;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}input{background:#122d29;color:#f5f5ec;border:1px solid #6d8b7680;width:100%;padding:13px;border-radius:9px}a{color:#d4ed96}#view{position:fixed;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}#veil{position:fixed;inset:0;background:linear-gradient(90deg,#0b2826d9,#0b282630);pointer-events:none}.panel{background:#142c26ed;border:1px solid #bed5a528;border-radius:20px;box-shadow:0 12px 50px #061c1b44;padding:24px;backdrop-filter:blur(12px)}#lobby{position:absolute;top:50%;left:5%;transform:translateY(-50%);width:440px;max-height:96vh;overflow:auto;padding:32px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2px;color:#bdd690}h1{font-size:64px;line-height:1;letter-spacing:-3px;margin:22px 0;color:#d6ed94}h2{font-size:34px;margin:15px 0}.lead{font-size:17px;line-height:1.6;color:#cfddd1}.scope{font-size:10px;letter-spacing:1.5px;margin:20px 0;color:#a2b9ac}label{display:block;font-size:13px;margin:16px 0 8px}label small{font-size:10px;color:#a2b9ac;margin-left:8px}.outfit-row{font-size:12px;display:flex;justify-content:space-between;margin:15px 0}.primary{background:#d5ed94;color:#193b2a;font-weight:bold;width:100%;margin-top:16px;padding:15px}.primary:hover{background:#e4f7b9}#loading,.fine{font-size:11px;line-height:1.6;color:#a8c1ae}#joinError{color:#ffd2a0;font-size:13px}.topbar{position:fixed;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none}.topbar .panel{pointer-events:auto}.compact{padding:18px;min-width:330px}.roomline{margin:10px 0;display:flex;align-items:center;gap:12px}.roomline b{letter-spacing:3px}.roomline button{font-size:11px;padding:8px}.scores{min-width:230px;padding:18px}#board>div{display:flex;gap:12px;justify-content:space-between;font-size:13px;margin-top:12px}.me{color:#d9f3a2}#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;color:#fff8c5;text-shadow:0 1px 4px #000;pointer-events:none}.bottom{position:fixed;bottom:18px;left:18px;right:18px;display:flex;gap:16px;justify-content:space-between;pointer-events:none}.bottom .panel{pointer-events:auto}.radar{display:flex;flex-direction:column;gap:8px;min-width:220px;padding:18px}.radar span{font-size:11px;color:#b3c8b8}.radar button{padding:6px;font-size:11px}.gadget{padding:18px;display:flex;flex-direction:column;gap:8px;text-align:right}.gadget span{font-size:13px;color:#d5ed94}.gadget small{font-size:11px;color:#b8c8bc}#toast{position:fixed;bottom:145px;left:50%;transform:translateX(-50%);background:#132a24d9;border:1px solid #c5df8a66;border-radius:30px;padding:10px 20px;font-size:13px;max-width:70%;pointer-events:none}.quick{position:fixed;right:18px;top:45%;display:flex;flex-direction:column;gap:8px}.quick button{font-size:12px}#pause{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:460px;max-width:95vw}#pause>button{margin-top:12px}#pause>p{font-size:13px;line-height:1.6}#pause #invite{font-size:12px}.touch-move{position:fixed;bottom:175px;left:18px;text-align:center;opacity:.8}.touch-move button{width:45px;height:45px;font-size:20px}.touch-move>div{display:flex;gap:4px;margin-top:4px}details{font-size:11px;margin-top:12px;color:#b3c6b7}summary{cursor:pointer}#history{line-height:1.7;margin-top:8px}[hidden]{display:none!important}@media(max-width:700px){#lobby{left:3%;width:94%;padding:25px}h1{font-size:45px}.topbar{left:8px;right:8px;top:8px;gap:8px}.compact{min-width:0;padding:10px}.roomline{font-size:12px;gap:6px}.roomline button{font-size:9px;padding:7px}.scores{min-width:120px;padding:10px}.eyebrow{font-size:8px;letter-spacing:1px}#board>div{font-size:11px;gap:4px}.bottom{left:8px;right:8px;bottom:8px;gap:8px}.gadget{max-width:55%;padding:10px}.gadget small{display:none}.radar{min-width:130px;max-width:43%;padding:10px}.touch-move{bottom:145px;left:8px}.quick{right:8px}.roomline #share{display:none}#round{font-size:12px}#connection{font-size:9px}}
.chat-panel{position:fixed;left:50%;bottom:155px;transform:translateX(-50%);width:390px;max-width:calc(100vw - 32px);padding:16px;z-index:5}.chat-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px}.chat-heading button{padding:2px 9px;font-size:20px}.chat-panel label{font-size:11px;margin:12px 0 7px;color:#c6d5c8}.chat-entry{display:flex;gap:8px}.chat-entry input{min-width:0;padding:10px;font-size:14px}.chat-entry button{background:#d5ed94;color:#193b2a;font-weight:bold}.chat-footer{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:10px;color:#b8c8bc}#chatStatus[data-error="true"]{color:#ffd2a0}#chatHistory{max-height:120px;overflow:auto;margin-top:10px;font-size:12px;line-height:1.45;overflow-wrap:anywhere}#chatHistory p{margin:6px 0}#chatHistory b{color:#d7ee8e;margin-right:6px}.chat-empty{color:#a8c1ae;font-style:italic}.own-speech{position:fixed;top:185px;left:50%;transform:translateX(-50%);max-width:min(360px,85vw);background:#fff8df;color:#243b32;border-radius:15px;padding:11px 17px;box-shadow:0 4px 18px #0003;pointer-events:none;text-align:center;font-size:14px;overflow-wrap:anywhere}.own-speech:after{content:"";position:absolute;bottom:-9px;left:calc(50% - 9px);border-left:9px solid transparent;border-right:9px solid transparent;border-top:10px solid #fff8df}.own-speech small{display:block;color:#65705c;font-size:10px;margin-bottom:5px}.own-speech span{display:block}@media(max-width:700px){.chat-panel{bottom:142px;padding:12px;max-height:calc(100dvh - 180px);overflow:auto}.own-speech{top:150px}.chat-footer{font-size:9px}}@media(max-height:600px){.chat-panel{bottom:10px;max-height:calc(100dvh - 30px);overflow:auto}.chat-panel #chatHistory{max-height:70px}.own-speech{top:125px}}

.account-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0;font-size:12px}.account-row button{font-size:11px;padding:7px 10px}input[readonly]{opacity:.8}

.load-panel{margin-top:14px;padding:14px;border:1px solid #90b98144;border-radius:12px;background:#102a24}.load-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.load-heading #loading{font-size:12px;margin:0;color:#eff6dc}.load-heading b{font-size:13px;color:#d5ed94;font-variant-numeric:tabular-nums}.load-panel progress{display:block;width:100%;height:9px;appearance:none;border:0;border-radius:9px;overflow:hidden;margin:12px 0;background:#29473c}.load-panel progress::-webkit-progress-bar{background:#29473c}.load-panel progress::-webkit-progress-value{background:#d5ed94;transition:width .25s}.load-panel progress::-moz-progress-bar{background:#d5ed94}.load-panel p{font-size:11px;line-height:1.65;color:#bcd0bf;margin:0 0 12px}.load-stages,.load-footer{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#819f8a}.load-stages span[aria-current=true]{color:#d5ed94;font-weight:bold}.load-footer{margin-top:12px;align-items:center}.load-footer button{padding:5px 8px;font-size:10px}.load-footer a{font-size:10px}
/* Keep connection progress visible before any lobby fields. */
#lobby h1{font-size:44px;line-height:1.06;margin:16px 0}#lobby h1 br{display:none}#lobby h1 br:after{content:" "}#lobby .lead{font-size:14px;line-height:1.5;margin:14px 0}#lobby .scope{margin:14px 0}#lobby .load-panel{margin:16px 0}

.spawn-choice{border:0;padding:0;margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.spawn-choice legend{font-weight:700;margin-bottom:8px}.spawn-choice label{display:flex;align-items:center;gap:8px;border:1px solid #688075;border-radius:12px;padding:12px;cursor:pointer}.spawn-choice label:has(input:checked){background:#d3eea51c;border-color:#d3eea5}.spawn-choice input{width:auto;margin:0;accent-color:#c9eb98}.spawn-choice small{display:block;font-size:11px;line-height:1.4;opacity:.8;margin-top:4px}.campus-map{position:fixed;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,94vw);max-height:90vh;overflow:auto}.campus-map canvas{width:100%;height:auto;border-radius:12px;display:block;margin-top:10px}.campus-map #mapPlaces{display:flex;flex-wrap:wrap;gap:6px}.campus-map #mapPlaces button{font-size:12px;padding:7px 10px}#streamStatus{position:fixed;z-index:8;top:165px;left:20px;padding:8px 13px;border-radius:10px;background:#142e28dd;color:#d9eabd;font-size:12px}.campus-map p{margin:9px 0}@media(max-width:600px){.spawn-choice{grid-template-columns:1fr}.topbar .roomline{flex-wrap:wrap}#streamStatus{top:190px}}

.quiz-dialog{width:min(680px,94vw);max-height:92dvh;overflow:auto;color:#edf4df;border:1px solid #afc893;z-index:100;padding:28px}.quiz-dialog::backdrop{background:#061713e8}.quiz-dialog p{font-size:14px;line-height:1.6}#quizQuestions{display:grid;grid-template-columns:1fr 1fr;gap:12px}#quizQuestions label{background:#203d32;padding:12px;border-radius:10px;margin:0;line-height:1.6}#quizQuestions input{margin-top:6px;padding:10px}#quizResult{color:#e6efa8;max-height:180px;overflow:auto}#quizResult p{margin:5px 0}#danger{position:fixed;top:160px;right:20px;border:1px solid #ffc48b;background:#512b20ee;color:#ffeac6;padding:9px 14px;border-radius:10px;font-size:13px;pointer-events:none}#pause{max-height:92dvh;overflow:auto;z-index:30}#graphics{width:100%;padding:10px;background:#193c30;color:#e9f2d5;border:1px solid #5a7667;border-radius:8px}#creatureGuide{padding-left:18px}#creatureGuide li{margin:12px 0}#creatureGuide span{display:block;margin-top:4px}#run[aria-pressed=true]{background:#d5ed94;color:#1a3828}#lobby:has(#loadPercent:not(:empty)) .load-footer{font-size:10px}
@media(max-width:700px){.scores{display:none}.topbar .compact{width:100%}.roomline{flex-wrap:wrap}.quick{top:auto;bottom:180px;display:grid;grid-template-columns:1fr 1fr;max-width:140px}.quick #lock{display:none}.quick button{padding:10px 8px}.touch-move{bottom:185px}#danger{top:140px;left:8px;right:auto;font-size:11px}#streamStatus{top:175px;left:8px;max-width:calc(100vw - 16px)}.spawn-choice{grid-template-columns:1fr 1fr}.spawn-choice small{font-size:10px}.spawn-choice label{padding:9px}.quiz-dialog{padding:20px}#quizQuestions{grid-template-columns:1fr}#lobby{max-height:96dvh}#toast{bottom:145px;font-size:12px;max-width:90%;width:max-content}}
@media(max-height:520px){.bottom{bottom:6px}.radar,.gadget{padding:8px}.touch-move{bottom:110px}.quick{bottom:110px;top:auto}.topbar .compact{padding:8px}.roomline{margin:4px 0}#danger{top:115px}#lobby{padding:18px}.quiz-dialog{max-height:96dvh}}

.edit-character{display:block;border:1px solid #d5ed9470;border-radius:9px;padding:11px 14px;color:#e0f2b1;font-weight:700;text-decoration:none;text-align:center}.outfit-row{align-items:center;gap:10px}.outfit-row .edit-character{flex-shrink:0}.continue-panel{border-top:1px solid #ffffff28;border-bottom:1px solid #ffffff28;margin:18px 0;padding:12px 0}.continue-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.continue-heading h2{font-size:20px;margin:0}.continue-heading button{font-size:11px;padding:6px 9px}#recentRooms{display:grid;gap:8px;max-height:225px;overflow:auto}.recent-room{border:1px solid #78917155;border-radius:10px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#244536}.recent-room strong,.recent-room small{display:block}.recent-room strong{font-size:13px}.recent-room small{font-size:11px;color:#b9cdbd;margin-top:5px;line-height:1.4}.recent-room button{font-size:12px;background:#d5ed94;color:#193b2a;flex-shrink:0;font-weight:700}.recent-room button:disabled{background:#446052;color:#ccdbce;cursor:default}.recent-room.expired{background:#1a322b}.recent-room.expired strong{color:#bbc6b8}#pause .edit-character{margin-top:12px}

/* Keep the question identity separate from the equation and its answer. */
.quiz-question-head{display:flex;align-items:flex-start;gap:12px}.quiz-number{display:inline-flex;align-items:center;justify-content:center;min-width:35px;height:28px;border-radius:7px;background:#e4d8ff;color:#3b255e;font-size:12px;font-weight:800;line-height:1;flex-shrink:0}.quiz-equation{font-size:19px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.quiz-answer{display:flex;gap:14px;align-items:center;margin-top:18px}.quiz-answer>span{flex-shrink:0;font-size:18px;font-weight:700;color:#d5ed94}#quizQuestions .quiz-answer input{margin:0;min-width:0;width:100%;font-size:19px}.quiz-dialog #quizSubmit{margin-top:20px}

#loadPanel.ready{padding:9px 12px;margin-bottom:10px}#loadPanel.ready progress,#loadPanel.ready #loadDetail,#loadPanel.ready .load-stages,#loadPanel.ready .load-footer{display:none}#lobby:has(#loadPanel.ready) .lead{display:none}#lobby:has(#loadPanel.ready) .scope{margin:12px 0}#lobby:has(#loadPanel.ready) h1{font-size:44px;margin:18px 0}#view canvas:focus{outline:none}
/* The game view only aims; Space / the dedicated Fire button shoots. */
#crosshair{--aim-color:#fff;width:36px;height:36px;font-size:0;filter:drop-shadow(0 1px 2px #001c20) drop-shadow(0 0 1px #001c20);z-index:12;color:var(--aim-color)}#crosshair i{position:absolute;display:block}.aim-ring{inset:7px;border:2px solid currentColor;border-radius:50%;opacity:.9}.aim-dot{width:4px;height:4px;border-radius:50%;background:#fff;left:16px;top:16px;box-shadow:0 0 5px var(--aim-color)}.aim-tick{background:currentColor;border-radius:2px}.aim-tick.top,.aim-tick.bottom{width:2px;height:7px;left:17px}.aim-tick.top{top:0}.aim-tick.bottom{bottom:0}.aim-tick.left,.aim-tick.right{width:7px;height:2px;top:17px}.aim-tick.left{left:0}.aim-tick.right{right:0}#crosshair[data-target=yes] .aim-ring{border-width:3px;box-shadow:0 0 9px #c4ff8266}#crosshair[data-result=hit]{--aim-color:#fff!important;transform:translate(-50%,-50%) scale(1.25)}
#aimLabel{position:fixed;top:calc(50% + 35px);left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;color:#efffff;background:#0b2425df;padding:7px 12px;border:1px solid #c1e6dd50;border-radius:9px;z-index:12;max-width:min(310px,88vw);width:max-content;box-shadow:0 3px 12px #00151544}#aimLabel strong{display:block;font-size:12px;letter-spacing:.7px}#aimLabel small{display:block;font-size:11px;margin-top:4px;color:#c9ddd4}#aimLabel[data-target=yes]{border-color:#d7ff79;color:#e0ffa3}#targetBracket{position:fixed;pointer-events:none;transform:translate(-50%,-50%);z-index:10;filter:drop-shadow(0 1px 2px #122721)}#targetBracket i{position:absolute;width:17px;height:17px;border:3px solid currentColor}#targetBracket i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}#targetBracket i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}#targetBracket i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}#targetBracket i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
#shotFeedback{position:fixed;left:50%;top:calc(50% - 104px);transform:translateX(-50%);padding:10px 18px;border-radius:10px;font-size:15px;font-weight:800;letter-spacing:.6px;background:#193e37f5;color:#edffd1;border:2px solid #d8ff91;box-shadow:0 4px 25px #061c1b66;pointer-events:none;z-index:15;text-align:center;max-width:90vw;width:max-content}#shotFeedback[data-mode=miss]{border-color:#aac5cb;color:#d6e4e8}#shotFeedback[data-mode=shield]{border-color:#ffbc63;color:#ffda9c}
#momentOverlay{position:fixed;inset:0;z-index:25;pointer-events:none;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#528c3722 5%,transparent 50%,#8ac95b44 120%);color:#edffd1}#momentOverlay[data-type=rare]{color:#fff0a3;background:radial-gradient(ellipse,#b8973622,transparent 55%,#dec25866 130%)}#momentOverlay[data-type=apple]{color:#fff1d7;background:radial-gradient(ellipse,transparent 25%,#a83b3855 70%,#cf3c35b0)}.moment-copy{text-align:center;padding:22px 28px;background:#092a25eb;border:2px solid currentColor;border-radius:24px;box-shadow:0 0 65px #d6ff8133;max-width:90vw;transform:translateY(-30px)}.moment-copy>*{display:block}.moment-symbol{font-size:54px;line-height:1}.moment-copy strong{font-size:clamp(24px,4vw,40px);letter-spacing:3px;margin:8px 0}.moment-copy b{font-size:clamp(36px,7vw,72px);line-height:1.1}.moment-copy small{margin-top:12px;font-size:15px}.moment-orbit{position:absolute;left:50%;top:50%;width:min(64vw,470px);height:min(64vw,470px);border:3px solid currentColor;border-radius:50%;opacity:.3;transform:translate(-50%,-50%);animation:moment-ring 1.1s ease-out both}#momentOverlay[data-type=apple] .moment-copy{background:#542224eb;box-shadow:0 0 100px #ff795438}#momentOverlay[data-type=apple] b{font-size:clamp(18px,4vw,32px)}#momentOverlay[data-type=apple] .moment-symbol{color:#ffba91}
@keyframes moment-ring{from{transform:translate(-50%,-50%) scale(.3);opacity:.8}to{transform:translate(-50%,-50%) scale(1.4);opacity:0}}@media(prefers-reduced-motion:reduce){.moment-orbit{animation:none;opacity:.15}#crosshair[data-result=hit]{transform:translate(-50%,-50%)}}
@media(max-width:700px){#aimLabel{top:calc(50% + 30px);padding:6px 9px}#aimLabel strong{font-size:11px}#aimLabel small{font-size:10px}.moment-copy{padding:18px 22px}#shotFeedback{font-size:12px}}
