*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;overscroll-behavior:none}body{-webkit-tap-highlight-color:transparent;background:var(--bg);min-height:100dvh;color:var(--ink);font:500 var(--fs-body)/1.45 var(--body);-webkit-tap-highlight-color:transparent;margin:0}button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}[hidden]{display:none!important}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.icon use{transform-box:fill-box;transform-origin:50%}.backdrop{z-index:-1;pointer-events:none;color:var(--wave);opacity:var(--wave-alpha);position:fixed;inset:0;overflow:hidden;-webkit-mask-image:radial-gradient(75% 65% at 50% 52%,#0000004d 0%,#000 90%);mask-image:radial-gradient(75% 65% at 50% 52%,#0000004d 0%,#000 90%)}.backdrop .layer{will-change:transform;animation:drift-a 47s var(--ease-travel) infinite alternate;position:absolute;inset:-8%}.backdrop .layer svg{width:100%;height:100%;display:block;position:absolute;inset:0}@keyframes drift-a{to{transform:translate(-2.5%,1.5%)scale(1.05)}}.btn{border:var(--line-w) solid transparent;border-radius:var(--r-pill);min-height:44px;font-weight:700;font-size:var(--fs-label);white-space:nowrap;cursor:pointer;transition:transform .35s var(--ease-spring), background-color .2s, border-color .2s, box-shadow .2s;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-icon{border-color:var(--border);background:var(--surface);width:44px;color:var(--ink-2);padding:0}@media (hover:hover){.btn-icon:hover:not(:disabled){background:var(--surface-2)}}.brand{-webkit-tap-highlight-color:transparent;border-radius:var(--r-ctl);min-height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:10px;margin:0 0 0 -6px;padding:2px 10px 2px 6px;display:flex}.brand:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.brand-mark{flex:none;width:38px;height:38px;overflow:visible}.bm-ring,.bm-w{fill:none;stroke:var(--mark);stroke-linecap:round;stroke-linejoin:round}.bm-ring{stroke-width:17px}.bm-w{stroke-width:10px}.bm-grid{stroke-width:7px}.gm-frame,.gm-wall{fill:none;stroke:var(--mark);stroke-linecap:round;stroke-linejoin:round}.gm-frame{stroke-width:13px}.gm-wall{stroke-width:8.5px}.bm-dot{fill:var(--mark-dot);transform-box:fill-box;transform-origin:50%;transition:transform .16s var(--ease-out)}.brand-text{gap:3px;display:grid}.brand-house{font:800 var(--fs-caption)/1 var(--body);letter-spacing:.02em;color:var(--ink-2)}.brand-name{font:800 24px/1 var(--body);letter-spacing:-.015em}@media (hover:hover){.brand:hover .bm-dot{transform:translateY(-2px)}}.bm-halo{fill:none;stroke:var(--mark-dot);stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:9s 1.6s infinite bm-halo}.bm-orbit{transform-box:view-box;transform-origin:60px 60px;animation:27s 1.6s infinite bm-orbit}body:has(dialog[open]) :is(.bm-halo,.bm-orbit){animation-play-state:paused}@keyframes bm-orbit{0%,16.67%{animation-timing-function:cubic-bezier(.45,0,.2,1);transform:rotate(0)}22.6%,to{transform:rotate(360deg)}}@keyframes bm-halo{0%{opacity:.5;animation-timing-function:cubic-bezier(.2,.6,.3,1);transform:scale(1)}6%{opacity:.3}18%,to{opacity:0;transform:scale(2.4)}}.brand-intro .brand .bm-grow{transform-box:view-box;transform-origin:60px 60px;animation:.9s cubic-bezier(.2,.8,.3,1) .15s both bm-grow}.brand-intro .brand .bm-ring{stroke-dasharray:1;animation:.9s cubic-bezier(.65,0,.35,1) .15s both bm-draw}.brand-intro .brand .bm-w{stroke-dasharray:1;animation:.6s cubic-bezier(.65,0,.35,1) .85s both bm-draw}.brand-intro .brand .bm-dot{animation:1.35s cubic-bezier(.45,0,.25,1) .1s both bm-dot}.brand-intro .brand .brand-text{animation:bm-text .3s 1.05s var(--ease-out) both}@keyframes bm-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes bm-grow{0%{opacity:0;transform:scale(.6)}30%{opacity:1}}@keyframes bm-dot{0%{transform:translate(-25px,25px)scale(0)}18%{transform:translate(-25px,25px)scale(1.15)}70%{transform:translate(2px,-2px)scale(1)}to{transform:none}}@keyframes bm-text{0%{opacity:0;transform:translate(-4px)}}.sheet{overscroll-behavior:contain;width:100%;max-width:100%;max-height:92dvh;padding:24px 20px calc(22px + env(safe-area-inset-bottom));border-radius:var(--r-card) var(--r-card) 0 0;background:var(--surface);color:var(--ink);border:0;margin:auto 0 0;overflow-y:auto;box-shadow:0 -16px 50px #0b123040}.sheet[open]{animation:sheet-in .42s var(--ease-out);flex-direction:column;gap:16px;display:flex}.sheet::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .3s var(--ease-out);background:#0b123066}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes fade-in{0%{opacity:0}}.sheet h2{font:800 var(--fs-title)/1.2 var(--body);letter-spacing:-.01em;margin:0}.sheet p{color:var(--ink-2);margin:0;line-height:1.5}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sheet-head>.btn-icon{flex:none}.fine{color:var(--muted);font-size:var(--fs-caption);line-height:1.45}.app>*{animation:rise var(--dur-in) var(--ease-out) backwards}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media (width>=560px){.sheet{border-radius:var(--r-card);width:min(460px,100% - 32px);margin:auto;padding:26px 24px 24px;box-shadow:0 30px 80px #0b123040}}@media (width>=900px){.topbar{min-height:88px;margin-bottom:16px}.brand-mark{width:40px;height:40px}.brand-house{font-size:12px}.brand-name{font-size:27px}}@media (height<=520px) and (orientation:landscape){.topbar{min-height:34px}.brand-text{display:none}.top-actions{gap:6px}}.icon{stroke-width:1.8px}.btn-icon{box-shadow:var(--shadow-soft);border-color:#0000}.btn:active:not(:disabled){transition-duration:80ms;transform:translateY(1px)scale(.95)}@media (hover:hover){.btn-icon:hover:not(:disabled){box-shadow:var(--lift);transform:translateY(-1px)}}.theme-btn{background:var(--theme-chip);position:relative;overflow:hidden}@media (hover:hover){.theme-btn:hover:not(:disabled){background:var(--theme-chip)}}.theme-btn .emb{opacity:0;width:30px;height:30px;transition:opacity .25s var(--ease-out);margin:auto;position:absolute;inset:0}.theme-btn .emb-day,:root[data-theme=dark] .theme-btn .emb-night,:root[data-theme=rose] .theme-btn .emb-rose{opacity:1}:root[data-theme=dark] .theme-btn .emb-day,:root[data-theme=rose] .theme-btn .emb-day{opacity:0}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-btn .emb-day{opacity:0}:root:not([data-theme]) .theme-btn .emb-night{opacity:1}}.theme-btn .emb *{transform-box:fill-box}.theme-btn .e-petal{opacity:0}.theme-btn[data-anim=light] .e-waves{animation:tb-tide .6s var(--ease-out) both}.theme-btn[data-anim=light] .e-sun{animation:tb-sunrise .6s var(--ease-spring) .16s both}@keyframes tb-tide{0%{transform:translateY(14px)}}@keyframes tb-sunrise{0%{opacity:0;transform:translateY(16px)}}.theme-btn[data-anim=dark] .e-moon{transform-origin:60% 60%;animation:tb-moon .7s var(--ease-spring) both}.theme-btn[data-anim=dark] .e-spark{transform-origin:50%;animation:tb-twinkle .9s var(--ease-out) .2s both}.theme-btn[data-anim=dark] .e-spark-2{animation-delay:.38s}@keyframes tb-moon{0%{opacity:0;transform:translate(-6px,10px)rotate(-25deg)}}@keyframes tb-twinkle{0%{opacity:0;transform:scale(0)}45%{opacity:1;transform:scale(1.6)}}.theme-btn[data-anim=rose] .e-stem{transform-origin:50% 100%;animation:tb-grow .35s var(--ease-out) both}.theme-btn[data-anim=rose] .e-leaf{animation:tb-unfurl .3s var(--ease-spring) .24s both}.theme-btn[data-anim=rose] .e-leaf-1{transform-origin:100% 100%}.theme-btn[data-anim=rose] .e-leaf-2{transform-origin:0 100%;animation-delay:.32s}.theme-btn[data-anim=rose] .e-head{transform-origin:50% 90%;animation:tb-bloom .55s var(--ease-spring) .4s both}.theme-btn[data-anim=rose] .e-petal{animation:tb-petal .8s var(--ease-out) .75s both}@keyframes tb-grow{0%{transform:scaleY(0)}}@keyframes tb-unfurl{0%{transform:scale(0)}}@keyframes tb-bloom{0%{opacity:0;transform:scale(.15)rotate(-20deg)}}@keyframes tb-petal{0%{opacity:0;transform:translate(0)rotate(-30deg)}25%{opacity:1}to{opacity:0;transform:translate(3px,12px)rotate(20deg)}}::view-transition{pointer-events:none}::view-transition-old(root){mix-blend-mode:normal;animation:auto;animation-timeline:none}::view-transition-new(root){mix-blend-mode:normal;animation:auto;animation-timeline:none}::view-transition-new(root){animation:tide-reveal .75s var(--ease-tide) both;-webkit-mask-image:radial-gradient(circle closest-side,#000 70%,#0000 100%);mask-image:radial-gradient(circle closest-side,#000 70%,#0000 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes tide-reveal{0%{-webkit-mask-size:0 0;mask-size:0 0;-webkit-mask-position:var(--vt-x) var(--vt-y);mask-position:var(--vt-x) var(--vt-y)}to{-webkit-mask-size:var(--vt-d) var(--vt-d);mask-size:var(--vt-d) var(--vt-d);-webkit-mask-position:calc(var(--vt-x) - var(--vt-d) / 2) calc(var(--vt-y) - var(--vt-d) / 2);mask-position:calc(var(--vt-x) - var(--vt-d) / 2) calc(var(--vt-y) - var(--vt-d) / 2)}}.tide-shore{z-index:100;left:calc(var(--vt-x) - var(--vt-d) / 2);top:calc(var(--vt-y) - var(--vt-d) / 2);width:var(--vt-d);height:var(--vt-d);border-radius:var(--r-pill);pointer-events:none;background:radial-gradient(circle closest-side, transparent 62%, color-mix(in srgb, var(--primary) 22%, transparent) 76%, color-mix(in srgb, var(--primary) 8%, transparent) 88%, transparent 100%);view-transition-name:tide-shore;position:fixed}.tide-shore.solo{view-transition-name:none;animation:tide-shore .75s var(--ease-tide) both}::view-transition-new(tide-shore){animation:tide-shore .75s var(--ease-tide) both}::view-transition-group(tide-shore){animation:auto;animation-timeline:none}@keyframes tide-shore{0%{opacity:1;transform:scale(0)}70%{opacity:1}to{opacity:0;transform:scale(1)}}@media not (prefers-reduced-motion:reduce){:root.theme-fade,:root.theme-fade *{transition:background-color .6s var(--ease-tide), color .6s var(--ease-tide), border-color .6s var(--ease-tide), fill .6s var(--ease-tide)!important}}@media (width>=560px){.wasamio-sheet{max-width:420px}}.wasamio-head{align-items:center;gap:10px;display:flex}.wasamio-head h2{font:800 var(--fs-title)/1 var(--body);letter-spacing:-.015em;text-transform:none;margin:0}.game-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.game-item{width:100%;min-height:var(--h-card);border-radius:var(--r-ctl);background:var(--chip);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform 80ms var(--ease-out);border:0;align-items:center;gap:14px;padding:10px 16px;display:flex}.game-item:active{transform:scale(.98)}.game-mark{flex:none;width:28px;height:28px;overflow:visible}.wasamio-sheet[open] .wasamio-head .bm-ring{stroke-dasharray:1;animation:.7s cubic-bezier(.65,0,.35,1) .1s both bm-draw}.wasamio-sheet[open] .wasamio-head .bm-w{stroke-dasharray:1;animation:.45s cubic-bezier(.65,0,.35,1) .6s both bm-draw}.wasamio-sheet[open] .wasamio-head .bm-dot{animation:1s cubic-bezier(.45,0,.25,1) 50ms both bm-dot}.wasamio-sheet[open] .game-mark .bm-ring{stroke-dasharray:1;animation:.6s cubic-bezier(.65,0,.35,1) .35s both bm-draw}.wasamio-sheet[open] .game-mark .bm-grid{stroke-dasharray:1;animation:.4s cubic-bezier(.65,0,.35,1) .75s both bm-draw}.wasamio-sheet[open] .game-mark .gm-frame{stroke-dasharray:1;animation:.6s cubic-bezier(.65,0,.35,1) .35s both bm-draw}.wasamio-sheet[open] .game-mark .gm-wall{stroke-dasharray:1;animation:.3s cubic-bezier(.65,0,.35,1) .8s both bm-draw}.wasamio-sheet[open] .game-mark .bm-dot{animation:.9s cubic-bezier(.45,0,.25,1) .3s both bm-dot}.game-item span{gap:2px;display:grid}.game-item b{font:800 var(--fs-lead)/1.2 var(--body)}.game-item small{color:var(--ink-2);font-size:var(--fs-small)}.game-item:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.game-soon{margin:0}a.game-item{box-sizing:border-box;text-decoration:none}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 10px 24px color-mix(in srgb, var(--primary) 22%, transparent)}.btn-ghost{background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow-soft);border-color:#0000;font-weight:700}.btn-link{min-height:44px;color:var(--link);padding:0 8px;font-weight:700}.btn-block{width:100%}.btn-primary,.btn-block{min-height:48px}@media (hover:hover){.btn-ghost:hover:not(:disabled){background:var(--surface-2)}}.btn[aria-disabled=true]{opacity:.55;cursor:default}.kicker{font-size:var(--fs-caption);letter-spacing:.12em;color:var(--muted);margin-bottom:4px;font-weight:700}.sheet-actions{flex-direction:column;gap:8px;display:flex}.art{background:var(--art-bg);color:var(--art-fg);position:relative;overflow:hidden}.art>svg.waves{width:112%;height:112%;animation:none;display:block;position:absolute;inset:-6%}.art .art-title{z-index:1;font:800 var(--fs-display)/1.1 var(--body);letter-spacing:-.02em;color:#fffef6;text-shadow:0 2px 18px #12208066;margin:0;position:absolute;bottom:16px;left:22px}.art .sheet-close{z-index:1;background:color-mix(in srgb, var(--art-bg) 80%, transparent);box-shadow:none;color:#fffef6;border:0;position:absolute;top:12px;right:12px}.art:after{content:"";background:linear-gradient(to top, var(--art-bg) 0, var(--art-bg) 46px, transparent 104px);pointer-events:none;position:absolute;inset:0}.art-compact>.art:after,.card-art>.art:after{background:linear-gradient(to bottom, var(--art-bg) 0, var(--art-bg) 50px, transparent 100px)}.sheet-art{padding-top:0}.sheet-art>.art{flex:none;height:150px;margin:0 -20px}@media (width>=560px){.sheet-art>.art{border-radius:var(--r-card) var(--r-card) 0 0;margin:0 -24px}}.art-compact>.art,.card-art>.art{height:108px}.art-compact>.art .art-title,.card-art>.art .art-title{top:18px;bottom:auto}@media (height<=520px) and (orientation:landscape){.sheet-art>.art,.art-compact>.art,.card-art>.art{height:72px}.sheet-art>.art .art-title{font-size:var(--fs-title);bottom:12px}.art-compact>.art .art-title,.card-art>.art .art-title{font-size:var(--fs-title);top:12px}}.card-art{border-radius:var(--r-card);background:var(--surface);width:100%;max-width:480px;box-shadow:var(--lift);margin:8px auto 0;overflow:hidden}.card-art>.art{margin:0}.card-body{gap:14px;padding:0 20px 22px;display:grid}.duel{z-index:1;justify-content:center;align-items:center;gap:14px;margin:-34px 0 2px;display:flex;position:relative}.duel-vs{font:800 var(--fs-caption)/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.avatar{border-radius:var(--r-pill);background:var(--primary);width:60px;height:60px;color:var(--on-primary);box-shadow:0 0 0 4px var(--surface), var(--lift);font:800 28px/1 var(--body);transition:transform .4s var(--ease-spring), background-color .25s, opacity .25s;place-items:center;display:grid;position:relative}.avatar[data-slot=rival]{background:var(--accent);color:var(--accent-ink)}.avatar[data-state=empty]{background:var(--surface);color:var(--muted);outline:2px dashed var(--border);outline-offset:-7px}.avatar[data-state=away]{opacity:.5}.avatar[data-state=winner]{transform:translateY(-3px)scale(1.06)}.avatar .badge{border-radius:var(--r-pill);background:var(--ok-dot);color:#fff;width:26px;height:26px;box-shadow:0 0 0 3px var(--surface);transition:transform .45s var(--ease-spring);place-items:center;display:grid;position:absolute;bottom:-5px;right:-5px;transform:scale(0)}.avatar .badge .icon{stroke-width:2.6px;width:15px;height:15px}.avatar .i-win,.avatar[data-state=winner] .i-ok{display:none}.avatar[data-state=winner] .i-win{display:block}.avatar[data-state=ready] .badge,.avatar[data-state=winner] .badge{transform:scale(1)}.avatar[data-state=winner] .badge{color:#3a2a05;background:#f5b83d}.top-menu:popover-open{inset:calc(64px + var(--sa-t)) calc(16px + var(--sa-r)) auto auto;border:var(--line-w) solid var(--border);border-radius:var(--r-ctl);background:var(--surface);min-width:220px;color:var(--ink);box-shadow:var(--shadow-soft);flex-direction:column;gap:4px;margin:0;padding:8px;display:flex;position:fixed}@media (width>=900px){.top-menu:popover-open{inset:80px max(40px,50vw - 520px) auto auto}}@media (height<=520px) and (orientation:landscape){.top-menu:popover-open{inset:8px 8px auto auto}}.top-menu .btn{width:100%;min-height:48px;box-shadow:none;color:var(--ink);background:0 0;border-color:#0000;justify-content:flex-start;gap:12px;padding:0 14px;font-weight:700}@media (hover:hover){.top-menu .btn:hover:not(:disabled){background:var(--chip)}}.top-menu .btn:active:not(:disabled){background:var(--chip)}.app{max-width:1400px;padding:calc(8px + var(--sa-t)) calc(12px + var(--sa-r)) calc(16px + var(--sa-b)) calc(12px + var(--sa-l));grid-template:"header""stage"1fr/minmax(0,1fr);min-height:100dvh;margin:0 auto;display:grid}.topbar{grid-area:header;justify-content:space-between;align-items:center;min-height:56px;display:flex}.top-actions{gap:8px;display:flex}.stage{grid-area:stage;min-width:0}.soon{text-align:center;color:var(--ink-2);font-size:var(--fs-lead);text-wrap:balance;margin:40px 0}.game{gap:calc(clamp(10px, 1.9dvh, 18px) + var(--gap-x,0px));grid-template-columns:minmax(0,1fr);grid-template-areas:"pbar""board""controls""status";align-content:start;display:grid}.game.with-note{grid-template-areas:"note""pbar""board""controls""status"}.note,.tutorial{grid-area:note}.pbar{grid-area:pbar}.board-wrap{grid-area:board;min-width:0;position:relative}.controls{grid-area:controls}.status{grid-area:status}@media (width>=700px){.app{padding-inline:calc(24px + var(--sa-l)) calc(24px + var(--sa-r))}}@media (width>=900px){.app{padding:0 40px 12px}.topbar{min-height:56px}.game{grid-template:"board."1fr"board pbar""board controls""board status""board."1fr/minmax(0,1fr) clamp(340px,30vw,440px);align-items:start;gap:14px 40px}.game.with-note{grid-template-rows:1fr auto auto auto auto 1fr;grid-template-areas:"board.""board note""board pbar""board controls""board status""board."}.pbar{gap:10px;grid-template-columns:1fr!important}.controls{gap:12px}.status{font-size:var(--fs-lead);text-align:left!important;min-height:0!important}.pcard{gap:10px;padding:14px 16px 16px}.p-top b{font-size:var(--fs-lead)}.glyph{width:26px;height:26px}.turn-tag{font-size:var(--fs-label);padding:3px 12px}.clock{font-size:var(--fs-lead)}.pips i{border-radius:3px;width:12px;height:6px}.walls-n{font-size:var(--fs-label)}.seg-btn,.controls .btn{min-height:56px;font-size:var(--fs-lead)}.hint{font-size:var(--fs-body)}}@media (orientation:landscape) and (height<=520px){.app{padding-top:calc(8px + var(--sa-t));padding-bottom:calc(12px + var(--sa-b));grid-template-rows:1fr;grid-template-areas:"stage"}.topbar{right:calc(16px + var(--sa-r));top:calc(6px + var(--sa-t));min-height:0;position:absolute}#brandBtn{display:none}.game{min-height:calc(100dvh - 20px - var(--sa-t) - var(--sa-b));grid-template:"board pbar""board status"1fr"board controls"/minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:24px}.game.with-note{grid-template-rows:auto auto 1fr auto;grid-template-areas:"board note""board pbar""board status""board controls"}.controls{align-self:end}.pbar,.tutorial{margin-right:108px}}.pbar{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pcard{--pc:var(--me);border-radius:var(--r-ctl);background:var(--surface);border:1px solid var(--border);min-width:0;transition:border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);gap:7px;padding:9px 11px 10px;display:grid;container-type:inline-size}.pcard.opp{--pc:var(--opp)}.pcard:not(.is-turn){background:color-mix(in srgb, var(--surface) 55%, transparent)}.pcard.is-turn{border-color:var(--pc);box-shadow:0 0 0 2px color-mix(in srgb, var(--pc) 30%, transparent), var(--shadow-soft)}.p-top{align-items:center;gap:8px;min-width:0;display:flex}.p-top b{font-size:var(--fs-label);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:4.2ch;overflow:hidden}.p-top .turn-tag,.p-top .clock,.p-top .glyph{flex:none}.turn-tag{font-size:var(--fs-caption);border-radius:var(--r-pill);background:var(--pc);color:var(--on-pc);white-space:nowrap;animation:tagin .2s var(--ease-out);padding:2px 8px;font-weight:700}@keyframes tagin{0%{opacity:0;transform:translate(-4px)}}.pcard.me{--on-pc:var(--on-me)}.pcard.opp{--on-pc:var(--on-opp)}.pcard.opp .turn-tag{background:color-mix(in srgb, var(--opp) 16%, transparent);color:var(--ink)}.clock{font-variant-numeric:tabular-nums;font-weight:800;font-size:var(--fs-label);color:var(--ink);margin-left:auto}.clock.idle{color:var(--muted);font-weight:600}.glyph{width:20px;height:20px;fill:var(--pc);flex:none}.glyph .m{fill:var(--pm);stroke:var(--pm)}.glyph.me{--pc:var(--me);--pm:var(--on-me)}.glyph.me .m{fill:none}.glyph.opp{--pc:var(--opp);--pm:var(--on-opp)}.p-bottom{align-items:center;gap:6px;min-width:0;display:flex}.pips{gap:3px;display:inline-flex}.pips i{background:color-mix(in srgb, var(--ink) 14%, transparent);border-radius:3px;width:9px;height:5px}.pips i.on{background:var(--wall-top)}.walls-n,.walls-txt{font-size:var(--fs-caption);color:var(--ink-2);min-width:1.2em;font-weight:700}.walls-txt{white-space:nowrap;display:none}.status{font-size:var(--fs-body);color:var(--ink-2);text-align:center;text-wrap:balance;min-height:2.7em;margin:0;line-height:1.35}.status-text{animation:fadein .15s var(--ease-out);display:inline-block}@keyframes fadein{0%{opacity:0}}.controls{gap:8px;display:grid}.seg{border-radius:var(--r-pill);background:var(--chip);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg-btn,.controls .btn{font:inherit;font-weight:700;font-size:var(--fs-label);border-radius:var(--r-pill);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;min-height:48px;display:inline-flex}.seg-btn{color:var(--ink-2);background:0 0}.seg-btn[aria-disabled=true]{opacity:.5;cursor:default}.seg-btn>svg:not(.glyph),.controls .btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.seg-btn[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft)}.count{background:var(--primary);min-width:24px;height:24px;color:var(--on-primary);font-size:var(--fs-caption);border-radius:12px;place-items:center;padding:0 6px;display:inline-grid}.wall-actions{grid-template-columns:1fr 1.25fr 1.25fr;gap:8px;display:grid}.btn-primary.is-off{opacity:.5;cursor:default}.hint{text-align:center;font-size:var(--fs-small);color:var(--muted);min-height:1.4em;margin:0}.hint.warn{color:var(--err-ink);font-weight:600}.waitbar{border-radius:var(--r-pill);background:var(--chip);min-height:56px;font-size:var(--fs-small);color:var(--ink-2);text-align:center;justify-content:center;align-items:center;gap:10px;padding:8px 16px;display:flex}.dots{gap:3px;display:inline-flex}.dots i{background:var(--opp);opacity:.35;border-radius:50%;width:6px;height:6px}.dots i:nth-child(2){opacity:.65}.dots i:nth-child(3){opacity:1}.controls:empty{display:none}.table{--cell:36px;--gap:6px;--bw:340px;--rail:22px;--mx:7px;--tilt:14deg;outline:none;margin-inline:auto;position:relative}.table:focus-visible{outline:3px solid var(--focus);outline-offset:-6px;border-radius:var(--r-card)}.plane{width:var(--bw);height:var(--bw);transform-origin:0 0;position:absolute;top:0;left:0}.plane *{pointer-events:none}.plane:before{content:"";inset:calc(var(--rail) * -1) calc(var(--mx) * -1);border-radius:calc(var(--cell) * .36);background:var(--slab);box-shadow:inset 0 1px 0 var(--slab-hi), var(--slab-shadow);position:absolute}.slab-edge{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.slab-edge polygon{fill:var(--slab-edge)}.hit{touch-action:none;cursor:pointer;position:absolute;inset:0;pointer-events:auto!important}.wall-mode .hit{cursor:crosshair}.rail{height:calc(var(--rail) - var(--gap) * .6);border-radius:calc(var(--cell) * .2);font-size:max(11px, calc(var(--cell) * .27));letter-spacing:.08em;text-transform:uppercase;place-items:center;font-weight:800;line-height:1;display:grid;position:absolute;left:0;right:0}.rail.far{top:calc(var(--rail) * -1 + var(--gap) * .3);background:var(--me);color:var(--on-me)}.rail.near{bottom:calc(var(--rail) * -1 + var(--gap) * .3);background:var(--opp);color:var(--on-opp)}.rail span{white-space:nowrap}.rail.far{padding-left:calc(var(--cell) * .5);justify-items:start}.tile{width:var(--cell);height:var(--cell);border-radius:calc(var(--cell) * .16);background:var(--tile);box-shadow:var(--tile-shadow);transition:transform 80ms var(--ease-out);position:absolute}.tile.press{transform:scale(.94)}.tile.goal-me{background:var(--tile-goal-me)}.tile.goal-opp{background:var(--tile-goal-opp)}.trail,.cursor,.target{width:var(--cell);height:var(--cell);border-radius:calc(var(--cell) * .16);position:absolute}.trail.me{background:color-mix(in srgb, var(--me) 18%, transparent)}.trail.opp{background:color-mix(in srgb, var(--opp) 18%, transparent)}.cursor{outline:3px solid var(--focus);outline-offset:-3px}.target{animation:tin .12s var(--ease-out);place-items:center;display:grid}@keyframes tin{0%{opacity:0;transform:scale(.6)}}.target i{background:var(--me);width:34%;height:34%;box-shadow:0 0 0 calc(var(--cell) * .12) color-mix(in srgb, var(--me) 22%, transparent);border-radius:50%}.target.jump i{border:3px solid var(--me);width:42%;height:42%;box-shadow:0 0 0 calc(var(--cell) * .07) color-mix(in srgb, var(--me) 14%, transparent);background:0 0}.step{position:absolute}.step.vert{border-left:3px dashed var(--primary);width:0;margin-left:-1.5px}.step.horiz{border-top:3px dashed var(--primary);height:0;margin-top:-1.5px}.step.closing{animation:stepfade .2s var(--ease-out) forwards}@keyframes stepfade{to{opacity:0}}.objs{isolation:isolate;pointer-events:none;position:absolute;inset:0}.objs *{pointer-events:none}.wall{position:absolute;overflow:visible}.wall polygon{stroke-width:1.4px;stroke-linejoin:round}.wall .f-top{fill:var(--wall-top);stroke:var(--wall-top)}.wall .f-front,.wall .f-back{fill:var(--wall-side);stroke:var(--wall-side)}.wall .f-side{fill:var(--wall-side2);stroke:var(--wall-side2)}.wall .w-stripe{stroke:none}.wall .w-stripe.me{fill:var(--stripe-me)}.wall .w-stripe.opp{fill:var(--stripe-opp)}.wall .w-edge{stroke-width:2.2px;stroke-linecap:round;opacity:.95}.wall .w-edge.me{stroke:var(--me)}.wall .w-edge.opp{stroke:var(--opp)}.wshadow{background:var(--cast);filter:blur(2px);opacity:.8;border-radius:3px;position:absolute}.wshadow.ghost{opacity:.45;filter:blur(4px)}.wglow{animation:glowin .26s var(--ease-out);border-radius:6px;position:absolute}.wglow.me{--gc:var(--me)}.wglow.opp{--gc:var(--opp)}.wglow{box-shadow:0 0 calc(var(--cell) * .34) calc(var(--cell) * .1) color-mix(in srgb, var(--gc) 55%, transparent);background:color-mix(in srgb, var(--gc) 45%, transparent)}@keyframes glowin{0%{opacity:0}}.wall.ghost .f-top{fill:color-mix(in srgb, var(--primary) 82%, transparent);stroke:var(--primary)}.wall.ghost .f-front,.wall.ghost .f-back,.wall.ghost .f-side{fill:color-mix(in srgb, var(--primary) 60%, #000 10%);stroke:color-mix(in srgb, var(--primary) 60%, #000 10%)}.wall.ghost.invalid .f-top{fill:color-mix(in srgb, var(--primary) 30%, transparent);stroke:var(--ink);stroke-dasharray:5 4}.wall.ghost.invalid .f-front,.wall.ghost.invalid .f-back,.wall.ghost.invalid .f-side{fill:color-mix(in srgb, var(--primary) 22%, transparent);stroke:#0000}.footprint{border:2px dashed var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);box-sizing:border-box;border-radius:3px;position:absolute}.footprint.invalid{border-color:var(--ink);background:0 0}.shadow{width:calc(var(--cell) * .95);height:calc(var(--cell) * .5);background:var(--cast-pawn);filter:blur(3px);transition:transform .2s var(--ease-out), opacity .2s var(--ease-out);border-radius:50%;position:absolute;translate:-50% -50%}.shadow.active{opacity:.8;transform:scale(.86)}.pawn{width:0;height:0;position:absolute}.pawn .body{width:calc(var(--cell) * 1.14);transform-origin:50% 81.25%;transform:translate(-50%, -81.25%) scale(var(--s,1));position:absolute;top:0;left:0}.pawn .lift{transition:transform .22s var(--ease-out)}.pawn.active .lift{transform:translateY(-5%)}.pawn svg{width:100%;display:block;overflow:visible}.pawn.me{--pc:var(--me);--pc2:var(--me-2);--pm:var(--on-me)}.pawn.opp{--pc:var(--opp);--pc2:var(--opp-2);--pm:var(--on-opp)}.p-body,.p-base{fill:var(--pc)}.p-side,.p-neck{fill:var(--pc2)}.p-shine{fill:#fff;opacity:.3}.p-mark{fill:var(--pm);stroke:var(--pm)}.pawn.me .p-mark{fill:none}.pawn:not(.active) .body{filter:saturate(.85)}:root{--slab:#c2cdeb;--slab-hi:#dfe6f8;--slab-edge:#9fb0de;--slab-shadow:0 30px 50px -18px #1b2e6e45;--tile:linear-gradient(160deg, #fff 0%, #f2f5fc 100%);--tile-shadow:inset 0 -3px 0 #d8e0f4, inset 0 1px 0 #fff, 0 1.5px 2px #1b2e6e30;--tile-goal-me:linear-gradient(160deg, #f4f7ff, #e6ecfd);--tile-goal-opp:linear-gradient(160deg, #fff7f9, #fbe8ee);--wall-top:#2a3568;--wall-side:#18204a;--wall-side2:#202a5a;--cast:#16204a5c;--stripe-me:#8aa5ff;--stripe-opp:#f58aa8;--me:#2f55c8;--me-2:#1f3d99;--on-me:#fff;--opp:#b83a62;--opp-2:#86223f;--on-opp:#fff;--cast-pawn:#16204a66}.glyph.me .m,.pawn.me .p-mark{stroke:#e7ee9f}.glyph.opp .m,.pawn.opp .p-mark{fill:#ffe3ea}:root[data-theme=dark]{--slab:#080e2a;--slab-hi:#1a2350;--slab-edge:#040818;--slab-shadow:0 30px 60px -16px #000000a8;--tile:linear-gradient(160deg, #26325f 0%, #1c2652 100%);--tile-shadow:inset 0 -3px 0 #131b42, inset 0 1px 0 #35427c, 0 2px 3px #00000070;--tile-goal-me:linear-gradient(160deg, #2c3862, #232e59);--tile-goal-opp:linear-gradient(160deg, #2a3570, #222c61);--wall-top:#3a4586;--wall-side:#98a2cc;--wall-side2:#b4bce0;--cast:#0008;--stripe-me:#e5ec9e;--stripe-opp:#a9bbff;--me:#e5ec9e;--me-2:#a7ae5e;--on-me:#111a3c;--opp:#93a8ff;--opp-2:#5d74d8;--on-opp:#111a3c;--cast-pawn:#000000a8}:root[data-theme=dark] .glyph.me .m,:root[data-theme=dark] .pawn.me .p-mark{stroke:#111a3c}:root[data-theme=dark] .glyph.opp .m,:root[data-theme=dark] .pawn.opp .p-mark{fill:#111a3c}@media (prefers-color-scheme:dark){:root:not([data-theme]){--slab:#080e2a;--slab-hi:#1a2350;--slab-edge:#040818;--slab-shadow:0 30px 60px -16px #000000a8;--tile:linear-gradient(160deg, #26325f 0%, #1c2652 100%);--tile-shadow:inset 0 -3px 0 #131b42, inset 0 1px 0 #35427c, 0 2px 3px #00000070;--tile-goal-me:linear-gradient(160deg, #2c3862, #232e59);--tile-goal-opp:linear-gradient(160deg, #2a3570, #222c61);--wall-top:#3a4586;--wall-side:#98a2cc;--wall-side2:#b4bce0;--cast:#0008;--stripe-me:#e5ec9e;--stripe-opp:#a9bbff;--me:#e5ec9e;--me-2:#a7ae5e;--on-me:#111a3c;--opp:#93a8ff;--opp-2:#5d74d8;--on-opp:#111a3c;--cast-pawn:#000000a8}:root:not([data-theme]) .glyph.me .m,:root:not([data-theme]) .pawn.me .p-mark{stroke:#111a3c}:root:not([data-theme]) .glyph.opp .m,:root:not([data-theme]) .pawn.opp .p-mark{fill:#111a3c}}:root[data-theme=rose]{--slab:#ebc7d3;--slab-hi:#f8e2ea;--slab-edge:#d9a5b7;--slab-shadow:0 30px 50px -18px #6e1b3a45;--tile:linear-gradient(160deg, #fffbfc 0%, #fcf1f4 100%);--tile-shadow:inset 0 -3px 0 #f2dbe3, inset 0 1px 0 #fff, 0 1.5px 2px #6e1b3a30;--tile-goal-me:linear-gradient(160deg, #fff4f7, #fbe5ec);--tile-goal-opp:linear-gradient(160deg, #f5f7ff, #e8edfd);--wall-top:#4d2739;--wall-side:#3a1826;--wall-side2:#4a2132;--cast:#3a16245c;--stripe-me:#ff9db8;--stripe-opp:#8aa5ff;--me:#b83a62;--me-2:#86223f;--on-me:#fff;--opp:#2f55c8;--opp-2:#1f3d99;--on-opp:#fff;--cast-pawn:#3a162466}:root[data-theme=rose] .glyph.me .m,:root[data-theme=rose] .pawn.me .p-mark{stroke:#ffdcc8}:root[data-theme=rose] .glyph.opp .m,:root[data-theme=rose] .pawn.opp .p-mark{fill:#e4ebff}@container (width<=215px){.pcard.timed .turn-tag{display:none}}@container (width<=100px){.pcard .glyph{display:none}}@container (width<=145px){.turn-tag,.pips,.walls-n{display:none}.walls-txt{display:inline}}.tutorial{border-radius:var(--r-ctl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);animation:fadein .2s var(--ease-out);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:8px 8px 8px 14px;display:grid}.tut-top{display:contents}.tut-step{font-size:var(--fs-caption);letter-spacing:.08em;border-radius:var(--r-pill);background:var(--chip);color:var(--ink);order:1;padding:3px 10px;font-weight:800}.tutorial p{color:var(--ink);font-size:var(--fs-body);order:2;margin:0;line-height:1.35}.tutorial .btn{order:3;min-height:44px;padding:0 12px}.is-tut .status{display:none}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field>span,.field>legend{font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0;font-weight:700}.field>small{color:var(--muted);font-size:var(--fs-small)}.field input{font:inherit;font-size:var(--fs-lead);color:var(--ink);border-radius:var(--r-ctl);background:var(--surface);border:1px solid var(--border);box-sizing:border-box;width:100%;min-height:52px;padding:0 16px}.field input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.time-seg{grid-template-columns:repeat(4,1fr)}.time-seg .seg-btn{min-height:48px;padding:0 4px}.time-seg .seg-btn[aria-checked=true]{outline:2px solid var(--primary);outline-offset:-2px}.linkbox input{box-sizing:border-box;border-radius:var(--r-ctl);border:1px dashed var(--border);background:var(--surface-2);width:100%;min-height:52px;color:var(--ink);font:600 var(--fs-label) var(--body);text-overflow:ellipsis;padding:0 14px}.seats{gap:8px;margin:0;padding:0;list-style:none;display:grid}.seat{border-radius:var(--r-ctl);background:var(--surface);border:1px solid var(--border);transition:background-color .3s var(--ease-out), border-color .3s var(--ease-out);align-items:center;gap:12px;padding:12px 14px;display:flex}.seat.ready{background:color-mix(in srgb, var(--citron) 40%, var(--surface));border-color:var(--citron-border)}.seat.empty{color:var(--muted);background:0 0;border-style:dashed}.seat-name{min-width:0;line-height:1.2;display:grid}.seat-name b{color:var(--ink);font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.seat.empty .seat-name b{color:var(--muted);font-weight:600}.seat-name small{color:var(--muted);font-size:var(--fs-caption)}.seat-empty-dot{border:2px dashed var(--muted);border-radius:50%;flex:none;width:20px;height:20px}.chip{border-radius:var(--r-pill);font-size:var(--fs-caption);background:var(--chip);color:var(--ink-2);white-space:nowrap;margin-left:auto;padding:4px 12px;font-weight:700}.chip.on{background:var(--primary);color:var(--on-primary)}.countdown{z-index:4;background:color-mix(in srgb, var(--bg) 62%, transparent);border-radius:var(--r-card);text-align:center;place-content:center;justify-items:center;gap:6px;display:grid;position:absolute;inset:0}.countdown b{font:800 clamp(72px, 26vw, 140px)/1 var(--body);color:var(--primary);letter-spacing:-.03em;animation:cd .9s var(--ease-out)}@keyframes cd{0%{opacity:0;transform:scale(.7)}}.countdown span{font-size:var(--fs-lead);color:var(--ink);font-weight:700}.netbar{border-radius:var(--r-pill);background:var(--err-bg);color:var(--err-ink);font-size:var(--fs-small);text-align:center;grid-area:note;padding:8px 14px;font-weight:700}.pcard.away{opacity:.85}.conn{font-size:var(--fs-caption);color:var(--err-ink);align-items:center;gap:6px;font-weight:700;display:flex}.conn i{border:2px solid var(--err-ink);box-sizing:border-box;border-radius:50%;width:8px;height:8px}.clock.urgent{color:var(--err-ink)}.rematch-note{text-align:center;color:var(--ink);margin:0;font-weight:700}.result-sheet[open]{animation-duration:.28s}.result-rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.result-row{border-radius:var(--r-ctl);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.result-row.win{background:color-mix(in srgb, var(--citron) 45%, var(--surface));border-color:var(--citron-border)}.result-name{min-width:0;line-height:1.2;display:grid}.result-name b{color:var(--ink);font-size:var(--fs-body)}.result-name small{color:var(--ink-2);font-size:var(--fs-caption);letter-spacing:.04em;font-weight:700}.result-walls{color:var(--ink-2);font-size:var(--fs-small);white-space:nowrap;margin-left:auto;font-weight:600}.rules-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.rules-list li{color:var(--ink-2);line-height:1.5;font-size:var(--fs-body)}.rules-list b{color:var(--ink)}@media (height<=520px) and (orientation:landscape){.result-sheet[open]{gap:10px}.result-sheet .btn{min-height:44px}}.card-form{gap:14px;display:grid}.card-body h2{font:800 var(--fs-title)/1.2 var(--body);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;margin:0}.lead{color:var(--ink-2);font-size:var(--fs-lead);text-wrap:balance;margin:0;line-height:1.45}.screen-actions{gap:8px;margin-top:4px;display:grid}.mini-board{width:100%;max-width:clamp(200px,30dvh,300px);margin:0 auto}.mini-board .table{min-width:0}.points{gap:8px;margin:0;padding:0;list-style:none;display:grid}#welcome .card-body{gap:10px}@media (height<=520px) and (orientation:landscape){#welcome{max-width:760px}#welcome .card-body{grid-template-columns:minmax(0,46%) minmax(0,1fr);align-items:center;column-gap:24px;padding-bottom:16px}#welcome .card-body>.mini-board{grid-area:1/1/span 2;max-width:54dvh}#welcome .card-body>.lead{font-size:var(--fs-body);grid-area:1/2;align-self:end}#welcome .card-body>.points{display:none}#welcome .card-body>.screen-actions{grid-area:2/2;align-self:start}}.points li{color:var(--ink);font-weight:700;font-size:var(--fs-body);align-items:center;gap:12px;display:flex}.points .icon{width:24px;height:24px;color:var(--primary);flex:none}.avatar[data-slot=me]:not([data-state=empty]){background:var(--me);color:var(--on-me)}.avatar[data-slot=rival]:not([data-state=empty]){background:var(--opp);color:var(--on-opp)}.pawn-face{width:32px;height:32px}
