:root{color-scheme:dark;--bg:#101711;--panel:#172019;--line:#354036;--ink:#edf1e8;--muted:#99a695;--accent:#d4f680;--soft:#253323;--danger:#ffb4a1;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 36px}.wordmark{font-size:25px;font-weight:720;letter-spacing:-1px;display:flex;gap:11px;align-items:center;color:var(--ink);text-decoration:none}.brand-dot{width:22px;height:22px;background:var(--accent);border-radius:50%;box-shadow:inset -7px 0 0 #90ab51}.wordmark-sub{font-size:14px;color:var(--muted);font-weight:450;letter-spacing:0;margin-left:8px}.header-right{display:flex;align-items:center;gap:22px}.pill{border:1px solid #566541;padding:7px 13px;border-radius:30px;color:var(--accent);font-size:13px}.version,.eyebrow,.section-label{font-size:12px;letter-spacing:.12em;font-weight:550}.version{color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 352px;max-width:1680px;margin:auto;min-height:820px}.arena-panel{position:relative;min-width:0;overflow:hidden;border-right:1px solid var(--line);display:flex;flex-direction:column}.arena-heading{position:absolute;top:37px;left:36px;z-index:2;pointer-events:none}.eyebrow{color:var(--accent);letter-spacing:.15em;font-size:11px}h1{font-size:clamp(25px,2.7vw,40px);letter-spacing:-.05em;font-weight:560;margin:14px 0 10px}.arena-heading p{color:var(--muted);font-size:14px;margin:0}#viewport{position:relative;height:700px;flex:1;min-height:620px;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 50% 55%,#27362288 0%,#10171100 65%)}#viewport:active{cursor:grabbing}#viewport>canvas{display:block;position:absolute;inset:0}#sceneLoading{position:absolute;inset:45% 10% auto;text-align:center;color:var(--muted);font-size:14px;z-index:3}#digitLabels{position:absolute;inset:0;pointer-events:none;z-index:1}.pad-label{position:absolute;width:38px;height:38px;display:grid;place-items:center;transform:translate(-50%,-50%);font-size:21px;color:#c2ccba;font-variant-numeric:tabular-nums;transition:color .25s;font-weight:550}.pad-label.selected{color:#13200b;font-weight:800}.arena-toolbar{position:absolute;bottom:95px;left:24px;right:24px;display:flex;align-items:center;gap:8px;z-index:3}.arena-toolbar>span{margin-left:auto;font-size:12px;color:var(--muted)}.quiet{border:1px solid var(--line);background:#182019cc;color:var(--muted);padding:9px 12px;border-radius:6px;font-size:12px}.quiet:hover{color:var(--ink);border-color:#6b7c60}.arena-caption{display:flex;gap:10px;align-items:center;padding:17px 26px;border-top:1px solid var(--line);font-size:14px;background:#172019}.live-dot,.footer-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;display:inline-block;flex-shrink:0}#roundCounter{margin-left:auto;letter-spacing:.12em;color:var(--muted);font-size:11px}.species-note{text-align:center;padding:11px 12px;font-size:11px;color:#83907e;background:#131b14}.species-note span{padding:0 7px}.console{padding:26px 24px 22px;background:#19221a}.mode-notice{font-size:12px;line-height:1.7;color:#b4c0aa;min-height:60px;margin:13px 0 19px}.section-label{color:var(--muted);font-size:11px;letter-spacing:.08em}.console>.section-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.section-label button{font-size:12px;color:var(--muted);border:0;background:none;padding:0}.draw-wrap{position:relative;width:100%;aspect-ratio:1;border:1px solid #465340;border-radius:7px;overflow:hidden;background:#070c08}#draw{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}#drawHint{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#5d6f58;pointer-events:none}.corner{position:absolute;width:14px;height:14px;border-color:#9fb18c;border-style:solid;pointer-events:none}.tl{top:20px;left:20px;border-width:1px 0 0 1px}.tr{top:20px;right:20px;border-width:1px 1px 0 0}.bl{bottom:20px;left:20px;border-width:0 0 1px 1px}.br{bottom:20px;right:20px;border-width:0 1px 1px 0}.sample-row{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--muted);font-size:12px}#examples{display:flex;gap:5px;margin-left:auto}#examples button{padding:3px 0;width:27px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font-size:13px}#examples button:hover{border-color:var(--accent)}.run{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-radius:6px;background:var(--accent);color:#1e2c12;padding:14px 17px;font-size:14px;font-weight:650;margin-top:14px}.run:hover:not(:disabled){background:#e1ffa0}.run>span:last-child{font-size:20px}.error{color:var(--danger);font-size:12px;line-height:1.6;margin-top:8px;min-height:0}.error:empty{display:none}.readout-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:23px;padding-top:19px}#resultTag{color:#b1bf9f;font-size:11px}.answer-row{display:flex;gap:17px;align-items:center;margin:10px 0}#answer{font-size:68px;font-weight:500;line-height:1.15;min-width:43px;letter-spacing:-.08em;color:var(--accent)}#answerCaption{font-size:13px}.muted{font-size:11px;line-height:1.6;color:var(--muted);margin-top:5px}#inputPreview{width:38px;height:38px;background:#080e09;image-rendering:pixelated;margin-left:auto;border:1px solid var(--line)}#scoreBars{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;height:44px;align-items:end}.score-column{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--muted)}.score-column i{width:100%;min-height:2px;height:2px;background:#44543c;border-radius:2px;transition:height .3s}.score-column.best i{background:var(--accent)}.score-column.best{color:var(--accent)}.tiny{font-size:10px;color:#8c9c82;line-height:1.6;margin:9px 0}.activity-heading{margin-top:17px;display:flex;justify-content:space-between;align-items:center}#activeCount{font-size:11px;color:var(--accent)}.activity{display:flex;gap:5px;height:28px;margin-top:10px;align-items:flex-end}.activity span{flex:1;min-height:2px;background:#77965b;border-radius:2px 2px 0 0}footer{border-top:1px solid var(--line);padding:18px 36px;max-width:1680px;margin:auto;display:flex;justify-content:space-between;gap:22px;font-size:11px;color:var(--muted)}footer .footer-dot{margin-right:8px}.divider{padding:0 12px;color:#596450}footer details{max-width:540px;text-align:right}summary{cursor:pointer}details p{line-height:1.8;text-align:left}footer a{color:#c0d4ac}.hidden{display:none!important}@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) 380px}.console{padding:30px}.arena-heading{left:48px}}@media(max-width:850px){header{padding:0 18px;height:66px}.version{display:none}.wordmark-sub{font-size:12px}.header-right{gap:0}main{grid-template-columns:1fr;min-height:0}.arena-panel{border-right:0;border-bottom:1px solid var(--line)}.arena-heading{top:24px;left:24px}.arena-heading h1{font-size:27px}#viewport{min-height:470px;height:470px}.arena-toolbar{bottom:95px;left:14px;right:14px}.arena-toolbar>span{display:none}.console{max-width:540px;width:100%;margin:auto;padding:26px}.draw-wrap{max-width:320px;margin:auto}footer{padding:20px;display:block;line-height:1.9}footer details{text-align:left;margin-top:12px}.species-note{font-size:10px}.arena-caption{padding:16px 20px;font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

.form-tabs{display:flex;align-items:center;gap:28px;padding:0 36px;border-bottom:1px solid var(--line);height:52px}.form-tabs button{border:0;background:none;color:var(--muted);height:100%;font-size:14px;border-bottom:2px solid transparent}.form-tabs button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.form-tabs>span{margin-left:auto;font-size:12px;color:var(--muted)}#handControls>.section-label{display:flex;justify-content:space-between;margin:0 0 12px}.challenge-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin:26px 0 17px}.challenge-card{display:flex;align-items:center;gap:24px;background:#0c150e;border:1px solid #43523b;border-radius:9px;padding:24px 20px}.challenge-card canvas{width:116px;height:116px;image-rendering:pixelated;background:black;border-radius:4px}.challenge-card>div{font-size:12px;color:var(--muted)}.challenge-card strong{display:block;font-size:46px;font-weight:500;color:var(--accent);margin:9px 0}.challenge-card span{font-size:10px}.game-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:20px 0}.game-stats>div+div{border-left:1px solid var(--line);padding-left:24px}.game-stats strong{display:block;font-size:26px;font-weight:500;color:var(--ink)}.game-stats span{font-size:12px;color:var(--muted);display:block;margin-top:4px}#pauseGame{width:100%;margin-top:10px}#gameControls{padding-bottom:4px}.section-label,.eyebrow,.version{font-size:12px}.tiny,.muted,.species-note{font-size:12px}.score-column{font-size:12px}.arena-toolbar .quiet,.sample-row,.mode-notice{font-size:14px}footer{font-size:12px}.arena-heading p{font-size:16px}.arena-caption{font-size:16px}@media(max-width:850px){.form-tabs{padding:0 18px;gap:22px}.form-tabs>span{display:none}#viewport{height:480px;min-height:480px}.arena-caption{font-size:14px}}

/* Compact workspace: keep the game and its controls within the app viewport. */
@media (min-width: 600px) and (min-height: 620px) {
  html, body { height: 100%; }
  body { height: 100dvh; display: grid; grid-template-rows: 50px 38px minmax(0,1fr) 34px; overflow: hidden; }
  header { height: auto; padding: 0 20px; }
  .wordmark { font-size: 22px; }
  .wordmark-sub, .pill { font-size: 12px; }
  .header-right { gap: 12px; }
  .form-tabs { height: auto; padding: 0 20px; gap: 22px; }
  .form-tabs button { font-size: 13px; }
  .form-tabs > span { display: none; }
  main { width: 100%; height: 100%; min-height: 0; max-width: none; margin: 0; grid-template-columns: minmax(0,1fr) 280px; }
  .arena-panel { height: 100%; min-height: 0; border-right: 1px solid var(--line); border-bottom: 0; }
  .arena-heading { top: 22px; left: 22px; right: 14px; }
  .arena-heading h1 { font-size: clamp(21px,2.5vw,34px); margin: 10px 0 8px; }
  .arena-heading p { font-size: 13px; line-height: 1.5; }
  .eyebrow { font-size: 10px; }
  #viewport { min-height: 0; height: auto; flex: 1 1 0; }
  .arena-toolbar { bottom: 76px; left: 14px; right: 14px; gap: 6px; }
  .arena-toolbar .quiet { font-size: 12px; padding: 7px 9px; }
  .arena-toolbar > span { display: none; }
  .arena-caption { flex: 0 0 auto; min-height: 38px; padding: 10px 14px; font-size: 12px; gap: 8px; }
  #flyStatus { min-width: 0; }
  #roundCounter { font-size: 10px; white-space: nowrap; }
  .species-note { flex: 0 0 auto; padding: 6px 12px; font-size: 10px; line-height: 1.4; }
  .console { width: auto; max-width: none; min-height: 0; height: 100%; margin: 0; padding: 12px 16px; }


  .mode-notice { min-height: 0; margin: 6px 0 10px; font-size: 12px; line-height: 1.4; }
  #handControls > .section-label { margin-bottom: 7px; }
  .draw-wrap { width: min(100%,clamp(150px,23dvh,238px)); margin: auto; }
  .sample-row { margin: 7px 0; font-size: 12px; gap: 4px; }
  #examples { gap: 4px; }
  #examples button { width: 24px; font-size: 12px; }


  .challenge-title { margin: 10px 0 8px; }
  .challenge-card { gap: 16px; padding: 12px; }
  .challenge-card canvas { width: clamp(70px,11dvh,112px); height: clamp(70px,11dvh,112px); }
  .challenge-card strong { font-size: 32px; margin: 5px 0; }
  .game-stats { padding: 10px 0 6px; }
  .game-stats strong { font-size: 22px; }
  .game-stats > div + div { padding-left: 17px; }
  #gameControls { padding-bottom: 0; }
  #gameControls > .tiny { margin: 4px 0; font-size: 11px; line-height: 1.4; }
  #pauseGame { padding: 6px 10px; margin-top: 5px; font-size: 12px; }
  .run { padding: 10px 14px; margin-top: 8px; font-size: 13px; }
  .run > span:last-child { font-size: 17px; }
  .readout-heading { padding-top: 10px; margin-top: 12px; }
  .section-label, #resultTag { font-size: 10px; }
  .answer-row { gap: 12px; margin: 6px 0; }
  #answer { font-size: 45px; min-width: 30px; }
  #answerCaption { font-size: 12px; }
  .muted { font-size: 10px; margin-top: 3px; }
  #inputPreview { width: 32px; height: 32px; }
  #scoreBars { height: 34px; gap: 4px; }
  .score-column { font-size: 10px; gap: 2px; }
  .tiny { margin: 5px 0; font-size: 10px; line-height: 1.4; }
  .activity-heading { margin-top: 10px; }
  #activeCount { font-size: 10px; }
  .activity { height: 22px; margin-top: 5px; }
  .error { font-size: 11px; margin-top: 5px; }
  footer { width: 100%; max-width: none; height: 34px; margin: 0; padding: 7px 18px; gap: 12px; align-items: center; font-size: 10px; line-height: 1.4; }
  footer > div { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  footer .divider { padding: 0 6px; }
  footer details { flex: 0 0 auto; margin: 0; max-width: none; text-align: right; }
  footer details[open] { position: fixed; z-index: 20; bottom: 12px; right: 12px; width: min(480px,calc(100vw - 24px)); max-height: calc(100dvh - 30px); overflow: auto; padding: 18px; border: 1px solid #5c6c4b; border-radius: 10px; background: #19241b; box-shadow: 0 12px 70px #0009; font-size: 13px; text-align: left; }
  footer details[open] summary { color: var(--accent); }
  #protocolLabel { overflow-wrap: anywhere; }
}
@media (min-width: 1100px) and (min-height: 760px) {
  main { grid-template-columns: minmax(0,1fr) 320px; }
  .console { padding: 16px 22px; }
  .run { font-size: 14px; }
  .draw-wrap { width: min(100%,28dvh); }
  .arena-heading { left: 30px; top: 28px; }
}
@media (min-width: 600px) and (min-height: 620px) and (max-height: 739px) {
  .draw-wrap { width: 142px; }
  .mode-notice { font-size: 11px; margin-bottom: 7px; }
  .challenge-card { padding: 8px 12px; }
  .challenge-card canvas { width: 62px; height: 62px; }
  .readout-heading { margin-top: 8px; padding-top: 7px; }
  .game-stats { padding: 7px 0 3px; }
  #answer { font-size: 38px; }
  .activity-heading { margin-top: 5px; }
}
@media (min-width: 600px) and (min-height: 620px) {
  footer { display: flex; }
  .console { padding-top: 10px; padding-bottom: 10px; }
  .mode-notice { margin-bottom: 8px; }
  .game-stats { padding-top: 8px; }
  .readout-heading { margin-top: 10px; }
  .activity-heading { margin-top: 8px; }
}

@media (min-width:600px) and (min-height:620px) and (max-height:739px) {
  .draw-wrap { width:132px; }
  #gameControls > .tiny { display:none; }
  .game-stats strong { font-size:18px; }
  .console { padding-top:8px; padding-bottom:8px; }
}
@media (min-width:600px) and (min-height:620px) {
  .challenge-card { padding-top:10px; padding-bottom:10px; }
  .game-stats { padding-top:6px; padding-bottom:4px; }
  .readout-heading { margin-top:8px; }
  .console:has(.error:not(:empty)) #scoreBars,
  .console:has(.error:not(:empty)) #scoreNote { display:none; }
}

/* Fixed 0–9 runway labels; screen-sized so all ten remain legible. */
.lane-label { position:absolute; display:grid; place-items:center; width:24px; height:28px; transform:translate(-50%,-50%); border:1px solid #59734a; border-radius:5px; background:#17241deb; color:#c8d6bb; font-size:15px; font-weight:650; font-variant-numeric:tabular-nums; }
.lane-label.incoming { border-color:#98cfec; color:#c1e7fb; background:#243c47; }
.lane-label.chosen { border-color:#d4f680; color:#192413; background:#d4f680; }
.lane-label.wrong { border-color:#f08273; color:#ffdad3; background:#5a302a; }

/* Prediction latency remains visible in both experiences. */
.latency-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.latency-row>div{display:flex;flex-direction:column;gap:4px}
.latency-row span{font-size:10px;letter-spacing:.04em;color:var(--muted)}
.latency-row strong{font-size:20px;font-weight:550;font-variant-numeric:tabular-nums;color:var(--accent)}
@media(min-width:600px) and (min-height:620px){
  .latency-row{margin:7px 0;padding:6px 0;gap:8px}
  .latency-row>div{gap:2px}
  .latency-row strong{font-size:18px}
  .latency-row span{font-size:10px}
  #answerCaption{font-size:12px}
}

.runtime-picker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}
.runtime-picker select{max-width:145px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px 7px;font:inherit}
.runtime-status{font-size:11px;line-height:1.35;color:var(--muted);margin:0 0 7px;overflow-wrap:anywhere}
@media(max-width:850px){.version{display:none}.runtime-picker{gap:4px;font-size:11px}.header-right{gap:8px}.wordmark-sub{display:none}}


/* Keep the monitored-population denominator explicit in the compact console. */
.activity-heading .section-label{letter-spacing:.025em}
.activity-heading{gap:8px}
#activeCount{white-space:nowrap}
.activity-scope{font-size:10px;line-height:1.3;color:var(--muted);margin:3px 0 0}
.activity-scope + .activity{margin-top:4px}
