:root{color-scheme:light;--bg-a: #f7efe0;--bg-b: #d8e7ea;--ink: #13212f;--panel: rgba(255, 255, 255, .9);--line: rgba(19, 33, 47, .12);--shadow: 0 18px 46px rgba(19, 33, 47, .18);--controls-width: 272px;--controls-height: 96px;--gap: 16px;--board-ratio: 4 / 3}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%}body{font-family:Trebuchet MS,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(255,255,255,.7),transparent 35%),linear-gradient(135deg,var(--bg-a),var(--bg-b));color:var(--ink)}button,select{font:inherit}button{border:0;border-radius:999px;padding:12px 18px;cursor:pointer;background:#13212f;color:#fff;box-shadow:0 10px 24px #13212f2e}button.secondary{background:#fff;color:#13212f;border:1px solid rgba(19,33,47,.15);box-shadow:none}button:disabled{opacity:.55;cursor:not-allowed}.shell{width:100%;height:100%;background:#ffffff52;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shell-layout{width:100%;height:100%;padding:var(--gap);display:flex;flex-direction:row;gap:var(--gap);align-items:stretch}.controls-dock{order:2;width:var(--controls-width);flex:0 0 var(--controls-width);display:flex;align-items:flex-start;justify-content:flex-start}.actions{width:100%;display:grid;gap:10px}.board-wrap{order:1;flex:1 1 auto;min-width:0;min-height:0;display:flex;align-items:center;justify-content:flex-start}.board-stage{position:relative;aspect-ratio:var(--board-ratio);width:min(100%,calc((100dvh - (2 * var(--gap))) * var(--board-ratio)));max-height:calc(100dvh - (2 * var(--gap)));overflow:hidden}#game-host{width:100%;height:100%;line-height:0;display:flex;align-items:center;justify-content:center}#game-host canvas{width:100%;height:100%;display:block}.overlay-panel,.choice-row,.setup-panel,.passive-turn-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2}.overlay-card,.choice-row,.setup-panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-card{min-width:min(360px,calc(100vw - 48px));max-width:min(420px,calc(100vw - 48px));padding:22px 20px;border-radius:24px;text-align:center}.overlay-card h2{margin:0;font-size:clamp(24px,3vw,34px)}.overlay-card p{margin:10px 0 0;color:#13212fb8;line-height:1.4}.overlay-actions{margin-top:18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.choice-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding:16px 18px;border-radius:24px}.choice-row button{width:76px;height:76px;padding:0;display:grid;place-items:center;background:#fffdf9;border:1px solid var(--line);box-shadow:0 10px 24px #13212f1f}.choice-row button img{width:48px;height:48px;display:block}.setup-panel{padding:14px 18px;border-radius:22px;min-width:260px}.setup-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.passive-turn-overlay{width:100%;height:100%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;background:#ffffff14;pointer-events:none}.passive-turn-label{padding:16px 24px;border-radius:999px;background:#ffffff1a;color:#ffffff6b;font-size:clamp(28px,4vw,46px);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#13212f61;z-index:10}.modal{width:min(92vw,420px);background:#fff;border-radius:24px;padding:24px;box-shadow:0 30px 80px #13212f38}.modal h2{margin:0 0 8px}.modal p{margin:0 0 16px;color:#516171}.modal label{display:block;margin-bottom:8px;font-size:14px;color:#516171}.modal select{width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(19,33,47,.18)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-aspect-ratio:1/1){.shell-layout{flex-direction:column}.controls-dock{order:1;width:100%;flex:0 0 auto}.actions{grid-template-columns:repeat(2,minmax(0,1fr))}.board-wrap{order:2;justify-content:center}.board-stage{width:min(100%,calc((100dvh - var(--controls-height) - (3 * var(--gap))) * var(--board-ratio)));max-height:calc(100dvh - var(--controls-height) - (3 * var(--gap)))}}@media(max-width:720px){:root{--gap: 10px;--controls-height: 88px}button{padding:10px 14px}.overlay-card{min-width:min(320px,calc(100vw - 24px));max-width:min(360px,calc(100vw - 24px));padding:18px 16px}.choice-row{padding:12px}.choice-row button{width:68px;height:68px}}
