:root{--type-scale:1.15;--back-bar-h:44px;--font-heading:"Source Serif 4",serif;--font-body:"Source Serif 4",serif;--font-piece:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;--radius-sm:1px;--radius-md:2px;--radius-lg:4px;--region-opacity:0.5;--region-veil:linear-gradient(180deg,rgba(232,224,205,0.68) 0%,rgba(232,224,205,0.7) 50%,rgba(232,224,205,0.74));--screen-opacity:1;--screen-veil:linear-gradient(180deg,rgba(232,224,205,0.06) 0%,rgba(232,224,205,0.12) 46%,rgba(232,224,205,0.2));--paper:#e8e0cd;--ink:#241d13;--ink2:#5a4a33;--ink3:#5c4a31;--hair:rgba(36,29,19,0.18);--edge:rgba(36,29,19,0.55);--panel:rgba(232,224,205,0.90);--cyan:#503c0e;--cyan-h:#86691a;--cyan-a:#513d09;--cyan-on:#f6efdd;--cyan-t:rgba(109,84,16,0.1);--mag:#9a2b12;--wood:#42201a;--wood-grain:rgba(22,8,5,0.55);--wood-ink:#f6efdd;--wood-ink2:#cbb79a;--wood-brass:#c9a227;--brass-hi:#d9b957;--brass-lo:#6d5313;--rivet:#b9982f;--glint:#7fd4e8;--glint-glow:rgba(127,212,232,0.35);--leather:#2e1611;--leather-hi:rgba(246,239,221,0.10);--map-rock:#e6e2df;--map-texture:none;--map-texture-opacity:0.5;--map-stone:#cbc4bf;--map-stone-edge:rgba(32,30,29,0.28);--map-stone-done:#f6f4f3;--map-stone-ink:#201e1d;--map-path:rgba(109,84,16,0.55);--map-path-halo:rgba(109,84,16,0.14);--map-chart-ink:#6d5410;--map-chart-opacity:0.34;--map-path-done:#6d5410;--map-path-core:rgba(0,0,0,0);--scrim:rgba(32,30,29,0.42);--elev:0 -8px 40px rgba(45,43,43,0.28);--color-piece-white:#f7f2e6;--color-piece-white-edge:#2a2320;--color-piece-black:#1d1917;--color-piece-black-edge:#f3ede0;--sc-b:#201e1d;--sc-w:#f8f4f4;--face-b:radial-gradient(circle at 32% 26%,#6f6c6a 0%,#2b2928 44%,#121110 100%);--face-w:radial-gradient(circle at 32% 26%,#ffffff 0%,#f3f0ef 46%,#c7c2c0 100%);--sb:inset 0 0 0 1.5px rgba(248,244,244,0.65),inset 0 -2px 3px rgba(255,255,255,0.1),inset 0 2px 4px rgba(0,0,0,0.55),0 3px 5px rgba(0,0,0,0.4);--sw:inset 0 0 0 3px rgba(20,19,18,0.7),inset 0 -2px 3px rgba(0,0,0,0.13),inset 0 2px 4px rgba(255,255,255,0.92),0 3px 5px rgba(0,0,0,0.32);--board-fill:#9a8339;--board-line:#1b1608;--board-dot:#1b1608;--board-grain:repeating-linear-gradient(101deg,rgba(0,0,0,0.12) 0 2px,rgba(255,255,255,0.05) 2px 5px,rgba(0,0,0,0.06) 5px 9px);--board-shadow:inset 0 0 0 1px rgba(0,0,0,0.35),0 10px 26px rgba(45,43,43,0.26);--hint:#3a2a05;--board-spot-warm:0.05;--board-spot-edge:0.06;--board-spotlight:radial-gradient(76% 60% at 50% 36%,rgb(255 236 198/var(--board-spot-warm)) 0%,rgb(255 230 190/calc(var(--board-spot-warm) * 0.45)) 48%,rgb(38 26 8/var(--board-spot-edge)) 100%);--stone-face-rim:#efe6d2;--stone-face-rim-blur:1px;--hint-dot:9px;--hint-pulse-duration:2s;--last-move-pulse-duration:900ms;--last-move-pulse-count:3;--btn-bevel:inset 0 1px 0 rgba(255,255,255,0.36),inset 0 -1px 0 rgba(0,0,0,0.14),0 1px 0 rgba(32,30,29,0.22),0 2px 4px rgba(32,30,29,0.16);--btn-bevel-active:inset 0 2px 4px rgba(0,0,0,0.26),inset 0 1px 0 rgba(0,0,0,0.1);--flip-duration:300ms;--flip-chain-delay:25ms;--flip-easing:cubic-bezier(0.34,1.56,0.64,1);--gutter:12px;--safe-bottom-min:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--board-cols:9;--board-rows:9;--board-gap:1px;--board-chrome:calc((var(--board-cols) + 1) * var(--board-gap));--hud-h:clamp(56px,9dvh,88px);--player-bar-h:clamp(42px,6.2dvh,58px);--player-avatar:min(calc(var(--player-bar-h) - 8px),60px);--controls-h:clamp(64px,11dvh,104px);--piece-stand-h:54px;--piece-stand-opp-h:38px}html[lang=ja]{--font-heading:"Source Serif 4","Hiragino Mincho ProN","Yu Mincho",serif;--font-body:"Source Serif 4","Hiragino Mincho ProN","Yu Mincho",serif}html[lang=zh-Hans]{--font-heading:"Source Serif 4","Songti SC","Noto Serif CJK SC","Noto Serif SC",serif;--font-body:"Source Serif 4","Songti SC","Noto Serif CJK SC","Noto Serif SC",serif}html[lang=zh-Hant]{--font-heading:"Source Serif 4","Songti TC","Noto Serif CJK TC","Noto Serif TC",serif;--font-body:"Source Serif 4","Songti TC","Noto Serif CJK TC","Noto Serif TC",serif}html[lang=ko]{--font-heading:"Source Serif 4","AppleMyungjo","Noto Serif CJK KR","Noto Serif KR",serif;--font-body:"Source Serif 4","AppleMyungjo","Noto Serif CJK KR","Noto Serif KR",serif}html[lang=th]{--font-heading:"Source Serif 4","Thonburi","Noto Sans Thai",sans-serif;--font-body:"Source Serif 4","Thonburi","Noto Sans Thai",sans-serif}@media (min-height:800px){:root{--player-bar-h:clamp(58px,8.4dvh,70px)}}@media (max-width:389px){:root{--gutter:6px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--region-opacity:0.85;--region-veil:linear-gradient(180deg,rgba(22,19,15,0.78) 0%,rgba(22,19,15,0.8) 50%,rgba(22,19,15,0.84));--screen-veil:linear-gradient(180deg,rgba(22,19,15,0.06) 0%,rgba(22,19,15,0.12) 46%,rgba(22,19,15,0.2));--paper:#16130f;--ink:#e8dcc4;--ink2:#bfae8c;--ink3:#b6a588;--hair:rgba(232,220,196,0.16);--edge:rgba(232,220,196,0.48);--panel:rgba(22,19,15,0.88);--cyan:#c9a227;--cyan-h:#e0bd4a;--cyan-a:#a5831a;--cyan-on:#16130f;--cyan-t:rgba(201,162,39,0.14);--mag:#e0674a;--map-rock:#141314;--map-texture:none;--map-texture-opacity:0.85;--map-stone:#3a3735;--map-stone-edge:rgba(243,242,242,0.22);--map-stone-done:#6f6a66;--map-stone-ink:#f3f2f2;--map-path:rgba(201,162,39,0.5);--map-path-halo:rgba(201,162,39,0.3);--map-chart-ink:#c9a227;--map-chart-opacity:0.45;--map-path-done:#e0bd4a;--map-path-core:rgba(250,240,205,0.6);--scrim:rgba(0,0,0,0.62);--elev:0 -8px 40px rgba(0,0,0,0.6);--color-piece-white:#f2ecdf;--color-piece-white-edge:#1b1715;--color-piece-black:#161311;--color-piece-black-edge:#e9e2d2;--sc-b:#141312;--face-b:radial-gradient(circle at 32% 26%,#5d5a58 0%,#2b2928 44%,#121110 100%);--board-fill:#9c8539;--board-line:#171205;--board-dot:#171205;--board-shadow:inset 0 0 0 1px rgba(0,0,0,0.5),0 10px 26px rgba(0,0,0,0.45);--btn-bevel:inset 0 1px 0 rgba(255,255,255,0.16),inset 0 -1px 0 rgba(0,0,0,0.4),0 1px 0 rgba(0,0,0,0.55),0 2px 6px rgba(0,0,0,0.5);--btn-bevel-active:inset 0 2px 5px rgba(0,0,0,0.6),inset 0 1px 0 rgba(0,0,0,0.3)}}:root[data-theme=dark]{--region-opacity:0.85;--region-veil:linear-gradient(180deg,rgba(22,19,15,0.78) 0%,rgba(22,19,15,0.8) 50%,rgba(22,19,15,0.84));--screen-veil:linear-gradient(180deg,rgba(22,19,15,0.06) 0%,rgba(22,19,15,0.12) 46%,rgba(22,19,15,0.2));--paper:#16130f;--ink:#e8dcc4;--ink2:#bfae8c;--ink3:#b6a588;--hair:rgba(232,220,196,0.16);--edge:rgba(232,220,196,0.48);--panel:rgba(22,19,15,0.88);--cyan:#c9a227;--cyan-h:#e0bd4a;--cyan-a:#a5831a;--cyan-on:#16130f;--cyan-t:rgba(201,162,39,0.14);--mag:#e0674a;--map-rock:#141314;--map-texture:none;--map-texture-opacity:0.85;--map-stone:#3a3735;--map-stone-edge:rgba(243,242,242,0.22);--map-stone-done:#6f6a66;--map-stone-ink:#f3f2f2;--map-path:rgba(201,162,39,0.5);--map-path-halo:rgba(201,162,39,0.3);--map-chart-ink:#c9a227;--map-chart-opacity:0.45;--map-path-done:#e0bd4a;--map-path-core:rgba(250,240,205,0.6);--scrim:rgba(0,0,0,0.62);--elev:0 -8px 40px rgba(0,0,0,0.6);--color-piece-white:#f2ecdf;--color-piece-white-edge:#1b1715;--color-piece-black:#161311;--color-piece-black-edge:#e9e2d2;--sc-b:#141312;--face-b:radial-gradient(circle at 32% 26%,#5d5a58 0%,#2b2928 44%,#121110 100%);--board-fill:#9c8539;--board-line:#171205;--board-dot:#171205;--board-shadow:inset 0 0 0 1px rgba(0,0,0,0.5),0 10px 26px rgba(0,0,0,0.45);--btn-bevel:inset 0 1px 0 rgba(255,255,255,0.16),inset 0 -1px 0 rgba(0,0,0,0.4),0 1px 0 rgba(0,0,0,0.55),0 2px 6px rgba(0,0,0,0.5);--btn-bevel-active:inset 0 2px 5px rgba(0,0,0,0.6),inset 0 1px 0 rgba(0,0,0,0.3)}[data-board-skin=wood-classic]{--board-skin:none;--board-fill:#a68d3d;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05}[data-board-skin=paper]{--board-fill:#eae9e9;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-grain:none;--board-shadow:inset 0 0 0 1px var(--hair);--board-spot-warm:0.1;--board-spot-edge:0.035}:root[data-theme=dark] [data-board-skin=paper]{--board-fill:#2d2b2b;--board-line:#e8e0cd;--board-dot:#e8e0cd;--hint:#faf0cd;--last-move-ring:#f2b9a5;--board-spot-warm:0.03;--board-spot-edge:0.02}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) [data-board-skin=paper]{--board-fill:#2d2b2b;--board-line:#e8e0cd;--board-dot:#e8e0cd;--hint:#faf0cd;--last-move-ring:#f2b9a5;--board-spot-warm:0.03;--board-spot-edge:0.02}}[data-board-skin=minimal]{--board-fill:var(--paper);--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-grain:none;--board-shadow:none;--board-spotlight:none}:root[data-theme=dark] [data-board-skin=minimal]{--board-line:#e8e0cd;--board-dot:#e8e0cd;--hint:#faf0cd;--last-move-ring:#f2b9a5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) [data-board-skin=minimal]{--board-line:#e8e0cd;--board-dot:#e8e0cd;--hint:#faf0cd;--last-move-ring:#f2b9a5}}[data-board-skin=owari-1]{--board-fill:#e5bc42;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/owari-1.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=kai-1]{--board-fill:#c0a777;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/kai-1.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=echigo-1]{--board-fill:#d5d1bf;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/echigo-1.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=setouchi-1]{--board-fill:#e2a752;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/setouchi-1.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=kyoto-1]{--board-fill:#e3a01c;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/kyoto-1.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=hall-plaster]{--board-fill:#fdd96c;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/hall-plaster.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=indigo]{--board-fill:#81a4bb;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/indigo.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}[data-board-skin=gold]{--board-fill:#f27745;--board-line:#171205;--board-dot:#171205;--hint:#3a2a05;--last-move-ring:#3a0f05;--board-skin:url(/board-skins/gold.webp);--board-grain:none;--board-shadow:inset 0 0 0 2px #171205,0 10px 26px rgb(0 0 0/0.45);--board-spot-warm:0.1;--board-spot-edge:0.035}.disc-face-character[data-face-color=black]{filter:drop-shadow(0 0 var(--stone-face-rim-blur) var(--stone-face-rim))}:root[data-stone=print]{--face-b:none;--face-w:none;--sb:inset 0 0 0 1.5px rgba(248,244,244,0.72);--sw:inset 0 0 0 3px #201e1d}:root[data-reduce-motion=true]{--flip-duration:0ms;--flip-chain-delay:0ms}:root[data-reduce-motion=true] *,:root[data-reduce-motion=true] :after,:root[data-reduce-motion=true] :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*,:after,:before{box-sizing:border-box}[role=button],[role=option],[role=switch],[role=tab],a,button,input[type=button],input[type=checkbox],input[type=radio],input[type=range],input[type=submit],label,select,summary{touch-action:manipulation}body,html{margin:0;padding:0;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:calc(16.5px * var(--type-scale));line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}@supports not (height:100dvh){body,html{height:100vh;height:-webkit-fill-available}}body{position:fixed;inset:0}button{font-family:inherit;color:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.app-shell:after,.app-shell:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0}.app-shell:before{background-image:var(--region-image,none);background-size:cover;background-position:top;opacity:var(--region-opacity,0);transition:opacity .32s ease}.app-shell:after{background:var(--region-veil,none)}@media (forced-colors:active),(prefers-contrast:more){.app-shell[data-hydrated]:after,.app-shell[data-hydrated]:before{display:none}}.app-shell>*{position:relative;z-index:1}.app-shell[data-region=owari]{--region-image:url(/assets/regions/owari.webp)}.app-shell[data-region=kai]{--region-image:url(/assets/regions/kai.webp)}.app-shell[data-region=echigo]{--region-image:url(/assets/regions/echigo.webp)}.app-shell[data-region=setouchi]{--region-image:url(/assets/regions/setouchi.webp)}.app-shell[data-region=kyoto]{--region-image:url(/assets/regions/kyoto.webp)}.app-shell[data-screen=stats]{--art-light:url(/assets/screens/light/stats.webp);--art-dark:url(/assets/screens/dark/stats.webp)}.app-shell[data-screen=achievements]{--art-light:url(/assets/screens/light/achievements.webp);--art-dark:url(/assets/screens/dark/achievements.webp)}.app-shell[data-screen=leaderboard]{--art-light:url(/assets/screens/light/leaderboard.webp);--art-dark:url(/assets/screens/dark/leaderboard.webp)}.app-shell[data-screen=profile]{--art-light:url(/assets/screens/light/profile.webp);--art-dark:url(/assets/screens/dark/profile.webp)}.app-shell[data-screen=settings]{--art-light:url(/assets/screens/light/settings.webp);--art-dark:url(/assets/screens/dark/settings.webp)}.app-shell[data-screen=shop]{--art-light:url(/assets/screens/light/shop.webp);--art-dark:url(/assets/screens/dark/shop.webp)}.app-shell[data-screen=review]{--art-light:url(/assets/screens/light/review.webp);--art-dark:url(/assets/screens/dark/review.webp)}:root .app-shell{--art:var(--art-light)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .app-shell{--art:var(--art-dark)}}:root[data-theme=dark] .app-shell{--art:var(--art-dark)}.app-shell[data-screen=achievements],.app-shell[data-screen=leaderboard],.app-shell[data-screen=profile],.app-shell[data-screen=review],.app-shell[data-screen=settings],.app-shell[data-screen=shop],.app-shell[data-screen=stats]{--region-image:var(--art);--region-opacity:var(--screen-opacity);--region-veil:var(--screen-veil)}.app-shell{height:100dvh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);position:relative;overflow:hidden;padding:var(--safe-top) max(0px,var(--safe-right)) var(--safe-bottom) max(0px,var(--safe-left))}.app-shell:not([data-hydrated]){pointer-events:none}.app-shell:not([data-hydrated]):after{content:"";position:absolute;inset:0;z-index:9998;background:var(--paper);opacity:.65}.screen{flex:1 1;display:flex;flex-direction:column;min-height:0;padding:20px var(--gutter) var(--safe-bottom-min)}.screen--overflow-safe{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.screen-back-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;flex:none;min-height:var(--back-bar-h);margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter);background:var(--paper);pointer-events:none}.screen-back-bar>.btn-quiet{pointer-events:auto}.screen-back-bar:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:160px;background:var(--paper)}.scrollable{flex:1 1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;scroll-padding-top:var(--back-bar-h)}.player-id{display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0;overflow:hidden}.player-id__name,.player-id__tag{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-id__name{line-height:1.25}.player-id__tag{line-height:1.2}@media (max-height:719px){.player-id{flex-direction:row;align-items:baseline;gap:8px}.player-id__tag{flex:none}.player-id__name{flex:0 1 auto}}.kicker{font-size:calc(11.5px * var(--type-scale));letter-spacing:.34em;text-transform:uppercase;color:var(--ink2)}.rule-heavy{height:5px;background:var(--ink);margin:12px 0 3px}.rule-thin{height:1px;background:var(--ink)}.hair{height:1px;background:var(--hair)}.display{font-family:var(--font-heading);font-weight:600;letter-spacing:.02em;text-wrap:balance}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn{min-height:48px;flex:none;height:auto;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;line-height:1.35;border-radius:var(--radius-md);cursor:pointer;font-size:calc(16px * var(--type-scale));transition:background .12s ease,color .12s ease,border-color .12s ease;box-shadow:var(--btn-bevel)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--btn-bevel-active)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--cyan);color:var(--cyan-on);border:0;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em}.btn-primary:hover:not(:disabled){background:var(--cyan-h)}.btn-primary:active:not(:disabled){background:var(--cyan-a)}.btn-outline{background:transparent;border:1px solid var(--edge);color:var(--ink2)}.btn-outline:hover:not(:disabled){color:var(--cyan);border-color:var(--cyan)}.btn-danger-outline{background:transparent;border:1px solid var(--edge);color:var(--ink2)}.btn-danger-outline:hover:not(:disabled){color:var(--mag);border-color:var(--mag)}.btn-quiet{background:transparent;border:0;color:var(--ink2);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;padding:0 var(--gutter);margin-left:calc(var(--gutter) * -1);align-self:flex-start;font-size:calc(15px * var(--type-scale));text-align:left}.btn-quiet:hover{color:var(--cyan)}.row-btn{display:flex;align-items:baseline;justify-content:space-between;width:100%;min-height:52px;padding:14px 2px;background:transparent;border:0;border-top:1px solid var(--edge);color:var(--ink);font-size:calc(16.5px * var(--type-scale));cursor:pointer;text-align:left}.row-btn:hover{color:var(--cyan)}.board-wrap{position:relative;width:var(--board-size);height:var(--board-size);flex:none;--board-cell:calc((var(--board-size) - var(--board-chrome)) / var(--board-cols))}@supports (width:round(down,3px,2px)){.board-wrap{--board-cell:max(8px,round(down,calc((var(--board-size) - var(--board-chrome)) / var(--board-cols)),1px));width:calc(var(--board-cell) * var(--board-cols) + var(--board-chrome));height:calc(var(--board-cell) * var(--board-cols) + var(--board-chrome))}}.board{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--board-cols),1fr);grid-template-rows:repeat(var(--board-rows),1fr);grid-gap:var(--board-gap);gap:var(--board-gap);padding:var(--board-gap);background:var(--board-line);border-radius:var(--radius-md);box-shadow:var(--board-shadow)}.board-grain{background-image:var(--board-grain);mix-blend-mode:multiply;opacity:.85}.board-grain,.board-spotlight{position:absolute;inset:0;border-radius:var(--radius-md);pointer-events:none}.board-spotlight{background-image:var(--board-spotlight)}.board-dot{position:absolute;width:max(3px,calc(var(--board-cell) * .1));height:max(3px,calc(var(--board-cell) * .1));transform:translate(-50%,-50%);border-radius:50%;background:var(--board-dot);pointer-events:none}.cell{background-color:var(--board-fill);background-image:var(--board-skin,none);background-repeat:no-repeat;background-size:calc(var(--board-cols) * 100%) calc(var(--board-rows) * 100%);background-position:var(--cell-skin-x,0) var(--cell-skin-y,0);border:0;margin:0;padding:0;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;contain:layout paint style;cursor:default}.cell[data-legal-move=true],.cell[data-piece]:not([data-piece=none]){cursor:pointer}.cell[data-selected=true]{box-shadow:inset 0 0 0 3px var(--cyan)}.cell[data-check=true]{box-shadow:inset 0 0 0 3px var(--mag),inset 0 0 12px var(--mag)}.piece{display:flex;align-items:center;justify-content:center;width:92%;height:92%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.piece-image{display:block;width:100%;height:100%;object-fit:contain}.piece-glyph{display:block;line-height:1;font-size:var(--piece-glyph-size,calc(var(--board-cell, 44px) * .8));font-family:var(--font-piece)}.piece[data-piece-side=sente] .piece-glyph{color:var(--color-piece-white);-webkit-text-stroke:1px var(--color-piece-white-edge);text-shadow:0 1px 1px var(--color-piece-white-edge)}.piece[data-piece-side=gote] .piece-glyph{color:var(--color-piece-black);-webkit-text-stroke:1px var(--color-piece-black-edge);text-shadow:0 1px 1px var(--color-piece-black-edge)}.piece[data-piece-side=gote] .piece-glyph,.piece[data-piece-side=gote] .piece-image{transform:rotate(180deg)}.board-coords{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--board-cols),1fr);grid-template-rows:repeat(var(--board-rows),1fr);grid-gap:var(--board-gap);gap:var(--board-gap);padding:var(--board-gap);pointer-events:none}.board-coord{position:relative;font-family:var(--font-heading);font-size:calc(9px * var(--type-scale, 1));line-height:1;font-weight:600;color:var(--color-piece-black);opacity:.8}.board-coord--file{align-self:end;justify-self:end;padding:0 2px 2px 0}.board-coord--rank{align-self:start;justify-self:start;padding:2px 0 0 2px}.cell[data-legal-move=true][data-show-hint=true]:before{content:"";position:absolute;left:50%;top:50%;width:var(--hint-dot);height:var(--hint-dot);margin:calc(var(--hint-dot) / -2) 0 0 calc(var(--hint-dot) / -2);border-radius:50%;background:var(--hint);pointer-events:none;animation:hintbreathe var(--hint-pulse-duration) ease-in-out infinite}.cell[data-legal-move=true][data-show-hint=true][data-legal-kind=capture]:before{width:84%;height:84%;margin:-42% 0 0 -42%;background:transparent;box-shadow:inset 0 0 0 3px var(--hint)}.cell[data-last-move=from],.cell[data-last-move=to]{box-shadow:inset 0 0 0 2px var(--last-move-ring,var(--mag))}.cell[data-last-move=from]:after,.cell[data-last-move=to]:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--last-move-ring,var(--mag));pointer-events:none;opacity:0;animation:lastmovering var(--last-move-pulse-duration) ease-out var(--last-move-pulse-count) both}.cell[data-shake=true]{animation:shakex .16s}.disc{display:block;width:82%;height:82%;transition:transform var(--flip-duration) var(--flip-easing);transform-style:preserve-3d}.disc-face{display:block;width:100%;height:100%;border-radius:50%}.disc[data-color=black]{transform:perspective(420px) rotateY(0deg)}.disc[data-color=white]{transform:perspective(420px) rotateY(180deg)}.disc[data-color=black] .disc-face{background-color:var(--sc-b);background-image:var(--face-b);box-shadow:var(--sb)}.disc[data-color=white] .disc-face{background-color:var(--sc-w);background-image:var(--face-w);box-shadow:var(--sw)}.disc-drop{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform:translate(var(--disc-jx,0),var(--disc-jy,0));animation:drop .24s var(--flip-easing)}.scrim{position:fixed;inset:0;background:var(--scrim);display:flex;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));z-index:10}.sheet{width:100%;background:var(--paper);border-radius:var(--radius-md);box-shadow:var(--elev);padding:24px 20px 20px;max-height:calc(100dvh - 32px - var(--safe-top) - var(--safe-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.toast{position:absolute;left:0;right:0;bottom:calc(112px + env(safe-area-inset-bottom, 0px));display:flex;justify-content:center;pointer-events:none;z-index:20}.toast>div{background:var(--ink);color:var(--paper);font-size:calc(15px * var(--type-scale));padding:11px 18px;border-radius:var(--radius-md);box-shadow:var(--elev);max-width:calc(100% - 32px)}@keyframes drop{0%{transform:translate(var(--disc-jx,0),var(--disc-jy,0)) scale(.42);opacity:0}to{transform:translate(var(--disc-jx,0),var(--disc-jy,0)) scale(1);opacity:1}}@keyframes hintbreathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.72)}}@keyframes lastmovering{0%{opacity:0;transform:scale(1.12)}35%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes shakex{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@keyframes inkpulse{0%,to{transform:scale(1)}50%{transform:scale(.92)}}.pulse{animation:inkpulse 1.1s infinite}.pulse-block{animation:blockpulse 1.1s infinite}@keyframes blockpulse{0%,to{opacity:1}50%{opacity:.35}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.rotate-notice{display:none}@media (orientation:landscape) and (max-height:500px){.rotate-notice{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--paper);color:var(--ink);font-family:var(--font-heading);font-size:calc(18px * var(--type-scale))}}.home-stone{width:34px;height:34px;border-radius:50%;flex:none}.home-stone[data-color=black]{background-color:var(--sc-b);background-image:var(--face-b);box-shadow:var(--sb)}.home-stone[data-color=white]{background-color:var(--sc-w);background-image:var(--face-w);box-shadow:var(--sw)}.splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#01040e;animation:splash-autohide .3s ease 5s forwards;overflow:hidden}.splash__scene{position:absolute;inset:0;background:url(/textures/splash/hero.webp) center calc(var(--splash-focus-y, .42) * 100%) /cover no-repeat}.splash__scene:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgb(1 4 14/0) calc(var(--splash-ground-from, .64) * 100%),#01040e calc(var(--splash-ground-to, .9) * 100%))}.splash__text{position:absolute;left:50%;top:calc(var(--splash-text-center-y, .8) * 100%);transform:translate(-50%,-50%);max-width:calc(var(--splash-max-text-width, .58) * 100vmin);display:flex;flex-direction:column;align-items:center;gap:calc(var(--splash-gap, .03) * 100vmin);color:#f3f2f2;text-align:center;white-space:nowrap;text-shadow:0 .06em .5em rgb(0 0 0/.8)}.splash__tagline,.splash__title{animation:splash-mark-in .6s cubic-bezier(.22,1,.36,1) both}.splash__title{font-size:calc(var(--splash-title-ratio, .085) * 100vmin);font-weight:700;line-height:1.1}.splash__tagline{font-size:calc(var(--splash-tagline-ratio, .04) * 100vmin);line-height:1.2}.splash--out{animation:splash-autohide .26s ease forwards}@keyframes splash-mark-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes splash-autohide{to{opacity:0;visibility:hidden;pointer-events:none}}@media (prefers-reduced-motion:reduce){.splash__tagline,.splash__title{animation:none}}body:has([data-splash=off]) #splash{display:none}.level-map{position:relative;flex:none;width:100%;max-width:420px;margin:8px auto 0;--map-node:clamp(46px,13.5vw,58px);--map-row:calc(var(--map-node) * 1.9 + 12px * var(--type-scale, 1));--map-caption-nudge:calc((3px + var(--map-num-px) * var(--type-scale, 1)) / 2);height:calc(var(--map-row) * var(--map-rows));border-radius:var(--radius-lg);background-color:var(--map-rock);isolation:isolate}.level-map__chart{position:absolute;left:0;right:0;z-index:0;pointer-events:none;background-color:var(--map-chart-ink);-webkit-mask-image:var(--map-chart-src),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:var(--map-chart-src),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-size:100% 100%,100% 100%,100% 100%;mask-size:100% 100%,100% 100%,100% 100%;-webkit-mask-repeat:no-repeat,no-repeat,no-repeat;mask-repeat:no-repeat,no-repeat,no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect;opacity:var(--map-chart-opacity)}.level-map:before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:var(--map-texture);background-size:cover;background-position:50%;opacity:var(--map-texture-opacity);z-index:0}.level-map__svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;pointer-events:none}.level-map__path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.level-map__path--halo{stroke:var(--map-path-halo);stroke-width:18px;filter:blur(7px)}.level-map__path--plan{stroke:var(--map-path);stroke-width:2.6px;stroke-dasharray:.9 1.1}.level-map__path--core{stroke:var(--map-path-core);stroke-width:1.3px}.level-map__path--done{stroke:var(--map-path-done);stroke-width:4px}.level-map__port{transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;border:1.5px solid var(--map-path-done);background:radial-gradient(circle,var(--map-path-done) 0 2.5px,transparent 2.6px);box-shadow:0 0 0 3px var(--map-path-halo)}.level-map__chapter,.level-map__port{position:absolute;z-index:1;pointer-events:none}.level-map__chapter{left:0;right:0;transform:translateY(-50%);display:flex;align-items:center;padding:0 8px}.level-map__chapter-name{max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--map-path);border-radius:var(--radius-sm);background:var(--map-rock);color:var(--map-path-done);font-family:var(--font-heading);font-size:calc(10.5px * var(--type-scale, 1));line-height:1.2;letter-spacing:.16em;padding:1px calc(9px - .16em) 1px 9px}.level-detail__seal{flex:none;display:block;width:44px;height:44px;overflow:hidden;border:1px solid var(--map-path-done);border-radius:var(--radius-sm);background:var(--map-rock)}.level-detail__seal img{display:block;width:100%;height:100%;object-fit:cover}.level-node{position:absolute;transform:translate(-50%,-50%);width:var(--map-node);height:var(--map-node);padding:0;border:0;background:transparent;cursor:pointer;z-index:2;display:grid;place-items:center;border-radius:50%}.level-node__stone{background:radial-gradient(circle at 34% 28%,var(--map-stone) 0,var(--map-stone) 45%,rgba(0,0,0,.35) 100%);box-shadow:inset 0 0 0 1px var(--map-stone-edge),0 2px 6px rgba(0,0,0,.4)}.level-node__icon,.level-node__stone{position:absolute;inset:8%;border-radius:50%}.level-node__icon{background-image:var(--level-icon);background-repeat:no-repeat;background-size:contain;background-position:bottom;pointer-events:none}.level-node[data-locked="1"] .level-node__icon{opacity:.42;filter:grayscale(.7)}.level-node__num{position:absolute;top:100%;left:50%;transform:translateX(-50%);z-index:1;margin-top:1px;color:var(--map-stone-ink);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.55);padding:1px 4px;border-radius:999px;background:var(--map-stone);box-shadow:0 0 0 1px var(--map-stone-edge)}.level-node[data-state=beaten] .level-node__stone{background:radial-gradient(circle at 34% 28%,var(--map-stone-done) 0,var(--map-stone-done) 48%,rgba(0,0,0,.3) 100%);box-shadow:inset 0 0 0 1px var(--map-stone-done),0 0 0 2px var(--map-stone-done),0 2px 6px rgba(0,0,0,.4)}.level-node[data-state=beaten] .level-node__num{color:var(--map-stone-ink)}.level-node[data-state=selected]{z-index:3}.level-node[data-state=selected] .level-node__stone{background:radial-gradient(circle at 34% 28%,var(--cyan-h) 0,var(--cyan) 55%,var(--cyan-a) 100%);box-shadow:inset 0 0 0 1px var(--cyan-h),0 0 0 3px var(--cyan-t),0 0 18px 4px var(--map-path-halo)}.level-node[data-state=selected] .level-node__num{color:var(--cyan-on);font-weight:700;text-shadow:none;background:var(--cyan)}.level-node[data-state=selected]:after{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px solid var(--map-path-done);opacity:.55;pointer-events:none;animation:level-node-pulse 2.4s ease-out infinite}@keyframes level-node-pulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.45);opacity:0}to{transform:scale(1.45);opacity:0}}:root[data-reduce-motion=true] .level-node[data-state=selected]:after{animation:none}.level-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 2px 0}.level-legend__item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.level-legend__swatch{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px var(--map-stone-edge)}.level-legend__swatch[data-state=ahead]{background:var(--map-stone)}.level-legend__swatch[data-state=beaten]{background:var(--map-stone-done)}.level-legend__swatch[data-state=selected]{background:var(--cyan)}.level-node[data-next="1"] .level-node__stone{animation:level-node-beacon 2.4s ease-in-out infinite}@keyframes level-node-beacon{0%,to{box-shadow:inset 0 0 0 1px var(--map-stone-edge),0 2px 6px rgba(0,0,0,.4),0 0 0 0 var(--map-path-halo)}50%{box-shadow:inset 0 0 0 1px var(--cyan),0 2px 6px rgba(0,0,0,.4),0 0 0 6px var(--map-path-halo)}}.level-node[data-next="1"] .level-node__icon{animation:level-node-breathe 3.6s ease-in-out infinite;will-change:transform;transform-origin:50% 88%}@keyframes level-node-breathe{0%,to{transform:translateZ(0) rotate(0deg)}28%{transform:translate3d(0,-1.8%,0) rotate(.7deg)}50%{transform:translate3d(0,-1.4%,0) rotate(1.2deg)}78%{transform:translate3d(0,-.6%,0) rotate(.4deg)}}.level-node[data-next="1"] .level-node__icon:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;-webkit-mask-image:var(--level-icon);mask-image:var(--level-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center bottom;mask-position:center bottom;background-image:linear-gradient(105deg,#000 38%,#2a2a2a 47%,#3c3c3c 50%,#2a2a2a 53%,#000 62%);background-size:300% 100%;background-repeat:no-repeat;mix-blend-mode:color-dodge;animation:level-node-glint 3.6s ease-in-out infinite}@keyframes level-node-glint{0%{background-position:150% 0}55%,to{background-position:-50% 0}}:root[data-reduce-motion=true] .level-node[data-next="1"] .level-node__icon{animation:none;transform:none;will-change:auto}:root[data-reduce-motion=true] .level-node[data-next="1"] .level-node__icon:after{animation:none;display:none}.piece-stand{display:flex;flex-wrap:nowrap;overflow-x:auto;align-items:center;align-content:flex-start;gap:6px;min-width:0;min-height:var(--piece-stand-h);box-sizing:border-box;padding:4px;border:1px solid var(--hair);border-radius:var(--radius-md);background:var(--panel)}.piece-stand__item{min-width:44px;min-height:44px;flex:0 1 auto;display:inline-flex;align-items:baseline;justify-content:center;gap:2px;padding:2px 4px;border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-family:var(--font-heading);line-height:1.2}.piece-stand__item[data-selected=true]{box-shadow:inset 0 0 0 3px var(--cyan);border-color:var(--cyan)}button.piece-stand__item{cursor:pointer}button.piece-stand__item:hover{border-color:var(--cyan)}.piece-stand__glyph{font-size:calc(20px * var(--type-scale));font-weight:600;font-family:var(--font-piece)}.piece-stand__glyph img{display:block;width:calc(20px * var(--type-scale));height:calc(20px * var(--type-scale));object-fit:contain}.piece-stand__count{font-size:calc(14px * var(--type-scale));color:var(--ink2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.piece-stand__empty{display:block;width:44px;height:44px}.piece-stand[data-interactive=false]{min-height:var(--piece-stand-opp-h)}.piece-stand[data-interactive=false] .piece-stand__item{min-width:28px;min-height:28px}.piece-stand[data-interactive=false] .piece-stand__glyph{font-size:calc(12px * var(--type-scale))}.piece-stand[data-interactive=false] .piece-stand__glyph img{width:calc(12px * var(--type-scale));height:calc(12px * var(--type-scale))}.piece-stand[data-interactive=false] .piece-stand__count{font-size:calc(9px * var(--type-scale))}.piece-stand[data-interactive=false] .piece-stand__empty{width:28px;height:28px}.promotion-choice__rows{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px}