:root{--bg: #F5F2FA;--surface: #FFFFFF;--surface-raised: #F0ECF7;--line: #E4DEEF;--line-strong: #CFC6E0;--text: #2A2340;--text-dim: #6C6584;--text-faint: #A29CB5;--amber: #FFC24D;--amber-deep: #F2A12E;--accent-text: #8A5300;--warn: #C2551C;--warn-tint: #FFF3EA;--danger: #C4453A;--danger-text: #A8322A;--link: #1B5DA6;--focus: #2F7FD6;--ring-track: #E4DEEF;--shadow: 0 10px 28px -18px rgba(42, 35, 64, .45);--review-best: #2E9A5A;--review-good: #D9901E;--review-poor: #C94A3C;--score-stones: #8C86A0;--font-display: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}body.obs{background:transparent}h1,h2,h3{margin:0 0 .5rem;line-height:1.3}h1{font-size:1.5rem;font-family:var(--font-display)}h2{font-size:1.05rem;color:var(--text-dim);font-weight:700}h3{font-size:.95rem;color:var(--text-dim)}button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:.5rem 1.1rem;min-height:40px;cursor:pointer}button:hover:not(:disabled){background:var(--surface-raised)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button.primary{background:linear-gradient(180deg,#FFCB5E,var(--amber-deep));border-color:transparent;color:#3b2300;font-weight:700;font-family:var(--font-display);box-shadow:0 6px 16px -6px #f2a12eb3}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#ffd574,#f5ab3f)}button.large{padding:.8rem 2rem;font-size:1.05rem}button.danger{border-color:var(--danger);color:var(--danger-text);background:transparent}button.quiet{border-color:transparent;background:transparent;color:var(--text-dim)}button.quiet:hover:not(:disabled){background:var(--surface-raised);color:var(--text)}button.small{min-height:32px;padding:.2rem .8rem;font-size:.85rem}button.link{background:none;border:none;padding:.2rem .4rem;min-height:0;border-radius:4px;color:var(--link);font-size:.8rem;text-decoration:underline;text-underline-offset:3px}button.link:hover:not(:disabled){background:none}button.link.danger{color:var(--danger-text)}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:.5rem .7rem;min-height:40px}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.screen{max-width:1200px;margin:0 auto;padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem;margin-bottom:1rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}.field>span{font-size:.85rem;color:var(--text-dim)}.check{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;font-size:.9rem}.check input{min-height:0;width:18px;height:18px;accent-color:var(--focus)}.hint{color:var(--text-dim);font-size:.85rem;margin:.4rem 0}.warn{color:var(--warn);font-size:.85rem}.error{color:var(--danger-text)}.banner{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--amber-deep);padding:.6rem .9rem;border-radius:10px;font-size:.9rem;margin:0 0 .8rem}.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);background:var(--text);color:var(--surface);border-radius:12px;padding:.7rem 1.2rem;max-width:min(90vw,32rem);cursor:pointer;z-index:50;box-shadow:var(--shadow)}.notice-screen{text-align:center;padding-top:25vh}.notice-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.2rem}.top{max-width:30rem}.brand{text-align:center;margin:2.5rem 0 1.5rem}.brand h1{font-size:2.2rem;letter-spacing:.06em;display:inline-flex;align-items:center;gap:.6rem}.brand h1:before,.spark{content:"";width:.45em;height:.45em;border-radius:50%;background:radial-gradient(circle,#FFE7A8 0 30%,var(--amber-deep) 70%);box-shadow:0 0 12px 3px #ffc24d99;flex:none}.brand p{color:var(--text-dim);margin:0}.top .card button{width:100%}.board{width:100%;height:auto;display:block;border-radius:14px;box-shadow:0 16px 34px -18px #14281cb3}.board .light{transform-box:fill-box;transform-origin:center;transition:transform .2s ease,fill .2s ease,opacity .2s ease}.board .stone-drop,.board .stone-out,.board .stone-in{transform-box:fill-box;transform-origin:center}.board .stone-drop{animation:stone-drop .22s ease-out both}.board .stone-out{animation-name:stone-out;animation-timing-function:ease-in;animation-fill-mode:both}.board .stone-in{animation-name:stone-in;animation-timing-function:ease-out;animation-fill-mode:both}@keyframes stone-drop{0%{transform:scale(1.25);opacity:0}to{transform:scale(1);opacity:1}}@keyframes stone-out{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes stone-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.board .legal-beckon{transform-box:fill-box;transform-origin:center;animation:beckon 1.4s ease-in-out infinite}@keyframes beckon{0%,to{fill:#061e1273;transform:scale(1)}50%{fill:#fff4d6bf;transform:scale(1.35)}}.board .light-pulse{transform-box:fill-box;transform-origin:center;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.85;transform:scale(.94)}50%{opacity:.25;transform:scale(1.06)}}.stone{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-1px;flex:none}.stone.black{background:#12161c;border:1px solid rgba(255,255,255,.28)}.stone.white{background:#f2f4f7;border:1px solid #C9CDD6}.tag{font-size:.7rem;border:1px solid var(--line-strong);border-radius:999px;padding:0 .45rem;margin-left:.35rem;color:var(--text-dim)}.tag.leader{border-color:var(--amber-deep);color:var(--accent-text)}.stable-label{display:inline-grid}.stable-label>*{grid-area:1 / 1;text-align:center}.stable-label>[aria-hidden=true]{visibility:hidden}.team-dot{width:10px;height:10px;border-radius:50%;background:var(--team, var(--line-strong));display:inline-block;flex:none}.lobby{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-bottom:0}.lobby-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem .8rem;margin-bottom:1rem}.lobby-title{display:flex;flex-direction:column;min-width:0;flex:1 1 12rem}.lobby-title h1,.room-name{display:flex;align-items:center;gap:.5rem;margin:0}.room-name{font-family:var(--font-display);font-size:1.35rem;font-weight:700;background:transparent;border-color:transparent;padding:.1rem .3rem;margin-left:-.3rem;min-width:0;width:100%;max-width:22rem}.room-name:hover,.room-name:focus{border-color:var(--line-strong);background:var(--surface)}.room-id{color:var(--text-faint);font-size:.75rem;letter-spacing:.14em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.lobby-actions{display:flex;gap:.3rem;flex-shrink:0;position:relative}.popover{position:absolute;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:0 16px 36px -10px #2a234059}.popover h2{font-size:.95rem;color:var(--text);margin-bottom:.7rem}.popover.invite{top:calc(100% + 6px);right:0;width:18.5rem;text-align:center}.popover.menu{top:calc(100% + 6px);right:0;min-width:12rem;padding:.35rem;display:flex;flex-direction:column}.popover.menu button,.member-menu button{border:none;background:none;border-radius:10px;text-align:left;padding:.45rem .7rem;min-height:36px;font-size:.9rem;white-space:nowrap}.popover.menu button:hover,.member-menu button:hover{background:var(--bg)}.popover.menu .danger,.member-menu .danger{color:var(--danger-text)}.popover.menu hr{border:none;border-top:1px solid var(--line);margin:.25rem .4rem;width:auto}.popover .row{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.popover .note{font-size:.75rem;color:var(--text-faint);margin:.5rem 0 0}.qr{background:#fff;padding:8px;border-radius:10px;display:inline-block;width:160px;border:1px solid var(--line)}.qr svg{width:100%;height:auto;display:block}.invite .url{display:block;margin:.6rem 0;word-break:break-all;font-size:.78rem;color:var(--text-dim)}.big-qr{position:fixed;inset:0;z-index:40;background:#f5f2faf7;display:grid;place-items:center;padding:1.5rem}.big-qr-inner{display:grid;justify-items:center;gap:1rem;text-align:center}.big-qr .qr{width:min(24rem,72vw,60vh);padding:14px;border-radius:20px}.big-qr-say{font-family:var(--font-display);font-size:clamp(1.3rem,4vw,2rem);font-weight:700;margin:0}.big-qr .url{font-size:1rem;color:var(--text-dim);word-break:break-all}.lobby-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-bottom:1rem}.lobby-teams{display:flex;flex-direction:column;min-width:0}.lobby-side{display:flex;flex-direction:column;gap:.8rem;min-width:0}@media(min-width:900px){.lobby-body{grid-template-columns:minmax(0,1fr) 17.5rem;align-items:stretch}.lobby-teams .team-grid,.lobby-side .ranking-card{flex:1}}@media(max-width:899px){.lobby-side{display:contents}.name-tag{order:-1}.ranking-card{order:2}}.name-tag{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem .9rem}.name-tag:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--team, var(--line-strong))}.name-tag-who{display:flex;align-items:center;gap:.75rem}.avatar{width:46px;height:46px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:#fff;background:var(--team, var(--text-faint));box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--amber)}.name-tag-you{font-size:.72rem;font-weight:700;color:var(--accent-text);letter-spacing:.1em}.name-tag-name{font-family:var(--font-display);font-size:1.4rem;font-weight:700;line-height:1.2;word-break:break-all}.name-tag-place{margin-top:.7rem;display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.team-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:700;color:var(--team-ink);background:var(--team-tint);border-radius:999px;padding:.1rem .7rem}.team-pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--team)}.role-pill{font-size:.8rem;border:1px solid var(--line-strong);border-radius:999px;padding:0 .6rem}.name-tag-stats{margin-top:.8rem;padding-top:.8rem;border-top:1px dashed var(--line-strong);display:flex;align-items:baseline;gap:1.2rem;font-variant-numeric:tabular-nums}.stat-value{font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:1}.stat-value small{font-size:.8rem;font-weight:500;color:var(--text-dim);margin-left:2px;font-family:system-ui,sans-serif}.stat-value.none{color:var(--text-faint)}.stat-label{font-size:.72rem;color:var(--text-faint);margin-top:.2rem}.name-tag .hint{margin:.7rem 0 0;font-size:.8rem}.self-move{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.7rem}.section-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .6rem;margin-bottom:.6rem;min-height:32px}.section-head h2{margin:0;font-size:.78rem;letter-spacing:.12em;color:var(--text-faint);white-space:nowrap}.section-head .count{font-size:.8rem;color:var(--text-faint);white-space:nowrap}.section-head button{white-space:nowrap}.section-head .grow{flex:1}.team-grid{display:grid;grid-template-columns:1fr;gap:.8rem;align-items:stretch}@media(min-width:640px){.team-grid{grid-template-columns:1fr 1fr}}.zone{transition:box-shadow .15s ease,background .15s ease}.teams.dragging .zone{box-shadow:inset 0 0 0 2px var(--line-strong)}.teams.dragging .zone.drop-over{box-shadow:inset 0 0 0 3px var(--amber-deep)}.team-column{position:relative;background:var(--team-tint);box-shadow:inset 0 0 0 1px var(--team-line);border-radius:18px;padding:.85rem;min-width:0}.team-column header{display:flex;align-items:center;gap:.45rem}.team-color{width:22px;height:22px;min-height:0;padding:0;flex:none;border-radius:50%;border:none;background:var(--team);box-shadow:0 0 0 2px var(--surface)}button.team-color{cursor:pointer}button.team-color:hover:not(:disabled){background:var(--team);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--team-line)}.team-name,.team-column header h3{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--team-ink);margin:0;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input.team-name{background:transparent;border-color:transparent;padding:.05rem .3rem;min-height:34px}input.team-name:hover,input.team-name:focus{background:var(--surface);border-color:var(--team-line)}.team-count{font-size:.85rem;color:var(--team-ink);opacity:.8;font-variant-numeric:tabular-nums;white-space:nowrap}.team-wins{font-size:.75rem;font-weight:700;color:var(--team-ink);background:var(--surface);border-radius:999px;padding:0 .55rem;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:help}.team-column header button.quiet{min-height:32px;padding:0 .55rem;color:var(--team-ink)}.team-time{font-size:.82rem;color:var(--text-dim);margin:.25rem 0 0;font-variant-numeric:tabular-nums}.team-leader{display:flex;align-items:baseline;gap:.5rem;margin:.35rem 0 0;font-size:.88rem;min-width:0}.team-leader-label{font-size:.72rem;font-weight:700;color:var(--team-ink);background:var(--surface);border-radius:999px;padding:0 .55rem;flex:none}.team-leader-name{font-weight:700;color:var(--team-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-leader-none{color:var(--text-dim)}.team-warn{font-size:.8rem;color:var(--warn);background:var(--warn-tint);border-radius:8px;padding:.25rem .6rem;margin:.4rem 0 0}.popover.team-menu{top:3rem;right:.6rem;min-width:13rem}.popover.team-menu .menu-label{font-size:.72rem;color:var(--text-faint);padding:.3rem .7rem 0}.popover.team-menu button[aria-pressed=true]{font-weight:700}.popover.team-menu button[aria-pressed=true]:after{content:" ✓";color:var(--link)}.popover.colors{top:3rem;left:.6rem;width:16.5rem}.swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.swatch{border:none;border-radius:12px;padding:.45rem .3rem;min-height:0;display:grid;justify-items:center;gap:.2rem;background:var(--team-tint);color:var(--team-ink);font-size:.75rem;font-weight:700}.swatch:hover:not(:disabled){background:var(--team-tint);box-shadow:0 0 0 1px var(--team-line)}.swatch i{width:22px;height:22px;border-radius:50%;background:var(--team)}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--team)}.swatch small{font-weight:500;font-size:.65rem}.popover.colors .warn{margin:.6rem 0 0;font-size:.78rem}.member-list{list-style:none;margin:.7rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.member{position:relative;max-width:100%}.member-chip{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;background:var(--surface);color:var(--text);border:none;border-radius:999px;box-shadow:0 0 0 1px var(--team-line, var(--line-strong));padding:.2rem .75rem;min-height:32px;font-size:.88rem;line-height:1.4}button.member-chip:hover:not(:disabled){background:var(--surface);box-shadow:0 0 0 2px var(--team-line, var(--line-strong))}.member[draggable=true] .member-chip{cursor:grab}.member-chip .member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-chip small{font-size:.68rem;opacity:.8}.member.leader .member-chip{background:var(--team);color:#fff;box-shadow:none;font-weight:700}.member.leader .member-chip:before{content:"★";font-size:.7rem}.member.me .member-chip{box-shadow:0 0 0 2px var(--amber-deep)}.member.me.leader .member-chip{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--amber-deep)}.member.leader button.member-chip:hover:not(:disabled){background:var(--team);filter:brightness(1.1)}.member.me button.member-chip:hover:not(:disabled){box-shadow:0 0 0 2px var(--amber-deep),0 0 0 4px var(--team-line, var(--line-strong))}.member.me.leader button.member-chip:hover:not(:disabled){box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--amber-deep)}.member.dragging{opacity:.4}.member-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:25;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.3rem;min-width:11rem;display:flex;flex-direction:column;box-shadow:0 16px 36px -10px #2a234059}.spectators{margin-top:.8rem;background:var(--surface);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);padding:.5rem .9rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.85rem;color:var(--text-dim)}.spectators strong{color:var(--text)}.spectators .member-list{margin:0}.ranking-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:.9rem 1rem}.ranking-card h2{font-size:.75rem;letter-spacing:.12em;color:var(--text-faint);margin-bottom:.4rem}.ranking-card .hint{margin:0}.ranking-list{list-style:none;margin:0;padding:0;font-variant-numeric:tabular-nums;font-size:.9rem}.ranking-list li{display:flex;align-items:center;gap:.55rem;padding:.2rem 0}.ranking-rank{color:var(--text-faint);min-width:1.6em;text-align:right}.ranking-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-points{margin-left:auto}.ranking-list li.me{color:var(--accent-text);font-weight:700}.ranking-list li.gap{color:var(--text-faint);justify-content:center;line-height:1;padding:0}.ranking-result{margin-top:.7rem;width:100%}.lobby-footer{position:sticky;bottom:0;z-index:10;margin:auto -1rem 0;padding:.75rem 1rem max(.75rem,env(safe-area-inset-bottom));background:#ffffffeb;backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;align-items:center;gap:.8rem 1rem;flex-wrap:wrap}.settings-summary{flex:1;min-width:14rem;margin:0;font-size:.85rem;color:var(--text-dim);font-variant-numeric:tabular-nums;position:relative}.settings-summary strong{color:var(--text);font-weight:500}.waiting{display:inline-flex;align-items:center;gap:.5rem;font-weight:700}.waiting:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--amber-deep);animation:blink 1.6s ease-in-out infinite}@keyframes blink{50%{opacity:.25}}@media(max-width:639px){.lobby-footer .primary{width:100%}}.popover.settings{bottom:calc(100% + .6rem);left:0;width:min(32rem,calc(100vw - 2rem))}.settings-grid{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1rem;align-items:center;font-size:.9rem}.settings-grid>.label{color:var(--text-dim)}.settings-grid select{min-height:34px;padding:.2rem .5rem}.settings-grid .check{margin:0}.settings-grid .times{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center}.settings-grid .times label{display:flex;align-items:center;gap:.35rem}.settings-grid .times .team-dot{margin-right:-.1rem}.game:before{content:"";position:fixed;inset:0 0 auto;height:14rem;z-index:-1;pointer-events:none;background:linear-gradient(180deg,var(--my-tint, transparent),transparent)}.game-top{display:flex;justify-content:flex-end;position:relative;margin:-.4rem 0 .2rem}.game-top button{min-height:32px;padding:0 .7rem}.game-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:.6rem;margin-bottom:.8rem}.team-card{position:relative;overflow:hidden;min-width:0;display:flex;align-items:center;gap:.7rem;background:var(--surface);border-radius:16px;padding:.6rem .8rem .85rem;box-shadow:0 0 0 1px var(--line);transition:background .2s ease}.team-card.other{flex-direction:row-reverse;text-align:right}.team-card.mine{box-shadow:0 0 0 2px var(--team)}.team-card.acting{background:var(--team-tint)}.team-card>*{transition:opacity .2s ease}.team-card.idle>:not(.pool-strip){opacity:.55}.turn-chip{position:absolute;top:.45rem;right:.6rem;font-size:.66rem;font-weight:700;line-height:1.6;color:#fff;background:var(--team);border-radius:999px;padding:0 .5rem}.team-card.other .turn-chip{right:auto;left:.6rem}.team-card.idle .turn-chip{visibility:hidden}.big-stone{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:700;font-size:1.2rem;font-variant-numeric:tabular-nums}.big-stone.black{background:radial-gradient(circle at 36% 30%,#4a515c,#15181d 45%,#050607);color:#fff;box-shadow:0 2px 4px #00000059}.big-stone.white{background:radial-gradient(circle at 36% 30%,#fff,#edede7 60%,#c4c6bf);color:var(--text);box-shadow:0 2px 4px #00000040,inset 0 0 0 1px #d5d7d0}.team-card-text{display:grid;min-width:0}.team-card-who,.team-card-name,.team-card-lead{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-card-who{font-size:.66rem;font-weight:700;color:var(--team-ink);letter-spacing:.06em;line-height:1.4}.team-card-name{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--team-ink);line-height:1.35}.team-card-lead{font-size:.82rem}.team-card-lead.none{color:var(--text-dim)}.pool-strip{position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--team-line)}.pool-strip i{position:absolute;inset:0 auto 0 0;background:var(--team);transition:width .3s linear}.team-card.other .pool-strip i{inset:0 0 0 auto}.game-clock{display:grid}.clock{display:grid;justify-items:center;align-content:center;min-width:4rem;color:var(--team, var(--accent-text))}.clock-face{position:relative;width:56px;height:56px;display:grid;place-items:center}.clock-ring{position:absolute;inset:0;width:100%;height:100%}.clock-ring .track{stroke:var(--ring-track)}.clock-value{position:relative;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.clock-label{font-size:.68rem;font-weight:700;line-height:1.5;color:var(--warn)}.clock-label[aria-hidden=true]{visibility:hidden}.clock.warning{color:var(--danger)}.clock.pool{color:var(--warn)}.clock.ai,.clock.idle,.clock.unlimited{color:var(--text-faint)}.clock.ai .clock-label{color:var(--text-dim)}.clock.ai .clock-value{font-size:.95rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.game-body{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem}.game-body .board-wrap{order:-1}@media(min-width:900px){.game-body{grid-template-columns:12rem minmax(0,1fr) 12rem;align-items:start}.game-body .board-wrap{order:0}}.board-wrap{position:relative;border-radius:14px;transition:box-shadow .4s ease;width:min(100%,calc(100vh - 9rem));width:min(100%,calc(100dvh - 9rem));margin-inline:auto}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#081e12ad;border-radius:12px;font-size:clamp(1.5rem,8vw,4rem);font-weight:800;font-family:var(--font-display);color:var(--amber);text-align:center;padding:1rem}.board-wrap.deciding{box-shadow:0 0 0 3px var(--team),0 0 28px 2px var(--team)}.move-note{position:absolute;left:50%;bottom:6%;transform:translate(-50%);max-width:92%;padding:.4rem 1rem;border-radius:999px;background:#0a1810db;color:#fff;font-size:.9rem;text-align:center}.roster{background:var(--surface);border-radius:16px;padding:.7rem .75rem;box-shadow:0 0 0 1px var(--line);min-width:0}.roster h2{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.78rem;color:var(--team-ink)}.roster-count{margin-left:auto;color:var(--text-faint);font-weight:500}.roster .hint{margin:0;font-size:.8rem}.roster-names{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem}.roster-names li{font-size:.8rem;line-height:1.6;border-radius:999px;padding:.05rem .6rem;background:var(--team-tint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .2s ease,box-shadow .2s ease}.roster-names li.lead{background:var(--team);color:#fff;font-weight:700}.roster-names li.me{box-shadow:0 0 0 2px var(--amber-deep)}.roster-names li.lit{background:#ffebb8;box-shadow:inset 0 0 0 1.5px #f2b84b}.roster-names li.lit.me{box-shadow:inset 0 0 0 1.5px #f2b84b,0 0 0 2px var(--amber-deep)}.roster-names li.more{background:none;color:var(--text-faint)}@media(max-width:639px){.game-header{gap:.4rem}.team-card{padding:.5rem .5rem .75rem;gap:.5rem}.big-stone{width:38px;height:38px;font-size:1rem}.turn-chip{display:none}.team-card-who{font-size:.6rem;letter-spacing:0}.team-card-name{font-size:.95rem}.team-card-lead{font-size:.76rem}.clock{min-width:3rem}.clock-face{width:46px;height:46px}.clock-value{font-size:1rem}.clock-label{font-size:.6rem}}.pool-bar{font-size:.75rem;color:var(--text-dim)}.pool-bar.spending{color:var(--warn)}.pool-bar-label{display:flex;justify-content:space-between}.pool-bar-track{height:6px;background:var(--ring-track);border-radius:3px;overflow:hidden}.pool-bar-fill{height:100%;background:var(--amber-deep);transition:width .3s linear}.result{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-bottom:0}.verdict{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.9rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:.9rem 1.1rem}.verdict-side{display:flex;align-items:center;gap:.75rem;min-width:0}.verdict-side.white{flex-direction:row-reverse;text-align:right}.verdict-side .big-stone{width:58px;height:58px;font-size:1.45rem}.verdict-side.mine .big-stone{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--amber-deep),0 3px 6px #0000004d}.verdict-text{display:grid;min-width:0}.verdict-who,.verdict-name,.verdict-lead,.verdict-rec{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.verdict-who{font-size:.68rem;font-weight:700;color:var(--team-ink);letter-spacing:.08em}.verdict-name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--team-ink)}.verdict-lead{font-size:.82rem;color:var(--text-dim)}.verdict-rec{font-size:.74rem;color:var(--text-faint);font-variant-numeric:tabular-nums}.verdict-center{text-align:center}.verdict-center h1{margin:0;font-size:1.7rem;color:var(--team-ink, var(--text));white-space:nowrap}.verdict-score{margin:.1rem 0 0;font-size:.82rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.verdict-you{display:inline-block;margin-top:.4rem;font-size:.78rem;font-weight:700;border-radius:999px;padding:.05rem .8rem}.verdict-you.won{background:#fff1d6;color:var(--accent-text)}.verdict-you.lost,.verdict-you.draw{background:var(--surface-raised);color:var(--text-dim)}.result-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin:1rem 0;align-items:start}.result-side{display:grid;gap:1rem;min-width:0}@media(min-width:900px){.result-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}.result .card{margin-bottom:0;min-width:0}.result .card h2{font-size:.78rem;letter-spacing:.12em;color:var(--text-faint);margin-bottom:.6rem}.replay-board{max-width:440px;margin-inline:auto}.replay-now{display:flex;align-items:center;gap:.4rem .5rem;height:1.9rem;margin:.7rem 0 0;overflow:hidden;white-space:nowrap;font-size:.9rem}.replay-now .hint{margin:0}.replay-turn{font-weight:700;font-variant-numeric:tabular-nums;min-width:3.5em}.replay-how{font-size:.75rem;color:var(--text-dim);background:var(--surface-raised);border-radius:999px;padding:.05rem .6rem}.replay-legend{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:4px}.replay-legend li{display:grid;grid-template-columns:26px 5.6em minmax(0,1fr);gap:.5rem;align-items:center;height:28px;font-size:.86rem}.legend-icon{width:26px;height:26px;display:block}.replay-legend .k{font-weight:700;white-space:nowrap}.replay-legend .v{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-legend .dim{color:var(--text-faint)}.q-best{color:var(--review-best)}.q-good{color:#9a5e0a}.q-poor{color:var(--danger-text)}.q-only{color:var(--text-dim)}.replay-legend b{font-weight:700}.replay-timeline{display:grid;gap:.5rem;margin-top:.9rem}.timeline-row{display:grid;grid-template-columns:4.8rem minmax(0,1fr);gap:.5rem;align-items:start}.timeline-label{display:grid;font-size:.74rem;font-weight:700;color:var(--team-ink);line-height:20px;min-width:0}.timeline-label small{font-weight:500;color:var(--text-faint);font-size:.68rem;line-height:1.4;font-variant-numeric:tabular-nums}.timeline-dots{display:flex;flex-wrap:wrap;gap:4px}.dot{width:20px;height:20px;min-height:0;padding:0;border:none;border-radius:50%;flex:none}.dot.q-best,.dot.q-best:hover:not(:disabled){background:var(--review-best)}.dot.q-good,.dot.q-good:hover:not(:disabled){background:var(--review-good)}.dot.q-poor,.dot.q-poor:hover:not(:disabled){background:var(--review-poor)}.dot.q-only,.dot.q-only:hover:not(:disabled){background:#d6d1e0}.dot.selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.replay-controls{display:flex;align-items:center;gap:.4rem;margin-top:.8rem;flex-wrap:wrap}.replay-controls .grow{flex:1}.my-result{position:relative;overflow:hidden}.my-result:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--team, var(--line-strong))}.my-result-top{display:flex;align-items:baseline;gap:1.2rem;flex-wrap:wrap;font-variant-numeric:tabular-nums}.my-result-top .stat-value{font-size:2rem}.my-result-parts{display:grid;gap:.35rem;margin-top:.8rem}.part{display:grid;grid-template-columns:5rem minmax(0,1fr) 2.4rem;gap:.5rem;align-items:center;font-size:.82rem;font-variant-numeric:tabular-nums}.part-name{color:var(--text-dim)}.part-bar{height:8px;background:var(--surface-raised);border-radius:4px;overflow:hidden}.part-bar i{display:block;height:100%;border-radius:4px}.part-value{text-align:right;font-weight:700}.part-note{grid-column:2 / 4;font-size:.72rem;color:var(--text-faint);margin-top:-.2rem}i.stones{background:var(--score-stones)}i.quality{background:var(--review-best)}.my-result-foot{margin:.8rem 0 0;padding-top:.7rem;border-top:1px dashed var(--line-strong);display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-size:.85rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.my-result-foot b{color:var(--text);font-size:1rem}.my-result-foot .hint{margin:0;font-size:.75rem;width:100%}.score-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-variant-numeric:tabular-nums}.score-list li{display:grid;grid-template-columns:1.7em 10px minmax(0,1fr) 6rem 2.4em;gap:.5rem;align-items:center;font-size:.88rem;padding:.15rem .3rem;border-radius:8px}.score-list li.me{background:#fff6e3;box-shadow:inset 0 0 0 1.5px var(--amber-deep);font-weight:700}.score-list li.gap{display:block;text-align:center;color:var(--text-faint);line-height:1;padding:0}.score-rank{color:var(--text-faint);text-align:right}.score-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-name small{font-size:.68rem;color:var(--text-faint);font-weight:500;margin-left:.3rem}.score-bar{height:7px;display:flex;border-radius:4px;overflow:hidden;background:var(--surface-raised)}.score-bar i{display:block;height:100%}.score-total{text-align:right}.score-legend{display:flex;align-items:center;gap:.8rem;font-size:.72rem;color:var(--text-faint);margin-top:.5rem}.score-legend i{width:10px;height:6px;border-radius:3px;display:inline-block;margin-right:.3rem;vertical-align:1px}.score-legend .grow{flex:1}details.how{margin-top:.6rem;font-size:.8rem;color:var(--text-dim)}details.how summary{cursor:pointer;color:var(--link)}details.how p{margin:.4rem 0 0}.skel{border-radius:8px;background:linear-gradient(90deg,var(--surface-raised) 0,var(--bg) 50%,var(--surface-raised) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.result-footer{position:sticky;bottom:0;z-index:10;margin:auto -1rem 0;padding:.75rem 1rem max(.75rem,env(safe-area-inset-bottom));background:#ffffffeb;backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;align-items:center;gap:.8rem 1rem;flex-wrap:wrap}.result-footer .hint{flex:1;margin:0;min-width:12rem}@media(max-width:639px){.verdict{grid-template-columns:1fr 1fr;padding:.7rem;gap:.6rem}.verdict-center{grid-column:1 / -1;grid-row:1}.verdict-center h1{font-size:1.4rem}.verdict-side .big-stone{width:44px;height:44px;font-size:1.1rem}.verdict-name{font-size:1rem}.score-list li{grid-template-columns:1.7em 10px minmax(0,1fr) 4.5rem 2.4em}.result-footer .primary{width:100%}.verdict-rec{white-space:normal}.replay-controls{display:grid;grid-template-columns:repeat(4,1fr)}.replay-controls .grow{display:none}.replay-controls button{padding:.2rem .3rem;font-size:.78rem}}.stream,.stream-error{--bg: #151A22;--surface: #1E242E;--surface-raised: #262E3A;--line: #39414F;--line-strong: #4A5363;--text: #E6EAF2;--text-dim: #98A2B3;--text-faint: #6B7586;--accent-text: #FFC24D;--warn: #D9662A;--danger-text: #F3A9A2;--ring-track: #39414F;color:var(--text);color-scheme:dark}body:not(.obs) .stream,body:not(.obs) .stream-error{background:var(--bg)}.stream .board{box-shadow:none}.stream{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,24vw,420px);grid-template-rows:auto minmax(0,1fr);gap:16px;padding:16px;height:100vh;height:100dvh;overflow:hidden;font-size:24px}.stream-header{grid-column:1 / -1;display:flex;justify-content:space-between;gap:24px}.stream-team{display:flex;align-items:center;gap:10px;opacity:.55}.stream-team.active{opacity:1;color:var(--amber)}.stream-team .stone{width:22px;height:22px;border-width:2px}.stream-team-name{border-bottom:4px solid var(--team);padding-bottom:2px}.stream-team-score{font-size:40px;font-weight:800;font-variant-numeric:tabular-nums}.stream-team-time,.stream-team-record{font-size:20px;color:var(--text-dim)}.stream-board{min-width:0;min-height:0;display:grid;place-items:center}.stream-board .board{width:min(100%,calc(100vh - 8rem));width:min(100%,calc(100dvh - 8rem))}.stream-panel{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden}.stream-panel .clock-face{width:120px;height:120px}.stream-panel .clock-value{font-size:46px}.stream-panel .clock-label{font-size:22px}.stream-last,.stream-mvp{margin:0}.stream-mvp{color:var(--amber);font-weight:700}.stream-invite{display:flex;align-items:center;gap:12px;margin-top:auto}.stream-invite .qr{padding:6px;border-radius:6px;width:120px;border:none}.stream-invite code{font-size:20px;word-break:break-all}.stream-error{padding:24px;font-size:24px}@media(max-width:900px){.stream{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;height:auto;overflow:auto}.stream-board .board{width:100%}}.stream.board-only{display:grid;place-items:center;grid-template-columns:none;grid-template-rows:none;padding:0}.stream.board-only .board{width:min(100%,100vh);width:min(100%,100dvh)}.stream.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;grid-template-columns:none;grid-template-rows:none;height:auto;min-height:0;overflow:visible}.stream.bar .stream-team{flex-direction:row}.stream.bar .clock-face{width:64px;height:64px}.stream.bar .clock-value{font-size:28px}.stream-bar-info{display:flex;align-items:center;gap:20px}@media(prefers-reduced-motion:reduce){.board .light-pulse{animation:none;opacity:.8}.board .light{transition:none}.board .stone-drop,.board .stone-in{animation:none}.board .stone-out{display:none}.board .legal-beckon{animation:none;fill:#fff4d699}.board-wrap{transition:none}.team-card,.team-card>*,.roster-names li,.pool-strip i{transition:none}.pool-bar-fill{transition:none}.waiting:before{animation:none}.skel{animation:none}}
