.layout-shell{flex-direction:column;min-height:100%;display:flex}.layout-skip{z-index:10;position:absolute;top:-60px;left:8px}.layout-skip:focus{top:8px}.layout-header{height:var(--header-height);border-bottom:1px solid var(--border-2);background:var(--surface);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.layout-home{color:var(--text);text-decoration:none}.layout-nav{gap:4px;display:flex}.layout-nav a{border-radius:var(--radius);color:var(--text-2);padding:6px 12px;font-weight:500;text-decoration:none}.layout-nav a:hover{color:var(--text)}.layout-nav a[aria-current=page]{color:var(--text);background:var(--surface-2)}.layout-main{flex-direction:column;flex:1;min-height:0;display:flex}.page-hero{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 16px;display:flex}.page-heroTitle{margin:16px 0 4px;font-size:clamp(2.4rem,9vw,4rem)}.page-tagline{font-family:var(--font-heading);margin:0;font-size:clamp(1.3rem,4vw,1.8rem);font-weight:700}.page-lead{max-width:34em;color:var(--text-2);margin:8px 0 28px}.page-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.page-note{color:var(--muted);margin-top:24px;font-size:.9rem}.page-page{width:100%;max-width:760px;margin:0 auto;padding:32px 16px 64px}.page-page h1{font-size:2.4rem}.page-page h2{margin-top:1.6em;font-size:1.6rem}.page-page p,.page-page li{color:var(--text-2)}.page-page strong{color:var(--text)}.page-pieces{gap:12px;margin:0;padding:0;list-style:none;display:grid}.page-pieces li{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--surface);grid-template-columns:40px 1fr;align-items:start;gap:12px;padding:12px;display:grid}.page-pieces h3{color:var(--text);margin:0 0 4px;font-size:1.25rem}.page-pieces p{margin:0}.page-swatches{flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.page-swatches li{font-family:var(--font-mono);align-items:center;gap:6px;font-size:.8rem;display:flex}.page-swatch{border:1px solid var(--border);border-radius:4px;width:18px;height:18px}.page-preview{height:calc(100dvh - var(--header-height));flex:1;grid-template-rows:auto minmax(0,1fr);display:grid}.page-previewBar{border-bottom:1px solid var(--border-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.page-previewBar h1{margin:0;font-size:1.6rem}.page-previewBoard{min-height:0;padding:12px}.game-layout{min-height:0;height:calc(100dvh - var(--header-height));flex:1 0 auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 340px;display:grid}.game-boardArea{min-height:0;padding:12px;position:relative}.game-panel{border-left:1px solid var(--border-2);background:var(--surface);overflow-y:auto}.game-sheetHandle{display:none}.game-panelBody{padding:8px 16px 24px}.game-section{border-bottom:1px solid var(--border-2);padding:12px 0}.game-section:last-child{border-bottom:0}.game-section p{margin:0 0 6px}.game-row{flex-wrap:wrap;gap:8px;display:flex}.game-turn,.game-turnDesktop{font-family:var(--font-heading);align-items:center;gap:8px;font-size:1.35rem;font-weight:700;display:flex}.game-turnDesktop .label{margin-left:auto}.game-pieceTitle{align-items:center;gap:8px;font-weight:600;display:flex}.game-rule{color:var(--text-2);font-size:.95rem}.game-hint{color:var(--muted)}.game-moves{max-height:180px;font-family:var(--font-mono);margin:4px 0 0;padding:0;font-size:.85rem;list-style:none;overflow-y:auto}.game-moves li{grid-template-columns:2.5em 1fr 1fr;gap:4px;padding:2px 0;display:grid}.game-moveNo{color:var(--muted)}.game-captured{align-items:center;gap:4px;min-height:28px;display:flex}.game-capturedTeam{width:4.5em;color:var(--text-2)}.game-banner{border:1px solid var(--border);border-radius:var(--radius);text-align:center;background:#141a33f0;width:min(420px,100% - 32px);padding:16px 20px;position:absolute;top:24px;left:50%;transform:translate(-50%)}.game-banner .game-row{justify-content:center}.game-bannerTitle{font-family:var(--font-heading);margin:0;font-size:2rem;font-weight:700}.game-bannerDetail{color:var(--text-2);margin:4px 0 12px}@media (width<=760px){.game-layout{height:auto;display:block}.game-boardArea{height:calc(100dvh - var(--header-height) - 56px);min-height:320px;padding:8px}.game-panel{z-index:5;border-left:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0;max-height:56px;transition:max-height .25s;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -8px 24px #00000059}.game-panel.game-open{max-height:70dvh;overflow-y:auto}.game-sheetHandle{width:100%;height:56px;color:var(--text);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.game-turnDesktop{display:none}.game-banner{top:12px}}.game-check{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;margin-top:6px;display:flex}.game-check input{width:18px;height:18px;accent-color:var(--accent)}.game-curtain{inset:var(--header-height) 0 0 0;z-index:20;background:var(--bg);place-items:center;padding:16px;display:grid;position:fixed}.game-curtainCard{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;max-width:380px;padding:28px 24px}.game-curtainCard h2{margin:12px 0 6px;font-size:1.8rem}.game-curtainCard p{color:var(--text-2);margin:0 0 18px}.game-players{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.game-players li{color:var(--text-2);grid-template-columns:18px 4.5em 1fr;align-items:center;gap:8px;display:grid}.game-playerName{color:var(--text);font-weight:500}.game-toggle[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--text)}.bot-setup h1{margin-bottom:16px}.bot-picker{border:0;margin:20px 0 0;padding:0}.bot-picker legend{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;padding:0;font-size:1.3rem;font-weight:700}.bot-subhead{margin:12px 0 6px}.bot-strategies{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.bot-strategy{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-2);font:400 .9rem var(--font-body);text-align:left;cursor:pointer;gap:2px;padding:10px 12px;display:grid}.bot-strategy strong{color:var(--text);font-weight:600}.bot-strategy[aria-checked=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.bot-pair{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 24px;display:grid}.bot-change{margin:12px 0 0;font-size:.9rem}.ice-dot{vertical-align:middle;border:2px solid #0000;border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.ice-dotEmpty{border-color:var(--border-2)}.ice-meter{background:var(--border-2);border-radius:999px;height:10px;margin:4px 0 8px;overflow:hidden}.ice-meter span{background:#e8742e;height:100%;transition:width .4s;display:block}.ice-stones,.ice-cracks,.ice-log{margin:0;padding:0;list-style:none}.ice-stones li,.ice-log li{align-items:baseline;gap:8px;padding:3px 0;display:flex}.ice-stones li .game-hint{margin-left:auto}.ice-cracks li{padding:2px 0}.ice-log{max-height:260px;overflow-y:auto}.ice-log .mono{flex:none;min-width:92px}.ice-shove p{margin:6px 0}.online-link{border:1px solid var(--border-2);background:var(--surface);min-width:0;color:var(--text);font:400 .85rem var(--font-mono,monospace);border-radius:8px;flex:1;padding:6px 10px}.ice-warn{color:#ffb020;font-weight:600}.ice-subhead{margin:12px 0 6px}:root{--bg:#0d1124;--surface:#141a33;--surface-2:#1b2342;--border:#2b3558;--border-2:#232b4a;--text:#eeedf8;--text-2:#c9cbe3;--muted:#9396b8;--aurora-green:#3fd0b557;--aurora-violet:#7c6cff47;--accent:#e8742e;--accent-hover:#f08646;--cream:#f1ede2;--ivory-body:#efe8d8;--ivory-ring:#e8742e;--basalt-body:#30343b;--basalt-ring:#4fb3c4;--pin:#f2c14e;--font-wordmark:"Josefin Sans", system-ui, sans-serif;--font-heading:"Barlow Condensed", system-ui, sans-serif;--font-body:"Barlow", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius:10px;--header-height:56px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(110% 55% at 45% -12%, var(--aurora-green), transparent 60%), radial-gradient(80% 45% at 85% -8%, var(--aurora-violet), transparent 62%), var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--font-heading);margin:0 0 .5em;font-weight:700;line-height:1.1}a{color:var(--text)}:focus-visible{outline:3px solid var(--cream);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono)}.wordmark{font-family:var(--font-wordmark);text-transform:uppercase;letter-spacing:.16em;font-weight:600}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);min-height:40px;color:var(--text);font:500 .95rem var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:.4em;padding:.45em 1em;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1b130c;font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-small{min-height:32px;padding:.25em .7em;font-size:.85rem}.segmented{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--border);min-height:34px;color:var(--text-2);font:500 .88rem var(--font-body);cursor:pointer;background:0 0;padding:.2em .8em}.segmented button:last-child{border-right:0}.segmented button[aria-pressed=true]{background:var(--cream);color:#1b130c}.label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
