:root{color:#172c27;font-synthesis:none;--purple:#7944d7;--muted:#62726a;--line:#dbe1d9;--lime:#dafb96;background:#f5f6f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.stage:focus-visible{outline-offset:4px;outline:3px solid #a272f5}button{border:0}img{display:block}svg{flex-shrink:0}.app{--game-height:max(500px, calc(100dvh - 160px));flex-direction:column;min-height:100dvh;margin:auto;padding:0 24px;display:flex}header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;height:64px;display:flex}.brand{white-space:nowrap;align-items:center;gap:13px;font-size:17px;font-weight:650;display:flex}.brand img{width:22px;height:24px}.brand small{color:var(--muted);font-size:14px;font-weight:400}.brand-slash{color:#b5c0b6;margin:0 9px}nav,.project-links{align-items:center;gap:25px;display:flex}.text-button{color:var(--muted);background:0 0;padding:10px 0}.project-links>a{color:#4a5b51;align-items:center;gap:8px;font-size:13px;display:flex}.deploy-control{display:flex;position:relative}.deploy-button{background:0 0;border-radius:6px;padding:0}.deploy-button img{width:138px;height:auto}.deploy-options{z-index:20;border:1px solid var(--line);background:#fff;border-radius:7px;width:138px;padding:5px;position:absolute;top:43px;right:0;box-shadow:0 7px 20px #15251f14}.deploy-options a{border-radius:4px;padding:11px 10px;display:block}.deploy-options a:hover{background:#f0e8ff}main{padding-top:14px}.game{height:var(--game-height);background:#132923;border:1px solid #203c31;border-radius:13px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 10px 25px #1b352d0a}.scoreboard{color:#e5eee2;background:#172a25;border-bottom:1px solid #ffffff10;flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;height:54px;padding:0 30px;display:grid}.player-label,.keeper-label>span{align-items:center;gap:10px;font-size:15px;font-weight:550;display:flex}.player-label small,.keeper-label small{letter-spacing:.1em;color:#96a99e;font-size:9px;font-weight:500}.keeper-label{justify-content:flex-end;align-items:center;gap:12px;display:flex}.kit-dot{background:#f1eee4;border-radius:3px;width:10px;height:10px;display:inline-block}.kit-dot.purple{background:#aa7cff}.score{align-items:baseline;gap:9px;display:flex}.score strong{font-variant-numeric:tabular-nums;font-size:28px;font-weight:550}.score>span{color:#9aae9f;font-size:14px}.stage{isolation:isolate;touch-action:none;flex:1;min-height:0;position:relative}.stage canvas{display:block}.stage-top{pointer-events:none;color:#f0f4ee;text-shadow:0 1px 5px #0d201b,0 0 12px #0d201b;letter-spacing:.15em;justify-content:space-between;font-size:9px;display:flex;position:absolute;top:19px;left:24px;right:24px}.live-tag{letter-spacing:.02em;color:#c9d5c8;align-items:center;gap:6px;display:flex}.live-tag i{background:#d4f59b;border-radius:50%;width:5px;height:5px}.start-overlay{background:linear-gradient(#0000 40%,#0e221da6);justify-content:center;align-items:flex-end;padding-bottom:35px;display:flex;position:absolute;inset:0}.start-overlay form{background:#f9faf3f5;border:1px solid #ffffff40;border-radius:10px;width:340px;padding:18px 20px;box-shadow:0 8px 40px #07191044}.start-overlay label{color:#526358;margin-bottom:7px;font-size:11px;display:block}.start-overlay form>div{gap:8px;display:flex}.start-overlay input{color:#233f33;background:#fff;border:1px solid #cbd5ca;border-radius:5px;width:100%;min-width:0;padding:10px 11px}.start-overlay form>span{color:#728073;margin-top:9px;font-size:10px;display:block}.primary{background:var(--lime);color:#193524;white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;gap:9px;min-height:40px;padding:11px 19px;font-size:12px;font-weight:600;display:inline-flex}.primary:hover:not(:disabled){background:#e6ffbc}.start-overlay .primary{color:#f4ffe9;background:#203c2b}.game-controls{color:#cedbcc;background:#122720;flex-shrink:0;align-items:center;gap:20px;min-height:84px;padding:0 24px;display:flex}.game-controls>.primary{min-width:120px;margin-left:auto}.shot-markers{gap:7px;display:flex}.shot-markers>span{font-variant-numeric:tabular-nums;color:#89a18e;border:1px solid #486051;border-radius:50%;justify-content:center;align-items:center;width:29px;height:29px;font-size:11px;display:flex}.shot-markers .current{color:#e6f4d2;border-color:#dafa97}.shot-markers .goal{color:#1a3824;background:#dafa97;border-color:#dafa97}.shot-markers .saved,.shot-markers .wide{color:#b7c6b3;background:#344738;border-color:#51674f}.turn-status{color:#c9d6c2;font-size:12px}.controls-note{color:#a3b69f;margin-left:auto;font-size:11px}.aim-hint{text-align:center;pointer-events:none;color:#e4eddf;text-shadow:0 1px 8px #000;background:#16352680;border-radius:20px;width:max-content;max-width:95%;margin:auto;padding:8px;font-size:11px;position:absolute;bottom:21px;left:0;right:0}.aim-hint span{color:#95ad8e;margin:0 9px}.result-word{pointer-events:none;letter-spacing:-.025em;word-spacing:.1em;color:#ebf7df;text-shadow:0 3px 25px #0c251da8;justify-content:center;align-items:center;font-size:73px;font-weight:800;animation:.2s ease-out result-in;display:flex;position:absolute;inset:0}.result-word.goal{color:#deff9c}.result-word.wide{color:#e1e7d9}.turn-countdown{pointer-events:none;color:#ebf7df;text-shadow:0 3px 25px #0c251da8;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.turn-countdown span{letter-spacing:.12em;font-size:12px;font-weight:700}.turn-countdown strong{font-size:clamp(60px,8vw,90px);line-height:1;animation:.2s ease-out result-in}.pending-pill{color:#deebd6;white-space:nowrap;background:#14291ee8;border-radius:20px;align-items:center;gap:8px;padding:9px 14px;font-size:11px;display:flex;position:absolute;bottom:23px;left:50%;transform:translate(-50%)}.scene-fallback{color:#e0eadb;justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex;position:absolute;inset:0}.game-extras{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 20px;min-height:40px;display:flex}.probabilities>div{grid-template-columns:100px 1fr 36px;align-items:center;gap:10px;margin:5px 0;font-size:10px;display:grid}.probabilities meter{accent-color:#9864de;width:100%;height:11px}.probabilities code{text-align:right}.career{color:#60705e;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;padding-top:12px;font-size:10px;display:flex}.career strong{color:#384d35;font-weight:550}.career small{font-size:10px;font-weight:400}.keyboard-controls{color:#75816f;order:-1;max-width:400px;margin:4px 0 8px;font-size:10px}.keyboard-controls[open]{width:min(360px,100%)}.keyboard-controls summary{cursor:pointer;padding:8px 0}.keyboard-controls>div{grid-template-columns:repeat(3,1fr);gap:6px;padding-top:6px;display:grid}.keyboard-controls button{color:#30442b;background:#fff;border:1px solid #cfd9c8;border-radius:4px;min-height:40px;font-size:11px}footer{border-top:1px solid var(--line);color:#667663;justify-content:space-between;align-items:center;gap:20px;min-height:42px;margin-top:auto;font-size:11px;display:flex}footer a{align-items:center;gap:8px;display:flex}.error{color:#a43728;background:#fae9df;border-radius:6px;padding:10px;font-size:12px}.spin{animation:1.2s linear infinite spin}.detail-panel{border:1px solid var(--line);color:#213823;background:#fafbf7;border-radius:12px;width:min(550px,100vw - 30px);max-height:85dvh;padding:0;box-shadow:0 20px 70px #09180e30}.detail-panel::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#08190e70}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 23px;font-size:12px;display:flex}.icon-button{color:#50654c;background:0 0;justify-content:center;align-items:center;padding:5px;display:flex}.panel-body{padding:8px 24px 25px;font-size:13px;line-height:1.7}.panel-body h2{letter-spacing:-.8px;font-size:25px}.panel-body ol{padding-left:20px}.panel-body li{margin-bottom:12px}.muted{color:#6b7867;font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes result-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=900px){.app{padding:0 22px}.brand small,.brand-slash{display:none}nav,.project-links{gap:17px}.turn-status{font-size:11px}.game-controls{gap:14px}}@media (width<=600px){.app{padding:0 10px}header{gap:12px;height:58px}.brand{gap:8px;font-size:15px}.brand img{width:18px;height:21px}.project-links>a{gap:0;font-size:0}.project-links>a svg{width:18px;height:18px}nav,.project-links{gap:13px}.how{display:none}.deploy-button img{width:114px}.scoreboard{height:57px;padding:0 18px}.keeper-label small,.player-label small{display:none}.player-label{text-overflow:ellipsis;max-width:130px;font-size:13px;overflow:hidden}.keeper-label>span{font-size:13px}.score strong{font-size:25px}.stage-top{font-size:8px;top:15px;left:15px;right:15px}.venue{letter-spacing:.07em}.start-overlay{padding:0 19px 30px}.start-overlay form{width:100%;padding:15px}.game-controls{grid-template-columns:1fr auto;gap:9px;height:auto;min-height:91px;padding:14px 15px;display:grid}.game-controls>.primary{grid-area:1/2/3;min-width:104px;padding:10px 12px}.shot-markers{gap:6px}.shot-markers>span{width:26px;height:26px;font-size:10px}.turn-status{grid-area:2/1;font-size:10px}.controls-note{grid-area:1/2/3;max-width:85px;font-size:10px;line-height:1.6}.aim-hint{width:auto;font-size:10px;left:20px;right:20px}.aim-hint span{margin:0 5px}.result-word{font-size:60px}.keyboard-controls{margin-top:5px}footer{min-height:52px;font-size:10px}footer a{gap:5px}.career{font-size:10px}.probabilities>div{grid-template-columns:80px 1fr 32px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.match-workflow{border:1px solid var(--line);background:#fff9;border-radius:12px;margin:0;padding:12px 14px}.match-steps{grid-template-columns:1.5fr 1.2fr repeat(5,minmax(0,1fr)) 1.2fr;gap:5px;margin:0;padding:0;list-style:none;display:grid}.match-steps li{color:#718076;min-width:0;font-size:9px}.match-steps li>span:last-child{white-space:nowrap;align-items:center;gap:5px;display:flex}.step-bar{background:#e2e7df;border-radius:2px;height:4px;margin-bottom:8px;display:block;position:relative;overflow:hidden}.done .step-bar{background:#557b4f}.active .step-bar{background:#dfd0f5}.active .step-bar:after{content:"";background:var(--purple);width:40%;height:100%;animation:1.2s ease-in-out infinite task-running;display:block}.match-steps .active{color:var(--purple);font-weight:600}.failed .step-bar{background:#d66a55}@keyframes task-running{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (prefers-reduced-motion:reduce){.active .step-bar:after{opacity:.5;width:100%;animation:none}}.game-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.play-column{min-width:0}.workflow-column{height:var(--game-height);flex-direction:column;gap:12px;min-width:0;display:flex}.workflow-column>.match-workflow{flex-shrink:0}.execution-panel{border:1px solid var(--line);scrollbar-width:thin;background:#fff9;border-radius:12px;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:auto}.execution-heading{align-items:center;gap:8px;padding:18px 16px 8px;font-size:13px;display:flex}.execution-heading img{width:17px;height:17px}.status-dot{background:#a6b5aa;border-radius:50%;width:6px;height:6px;margin-left:auto}.status-dot.running{background:var(--purple);box-shadow:0 0 0 4px #7944d718}.execution-status{color:var(--muted);border-bottom:1px solid var(--line);min-height:28px;padding:0 16px 15px;font-size:11px}.execution-panel>:not(.execution-runs){flex-shrink:0}.execution-runs{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:140px;overflow:auto}.execution-empty{color:var(--muted);text-align:center;padding:46px 20px;font-size:12px}.execution-empty svg{color:#a1b298;margin:auto}.execution-empty p{line-height:1.8}.execution-run{border-bottom:1px solid var(--line);padding:16px}.execution-run:last-child{border-bottom:0}.run-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px;font-size:12px;display:flex}.run-title b{font-weight:600}.run-title>span{color:var(--muted);font-size:10px}.execution-run ol{margin:0;padding:0;list-style:none}.task-row{grid-template-columns:18px 1fr auto;align-items:start;gap:7px;padding:8px 0;display:grid}.task-icon{color:#81937e;padding-top:1px}.task-row.running .task-icon{color:var(--purple)}.task-row.failed .task-icon{color:#b94f37}.task-row strong{font-size:12px;font-weight:500;display:block}.task-row small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.task-row time{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px;font-size:10px}.task-wait{color:var(--muted);font-size:11px}.run-id{color:#66756b;margin-top:8px;font-size:10px}.run-id summary{cursor:pointer}.run-id code{overflow-wrap:anywhere;margin-top:6px;font-size:9px;line-height:1.7;display:block}.keeper-decision{border-top:1px solid var(--line);padding:16px;font-size:12px}.keeper-decision>summary{cursor:pointer;color:var(--muted);justify-content:space-between;gap:8px;display:flex}.keeper-decision b{color:var(--purple);margin-top:5px;font-weight:600;display:block}.keeper-decision small{font-variant-numeric:tabular-nums}.keeper-decision .probabilities{margin-top:20px;font-size:10px}.keeper-decision .probabilities>div{grid-template-columns:75px 1fr 28px;gap:6px}.decision-note{color:var(--muted);font-size:10px;line-height:1.5}.decision-input{font-size:11px}.decision-input summary{cursor:pointer}.decision-input pre{white-space:pre-wrap;word-break:break-word;background:#eef0e9;max-height:240px;padding:10px;font-size:10px;overflow:auto}@media (width>=1001px){.game-layout .turn-status{font-size:12px}.game-layout .game-controls{gap:20px;padding:12px 24px}.game-layout .shot-markers{gap:5px}.game-layout .shot-markers>span{width:26px;height:26px;font-size:10px}}@media (width<=1000px){.game-layout{grid-template-columns:1fr}.app{--game-height:clamp(500px, calc(100svh - 118px), 640px)}.workflow-column{height:auto;margin-bottom:18px}.execution-runs{flex:auto;max-height:360px}.game-layout{gap:8px}.game-extras{min-height:36px}.execution-empty{padding:20px}.execution-empty p{margin:8px 0}}@media (width<=1000px) and (height<=500px) and (orientation:landscape){.app{--game-height:max(290px, calc(100dvh - 64px));padding:0 12px}header{height:48px}main{padding-top:8px}.scoreboard{height:40px}.game-controls{min-height:64px;padding:6px 16px}.shot-markers>span{width:22px;height:22px}.start-overlay{padding-bottom:12px}.start-overlay form{padding:10px 14px}.start-overlay form>span{display:none}.stage-top{top:10px}.aim-hint{bottom:10px}}.reaction-window{border-top:1px solid var(--line);color:var(--muted);flex-direction:column;gap:5px;padding:14px 16px;font-size:11px;display:flex}.reaction-window strong{color:var(--purple);font-weight:550}.stage canvas{touch-action:none}.shootout-marks{gap:6px;display:grid}.shootout-marks .shot-markers small{color:#c0cfba;width:22px;font-size:10px}.score .jev-score{color:#bd9aed}.keeper-controls{justify-content:center;align-items:center;gap:8px;margin:14px 0;display:flex}.keeper-controls>span{color:var(--muted);margin-right:auto;font-size:12px}.keeper-controls button{touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid var(--line);background:#f7f9f2;border-radius:8px;min-width:52px;min-height:44px;font-size:14px}.keeper-controls button:active{background:#d8f898}.keeper-controls button:disabled{opacity:.5}.match-run-id{color:var(--muted);border-bottom:1px solid var(--line);padding:10px 16px;font-size:10px}.match-run-id code{overflow-wrap:anywhere;margin-top:8px;font-size:9px;display:block}.execution-run>summary{cursor:pointer}.execution-run.current-turn{background:#f6f2fb}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=600px){.keeper-controls>span{font-size:10px}.result-word{font-size:clamp(32px,8vw,70px)}}.game .keeper-controls{border-top:1px solid #3b5148;flex-shrink:0;margin:0;padding:10px 16px}.game .keeper-controls>span{color:#d3e0c8}.game .keeper-controls button{color:#eff6df;background:#294336;border-color:#65745d}.game .keeper-controls button:active{color:#172c28;background:#d8f898}
