:root{color:#f8f4dc;font-synthesis:none;--navy:#20283d;--surface:#29334a;--muted:#b2becd;--mint:#9bd4ae;--border:#667182;--app-height:100dvh;--team:#9bd4ae;background:#20283d;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button,input,select,textarea{border:2px solid var(--border);background:var(--surface);border-radius:3px}button{min-height:38px;padding:7px 13px;font-size:13px;font-weight:650}button:hover:not(:disabled){border-color:var(--mint);background:#344158}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:2px solid #fff6ba}.primary{background:var(--mint);color:#162c2b;border-color:#cee8ca;box-shadow:0 3px #467c66}.primary:hover:not(:disabled){background:#b0e2bf;border-color:#e0f2d9}input,select{min-height:40px;padding:7px 10px}textarea{resize:none;width:100%;min-height:60px;padding:10px 12px;font-size:16px;line-height:1.55}textarea::placeholder,input::placeholder{color:#b2becd}svg{fill:none;stroke:currentColor;stroke-width:2px;width:20px;height:20px}p{line-height:1.65}small{color:var(--muted);font-size:11px}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#app{height:var(--app-height);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;overflow:hidden}.game-bar{z-index:3;border-bottom:2px solid #131b2b;align-items:center;gap:12px;height:58px;min-height:58px;padding:8px 20px;display:flex}.brand{letter-spacing:-.4px;white-space:nowrap;align-items:center;gap:10px;font-size:16px;display:flex}.flag-mark{color:var(--mint);font-size:26px}.session-label{color:var(--muted);white-space:nowrap;border-left:1px solid #687384;padding-left:14px;font-size:12px}#practice-mode{background:0 0;border-color:#0000;min-height:32px;padding:4px;font-size:13px}#round-label{white-space:nowrap;font-size:13px}.bar-spacer{flex:1}.icon-button{border-color:#0000;place-items:center;width:36px;min-height:34px;padding:5px;font-size:19px;display:grid}#stage{background:#d6eddf;flex:1;min-height:0;position:relative;overflow:hidden}#game{width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline:none;display:block}.stage-hud{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:absolute;inset:18px 22px auto}.objective,.mana{background:#20283df2;border:2px solid #f8f4dc80;padding:10px 14px;box-shadow:3px 3px #142f2f2e}.objective{flex-direction:column;gap:5px;max-width:480px;display:flex}.objective strong{font-size:16px}.objective span{color:#e0e9df;font-size:12px;line-height:1.5}#round-clock{color:#fff0a5}.mana{gap:5px;min-width:180px;font-size:12px;display:grid}.mana>span{color:var(--team);font-weight:700}.mana>div{align-items:center;gap:9px;display:flex}.mana b{font-variant-numeric:tabular-nums;text-align:right;min-width:26px}progress{width:90px;height:10px;accent-color:var(--mint);background:#49566a;border:0;border-radius:0}progress::-webkit-progress-bar{background:#49566a}progress::-webkit-progress-value{background:var(--mint)}.stage-bottom{align-items:flex-end;gap:12px;display:flex;position:absolute;inset:auto 22px 18px}.touch-controls{gap:6px;display:flex}.touch-controls button{touch-action:none;-webkit-user-select:none;user-select:none;background:#20283ded;border-color:#edead3b0;width:44px;height:42px;padding:0;font-size:22px}.touch-controls #retry-button{border-color:#0000;width:36px;font-size:24px}.stage-bottom>span{color:#1c3c35;text-shadow:0 1px #edfae0;margin-bottom:12px;font-size:11px}.stage-bottom>label{background:var(--navy);margin-left:auto;padding:5px 8px;font-size:12px}#watch-team{min-height:32px;margin-left:6px;font-size:12px}.pause-label{white-space:nowrap;background:#20283ded;padding:7px 12px;font-size:11px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.center-notice{background:var(--navy);white-space:nowrap;padding:16px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.game-message{text-align:center;z-index:2;background:#20283df5;border:2px solid #cce7cb;width:min(420px,90%);padding:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:5px 5px #172d3338}.game-message h2{margin:0 0 8px;font-size:23px}.game-message p{color:#d3dfd6;margin:0 0 18px;font-size:13px}.game-message button+button{margin-left:6px}.composer{background:var(--navy);z-index:4;min-height:173px;max-height:260px;padding:14px 22px 16px;padding-bottom:max(16px, env(safe-area-inset-bottom));border-top:3px solid #141d30;gap:20px;display:flex}#prompt-form{flex-direction:column;flex:1.3;gap:6px;min-width:0;display:flex}.prompt-heading{justify-content:space-between;align-items:center;font-size:12px;display:flex}.prompt-heading label{font-weight:650}.prompt-heading span{color:var(--muted);font-size:10px}#prompt{flex:1}.input-footer{min-height:14px;color:var(--muted);justify-content:space-between;font-size:10px;display:flex}#connection-note{color:#ffd997}.result-column{border-left:1px solid #4c596e;flex:1;align-items:center;gap:16px;min-width:0;padding-left:20px;display:flex}#result{flex:1;min-width:0;max-height:150px;padding-right:5px;overflow:auto}#result-title{font-size:13px}#narration{color:#c3d0d8;margin:6px 0;font-size:12px;line-height:1.6}#assumptions{color:#b2becd;margin:6px 0;padding-left:16px;font-size:11px;line-height:1.5}#result[data-kind=error] #result-title{color:#ffd399}#cost-note{line-height:1.5;display:block}#summon-button{word-break:keep-all;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;width:140px;min-height:52px;font-size:16px;display:flex}#summon-button span+span{font-size:22px}#siege-controls{border-left:1px solid #4c596e;grid-template-columns:1fr 1fr;gap:5px 8px;width:205px;padding-left:16px;font-size:11px;display:grid}#siege-controls label{flex-wrap:wrap;align-items:center;gap:4px;display:flex}#siege-controls label:first-child{grid-column:1/-1}#target-team{width:100%;min-height:30px;padding:3px;font-size:11px}#siege-controls input{width:100%;min-height:20px;accent-color:var(--mint);padding:0}#siege-controls small{grid-column:1/-1;font-size:9px;line-height:1.4}#fire-button{background:#b76a60;grid-column:1/-1;min-height:30px;padding:3px}dialog{background:var(--navy);color:inherit;width:min(680px,100% - 24px);max-height:calc(var(--app-height) - 32px);border:2px solid #bedfc4;border-radius:4px;padding:22px;overflow:auto;box-shadow:8px 8px #08172850}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1c2e9c}.dialog-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dialog-heading h1,.dialog-heading h2{margin:0;font-size:21px}.dialog-heading button{border-color:#0000}.muted{color:var(--muted);font-size:13px}dialog>p,dialog li{font-size:13px;line-height:1.8}dialog li+li{margin-top:9px}#room-entry>label{margin-bottom:6px;font-size:12px;display:block}#nickname{width:100%}.entry-actions{grid-template-columns:1fr 1fr;gap:24px;margin-top:20px;display:grid}.entry-actions>div{flex-direction:column;gap:8px;display:flex}.entry-actions label{font-size:12px}.entry-actions button{margin-top:6px}.room-summary{align-items:center;gap:16px;display:flex}.room-summary>div{flex-direction:column;gap:8px;display:flex}.room-summary span{color:var(--muted);font-size:12px}#lobby-code{letter-spacing:4px;color:var(--mint);font-size:24px}#player-count{margin-left:auto}#lobby-description{font-size:13px}.lobby-actions{justify-content:space-between;gap:12px;margin-top:20px;display:flex}#room-notice{color:#ffe2aa;margin-bottom:0;font-size:12px}.team-row{border-bottom:1px solid #475369;align-items:center;gap:12px;padding:12px 0;display:flex}.team-row .team-swatch{border:1px solid #ffffff60;flex-shrink:0;width:12px;height:18px}.team-row strong{min-width:80px;font-size:13px}.team-row .members{color:var(--muted);flex:1;font-size:12px;line-height:1.6}.team-row .team-status{white-space:nowrap;font-size:11px}.team-row button{min-height:30px;padding:4px 8px;font-size:11px}.waiting-players{color:#d0ddd9;font-size:13px;line-height:2}.result-row{color:var(--mint);justify-content:space-between;padding:6px 0;font-size:12px;display:flex}@media (max-width:1050px){.game-bar{gap:8px;padding:8px 12px}.brand{font-size:13px}.brand .flag-mark{font-size:22px}#controls-hint{display:none}.composer{gap:14px;padding-inline:16px}.result-column{gap:12px;padding-left:14px}#summon-button{width:115px;font-size:14px}.stage-hud{inset:14px 16px auto}.stage-bottom{inset:auto 16px 14px}.objective{max-width:380px}#siege-controls{width:170px;padding-left:12px}}@media (max-width:700px),(max-aspect-ratio:3/4){.game-bar{flex-wrap:wrap;align-content:center;gap:4px 8px;height:76px;min-height:76px;padding:7px 12px}.brand{order:0;width:calc(100% - 148px);font-size:13px}.brand .flag-mark{font-size:20px}.bar-spacer{display:none}.session-label{border-left:0;order:5;padding-left:0;font-size:10px}#practice-mode,#round-label{order:6;min-height:24px;padding:1px 4px;font-size:11px}#room-button{order:1;min-height:30px;margin-left:auto;padding:4px 10px;font-size:11px}#restart-button{order:7;min-height:24px;margin-left:auto;padding:1px 7px;font-size:10px}#fullscreen-button,#help-button{order:2;width:28px;min-height:28px;padding:3px;font-size:16px}#fullscreen-button svg{width:17px}#stage{flex:0 0 clamp(170px,36%,330px);min-height:150px}.stage-hud{gap:8px;inset:8px 10px auto}.objective,.mana{border-width:1px;padding:6px 8px;box-shadow:2px 2px #142f2f2e}.objective{gap:3px;max-width:65%}.objective strong{font-size:11px}.objective span{font-size:9px;line-height:1.4}.mana{gap:4px;min-width:100px;font-size:9px}.mana>div{gap:4px}.mana label{display:none}.mana progress{width:55px;height:7px}.mana b{min-width:20px}.stage-bottom{gap:6px;inset:auto 10px 8px}.touch-controls{gap:4px}.touch-controls button{width:35px;height:33px;min-height:33px;font-size:19px}.touch-controls #retry-button{width:30px;font-size:21px}.stage-bottom>label{padding:2px 4px;font-size:10px}#watch-team{max-width:96px;min-height:28px;padding:2px;font-size:10px}.pause-label{padding:5px 7px;font-size:9px;bottom:9px;left:auto;right:10px;transform:none}.composer{min-height:0;max-height:none;padding:12px 12px max(12px, env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:10px;display:flex;overflow:auto}#prompt-form{flex:1 0 106px;gap:5px}#prompt{min-height:80px;padding:8px 10px;font-size:16px}.prompt-heading{font-size:11px}.input-footer{font-size:9px}.result-column{border-left:0;flex-direction:column;flex:none;align-items:stretch;gap:10px;padding:0;display:flex}#result{border:1px solid #4b5a6e;max-height:102px;padding:9px 10px}#result-title{font-size:12px}#narration{margin:4px 0;font-size:11px}#assumptions{font-size:10px}#summon-button{justify-content:center;gap:15px;width:100%;min-height:44px;font-size:15px}#siege-controls{border-top:1px solid #4c596e;border-left:0;grid-template-columns:1fr 1fr 1fr;gap:7px;width:100%;padding:8px 0 0;font-size:10px}#siege-controls label:first-child{grid-column:auto}#fire-button{grid-column:1/2}#siege-controls small{grid-column:2/-1;align-self:center}.game-message{padding:14px}.game-message h2{font-size:17px}.game-message p{margin-bottom:9px;font-size:11px}.game-message button{min-height:32px;font-size:11px}.entry-actions{gap:14px}.dialog-heading h1,.dialog-heading h2{font-size:18px}dialog{padding:16px}.team-row{flex-wrap:wrap;gap:8px}.team-row strong{min-width:70px}.team-row .members{min-width:100px}.room-summary{flex-wrap:wrap;gap:10px}.room-summary button{font-size:11px}.lobby-actions button{font-size:12px}#lobby-code{font-size:21px}body.keyboard-open #stage{flex-basis:150px;min-height:120px}body.keyboard-open #result{display:none}body.keyboard-open .composer{gap:6px;padding-top:8px}body.keyboard-open #prompt-form{flex-basis:76px}body.keyboard-open #prompt{min-height:50px}body.keyboard-open #summon-button{min-height:36px}body.keyboard-open .input-footer{display:none}body.keyboard-open .game-bar{height:54px;min-height:54px}body.keyboard-open .session-label,body.keyboard-open #practice-mode,body.keyboard-open #round-label,body.keyboard-open #restart-button{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.home-screen{color:#20283d;background:#d6eddf;grid-template-columns:1.1fr 1fr;align-items:center;gap:6vw;height:100dvh;padding:6vw;display:grid;overflow:auto}.home-art h1{letter-spacing:-3px;margin:20px 0;font-size:clamp(42px,6vw,82px);line-height:1.05}.home-art img{width:96px;image-rendering:pixelated;margin-bottom:30px;display:block}.home-art>span{font-size:14px}.home-art p{font-size:17px}.home-panel{color:#f8f4dc;background:#20283d;border:3px solid #7eaa92;flex-direction:column;gap:12px;padding:32px;display:flex;box-shadow:8px 8px #aacbbb}.home-panel h2{margin:0 0 12px}.home-panel label{font-size:13px}.home-panel p,.home-panel small{color:#c3d4cc;font-size:12px}.home-games{gap:8px;margin-top:8px;display:grid}.home-panel input{font-size:16px}.home-panel button{min-height:44px}@media (max-width:700px){.home-screen{grid-template-columns:1fr;gap:20px;padding:24px}.home-art h1{margin:12px 0;font-size:40px}.home-art img{float:right;width:64px;margin:0}.home-art p{font-size:13px}.home-panel{padding:20px}.home-panel h2{font-size:18px}}body.lab-spectating .composer{flex:none;min-height:64px;max-height:110px}body.lab-spectating #prompt-form,body.lab-spectating #summon-button{display:none}body.lab-spectating #stage{flex:1;height:auto;min-height:0;max-height:none}@media (max-width:700px),(max-height:500px){body.lab-mode .stage-hud{align-items:center;inset:5px 8px auto}body.lab-mode .objective{flex-direction:row;align-items:center;gap:6px;max-width:none;padding:5px}body.lab-mode .objective strong{font-size:10px}body.lab-mode #objective{display:none}body.lab-mode #round-clock{white-space:nowrap;font-size:10px}body.lab-mode .mana{flex-direction:row;gap:6px;min-width:0;padding:5px;font-size:10px}body.lab-mode .mana label,body.lab-mode .mana progress{display:none}body.lab-mode .touch-controls button{width:44px;height:44px;min-height:44px}body.lab-mode #watch-team{min-height:44px}body.lab-mode .stage-bottom{bottom:4px}}@media (max-width:700px){body.lab-mode .brand{white-space:nowrap;flex:1;width:auto;font-size:11px}body.lab-mode .brand .flag-mark{display:none}body.lab-mode .game-bar{gap:4px}}@media (min-width:701px) and (max-height:500px){body.lab-mode #app{grid-template-rows:44px minmax(0,1fr);grid-template-columns:minmax(0,1fr) 280px;display:grid}body.lab-mode .game-bar{grid-column:1/-1;gap:8px;height:44px;min-height:44px;padding:4px 10px}body.lab-mode .brand{font-size:13px}body.lab-mode .session-label,body.lab-mode #round-label,body.lab-mode #restart-button{display:none}body.lab-mode .composer{border-top:0;border-left:2px solid #141d30;flex-direction:column;gap:8px;min-height:0;max-height:none;padding:10px;overflow:auto}body.lab-mode #prompt-form{flex:1;min-height:100px}body.lab-mode #prompt{font-size:16px}body.lab-mode .input-footer{display:none}body.lab-mode .result-column{border:0;flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:0}body.lab-mode #result{max-height:75px;overflow:auto}body.lab-mode #summon-button{min-height:44px}body.lab-spectating #app{grid-template-columns:minmax(0,1fr)}body.lab-spectating .composer{display:none}}
