:root{color-scheme:light;--paper:#faf8f5;--surface:#fff;--ink:#292b26;--muted:#63665c;--line:#deded4;--green:#1f634d;--green-light:#e8f0e9;--ochre:#b45309}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Avenir Next','Avenir','Helvetica Neue',sans-serif;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select,svg[tabindex]{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;min-height:44px;padding:10px 16px;color:var(--ink);background:var(--surface);transition:background .15s}button:hover{background:#f0efe8}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}a{color:var(--green)}.primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:650;display:flex;justify-content:space-between;align-items:center;gap:20px}.primary:hover{background:#194d3c}.secondary{background:transparent}.quiet{background:transparent;border-color:transparent;font-size:14px;color:var(--muted)}.text-button{border:0;background:transparent;padding:4px 0;min-height:44px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.site-header{max-width:1160px;padding:20px 24px;margin:auto;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-weight:750;font-size:19px;letter-spacing:-.6px}.brand-mark{display:grid;place-content:center;width:32px;height:32px;background:var(--green);color:white;font-size:21px;border-radius:4px}.question{color:var(--green);margin-left:-8px}main{max-width:1120px;margin:auto;padding:24px}h1,h2,p{margin-top:0}h1{line-height:1.13;letter-spacing:-1.4px;font-size:38px;margin-bottom:16px}h2{font-size:19px;line-height:1.3;margin-bottom:12px}p{margin-bottom:16px}.muted{font-size:14px;color:var(--muted)}[hidden]{display:none!important}.setup{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;min-height:660px}.setup-map{position:relative;background:#eeeee5;border:1px solid var(--line);height:620px;display:flex;justify-content:center;border-radius:8px}.setup-map svg{height:100%;max-width:100%}.map-caption{position:absolute;bottom:18px;left:24px;color:var(--muted);font-size:14px}.setup-form{max-width:440px}.setup-form h1{font-size:48px;margin-bottom:24px}.intro{font-size:23px;line-height:1.4;color:var(--green);margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:14px;font-weight:600;margin-bottom:16px}select,input{display:block;width:100%;margin-top:7px;border:1px solid #bfc2b6;border-radius:5px;min-height:46px;background:#fff;padding:9px 11px;color:var(--ink)}.player-names{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.player-names label:only-child{grid-column:1/-1}#setup-form .primary{width:100%;margin-top:20px}.device-note{margin:12px 0 6px}.challenge-note{font-size:14px;color:var(--green)}#pool-count{margin-top:-6px}.round-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}.round-head h1{margin:0;font-size:34px}.round-head p{margin:0 0 3px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px}.map-panel{position:relative;display:flex;align-items:center;justify-content:center;background:#eeeee5;border:1px solid var(--line);border-radius:6px;min-width:0;height:min(72vh,710px);min-height:480px;padding:10px 0 30px}#map{display:block;height:100%;width:100%;touch-action:manipulation;cursor:crosshair}.map-key{position:absolute;bottom:9px;left:16px;right:16px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#575b50;pointer-events:none}.state{fill:#fcfcf6;stroke:#acb6a0;stroke-width:1.3;stroke-linejoin:round}.grid-line{stroke:#555e4b;stroke-width:1;opacity:.37}.controls{padding:12px 0}.controls h2{margin-bottom:8px}.controls .primary{width:100%}.risk-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0 14px}.risk-options button{display:flex;flex-direction:column;align-items:center;padding:10px 2px;min-height:76px;gap:3px}.risk-options strong{font-size:24px;font-weight:600;line-height:1.2}.risk-options span{font-size:12px}.risk-options [aria-pressed=true]{border:2px solid var(--green);background:var(--green-light);color:var(--green);padding:9px 1px}#risk-description{font-size:14px;min-height:42px}#selection-status{padding:12px 0;border-top:1px solid var(--line);font-size:14px;min-height:47px;margin-bottom:10px}.risk-warning{margin:14px 0 0}.scoreboard{margin-top:32px;border-top:1px solid var(--line);padding-top:20px}.scoreboard h2{font-size:15px}.scoreboard ol,.result-list,.final-scores,.summary-list{padding:0;list-style:none;margin:0}.scoreboard li{display:flex;justify-content:space-between;padding:7px 0;font-size:14px}.result-list{margin:20px 0}.result-list li{border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:12px}.result-list li strong{display:block}.result-list .result-score{font-weight:700;white-space:nowrap}.result-list .correct{color:var(--green)}.result-list .miss{color:#994116}.center-screen{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.center-screen h1{font-size:44px}.center-screen .primary{margin-top:12px;min-width:240px}.finish{max-width:750px;margin:40px auto}.finish h1{font-size:44px}.final-scores{margin:24px 0}.final-scores li{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:20px}.final-scores li:first-child{color:var(--green);font-weight:700}.finish-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 12px}.finish h2{margin-top:36px}.summary-list li{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:12px 0}.summary-list small{display:block;color:var(--muted)}.summary-list .history-score{font-size:14px;text-align:right}footer{max-width:1112px;margin:12px auto 0;padding:20px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:var(--muted)}footer button{font-size:12px}dialog{border:1px solid var(--line);border-radius:8px;padding:28px;max-width:560px;width:calc(100% - 32px);max-height:85svh;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#17211988}dialog p,dialog li{font-size:15px}dialog .primary{margin-top:20px}dialog .rules{padding-left:20px}dialog .rules li{margin:10px 0}#load-status{padding:48px 0;text-align:center}#best-note{color:var(--green)}@media(max-width:780px){.site-header{padding:12px 16px}.brand{font-size:17px}.site-header .quiet{padding:8px;font-size:13px}.brand-mark{width:28px;height:28px;font-size:18px}main{padding:18px 16px}.setup{display:block;min-height:0}.setup-map{display:none}.setup-form{max-width:480px;margin:12px auto 0}.setup-form h1{font-size:39px;margin-bottom:16px}.intro{font-size:20px;margin-bottom:14px}.setup-form>p:not(.intro):not(.muted){font-size:15px}.round-head{margin-bottom:12px}.round-head h1{font-size:28px;letter-spacing:-.8px}.play-layout{display:flex;flex-direction:column;gap:16px}.map-panel{height:43svh;min-height:300px;max-height:440px;padding-top:2px;padding-bottom:23px}.controls{padding:0;display:flex;flex-direction:column}.controls h2{font-size:17px;margin-bottom:4px}.controls h2+.muted{margin-bottom:10px;font-size:12px}.risk-options{margin:10px 0 8px;gap:8px}.risk-options button{min-height:59px;padding:5px}.risk-options strong{font-size:21px}.risk-options [aria-pressed=true]{padding:4px}#risk-description{min-height:0;margin-bottom:8px;font-size:12px}#selection-status{padding:7px 0;min-height:0;margin-bottom:8px;font-size:12px}.risk-warning{font-size:12px;margin-top:10px}.risk-warning br{display:none}.scoreboard{margin-top:14px;padding-top:12px}.scoreboard h2{font-size:14px}.map-key{font-size:11px;left:10px;right:10px;bottom:6px}footer{padding:16px;flex-direction:column;align-items:flex-start;gap:0}.finish{margin:20px auto}.finish h1{font-size:34px}.finish-actions>*{flex:1;justify-content:center}.result-list{margin:10px 0}.result-list li{padding:8px 0}.center-screen h1{font-size:36px}.summary-list li{gap:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
