@font-face{font-family:Lilita One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lilita-one-latin-400-normal-87r-Z-Re.woff2)format("woff2"),url(/assets/lilita-one-latin-400-normal-DXkechA3.woff)format("woff")}:root{--bg:#f4f1ea;--surface:#fffdf8;--ink:#1f2328;--muted:#6b6f76;--line:#d9d3c7;--path:#c9bfae;--spot:#efe9dd;--blue:#2563eb;--blue-soft:#dbe6ff;--red:#dc2626;--red-soft:#fde0e0;--green:#0f8a4c;--green-soft:#d6f2e1;--gold:#d99a06;--target:#16a34a;--choice:#f59e0b;--blue-ink:#1d4ed8;--red-ink:#b91c1c;--green-ink:#0b6b3e;--chip-g:#0b6b3e;--chip-b:#1d4ed8;--chip-r:#b91c1c;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--radius:12px;--toy:"Lilita One", ui-rounded, system-ui, sans-serif;--edge:#1f232b;--radius-lg:18px;--go:#ffc83d;--go-ink:#1f232b;--tap:40px;--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);color:var(--ink);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#15171b;--surface:#1e2127;--ink:#e8e6e1;--muted:#9aa0a8;--line:#333842;--path:#4a505b;--spot:#272b33;--blue:#4f86ff;--blue-soft:#1d2b4d;--red:#f05252;--red-soft:#4a1f22;--green:#2fbf71;--green-soft:#173a28;--green-ink:#6fdba0;--chip-g:#1d8a52;--gold:#e0a918;--blue-ink:#86a9ff;--red-ink:#ff8a8a;--chip-b:#2f5fd0;--chip-r:#c53030;--edge:#050608;--go:#f5b82e}}*{box-sizing:border-box}body{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100vh;margin:0}h1,h2,h3{margin:0 0 .6rem}h1,h2{font-family:var(--toy);letter-spacing:.005em;font-weight:400;line-height:1.1}h1{font-size:clamp(1.9rem,5vw,2.6rem)}h2{font-size:1.45rem}h3{justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.95rem;display:flex}h3 small{color:var(--muted);font-weight:400}a{color:inherit}button{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;touch-action:manipulation;border-radius:8px;padding:.45rem .9rem}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.primary.file-pick{background:var(--go);color:var(--go-ink);border:2px solid var(--edge);font-family:var(--toy);letter-spacing:.01em;box-shadow:0 4px 0 var(--edge);border-radius:12px;margin-bottom:4px;padding:.45rem 1.1rem;font-size:1.1rem;font-weight:400;transition:translate 80ms ease-out,box-shadow 80ms ease-out}button.primary:active:not(:disabled){box-shadow:0 1px 0 var(--edge);translate:0 3px}button.primary:disabled{box-shadow:0 2px 0 var(--edge)}button.primary:focus-visible,.toy-button:focus-visible{outline:3px solid var(--choice);outline-offset:3px}.toy-button{border:2px solid var(--edge);background:var(--surface);color:var(--ink);box-shadow:0 3px 0 var(--edge);border-radius:999px;justify-content:center;align-items:center;gap:.35rem;margin-bottom:3px;padding:.35rem .85rem;font-weight:700;text-decoration:none;transition:translate 80ms ease-out,box-shadow 80ms ease-out;display:inline-flex}.toy-button:active{box-shadow:0 1px 0 var(--edge);translate:0 2px}.brand{font-family:var(--toy);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;font-weight:400}.brand .b,.brand .r{-webkit-text-stroke:.1em var(--edge);paint-order:stroke fill}.brand .b{color:var(--blue)}.brand .r{color:var(--red);margin-left:.18em}button.link{color:var(--muted);background:0 0;border:0;padding:0;font-size:.8rem;text-decoration:underline}@media (hover:hover){button:hover:not(:disabled):not(.primary){border-color:var(--muted)}button.primary:hover:not(:disabled){filter:brightness(1.05)}}input,select{font:inherit;border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);border-radius:8px;padding:.45rem .6rem;font-size:max(1rem,16px)}.hint{color:var(--muted);margin:.3rem 0;font-size:.85rem}.error{color:var(--red);font-weight:600}.text-b{color:var(--blue)}.text-r{color:var(--red)}.short{display:none}@media (pointer:coarse){button{min-height:var(--tap)}button.link{min-height:0;padding:.4rem 0}}input.game-password{font-family:var(--mono);letter-spacing:.02em}.page-top{grid-template-columns:auto 1fr auto;align-items:center;gap:.4rem 1rem;margin-bottom:.4rem;display:grid}.page-title{min-width:0;display:grid}.page-title h1{margin:0}.page-kicker{color:var(--muted);font-size:.85rem;font-weight:700}.page-kicker .brand{font-size:1.15rem}.page-top .back-button{justify-self:start}.page-top .lang-toggle{place-self:start end}@media (max-width:560px){.page-top{grid-template-columns:1fr auto}.page-top .back-button{grid-area:1/1}.page-top .lang-toggle{grid-area:1/2;align-self:center}.page-title{grid-area:2/1/3/3}}.home{max-width:520px;padding:calc(2rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(2rem + var(--safe-bottom)) calc(1rem + var(--safe-left));gap:1.2rem;margin:0 auto;display:grid}.chip{color:#fff;border-radius:6px;padding:.1rem .5rem;display:inline-block}.chip.b{background:var(--blue)}.chip.r{background:var(--red)}.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-lg);gap:.7rem;padding:1.2rem;display:grid}.card label{gap:.3rem;font-size:.9rem;font-weight:600;display:grid}.card label.radio{align-items:center;gap:.5rem;font-weight:400;display:flex}.card label.radio input{width:auto}fieldset{border:1px solid var(--line);border-radius:8px;gap:.4rem;display:grid}legend{padding:0 .3rem;font-size:.9rem;font-weight:600}.home-guide{border:2px solid var(--target)}.home-guide p{margin:.2rem 0}.home-guide a{font-weight:700}@media (pointer:coarse){.card label.radio{min-height:var(--tap)}.card label.radio input{width:1.2rem;height:1.2rem}}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.home{padding-top:calc(1rem + var(--safe-top));gap:1rem}.card{padding:1rem}}.menu{max-width:720px;padding:calc(.75rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(2.5rem + var(--safe-bottom)) calc(1rem + var(--safe-left));gap:1.75rem;margin:0 auto;display:grid}:is(html:has(.menu),body:has(.menu)){overflow-x:clip}.menu-lang{justify-self:end}.menu-hero{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.1rem clamp(0rem,1.5vw,1rem);display:grid}.army{height:clamp(104px,25vw,176px);position:relative}.army img{filter:drop-shadow(0 5px #0003);-webkit-user-select:none;user-select:none;width:auto;height:100%;position:absolute;bottom:0}.army.b img:first-child{right:52%;translate:0 6%;rotate:-16deg}.army.b img:nth-child(2){right:26%;translate:0 2%;rotate:-8deg}.army.b img:nth-child(3){right:0;rotate:2deg}.army.r img:first-child{left:0;rotate:-2deg}.army.r img:nth-child(2){left:26%;translate:0 2%;rotate:8deg}.army.r img:nth-child(3){left:52%;translate:0 6%;rotate:16deg}.army.r img:first-child{z-index:3}.army.r img:nth-child(2){z-index:2}.menu-logo{font-family:var(--toy);text-transform:uppercase;letter-spacing:.01em;z-index:4;justify-items:center;margin:0;font-size:clamp(2.6rem,10.5vw,5.4rem);font-weight:400;line-height:.84;display:grid;position:relative;rotate:-4deg}.menu-logo span{-webkit-text-stroke:.09em var(--edge);paint-order:stroke fill;text-shadow:0 .07em 0 var(--edge)}.menu-logo .b{color:var(--blue)}.menu-logo .r{color:var(--red);font-size:1.12em}.menu-tagline{text-align:center;color:var(--muted);text-wrap:balance;grid-column:1/-1;justify-self:center;max-width:34rem;margin:0}@media (prefers-reduced-motion:no-preference){.army.b{animation:.75s cubic-bezier(.2,1.3,.4,1) both menu-charge-b}.army.r{animation:.75s cubic-bezier(.2,1.3,.4,1) both menu-charge-r}.menu-logo{animation:.5s cubic-bezier(.3,1.6,.5,1) .45s both menu-clash}}@keyframes menu-charge-b{0%{transform:translate(-55vw)}}@keyframes menu-charge-r{0%{transform:translate(55vw)}}@keyframes menu-clash{0%{opacity:0;transform:scale(.4)}}.menu-play{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 1rem;padding-top:1.4rem;display:grid}.mode{border:3px solid var(--edge);background:var(--surface);color:var(--ink);box-shadow:0 6px 0 var(--edge);-webkit-tap-highlight-color:transparent;border-radius:18px;grid-template:"pic title""pic text"1fr/auto 1fr;align-items:start;column-gap:.85rem;padding:.85rem 1rem .95rem .6rem;text-decoration:none;transition:translate 80ms ease-out,box-shadow 80ms ease-out;display:grid;position:relative}.mode:active{box-shadow:0 2px 0 var(--edge);translate:0 4px}.mode:focus-visible{outline:3px solid var(--choice);outline-offset:4px}.mode .mode-pic{grid-area:pic;width:4.6rem;margin-top:-2.4rem;display:flex}.mode .mode-pic img{filter:drop-shadow(0 4px #00000038);width:100%;height:auto;rotate:-6deg}.mode .mode-pic.pair{width:6.2rem}.mode .mode-pic.pair img{width:62%}.mode .mode-pic.pair img+img{margin-left:-24%;rotate:7deg}.mode-title{font-family:var(--toy);grid-area:title;font-size:1.45rem;line-height:1.05}.mode-text{color:var(--muted);grid-area:text;margin-top:.2rem;font-size:.92rem}@media (hover:hover){.mode:hover .mode-pic img{translate:0 -3px;rotate:-10deg}.mode:hover .mode-pic.pair img+img{rotate:11deg}.mode .mode-pic img{transition:rotate .15s ease-out,translate .15s ease-out}}.mode.friend{background:var(--blue);color:#fff;grid-column:1/-1;padding-block:1.1rem 1.2rem}.mode.friend .mode-pic{width:6.2rem;margin-top:-3.4rem}.mode.friend .mode-title{font-size:clamp(1.8rem,6vw,2.4rem)}.mode.friend .mode-text{color:#ffffffe0;font-size:1rem}@media (prefers-color-scheme:dark){.mode.friend{background:#2f5fd0}}.menu-learn{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;display:flex}.menu-learn-call{font-family:var(--toy);margin-right:.2rem;font-size:1.15rem}.learn-link{border:2px dashed var(--path);color:var(--ink);text-align:center;min-height:var(--tap);border-radius:999px;padding:.45rem .95rem;line-height:1.2;text-decoration:none;display:grid}.learn-link small{color:var(--muted);font-size:.78rem}.learn-link:focus-visible{outline:3px solid var(--choice);outline-offset:2px}@media (hover:hover){.learn-link:hover{border-style:solid;border-color:var(--ink)}}.menu-more{flex-wrap:wrap;justify-content:center;gap:.4rem 1.6rem;display:flex}.more-link{color:var(--ink);text-underline-offset:.2em;padding:.4rem 0;font-weight:700}.menu-resume{width:min(100%,26rem);color:var(--muted);justify-self:center;font-size:.92rem}.menu-resume summary{cursor:pointer;text-align:center;padding:.4rem 0;list-style-position:inside}.menu-resume form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);gap:.7rem;margin-top:.6rem;padding:1rem;display:grid}.menu-resume form .hint{margin:0}.menu-resume label{gap:.3rem;font-size:.9rem;font-weight:600;display:grid}@media (max-width:560px){.menu{gap:1.5rem}.menu-hero{margin-inline:-1rem;overflow-x:clip}.menu-logo{font-size:clamp(2.9rem,13vw,4rem)}.menu-play{grid-template-columns:1fr;gap:1.9rem}.menu-learn-call{text-align:center;flex-basis:100%;margin:0}.mode-title{font-size:1.35rem}}.menu-start{box-sizing:border-box;border-radius:var(--radius-lg);width:100%;color:var(--go-ink,#1f232b);background:var(--go,#ffd43b);border:3px solid var(--edge);box-shadow:0 4px 0 var(--edge);align-items:center;gap:.8rem;margin:0 0 .9rem;padding:.75rem 1rem;text-decoration:none;display:flex}.menu-start:active{box-shadow:0 1px 0 var(--edge);transform:translateY(3px)}.menu-start-icon{flex:none;font-size:1.8rem}.menu-start-text{flex-direction:column;min-width:0;display:flex}.menu-start-text b{font-family:var(--toy);font-size:1.2rem;font-weight:400}.menu-start-text small{opacity:.85;font-size:.85rem}.menu-start-go{margin-left:auto;font-size:1.4rem;font-weight:900}.newgame{max-width:1240px;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(2rem + var(--safe-bottom)) calc(1rem + var(--safe-left));grid-template-columns:minmax(0,1fr);gap:1rem;margin:0 auto;display:grid}.newgame h1{margin:0}.newgame h2{font-size:1.35rem}.ng-terrains h2{margin-bottom:.5rem}.ng-strip{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.45rem;display:grid}.ng-card{text-align:left;border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);grid-template-rows:auto 1fr auto;align-content:start;gap:.3rem;padding:.3rem .3rem .4rem;transition:transform .12s,border-color .12s,box-shadow .12s;display:grid}.ng-card.selected{border-color:var(--edge);box-shadow:0 4px 0 var(--edge);transform:translateY(-2px)}@media (hover:hover){.ng-card:hover:not(.selected){border-color:var(--muted);transform:translateY(-2px)}}.ng-card:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.ng-thumb{aspect-ratio:1200/1992;background:var(--spot);pointer-events:none;border-radius:8px;display:block;overflow:hidden}.ng-thumb svg{width:100%;height:100%;display:block}.ng-card{min-width:0}.ng-card-name{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;font-size:.74rem;font-weight:700;line-height:1.2}.ng-card-goal{color:var(--muted);font-size:.7rem}.ng-dice rect{fill:var(--surface);stroke:var(--ink);stroke-width:4px}.ng-dice circle{fill:var(--ink)}.ng-card.random .ng-thumb{background:repeating-linear-gradient(45deg, var(--spot) 0 12px, var(--bg) 12px 24px);place-items:center;display:grid}.ng-main{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.2rem;scroll-margin-top:.5rem;display:grid}.ng-preview{justify-items:center;gap:.4rem;margin:0;display:grid;position:sticky;top:1rem}.ng-board{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:100%;overflow:hidden}.ng-preview .board{width:auto;max-width:100%;height:min(58vh,540px);display:block}.ng-preview .board .node{cursor:default}.ng-preview figcaption{color:var(--muted);text-align:center;font-size:.85rem}.ng-preview-random{aspect-ratio:1200/1992;border-radius:var(--radius);border:2px dashed var(--line);background:repeating-linear-gradient(45deg, var(--spot) 0 16px, var(--bg) 16px 32px);place-items:center;height:min(58vh,540px);display:grid}.ng-preview-random svg{width:70%}.ng-side{gap:1rem;display:grid}.ng-info h2{margin-bottom:.2rem}.ng-info h3{margin:.4rem 0 .2rem;font-size:.9rem}.ng-info p{margin:0}.ng-description{font-size:1rem;line-height:1.5}.ng-facts{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.ng-facts li{background:var(--spot);border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;font-size:.82rem}.ng-facts li.goal{background:color-mix(in srgb, var(--gold) 18%, var(--surface));border-color:color-mix(in srgb, var(--gold) 50%, var(--line));font-weight:700}.ng-rule{border-left:4px solid var(--gold);padding-left:.7rem}.ng-rule.off{border-left-color:var(--line)}.ng-rule.off>p:not(.hint){color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent)}.ng-keybases ul{flex-wrap:wrap;gap:.4rem;margin:.3rem 0 0;padding:0;list-style:none;display:flex}.ng-keybases button{border-radius:999px;padding:.3rem .7rem;font-size:.85rem}.ng-keybases button strong{font-family:var(--mono);margin-right:.2rem}.ng-keybases button.on{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 18%, var(--surface))}.ng-settings fieldset{border:0;margin:0;padding:0}.ng-settings legend{margin-bottom:.4rem;padding:0}.ng-pill input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.ng-pill:has(input:focus-visible){outline:3px solid var(--choice);outline-offset:2px}@media (hover:hover){.ng-pill:hover:not(.selected){border-color:var(--muted)}}.ng-pills{flex-wrap:wrap;gap:.4rem;display:flex}.ng-pills legend{width:100%}.ng-pills .hint{width:100%;margin:.1rem 0 0}.card label.ng-pill{cursor:pointer;border:2px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:.3rem;padding:.4rem .9rem;font-weight:600;display:inline-flex;position:relative}.card label.ng-pill.selected{border-color:var(--ink);background:var(--ink);color:var(--bg)}.card label.ng-pill.b.selected{border-color:var(--chip-b);background:var(--chip-b);color:#fff}.card label.ng-pill.r.selected{border-color:var(--chip-r);background:var(--chip-r);color:#fff}.card label.ng-special{align-items:flex-start}.ng-special input{margin-top:.2rem}.ng-special .hint{font-size:.82rem}.ng-create{padding:.6rem 1rem;font-size:1.3rem}@media (pointer:coarse){.card label.ng-pill{min-height:var(--tap)}}@media (max-aspect-ratio:4/5){.ng-strip{scroll-snap-type:x mandatory;margin:0 calc(-1rem - var(--safe-right)) 0 calc(-1rem - var(--safe-left));padding:.2rem .1rem .6rem;scrollbar-width:thin;padding-inline:1rem;scroll-padding-inline:1rem;display:flex;overflow-x:auto}.ng-card{scroll-snap-align:start;flex:0 0 92px}.ng-main{grid-template-columns:1fr}.ng-preview{position:static}.ng-preview .board{height:44vh}.ng-preview-random{aspect-ratio:auto;width:100%;height:22vh}.ng-preview-random svg{width:auto;height:100%}}@media (orientation:landscape) and (max-height:540px){.ng-strip{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}}.ng-thumb{position:relative}.ng-badge-custom{letter-spacing:.04em;text-transform:uppercase;color:#fff;vertical-align:middle;background:#6d4bd1;border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:800;display:inline-block}.ng-thumb .ng-badge-custom{padding:.05rem .35rem;font-size:.58rem;position:absolute;bottom:4px;left:4px;box-shadow:0 1px 4px #0000004d}h2 .ng-badge-custom{margin-left:.35rem;font-size:.72rem}.ng-badge-teams{letter-spacing:.04em;color:#fff;vertical-align:middle;background:linear-gradient(90deg,#2563eb 50%,#dc2626 50%);border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:800;display:inline-block}.ng-thumb .ng-badge-teams{padding:.05rem .4rem;font-size:.6rem;position:absolute;bottom:4px;right:4px;box-shadow:0 1px 4px #0000004d}.ng-badge-teams.trio{background:linear-gradient(90deg,#2563eb 33%,#dc2626 33% 66%,#0f8a4c 66%)}.ng-badge-teams{white-space:nowrap}.ng-thumb .ng-badge-teams.trio{letter-spacing:0;padding:.05rem .3rem;font-size:.52rem}.ng-colours.four{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ng-colours.four legend,.ng-colours.four .hint{grid-column:1/-1}.card .ng-colours.four label.ng-pill{white-space:nowrap;justify-content:center;padding-inline:.4rem}@media (max-width:480px){.ng-colours.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.ng-steps{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.ng-steps li{color:var(--muted);align-items:center;gap:.4rem;font-size:.92rem;font-weight:700;display:flex}.ng-steps li+li:before{content:"";background:var(--line);border-radius:2px;width:clamp(1rem,4vw,2.5rem);height:3px}.ng-steps li.done+li:before{background:var(--edge)}.ng-steps button,.ng-steps li>span{color:inherit;font:inherit;background:0 0;border:0;align-items:center;gap:.4rem;padding:.2rem 0;display:inline-flex}.ng-steps button{cursor:pointer;text-underline-offset:.2em;text-decoration:underline}.ng-step-n{border:2px solid var(--line);background:var(--surface);width:1.7rem;height:1.7rem;font-family:var(--toy);color:var(--muted);border-radius:50%;place-items:center;font-size:1rem;font-weight:400;display:inline-grid}.ng-steps li.done{color:var(--ink)}.ng-steps li.done .ng-step-n{border-color:var(--edge);background:var(--ink);color:var(--bg)}.ng-steps li.now{color:var(--ink)}.ng-steps li.now .ng-step-n{border-color:var(--edge);background:var(--go);color:var(--go-ink);box-shadow:0 2px 0 var(--edge)}.ng-step{justify-self:center;gap:1rem;width:100%;max-width:720px;display:grid}.ng-step h2{margin:0}.ng-mode-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 1rem;padding-top:1.6rem;display:grid}button.mode{font:inherit;text-align:left;cursor:pointer;width:100%}.ng-card.off{opacity:.5;filter:grayscale(.8);cursor:not-allowed}.ng-card.off .ng-card-goal{font-size:.66rem;line-height:1.2}.ng-more{border-top:1px solid var(--line);padding-top:.6rem}.ng-more summary{cursor:pointer;font-weight:700}.ng-more[open] summary{margin-bottom:.6rem}.ng-more>*+*{margin-top:.6rem}.ng-nav{z-index:5;padding:.9rem 0 calc(.6rem + var(--safe-bottom));background:linear-gradient(transparent, var(--bg) 35%);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;bottom:0}.ng-nav .primary{min-width:12rem;font-size:1.25rem}.ng-nav.in-form{background:0 0;flex-wrap:wrap-reverse;padding:.4rem 0 0;position:static}.ng-nav.in-form .primary{flex:1}.ng-recap{flex-wrap:wrap;gap:.5rem;display:flex}.ng-recap-item{background:var(--spot);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .8rem .3rem .5rem;display:inline-flex}.ng-recap-item .mode-pic{width:1.4rem;display:flex}.ng-recap-item .mode-pic img{width:100%;height:auto}.ng-recap-item .mode-pic.pair{width:2rem}.ng-recap-item .mode-pic.pair img{width:62%}.ng-recap-item .mode-pic.pair img+img{margin-left:-24%}.ng-recap-item button.link{font-size:.85rem}.step-settings .ng-preview .board{height:min(46vh,420px)}.step-settings .ng-settings{max-width:640px}@media (max-width:560px){.ng-mode-pick{grid-template-columns:1fr;gap:1.9rem}.ng-steps li{font-size:.82rem}.ng-nav .primary{flex:1;min-width:0}.step-settings .ng-preview{display:none}}.ng-pill .ng-bot-face{object-fit:contain;vertical-align:middle;width:24px;height:32px;margin:-6px .35rem -6px -.15rem}.ng-pill .ng-bot-name{opacity:.75;font-size:.68rem;line-height:1.1;display:block}.ng-pill:has(.ng-bot-face){align-items:center;display:inline-flex}.table{box-sizing:border-box;height:100vh;--gutter:max(1rem, calc((100vw - 1720px) / 2 + 1rem));height:100dvh;min-height:600px;padding:.5rem var(--gutter) 0;grid-template:"top top top""banner banner banner""left board details"minmax(0,1fr)"tray tray tray"/clamp(200px,17vw,280px) minmax(0,1fr) clamp(260px,22vw,340px);column-gap:1rem;display:grid}.stage{display:contents}.topbar{grid-area:top}.banner{grid-area:banner}.table-left{grid-area:left}.board-wrap{grid-area:board}.tray{grid-area:tray}.details{grid-area:details}.table:not(:has(.tray)){padding-bottom:.8rem}.table-left,.details{overscroll-behavior:contain;align-content:start;gap:.6rem;min-width:0;min-height:0;padding-bottom:.6rem;display:grid;overflow-y:auto}.board-wrap{min-width:0;min-height:0;position:relative}.stack-pop{z-index:5;border-radius:var(--radius);width:min(300px,100% - 1rem);max-height:calc(100% - 1rem);position:absolute;top:.5rem;right:.5rem;overflow-y:auto;box-shadow:0 6px 24px #00000038}.details-button,.sheet-head,.sheet-backdrop{display:none}@media (max-width:1100px){.table{grid-template:"top top""banner banner""board left""board details"minmax(0,1fr)"tray tray"/minmax(0,1fr) clamp(250px,32vw,330px)}.table-left{margin-bottom:.6rem;padding-bottom:0;overflow:visible}}@media (max-aspect-ratio:4/5){.table{max-width:none;height:auto;min-height:0;padding:0;display:block}.stage{height:100vh;box-sizing:border-box;height:100dvh;padding:calc(.4rem + var(--safe-top)) calc(.5rem + var(--safe-right)) 0 calc(.5rem + var(--safe-left));flex-direction:column;gap:.4rem;display:flex}.topbar,.banner,.table-left,.tray{flex:none}.table-left.compact-hide,.table-left .opponent-card{display:none}.table-left{gap:.4rem;max-height:34%;margin-bottom:0;padding-bottom:0;overflow-y:auto}.board-wrap{flex:1 1 0;align-self:stretch}.details{padding:.6rem calc(.5rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(.5rem + var(--safe-left));overflow:visible}.table.game .topbar-tools .details-button{display:inline-grid}.table.game .details{z-index:40;background:var(--bg);visibility:hidden;border-radius:18px 18px 0 0;max-height:78dvh;padding-top:0;transition:transform .22s,visibility 0s linear .22s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -8px 24px #00000040}.table.game.sheet-open .details{visibility:visible;transition:transform .22s;transform:none}.table.game .sheet-head{z-index:1;background:var(--bg);justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem 0 .4rem;display:flex;position:sticky;top:0}.table.game .sheet-head:before{content:"";background:var(--line);border-radius:999px;width:44px;height:5px;position:absolute;top:.3rem;left:50%;transform:translate(-50%)}.sheet-backdrop{z-index:39;background:#14120e66;border:0;border-radius:0;margin:0;padding:0;display:block;position:fixed;inset:0}}@media (max-aspect-ratio:4/5) and (prefers-reduced-motion:reduce){.table.game .details,.table.game.sheet-open .details{transition:none}}@media (orientation:landscape) and (max-height:540px){.table{max-width:none;height:auto;min-height:0;padding:.4rem calc(.5rem + var(--safe-right)) .4rem calc(.5rem + var(--safe-left));grid-template:"board top""board banner""board left""board tray""board details"1fr/minmax(0,1fr) minmax(300px,44%);align-items:start;row-gap:.4rem}.table-left.compact-hide{display:none}.table-left,.details{padding-bottom:0;overflow:visible}.board-wrap{height:calc(100dvh - .8rem);position:sticky;top:.4rem}.details{padding-bottom:calc(.6rem + var(--safe-bottom))}}@media (min-width:1101px) and (min-aspect-ratio:4/5) and (min-height:541px){.table.game{grid-template:"top top top""banner banner banner""tray board left""tray board details"minmax(0,1fr)/clamp(230px,19vw,300px) minmax(0,1fr) clamp(260px,22vw,340px);padding-bottom:.8rem}.table.game .table-left.compact-hide,.table.game .table-left .opponent-card{display:none}.table.game .table-left{padding-bottom:0;overflow:visible}.table.game .tray{overscroll-behavior:contain;border:1px solid var(--wood-line);border-radius:var(--radius-lg);flex-direction:column;align-self:stretch;gap:.8rem;height:auto;min-height:0;margin:0;padding:.8rem .7rem;display:flex;overflow-y:auto;box-shadow:0 4px 14px #503c1e1f}.table.game .tray-hand{order:1;align-self:stretch}.table.game .tray .pile{order:2;justify-content:center}.table.game .tray-turn{order:0}.table.game .tray .hand-caption{white-space:normal;text-align:center;border-radius:12px;height:auto;min-height:1.25rem;padding:.3rem .7rem}.table.game .tray .hand-caption.turn-line,.table.game .tray .hand-caption.picking{flex-wrap:wrap;width:auto}.table.game .tray .turn-line-text{white-space:normal}.table.game .tray .panel.hand{justify-content:flex-start;gap:.3rem}.table.game .tray .rack{flex-wrap:wrap;justify-content:center;gap:.6rem}.table.game .tray.curtain .tray-turn{width:100%}}.topbar{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:.5rem;display:flex}.map-title{flex-direction:column;min-width:0;line-height:1.15;display:flex}.map-title h1{letter-spacing:-.01em;margin:0;font-size:clamp(1.2rem,2.6vw,1.7rem)}.map-kicker{letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:800}.map-kicker .brand{font-size:1.15em}.map-goal{color:var(--muted);font-size:.8rem}.table .map-goal{display:none}.scores{flex-wrap:wrap;gap:.5rem;margin-left:auto;display:flex}.score{border:2px solid #0000;border-radius:999px;padding:.25rem .6rem;font-size:.9rem}.score.b{background:var(--blue-soft)}.score.r{background:var(--red-soft)}.score.active.b{border-color:var(--blue)}.score.active.r{border-color:var(--red)}.score small{color:var(--muted)}.dot{background:var(--muted);opacity:.5;border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}.dot.on{background:var(--target);opacity:1}.bot-tag{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:4px;margin-right:.3rem;padding:0 .3rem;font-size:.65rem;font-weight:700}.topbar-tools{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;display:flex}.topbar-tools .icon{margin-right:.3em}.sound-toggle,.guide-button,.lang-toggle,.settings-button{border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.sound-toggle,.lang-toggle{color:var(--muted)}.sound-toggle.on{color:var(--ink);border-color:var(--target)}.guide-button{font-weight:700}.conn{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.conn.open{color:var(--target);border-color:var(--target)}.conn.finished{color:var(--ink);background:var(--spot)}.table .topbar{flex-wrap:nowrap}.table .map-title{flex:0 auto}.table .map-title h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table .scores,.table .topbar-tools{flex-wrap:nowrap;flex:none}@media (max-width:1300px){.table .topbar-tools{gap:.3rem}.table .topbar-tools button{width:var(--tap);height:var(--tap);border-radius:50%;place-items:center;min-height:0;padding:0;font-size:1rem;display:inline-grid}.table .topbar-tools .details-button{display:none}.table .topbar-tools .icon{margin:0}.table .topbar-tools .label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.table .topbar-tools .short{font-size:.8rem;font-weight:700;display:inline}.table .conn.open{display:none}}.sheet-tools{display:none}@media (max-aspect-ratio:4/5){.table.game .topbar-tools>.sound-toggle,.table.game .topbar-tools>.lang-toggle{display:none}.table.game .sheet-tools{flex-wrap:wrap;gap:.5rem;display:flex}}.banner{border-radius:var(--radius);color:#fff;margin-bottom:.6rem;padding:.7rem 1rem;font-weight:700}.banner.b{background:var(--blue)}.banner-head{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.banner-title{font-size:1.05rem}.banner-toggle{display:none}.banner-more{flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin-top:.5rem;display:flex}.banner-more>*{margin-top:0!important}.banner.r{background:var(--red)}.timing{flex-wrap:wrap;gap:.3rem 1.4rem;margin:.5rem 0 0;font-size:.9rem;font-weight:500;display:flex}.timing div{gap:.35rem;display:flex}.timing dt{opacity:.8}.timing dd{margin:0;font-weight:700}.timing .timing-note{opacity:.8;flex-basis:100%;font-size:.75rem;font-weight:400}.record{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem;font-weight:400;display:flex}.record-button{color:#1f2328;background:#fff;border:0;padding:.3rem .8rem;font-size:.85rem}.record-error{font-size:.85rem}.update-banner{z-index:10;padding:calc(.5rem + var(--safe-top)) 1rem .5rem;background:var(--ink);color:var(--bg);justify-content:center;align-items:center;gap:.8rem;font-size:.9rem;display:flex;position:sticky;top:0}.update-banner button{padding:.2rem .8rem;font-size:.85rem}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"home title tools""scores scores scores";gap:.4rem .5rem;margin-bottom:0;display:grid}.home-button{grid-area:home}.map-title{grid-area:title}.topbar-tools{flex-wrap:nowrap;grid-area:tools;gap:.3rem}.scores{grid-area:scores;grid-template-columns:1fr 1fr;gap:.4rem;margin:0;display:grid}.map-title h1{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.map-kicker{text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.map-goal{display:none}.home-button,.topbar-tools button{width:var(--tap);height:var(--tap);border-radius:50%;place-items:center;min-height:0;padding:0;font-size:1rem;display:inline-grid}.topbar-tools .icon{margin:0}.topbar .label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar .short{font-size:.8rem;font-weight:700;display:inline}.sound-toggle:not(.on) .icon{opacity:.6;text-decoration:line-through}.conn.open{display:none}.score{text-align:center;white-space:nowrap;text-overflow:ellipsis;padding:.2rem .4rem;font-size:.82rem;overflow:hidden}.score small{font-size:.72rem}.score .bot-tag{margin-right:.15rem;padding:0 .2rem}.banner{margin-bottom:0;padding:.45rem .7rem .5rem;font-size:.9rem}.banner-title{font-size:1rem;line-height:1.25}.banner-reason{opacity:.9;font-size:.8rem;font-weight:600;display:block}.banner-toggle{color:#fff;background:#0000002e;border:1px solid #ffffff80;border-radius:999px;flex:none;align-self:center;padding:.2rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.banner:not(.open) .banner-more{display:none}.banner .match-line{margin-top:.2rem;font-size:.9rem}.banner .rematch{flex-wrap:nowrap;gap:.4rem;margin-top:.4rem}.banner .rematch-button{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;padding:.35rem .5rem;font-size:.85rem;overflow:hidden}.banner .rematch-note{display:none}.banner-more{font-size:.82rem}}.rematch{flex-wrap:wrap;gap:.5rem;margin-top:.7rem;display:flex}.rematch-button{border-radius:999px;padding:.4rem .9rem;font-size:.95rem}.banner .rematch-button:not(.primary){color:#1f2328;background:#ffffffeb;border-color:#0000}.score{align-items:center;gap:.45rem;display:inline-flex}.score-meter{background:#0000001f;border-radius:999px;flex:none;width:46px;height:6px;display:inline-block;overflow:hidden}.score-meter i{background:var(--gold);border-radius:inherit;height:100%;transition:width .4s;display:block}.score-hand{flex:none;align-items:center;gap:2px;display:inline-flex}.score-hand i{opacity:.8;border-radius:1.5px;width:6px;height:9px}.score.b .score-hand i{background:var(--blue)}.score.r .score-hand i{background:var(--red)}.score.g .score-hand i{background:var(--green)}.score .ic-pinned{font-size:.75rem;font-weight:600}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.score{text-overflow:clip;grid-template-columns:auto auto;justify-content:center;align-items:center;gap:.15rem .4rem;line-height:1.2;display:grid}.score .score-main{grid-column:1/-1;justify-self:center}.score-meter{width:40px}.scores.three{grid-template-columns:repeat(3,minmax(0,1fr))}.scores.three .score{padding:.15rem .25rem;font-size:.76rem}.score .score-main{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}.score .match-wins{white-space:nowrap;font-size:.78em;font-weight:800}.banner .match-line{margin:.35rem 0 0;font-size:1rem}.banner .match-line b{font-size:1.15em}.settings-menu{position:relative}.settings-button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted);place-items:center;list-style:none;display:inline-grid}.settings-button::-webkit-details-marker{display:none}.settings-menu[open] .settings-button{color:var(--ink);border-color:var(--ink)}.settings-pop{z-index:20;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;align-items:stretch;gap:.4rem;padding:.5rem;display:flex;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 8px 24px #00000026}.conn.open{display:none}@media (max-aspect-ratio:4/5){.table.game .settings-menu{display:none}}.score .bot-face{vertical-align:middle;align-items:center;gap:.25rem;margin-right:.2rem;display:inline-flex}.score .bot-face img{object-fit:contain;filter:drop-shadow(0 1px 1px #0000004d);width:22px;height:30px;margin:-6px 0}.score .bot-name{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:800}.banner-mvp{align-items:center;gap:.5rem;margin:.35rem 0 0;font-size:.92rem;font-weight:600;display:flex}.banner-mvp img{object-fit:contain;filter:drop-shadow(0 2px 3px #00000059);flex:none;width:30px;height:40px}.banner-stats{flex-direction:column;flex-basis:100%;gap:.15rem;margin:0;padding:0;font-size:.88rem;font-weight:600;list-style:none;display:flex}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.banner-mvp{margin-top:.2rem;font-size:.8rem}.banner-mvp img{width:22px;height:30px}}.board-wrap{place-items:start center;display:grid;container-type:size}.board-wrap>svg.board{box-sizing:border-box;width:100%;width:min(100cqw, 100cqh * var(--board-r,.6));height:auto;aspect-ratio:var(--board-r,.6);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:block;overflow:hidden}.board{-webkit-user-select:none;user-select:none}.board .node{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.board .paths line{stroke:var(--path);stroke-width:7px;stroke-linecap:round}.board .paths polygon{stroke:var(--path);stroke-width:5px;stroke-linejoin:round}.board .medal circle{fill:var(--gold)}.board .medal text{fill:#fff;text-anchor:middle;font-size:15px;font-weight:800}.board .medal.taken circle{fill:var(--line)}.board .node{cursor:pointer;outline:none}.board .hit{fill:#0000}.board .node:focus-visible .spot,.board .node:focus-visible .hq-body{stroke:var(--ink);stroke-width:4px}.board .spot{fill:var(--spot);stroke:var(--path);stroke-width:2px}.board .special-ring{fill:none;stroke:var(--gold);stroke-width:2.5px;stroke-dasharray:5 4}.board .special-pill rect{fill:var(--gold)}.board .special-pill text{fill:#fff;text-anchor:middle;letter-spacing:.04em;font-size:11px;font-weight:800}.board .hq-body{stroke-width:3px}.board .hq-body.b{fill:var(--blue-soft);stroke:var(--blue)}.board .hq-body.r{fill:var(--red-soft);stroke:var(--red)}.board .hq-label{text-anchor:middle;fill:var(--ink);font-size:14px;font-weight:800}.board .node-id{fill:var(--muted);font-size:11px;font-weight:700}.board.themed{display:block}.board .node-tag rect{fill:#141418b8}.board .node-tag text{fill:#fff;text-anchor:middle;font-size:13px;font-weight:800;font-family:var(--mono)}.board .terrain-hq.b{--hq:var(--blue);--hq-ink:var(--blue-ink);--hq-soft:#9fbaff}.board .terrain-hq.r{--hq:var(--red);--hq-ink:var(--red-ink);--hq-soft:#ffaaa5}.board .terrain-hq.g{--hq:var(--green);--hq-ink:var(--green-ink);--hq-soft:#8fdcb0}.board .terrain-hq .hq-shadow{fill:#00000040}.board .terrain-hq .hq-wall{fill:var(--hq);stroke:var(--hq-ink);stroke-width:3px}.board .terrain-hq .hq-crenels{fill:none;stroke:var(--hq-soft);stroke-width:4px;stroke-dasharray:6 5}.board .terrain-hq .hq-court{fill:#e9e3d6;stroke:var(--hq-ink);stroke-width:2.5px}.board .terrain-hq .hq-flagstones{stroke:#0000001a;stroke-width:1.5px}.board .terrain-hq .hq-gate{fill:#4a3424;stroke:var(--hq-ink);stroke-width:2px}.board .terrain-hq .hq-tower{fill:var(--hq)}.board .terrain-hq .hq-tower-top{fill:var(--hq-ink)}.board .terrain-hq .hq-tower-rim{fill:none;stroke:#fff;stroke-width:2.5px;stroke-dasharray:5 3.5}.board .terrain-hq .hq-pole{stroke:#5c4632;stroke-width:2.5px;stroke-linecap:round}.board .terrain-hq .hq-cloth{fill:var(--hq);stroke:#fff;stroke-width:1.8px;stroke-linejoin:round}.board .terrain-hq .hq-emblem>*{fill:#fff}.board .terrain-hq .hq-flag{transform-box:fill-box;transform-origin:0%;animation:2.4s ease-in-out infinite hq-flag}@keyframes hq-flag{0%,to{transform:skewY(0)scaleX(1)}50%{transform:skewY(-5deg)scaleX(.93)}}@media (prefers-reduced-motion:reduce){.board .terrain-hq .hq-flag{animation:none}}.board.themed .hq-label{fill:#5b5146;letter-spacing:.08em;font-size:15px}.board.themed .special-ring{stroke:#ffd43b;stroke-width:4px;stroke-dasharray:7 5;filter:drop-shadow(0 0 2px #0009)}.board.themed .special-pill rect{fill:#e8a400;stroke:#fff;stroke-width:1.5px}.board .special-icon circle{fill:#fff8e1;stroke:#e8a400;stroke-width:2.5px;filter:drop-shadow(0 1px 2px #00000059)}.board .special-icon text{text-anchor:middle;fill:#8a5a00;font-size:14px;font-weight:800}.board .medal-star{pointer-events:auto}.board .medal-star .star-halo{fill:#fff;stroke:#fff;stroke-width:8px;stroke-linejoin:round;opacity:.9}.board .medal-star .star-body{fill:#ffc21a;stroke:#b07800;stroke-width:2.5px;stroke-linejoin:round}.board .medal-star text{text-anchor:middle;fill:#5a3a00;font-size:16px;font-weight:900}.board .medal-star.taken .star-halo{opacity:.45}.board .medal-star.taken .star-body{fill:#b8b2a6;stroke:#7c766b}.board .medal-star.taken text{fill:#fff;font-size:15px}.board.themed .halo{stroke-width:7px;filter:drop-shadow(0 0 2px #ffffffe6)}.board.themed .last-ring{stroke:#fff;stroke-width:4px;opacity:.95;filter:drop-shadow(0 0 1.5px #000c)}.board.themed .node:focus-visible .hit{stroke:#fff;stroke-width:4px}.board .halo{fill:none;stroke-width:5px}.board .place .halo,.board .cover .halo,.board .reinforce .halo{stroke:var(--target)}.board .cover .halo{stroke-width:6px}.board .preview .halo{stroke:var(--target);stroke-width:3px;stroke-dasharray:3 6;opacity:.8}.board .ontop circle{fill:var(--target);stroke:var(--surface);stroke-width:2px}.board .ontop.reinforce circle{fill:var(--surface);stroke:var(--target);stroke-width:2.5px}.board .ontop path{fill:none;stroke:#fff;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.board .ontop.reinforce path{stroke:var(--target)}@media (prefers-reduced-motion:no-preference){.board .place .halo,.board .cover .halo,.board .reinforce .halo,.board .choice .halo{animation:1.4s ease-in-out infinite halo-pulse}}@keyframes halo-pulse{50%{opacity:.45}}.board .choice .halo{stroke:var(--choice);stroke-dasharray:8 5}.board .origin .spot,.board .origin .hq-body{stroke:var(--choice);stroke-width:4px}.board .inspected .spot{stroke:var(--ink);stroke-width:3px}.board .depth circle{fill:var(--ink)}.board .depth text{fill:var(--bg);text-anchor:middle;font-size:12px;font-weight:800}.board .last-ring{fill:none;stroke:var(--ink);stroke-width:3px;stroke-dasharray:2 6;stroke-linecap:round;opacity:.8;pointer-events:none}.board .focus-ring{fill:none;stroke:var(--gold);stroke-width:6px;pointer-events:none}.tile circle,.tile rect{stroke:#00000040;stroke-width:2px}.tile.b circle{fill:var(--blue)}.tile.r rect{fill:var(--red)}.tile text{fill:#fff;text-anchor:middle;font-weight:800;font-family:var(--mono)}.tile .tile-kind{letter-spacing:.02em;font-size:13px}.tile .tile-strength{font-size:13px}.tile.rim circle,.tile.rim rect{stroke:var(--surface);stroke-width:2.5px}.tile.rim.b circle{fill:var(--blue-ink)}.tile.rim.r rect{fill:var(--red-ink)}.tile.art image{filter:drop-shadow(0 1.5px 1.5px #00000073)}.tile.art .seat-mark circle,.tile.art .seat-mark rect{stroke:#fff;stroke-width:1.6px}.tile.art.b .seat-mark circle{fill:var(--blue)}.tile.art.r .seat-mark rect{fill:var(--red)}.tile.rim.art.b rect{fill:var(--blue-ink)}.port-mark{pointer-events:none;font-size:18px}.tile .player-mark circle{fill:#fff;stroke:currentColor;stroke-width:2px}.tile.b .player-mark{color:var(--blue)}.tile.r .player-mark{color:var(--red)}.tile .player-mark text{text-anchor:middle;fill:currentColor;font-size:11px;font-weight:900}.board .region-focus polygon{fill:#ffc21a47;stroke:#e09b00;stroke-width:6px;stroke-dasharray:14 9;stroke-linejoin:round;animation:1.2s linear infinite region-dash}@keyframes region-dash{to{stroke-dashoffset:-23px}}.board .node.in-region .hit{fill:#ffc21a24;stroke:#e09b00;stroke-width:5px;stroke-opacity:1;r:44px}.board .region-hits circle{fill:#0000;cursor:pointer}.board .region-hits circle:focus-visible{stroke:var(--ink);stroke-width:3px;outline:none}.board .region-hits circle.on{stroke:#e09b00;stroke-width:4px}@media (prefers-reduced-motion:reduce){.board .region-focus polygon{animation:none}}.board .region-hits circle:focus{outline:none}.board .region-focus polygon{fill:#ffc21a6b;stroke-width:9px}.board .node.drop-over .halo{stroke-width:9px;opacity:1;animation:none}.board .node.drop-over .hit{fill:color-mix(in srgb, var(--target) 22%, transparent)}.board .node.drop-over:not(.place):not(.cover):not(.reinforce) .hit{fill:color-mix(in srgb, var(--red) 18%, transparent)}.board .gain-badge{pointer-events:none;transform-box:view-box;transform-origin:0 0;animation:1.4s ease-in-out infinite gain-bob}.board .gain-badge rect{fill:#ffc21a;stroke:#fff;stroke-width:3px;filter:drop-shadow(0 2px 3px #00000059)}.board .gain-badge text{text-anchor:middle;fill:#5a3a00;font-size:20px;font-weight:900}.board .gain-badge.win rect{fill:#fff;stroke:var(--target)}@keyframes gain-bob{50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.board .gain-badge{animation:none}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:.8rem}.panel summary{cursor:pointer;font-size:.95rem;font-weight:600}.panel.invite{border:2px dashed var(--gold)}.panel.turn.b{border-left:5px solid var(--blue)}.panel.turn.r{border-left:5px solid var(--red)}.panel.turn.my-move{box-shadow:0 0 0 3px var(--target)}.status{margin:0 0 .5rem;font-weight:600}.actions{flex-wrap:wrap;gap:.4rem;display:flex}.tile-button{align-items:center;gap:.3rem;display:inline-flex}.your-move-badge{background:var(--target);color:#fff;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;margin-bottom:.4rem;padding:.05rem .55rem;font-size:.75rem;font-weight:800;display:inline-block}.todo{gap:.35rem;margin:0 0 .5rem;padding-left:1.2rem;display:grid}.todo li{line-height:1.35}.target-key{color:var(--muted);flex-wrap:wrap;gap:.3rem .9rem;margin:.45rem 0 0;font-size:.8rem;display:flex}.target-key span{align-items:center;gap:.3rem;display:inline-flex}.key-ring{border:3px solid var(--target);border-radius:50%;width:14px;height:14px;display:inline-block}.key-badge{border-radius:50%;place-items:center;width:14px;height:14px;font-size:9px;font-weight:900;line-height:1;display:inline-grid}.key-badge.cover{background:var(--target);color:#fff}.key-badge.reinforce{border:2px solid var(--target);color:var(--target)}.last-move-key{align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.last-move-swatch{border:2.5px dotted var(--ink);border-radius:50%;width:14px;height:14px;display:inline-block}.rack{flex-wrap:wrap;gap:.35rem;display:flex}.rack-tile{background:0 0;border:2px solid #0000;border-radius:10px;padding:.15rem;position:relative}.rack-tile.selected{border-color:var(--target);background:var(--spot)}.rack-tile.idle{opacity:.55}.rack.my-move .rack-tile:not(.idle):not(.selected){border-color:var(--target);border-style:dashed}.rack-tile.pinned{opacity:.4;border-style:dashed;border-color:var(--gold)}.rack-tile .pin-mark{color:var(--gold);background:var(--bg);border-radius:4px;padding:0 .2rem;font-size:.6rem;font-weight:800;position:absolute;bottom:-.35rem;left:50%;transform:translate(-50%)}.mini{width:48px;height:48px;display:block}.rack.small{align-items:center;margin-bottom:.3rem}.rack.small .mini,.stack .mini,.tile-button .mini{width:34px;height:34px}.mini.art{width:44px;height:59px}.rack.small .mini.art,.stack .mini.art,.tile-button .mini.art{width:30px;height:40px}.end-seat{min-width:4.5rem;font-size:.8rem;font-weight:700}.end-seat.b{color:var(--blue)}.end-seat.r{color:var(--red)}.stack{gap:.2rem;margin:0;padding-left:1.4rem;display:grid}.stack li{align-items:center;gap:.4rem;display:flex}.stacks{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.stacks li{border-radius:6px;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.2rem .3rem;display:flex}.stacks li:focus-within{background:var(--spot)}@media (hover:hover){.stacks li:hover{background:var(--spot)}}.stacks button.node-chip{cursor:pointer}.stacks .over{color:var(--muted);font-size:.75rem}.stacks .height{color:var(--muted);margin-left:auto;font-size:.75rem}.legend{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.82rem}.legend td{border-top:1px solid var(--line);vertical-align:top;padding:.25rem .3rem}.troop-table td{vertical-align:middle}.troop-table .troop-pic{width:52px;padding:.3rem .3rem .3rem 0}.troop-table .troop-pic .mini{width:40px;height:40px}.troop-table .troop-pic .mini.art{width:40px;height:54px}.troop-table .troop-name{white-space:nowrap}.troop-table .troop-strength{background:var(--spot);border-radius:999px;place-items:center;min-width:1.4rem;height:1.4rem;margin-left:.35rem;padding:0 .25rem;font-size:.78rem;font-weight:700;display:inline-grid}.special-chip{color:var(--gold)}.copy-row{gap:.4rem;display:flex}.copy-row input{min-width:0;font-size:max(.8rem,16px)}.toast{left:50%;bottom:calc(1.2rem + var(--safe-bottom));z-index:60;background:var(--ink);color:var(--bg);border-radius:10px;max-width:90vw;padding:.6rem 1rem;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.table-left .panel,.details .panel{padding:.55rem .7rem}.toast{top:calc(.6rem + var(--safe-top));bottom:auto}}.seat-button{border-width:2px;font-weight:700}.seat-button.b{border-color:var(--blue);color:var(--blue)}.seat-button.r{border-color:var(--red);color:var(--red)}.opponent-card.teammate{border-style:dashed}.opponent-card header{flex-wrap:wrap}.opponent-card.teammate .who small{color:var(--muted);font-weight:600}.holder-seat{font-weight:800}.holder-seat.b{color:var(--blue-ink)}.holder-seat.r{color:var(--red-ink)}.medals-panel h4{margin:.6rem 0 .3rem;font-size:.85rem}.win-rules{gap:.25rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:grid}.win-rules .hint{margin-top:.15rem}.region-list{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.region-row{text-align:left;border:2px solid var(--line);background:var(--bg);width:100%;font:inherit;cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"medals bases""medals holders""medals progress";align-items:center;gap:.15rem .6rem;padding:.4rem .55rem;font-size:.82rem;display:grid}.region-row.on{background:color-mix(in srgb, #ffc21a 18%, var(--bg));border-color:#e09b00}.region-row.taken{opacity:.6}.region-medals{color:#b07800;grid-area:medals;min-width:2.2ch;font-size:1.05rem;font-weight:900}.region-bases{flex-wrap:wrap;grid-area:bases;gap:.2rem;display:flex}.region-holders{flex-wrap:wrap;grid-area:holders;gap:.5rem;font-weight:700;display:inline-flex}.region-held.b{color:var(--blue-ink)}.region-held.r{color:var(--red-ink)}.region-held.g{color:var(--green-ink)}.region-held.free{color:var(--muted);font-weight:600}.region-progress{color:var(--muted);grid-area:progress}.region-progress.close{color:var(--target);font-weight:700}@media (hover:hover){.region-row:not(.on):hover{border-color:var(--muted)}}.region-card{gap:.3rem;display:grid}.region-card header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.region-card p{flex-wrap:wrap;gap:.6rem;margin:0;font-size:.85rem;display:flex}.stack-pop.region-pop.below{top:auto;bottom:.5rem}.region-card{padding:.5rem .7rem}.region-card header b{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.region-card .region-medals{font-size:1rem}.region-card header .link{padding:0 .3rem;font-size:1rem;text-decoration:none}.share-invite{flex-wrap:wrap;align-items:center;gap:.4rem .7rem;margin-top:.5rem;display:flex}.share-password{font-family:var(--mono)}:root{--wood-top:#e2d6bf;--wood-bottom:#d6c7aa;--wood-line:#c8b796;--wood-ink:#4a3f2c;--card:#fffdf8;--card-h:clamp(60px, 8vh, 96px);--card-w:calc(var(--card-h) * .742);--lift:10px}@media (prefers-color-scheme:dark){:root{--wood-top:#3a3328;--wood-bottom:#2e2820;--wood-line:#4d4434;--wood-ink:#d8ccb4;--card:#2a2620}}.tray{margin:.5rem calc(-1 * var(--gutter,1rem)) 0;padding:.35rem var(--gutter,1rem) calc(.5rem + var(--safe-bottom));box-sizing:border-box;height:calc(var(--card-h) + var(--lift) + 1.25rem + 8px + .85rem + var(--safe-bottom));background:linear-gradient(var(--wood-top), var(--wood-bottom));border-top:1px solid var(--wood-line);grid-template-columns:auto minmax(0,1fr) clamp(300px,27vw,420px);grid-template-areas:"pile hand turn";align-items:end;gap:1.4rem;display:grid;position:relative;box-shadow:0 -6px 18px #503c1e1f}.tray .pile{grid-area:pile}.tray-hand{grid-area:hand}.tray-turn{overscroll-behavior:contain;grid-area:turn;align-self:stretch;min-height:0;overflow-y:auto}.tray-turn .panel{box-sizing:border-box;min-height:100%;padding:.5rem .75rem;font-size:.86rem}.tray-turn .status{margin-bottom:.25rem;font-size:1rem;line-height:1.3}.tray-turn .todo{gap:.1rem;margin-bottom:.25rem}.tray-turn .hint,.tray-turn .target-key{margin:.2rem 0 0;font-size:.78rem}.tray-turn .your-move-badge{float:right;margin:0 0 .2rem .4rem;font-size:.68rem}.tray-turn .panel.turn.my-move{box-shadow:0 0 0 2px var(--target)}.tray .long,.tray .last-move-key{display:none}.tray .status-short{display:block}.tray.curtain .tray-turn{grid-column:1/-1;justify-self:center;width:min(520px,100%)}.tray:not(:has(>.tray-turn)){grid-template-columns:auto minmax(0,1fr);grid-template-areas:"pile hand"}.hand-caption.turn-line,.hand-caption.picking{border:1.5px solid #0000;justify-content:center;align-items:center;gap:.5rem;width:-moz-fit-content;width:fit-content;font-weight:700;display:flex}.turn-line-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.hand-caption.turn-line.b{color:var(--blue-ink)}.hand-caption.turn-line.r{color:var(--red-ink)}.hand-caption.turn-line.g{color:var(--green-ink)}.hand-caption.turn-line.mine{border-color:var(--target);color:#14532d;background:#dcfce7}.hand-caption.turn-line.asking{background:var(--ink);color:var(--bg);border-color:var(--ink)}.turn-line-button{background:var(--surface);min-height:0;color:var(--ink);border:1.5px solid;border-radius:999px;flex:none;padding:.05rem .65rem;font-size:.78rem;font-weight:700}.hand-caption .spinner{vertical-align:-.1em;width:.8em;height:.8em}@media (prefers-color-scheme:dark){.hand-caption.turn-line.mine{color:#dcfce7;background:#14532d}}.pile{align-items:flex-end;gap:.7rem;padding-bottom:.1rem;display:flex}.pile-backs{width:calc(var(--card-w) * .8 + 8px);height:calc(var(--card-h) * .8 + 8px);position:relative}.pile-backs i{width:calc(var(--card-w) * .8);height:calc(var(--card-h) * .8);box-sizing:border-box;border:2px solid #fff;border-radius:8px;position:absolute;box-shadow:0 2px 5px #00000047}.pile-backs i:first-child{top:0;left:8px}.pile-backs i:nth-child(2){top:4px;left:4px}.pile-backs i:nth-child(3){top:8px;left:0}.pile.b .pile-backs i,.tile-backs.b i{background:repeating-linear-gradient(45deg,#2f5fd0 0 5px,#3b6fe0 5px 10px)}.pile.r .pile-backs i,.tile-backs.r i{background:repeating-linear-gradient(45deg,#b91c1c 0 5px,#d43a3a 5px 10px)}.pile-side{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.pile{position:relative}.pile-count{left:calc(var(--card-w) * .8 - 6px);z-index:1;box-sizing:border-box;background:var(--surface);min-width:1.5rem;height:1.5rem;color:var(--ink);border:2px solid var(--edge,#1f232b);border-radius:999px;place-items:center;padding:0 .3rem;font-size:.78rem;font-weight:800;display:grid;position:absolute;top:-6px}.pile-draw{white-space:nowrap}.tray-hand{align-self:stretch;min-width:0;display:flex}.tray-hand .panel.hand{background:0 0;border:0;flex-direction:column;justify-content:flex-end;width:100%;min-width:0;padding:0;display:flex}.hand-caption{box-sizing:border-box;max-width:100%;height:1.25rem;color:var(--wood-ink);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;margin:0 auto;padding:0 .7rem;font-size:.8rem;line-height:1.25rem;overflow:hidden}.hand-caption small{color:inherit;opacity:.8}.panel.hand:has(.rack-tile.selected) .hand-caption{background:var(--ink);color:var(--bg)}.tray .rack{padding-top:var(--lift);flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:.7rem}.tray .rack>.hint{color:var(--wood-ink);margin:0 0 1rem}.tray .rack-tile{background:var(--card);border:2px solid var(--wood-line);border-radius:10px;flex:none;padding:2px;transition:transform .15s,box-shadow .15s;box-shadow:0 3px 8px #0000002e}.tray .rack-tile .mini{width:var(--card-w);height:var(--card-w)}.tray .rack-tile .mini.art{height:var(--card-h)}.tray .rack-tile.idle{opacity:.6}.tray .rack-tile.pinned{border-style:dashed;border-color:var(--gold)}.tray .rack.my-move .rack-tile:not(.idle):not(.selected){border-style:solid;border-color:var(--target);box-shadow:0 0 0 3px #16a34a38,0 3px 8px #0000002e}@media (hover:hover){.tray .rack-tile:not(:disabled):not(.selected):hover{transform:translateY(-5px)}}.tray .card-back{width:var(--card-w);height:var(--card-h);color:#fff;text-shadow:0 1px 2px #0009;border-radius:6px;place-items:center;font-size:1.1rem;font-weight:800;display:grid}.tray .card-back.b{background:repeating-linear-gradient(45deg,#2f5fd0 0 5px,#3b6fe0 5px 10px)}.tray .card-back.r{background:repeating-linear-gradient(45deg,#b91c1c 0 5px,#d43a3a 5px 10px)}.hand-caption.picking{background:var(--ink);color:var(--bg);font-weight:600}.tray .rack-tile.selected{z-index:2;border:2px solid var(--target);background:var(--card);transform:translateY(calc(-1 * var(--lift)));position:relative;box-shadow:0 0 0 4px #16a34a4d,0 8px 14px #00000040}@media (prefers-reduced-motion:reduce){.tray .rack-tile{transition:none}}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.tray{--card-h:clamp(62px, 8vh, 96px);--lift:8px;height:auto;margin:0 calc(-.5rem - var(--safe-right)) 0 calc(-.5rem - var(--safe-left));padding:.35rem calc(.5rem + var(--safe-right)) calc(.45rem + var(--safe-bottom)) calc(.5rem + var(--safe-left));grid-template-columns:auto minmax(0,1fr);grid-template-rows:3.1rem calc(var(--card-h) + var(--lift) + 2.6rem);grid-template-areas:"turn turn""pile hand";gap:.3rem .6rem}.tray-turn{overflow:hidden}.tray-turn .panel{align-items:center;gap:.5rem;padding:.3rem .5rem .3rem .6rem;display:flex}.tray-turn .status{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:auto;min-width:0;margin:0;font-size:.88rem;line-height:1.25;display:-webkit-box;overflow:hidden}.tray-turn .status.long{display:none}.tray-turn .panel:has(.actions:not(:empty)) .your-move-badge{display:none}.tray-turn .actions{flex-wrap:nowrap;flex:none;margin:0}.tray-turn .actions:empty{display:none}.tray-turn .actions button{min-height:0;padding:.35rem .7rem}.tray-turn .your-move-badge{float:none;flex:none;order:3;align-self:flex-start;margin:0}.tray .target-key{display:none}.tray.curtain .tray-turn{grid-row:1/-1;align-self:center;overflow:visible}.tray.curtain .tray-turn .panel{flex-direction:column;align-items:stretch}.pile{flex-direction:column;align-items:center;gap:.35rem;padding-bottom:.2rem}.pile-backs{width:42px;height:48px}.pile-backs i{border-radius:6px;width:34px;height:44px}.pile-backs i:first-child{top:0;left:6px}.pile-backs i:nth-child(2){top:2px;left:3px}.pile-backs i:nth-child(3){top:4px;left:0}.pile-side{align-items:center;gap:.25rem}.pile-count{min-width:1.3rem;height:1.3rem;font-size:.68rem;top:-6px;left:30px}.tray:not(:has(>.tray-turn)){grid-template-rows:calc(var(--card-h) + var(--lift) + 2.6rem);grid-template-areas:"pile hand"}.hand-caption.turn-line,.hand-caption.picking{max-width:100%;height:auto;min-height:2.1em;padding:.15rem .6rem}.hand-caption .turn-line-text{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box}.pile-draw{min-height:var(--tap);padding:.35rem .6rem;font-size:.85rem}.hand-caption{white-space:normal;text-align:center;-webkit-line-clamp:2;line-clamp:2;border-radius:10px;-webkit-box-orient:vertical;height:2.5em;padding:0 .5rem;font-size:.74rem;line-height:1.25;display:-webkit-box}.tray .rack{padding:var(--lift) .3rem .15rem;justify-content:center;gap:0;overflow:visible;container-type:inline-size}.tray .rack-tile{border-radius:8px;min-height:0;padding:2px}.tray .rack-tile+.rack-tile{margin-left:clamp(calc(var(--card-w) * -.62), calc((100cqw - var(--n,1) * (var(--card-w) + 8px)) / max(1, var(--n,1) - 1)), -4px)}.tray .rack-tile .mini{width:var(--card-w);height:var(--card-w)}.tray .rack-tile .mini.art{height:var(--card-h)}}@media (orientation:landscape) and (max-height:540px){.tray{border-radius:var(--radius);border:1px solid var(--wood-line);margin:0;padding-bottom:.4rem}}.opponent-card header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.opponent-card .who{font-weight:800}.opponent-card.b .who{color:var(--blue-ink)}.opponent-card.r .who{color:var(--red-ink)}.opponent-card.active.b{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.opponent-card.active.r{border-color:var(--red);box-shadow:0 0 0 2px var(--red-soft)}.opponent-card header small{color:var(--muted);white-space:nowrap}.opponent-card .hint{margin:.3rem 0 0;font-size:.8rem}.tile-backs{flex-wrap:wrap;gap:.4rem;min-height:50px;margin:.7rem 0 0;display:flex}.tile-backs i{box-sizing:border-box;border:2px solid #fff;border-radius:6px;width:37px;height:50px;box-shadow:0 1px 4px #00000040}.tile-backs i.pinned{opacity:.45;outline:2px dashed var(--gold);outline-offset:1px}.medal-meter{align-items:center;gap:.6rem;margin-top:.7rem;font-size:.85rem;display:flex}.medal-meter>span:first-child{font-weight:700}.meter{background:var(--spot);border-radius:999px;flex:1;height:9px;overflow:hidden}.meter span{background:var(--gold);border-radius:inherit;height:100%;transition:width .3s;display:block}.tray .card-back{position:relative}.tray .card-back .card-back-who{text-align:center;font-size:.55rem;font-weight:700;line-height:1;position:absolute;top:3px;left:0;right:0}.tray .rack-tile.draggable{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media (hover:hover){.tray .rack-tile.draggable{cursor:grab}}.tray .rack-tile.dragging{opacity:.3}.drag-ghost{z-index:100;pointer-events:none;will-change:transform;contain:layout;width:76px;position:fixed;top:0;left:0}.drag-ghost-tile{filter:drop-shadow(0 14px 10px #00000059);transition:transform .12s ease-out;transform:translate(-50%,-78%)rotate(-7deg)scale(1.1)}.drag-ghost .mini{width:100%;height:auto;display:block}.drag-ghost-tile.drop-over{transform:translate(-50%,-78%)rotate(0)scale(1.2)}@media (prefers-reduced-motion:reduce){.drag-ghost-tile{transition:none}}.log{gap:.45rem;max-height:360px;padding-right:2px;display:grid;overflow-y:auto}.turn-block{border-left:4px solid var(--line);background:var(--spot);border-radius:8px;padding:.35rem .55rem .45rem}.turn-block.b{border-left-color:var(--blue);background:color-mix(in srgb, var(--blue-soft) 55%, var(--surface))}.turn-block.r{border-left-color:var(--red);background:color-mix(in srgb, var(--red-soft) 55%, var(--surface))}.turn-block.current{box-shadow:0 0 0 1px var(--line)}.turn-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.72rem;font-weight:700;display:flex}.turn-head .who{font-size:.78rem}.turn-head .you,.turn-head .now{letter-spacing:.08em;border:1px solid;border-radius:999px;margin-left:.4rem;padding:0 .4rem;font-size:.65rem}.turn-head .now{color:var(--target)}.turn-block ol{gap:.3rem;margin:.25rem 0 0;padding:0;list-style:none;display:grid}.ev{font-size:.92rem;line-height:1.7}.ev.quiet{color:var(--muted);font-size:.8rem;line-height:1.5}.ev-GameOver{font-weight:800}.ev-RegionTaken{font-weight:600}.log .ev.pointable{cursor:default}@media (hover:hover){.log .ev.pointable:hover{background:var(--spot);border-radius:6px}}.ability{font-style:italic}.who{white-space:nowrap;font-weight:800}.who .glyph{margin-right:.2em;font-size:.85em}.who.b{color:var(--blue-ink)}.who.r{color:var(--red-ink)}.troop-chip{font-family:var(--mono);letter-spacing:.04em;color:#fff;white-space:nowrap;vertical-align:baseline;background:var(--ink);align-items:center;gap:.3em;padding:.05em .25em .05em .5em;font-size:.95rem;font-weight:800;line-height:1.35;display:inline-flex}.troop-chip.b{background:var(--chip-b);border-radius:999px}.troop-chip.r{background:var(--chip-r);border-radius:4px}.troop-chip.n{background:var(--muted);border-radius:4px}.troop-str{text-align:center;background:#ffffff3d;border-radius:999px;min-width:1.35em;padding:0 .3em;font-size:.8em}.troop-chip.r .troop-str{border-radius:3px}.node-chip{font-family:var(--mono);border:1px solid var(--path);background:var(--surface);border-radius:4px;padding:0 .35em;font-size:.85rem;font-weight:700}.medal-chip{background:var(--gold);color:#1f1300;white-space:nowrap;border-radius:999px;padding:.05em .55em;font-size:.8rem;font-weight:800}@media (max-aspect-ratio:4/5){.log{max-height:none;overflow:visible}}.guide-overlay{z-index:50;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.guide-dialog{background:var(--bg);color:var(--ink);border-radius:var(--radius);width:min(760px,100%);max-height:calc(100vh - 2rem);overscroll-behavior:contain;max-height:calc(100dvh - 2rem);overflow-y:auto;box-shadow:0 12px 40px #00000059}.guide-dialog-head{z-index:1;background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem 1rem;display:flex;position:sticky;top:0}.guide-dialog-head h2{margin:0;font-size:1.15rem}.guide{gap:1rem;padding:1rem;line-height:1.5;display:grid}.guide-page{max-width:820px;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left));margin:0 auto}.guide-page .guide{padding:0}.guide .intro{margin:0;font-size:1.02rem}.guide section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem}.guide section h3{margin-bottom:.4rem;font-size:1.02rem}.guide section p{margin:.3rem 0}.guide section ul{margin:.3rem 0;padding-left:1.2rem}.guide section li{margin:.2rem 0}.guide .highlight-rule{background:var(--blue-soft);border-radius:6px;padding:0 .25rem;font-weight:600}.guide-figure{flex-wrap:wrap;gap:.6rem 1rem;margin:.6rem 0 .2rem;display:flex}.guide-figure figure{justify-items:center;gap:.2rem;margin:0;display:grid}.guide-figure svg{width:92px;height:92px}.guide-figure svg.wide{width:300px;max-width:100%;height:92px}.guide-figure svg.tall{width:84px;height:120px}.guide-figure svg.big{width:130px;height:130px}.guide-figure figcaption{color:var(--muted);text-align:center;max-width:140px;font-size:.78rem}.guide-figure figcaption.ok:before{content:"✓ ";color:var(--target);font-weight:800}.guide-figure figcaption.no:before{content:"✗ ";color:var(--red);font-weight:800}.guide-figure .x-mark{stroke:var(--red);stroke-width:5px;stroke-linecap:round}.guide-figure .ok-mark{stroke:var(--target);stroke-width:5px;stroke-linecap:round;fill:none}.guide-share{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.guide-share input{flex:1;min-width:200px}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.guide-overlay{padding:0}.guide-dialog{border-radius:0;width:100%;height:100%;max-height:none}.guide-dialog-head{padding:calc(.6rem + var(--safe-top)) calc(.8rem + var(--safe-right)) .6rem calc(.8rem + var(--safe-left))}.guide-dialog-head h2{font-size:1.05rem}.guide{padding:.8rem calc(.8rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(.8rem + var(--safe-left));gap:.8rem}.guide section{padding:.7rem .8rem}.guide-share input{min-width:0}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.learn h2{margin:1.6rem 0 .6rem;font-size:1.2rem}.learn h3{text-align:left;margin:0 0 .3rem;font-size:1rem;display:block}.learn p{line-height:1.5}.learn-intro{font-size:1.02rem}.learn-cta{flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin:.8rem 0;display:flex}.learn-cta .primary{padding:.6rem 1.1rem;font-size:1.05rem}.win-cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem;display:grid}.win-card,.strategy,.troop-use,.lesson-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .9rem}.win-card p,.strategy p,.troop-use p{margin:.2rem 0;font-size:.92rem}.win-icon{margin-bottom:.2rem;font-size:1.6rem;display:block}.lesson-list{counter-reset:lesson;gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.lesson-list li{counter-increment:lesson;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;padding:.5rem .9rem;display:flex}.lesson-list li:before{content:counter(lesson);color:var(--muted);min-width:1.4rem;font-weight:800}.lesson-list a{font-weight:700}.lesson-goal{color:var(--muted);flex:1;min-width:12rem;font-size:.88rem}.lesson-list li.done{border-color:var(--target)}.lesson-list li.done:before{color:var(--target)}.done-mark{color:var(--target);font-weight:800}.strategy-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.6rem;display:grid}.strategy-n{background:var(--blue-soft);width:1.4rem;height:1.4rem;color:var(--blue-ink);border-radius:50%;place-items:center;margin-right:.2rem;font-size:.8rem;display:inline-grid}.troop-uses{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.6rem;display:grid}.troop-use header{align-items:center;gap:.6rem;margin-bottom:.3rem;display:flex}.troop-use header svg{flex:none;width:44px;height:44px}.troop-use header .hint{margin:0;font-size:.82rem}.troop-use h3 small{color:var(--muted);font-weight:600}.learn-links{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:1.6rem;display:flex}.guide-tutorial{background:var(--blue-soft);border-radius:var(--radius);padding:.6rem .9rem;font-weight:600}.lesson-bar .map-title h1{font-size:1.15rem}.lesson-card p{margin:.3rem 0;line-height:1.45}.lesson-goal-line{background:var(--blue-soft);border-radius:8px;padding:.35rem .6rem}.lesson-hint{color:var(--ink);font-weight:600}.lesson-card .actions,.lesson-result .actions{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.lesson-result{border-width:2px;outline:none}.lesson-result h2{margin:0 0 .3rem;font-size:1.15rem}.lesson-result p{margin:.3rem 0;line-height:1.45}.lesson-result.done{border-color:var(--target)}.lesson-result.done h2{color:var(--target)}.lesson-result.wrong{border-color:var(--choice)}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.lesson-card p,.lesson-result p{font-size:.9rem}.lesson-bar .map-title h1{font-size:1rem}}@media (max-aspect-ratio:4/5){.lesson .specials-off{display:none}}.lesson-result .puzzle-streak{margin:.4rem 0 0;font-weight:700}.review-button{color:#1f2328;background:#fff;border:0;padding:.3rem .8rem;font-size:.85rem;font-weight:700}.verdict{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .45rem;font-size:.78rem;font-weight:700;display:inline-flex}.verdict b{font-family:var(--mono)}.verdict.best{background:color-mix(in srgb, var(--target) 18%, transparent);color:var(--target)}.verdict.good{background:color-mix(in srgb, var(--blue) 14%, transparent);color:var(--blue-ink)}.verdict.inaccuracy{background:color-mix(in srgb, var(--gold) 22%, transparent);color:color-mix(in srgb, var(--gold) 70%, var(--ink))}.verdict.mistake{background:color-mix(in srgb, var(--choice) 22%, transparent);color:color-mix(in srgb, var(--choice) 65%, var(--ink))}.verdict.blunder{background:color-mix(in srgb, var(--red) 16%, transparent);color:var(--red-ink)}.verdict.forced{background:var(--spot);color:var(--muted)}.review-bar .map-title h1{font-size:1.15rem}.seat-switch{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.seat-switch button{border:0;border-radius:0;padding:.3rem .7rem;font-size:.85rem}.seat-switch button.on.b{background:var(--blue);color:#fff}.seat-switch button.on.r{background:var(--red);color:#fff}.review-move{border-left:5px solid var(--line)}.review-move.best{border-left-color:var(--target)}.review-move.good{border-left-color:var(--blue)}.review-move.inaccuracy{border-left-color:var(--gold)}.review-move.mistake{border-left-color:var(--choice)}.review-move.blunder{border-left-color:var(--red)}.review-move header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.review-turn{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.review-line{margin:.2rem 0}.review-label{min-width:6.5rem;color:var(--muted);font-size:.85rem;display:inline-block}.review-line.better strong{color:var(--target)}.review-cost{margin:.25rem 0;font-size:.85rem;font-weight:600}.review-facts{gap:.25rem;margin:.4rem 0 .2rem;padding:0;list-style:none;display:grid}.review-facts li{padding-left:1.3rem;font-size:.92rem;line-height:1.4;position:relative}.review-facts li:before{font-weight:800;position:absolute;left:0}.review-facts li.good:before{content:"+";color:var(--target)}.review-facts li.bad:before{content:"!";color:var(--red)}.review-facts li.note:before{content:"~";color:var(--blue-ink)}.review-gains{color:var(--muted);margin:.3rem 0 0;font-size:.88rem}.review-nav{align-items:stretch;gap:.4rem;min-width:0;display:flex}.review-step{flex:none;width:3rem;padding:0;font-size:1.25rem;font-weight:800}.review-nav>.review-play{flex:auto;min-width:0}.table.review .table-left .review-nav{z-index:1;background:var(--bg);padding-bottom:.3rem;position:sticky;top:0}.table.review .table-left{overflow-x:hidden}.review-move{overflow-wrap:anywhere}.review-holder h3{margin-bottom:.3rem}.review-holder .rack{flex-wrap:wrap;gap:.3rem;display:flex}.review-legend{margin:0}.review-progress progress{width:100%;height:.6rem}.review-accuracy{align-items:baseline;gap:.5rem;display:flex}.review-accuracy b{font-size:2.2rem;line-height:1}.verdict-counts{flex-wrap:wrap;gap:.3rem .8rem;margin:.4rem 0 .8rem;padding:0;list-style:none;display:flex}.verdict-counts li{align-items:center;gap:.3rem;display:flex}.review-advice{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.review-advice p{margin:.15rem 0;font-size:.9rem;line-height:1.4}.turn-link{margin-right:.5rem;font-size:.82rem}.review-list{gap:.2rem;max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.review-list button{text-align:left;background:0 0;border-color:#0000;grid-template-columns:4.2rem 1fr auto;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;display:grid}.review-list button.current{border-color:var(--ink);background:var(--surface)}.review-what{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.file-pick{cursor:pointer;background:var(--ink);color:var(--bg);border-radius:8px;margin:.4rem 0 .8rem;padding:.55rem 1rem;font-weight:600;display:inline-block}.file-pick input{opacity:0;width:1px;height:1px;position:absolute}.file-pick:focus-within{outline:2px solid var(--blue);outline-offset:2px}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.review-label{min-width:0;margin-right:.3rem}.review-facts li{font-size:.86rem}.review-bar .map-title h1{font-size:1rem}.review-list{max-height:none}}.table.review{grid-template-columns:clamp(260px,23vw,360px) minmax(0,1fr) clamp(260px,22vw,340px)}@media (max-width:1100px){.table.review{grid-template-columns:minmax(0,1fr) clamp(260px,34vw,340px)}}@media (max-aspect-ratio:4/5){.table.review .table-left{max-height:42%}}.review-play{flex-direction:column;align-items:center;gap:.1rem;min-height:3rem;font-weight:700;line-height:1.15;display:inline-flex}.review-play small{color:var(--muted);font-size:.7rem;font-weight:500}.review-play.on{border-color:var(--target);box-shadow:0 0 0 2px var(--target)}.board .fx-layer{pointer-events:none}.board .fx-drop,.board .fx-set,.board .fx-fly,.board .fx-shadow,.board .fx-under,.board .fx-slide,.board .alive,.board .react,.board .fx-layer *{transform-box:view-box;transform-origin:0 0}.board .fx-set{animation:fx-set .4s cubic-bezier(.3, .7, .4, 1.3) var(--fx-at,0s) both}@keyframes fx-set{0%{transform:scale(1.18)}55%{transform:scale(.93)}to{transform:none}}.board .fx-drop{animation:fx-drop .55s cubic-bezier(.25, .8, .35, 1.15) var(--fx-at,0s) both}@keyframes fx-drop{0%{opacity:0;transform:translateY(-54px)scale(1.3)}35%{opacity:1}62%{transform:translate(0)scale(.92)}80%{transform:scale(1.05)}to{opacity:1;transform:none}}.board .fx-fly{animation:fx-fly .75s linear var(--fx-at,0s) both}@keyframes fx-fly{0%{transform:translate(var(--sx), var(--sy)) scale(.55) rotate(-14deg);opacity:0;animation-timing-function:cubic-bezier(.2,.6,.4,1)}8%{opacity:1}44%{transform:translate(calc(var(--sx) * .3), calc(var(--sy) * .3 - 120px)) scale(1.45) rotate(6deg);animation-timing-function:cubic-bezier(.6,0,.9,.5)}68%{transform:translateY(9px)scale(1.2,.76)}80%{transform:translateY(-7px)scale(.93,1.09)}91%{transform:translateY(1px)scale(1.03,.98)}to{opacity:1;transform:none}}.board .fx-shadow{fill:#00000073;animation:fx-shadow .75s linear var(--fx-at,0s) both}@keyframes fx-shadow{0%{opacity:0;transform:scale(.2)}44%{opacity:.15;transform:scale(.55)}68%{opacity:.55;transform:scale(1.15)}to{opacity:0;transform:scale(1)}}.board .fx-under{animation:fx-under 1s ease-in var(--fx-at,0s) both}@keyframes fx-under{0%,48%{opacity:1;filter:none;transform:none}55%{filter:brightness(.55);transform:translateY(10px)scale(1.12,.7)}to{opacity:0;filter:brightness(.55);transform:translateY(8px)scale(.86)}}.board .fx-dust{fill:#ffffffe6;stroke:#0000002e;stroke-width:1.5px;animation:fx-dust .55s ease-out calc(var(--fx-at,0s) + .5s) both}@keyframes fx-dust{0%{opacity:0;transform:translate(24px)scale(.4)}15%{opacity:1}to{opacity:0;transform:translate(60px,-6px)scale(1.2)}}.board .fx-rope{stroke:#7c4a1e;stroke-width:4px;stroke-dasharray:var(--len) var(--len);animation:fx-rope 1.1s linear var(--fx-at,0s) both}@keyframes fx-rope{0%{stroke-dashoffset:var(--len);opacity:1}45%{stroke-dashoffset:0;opacity:1}75%{opacity:1}to{stroke-dashoffset:0;opacity:0}}.board .fx-slide{animation:fx-slide .6s cubic-bezier(.5, 0, .3, 1) var(--fx-at,0s) both}@keyframes fx-slide{0%{transform:translate(var(--dx), var(--dy))}to{transform:none}}.board .fx-trail{stroke:#fff;stroke-width:6px;stroke-linecap:round;stroke-dasharray:2 12;animation:fx-fade .9s ease-out var(--fx-at,0s) both}.board .fx-ripple{fill:none;stroke-width:7px;animation:fx-ripple .8s ease-out calc(var(--fx-at,0s) + .5s) both}.board .fx-ripple.b{stroke:var(--blue)}.board .fx-ripple.r{stroke:var(--red)}@keyframes fx-ripple{0%{opacity:0;transform:scale(.7)}10%{opacity:.95}to{opacity:0;transform:scale(1.9)}}.board .fx-shock{fill:#fff6c2b3;stroke:#f59e0b;stroke-width:2px;animation:fx-shock .45s ease-out calc(var(--fx-at,0s) + .5s) both}.board .fx-shock.late{animation-delay:calc(var(--fx-at,0s) + .3s)}@keyframes fx-shock{0%{opacity:0;transform:scale(.4)rotate(0)}20%{opacity:.8}to{opacity:0;transform:scale(1.35)rotate(20deg)}}.board .fx-gone{animation:fx-gone .9s ease-in var(--fx-at,0s) both}@keyframes fx-gone{0%{opacity:1;transform:none}12%{transform:translate(-4px)rotate(-4deg)}24%{transform:translate(4px)rotate(4deg)}36%{filter:saturate(.3);transform:translate(-3px)rotate(-2deg)}to{opacity:0;filter:saturate(.3);transform:translate(14px,46px)rotate(38deg)scale(.5)}}.board .fx-cross path{fill:none;stroke:var(--red);stroke-width:7px;stroke-linecap:round}.board .fx-cross{animation:fx-cross .7s ease-out calc(var(--fx-at,0s) + .1s) both}@keyframes fx-cross{0%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.3)}}.board .fx-lift{animation:fx-lift .9s cubic-bezier(.5, 0, .7, .4) var(--fx-at,0s) both}@keyframes fx-lift{0%{opacity:1;transform:none}30%{transform:translateY(6px)scale(1.08)}to{opacity:0;transform:translateY(-80px)scale(.6)}}.board .fx-crumble{animation:fx-crumble 1s ease-in calc(var(--fx-at,0s) + var(--fx-i,0) * 80ms) both}@keyframes fx-crumble{0%{opacity:1;transform:none}10%,30%{transform:translate(-3px)rotate(-3deg)}20%,40%{transform:translate(3px)rotate(3deg)}to{opacity:0;transform:translateY(60px)rotate(-30deg)scale(.6)}}.board .fx-medal-ring{fill:none;stroke-width:6px;animation:fx-ripple 1s ease-out var(--fx-at,0s) both}.board .fx-medal-ring.b{stroke:var(--blue)}.board .fx-medal-ring.r{stroke:var(--red)}.board .fx-rays line{stroke:#ffd43b;stroke-width:5px;stroke-linecap:round}.board .fx-rays{animation:fx-rays .8s ease-out var(--fx-at,0s) both}@keyframes fx-rays{0%{opacity:0;transform:scale(.5)rotate(0)}25%{opacity:1}to{opacity:0;transform:scale(1.4)rotate(22deg)}}.board .fx-gain text{text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round;font-size:30px;font-weight:900}.board .fx-gain.b text{fill:var(--blue)}.board .fx-gain.r text{fill:var(--red)}.board .fx-gain{animation:fx-gain 1.4s ease-out var(--fx-at,0s) both}@keyframes fx-gain{0%{opacity:0;transform:translateY(10px)scale(.4)}20%{opacity:1;transform:translate(0)scale(1.15)}70%{opacity:1;transform:translateY(-14px)scale(1)}to{opacity:0;transform:translateY(-30px)}}.board .fx-label rect{stroke:#fff;stroke-width:2.5px}.board .fx-label text{fill:#fff;text-anchor:middle;letter-spacing:.02em;font-size:15px;font-weight:800}.board .fx-label.b rect{fill:var(--blue)}.board .fx-label.r rect{fill:var(--red)}.board .fx-label.dark rect{fill:#1f2328}.board .fx-label{animation:fx-label 1.2s ease-out calc(var(--fx-at,0s) + .45s) both}@keyframes fx-label{0%{opacity:0;transform:translateY(8px)scale(.5)}18%{opacity:1;transform:scale(1.08)}75%{opacity:1;transform:translateY(-8px)}to{opacity:0;transform:translateY(-16px)}}@keyframes fx-fade{0%{opacity:0}15%{opacity:.9}to{opacity:0}}.board .alive{animation:alive 3.4s ease-in-out var(--alive-d,0s) infinite}@keyframes alive{0%,to{transform:none}50%{transform:translateY(30px)scale(1.018,.982)translateY(-31.5px)}}.board .fx-comic{animation:fx-comic 1.25s cubic-bezier(.3, .7, .4, 1) var(--fx-at,0s) both}.board .fx-hit .fx-comic{animation-delay:calc(var(--fx-at,0s) + .3s)}@keyframes fx-comic{0%{opacity:0;transform:scale(0)rotate(-24deg)}14%{opacity:1;transform:scale(1.28)rotate(-5deg)}24%{transform:scale(1)rotate(-8deg)}76%{opacity:1;transform:scale(1)rotate(-8deg)}to{opacity:0;transform:translateY(-18px)scale(.9)rotate(-8deg)}}.board .fx-comic polygon{stroke:#1f2328;stroke-width:3px;stroke-linejoin:round;fill:#fff}.board .fx-comic text{text-anchor:middle;letter-spacing:.03em;paint-order:stroke;stroke:#1f2328;stroke-width:4px;stroke-linejoin:round;fill:#fff;font-style:italic;font-weight:900}.board .fx-comic.b polygon{fill:var(--blue)}.board .fx-comic.r polygon{fill:var(--red)}.board .fx-comic.g polygon{fill:var(--green,#2f9e44)}.board .fx-comic.boom polygon{fill:#ffd43b;stroke:#c2410c}.board .fx-comic.boom text{fill:#e03131;stroke:#fff}.board .fx-comic.zap polygon{fill:#e7f5ff;stroke:#1c7ed6}.board .fx-comic.zap text{fill:#1971c2;stroke:#fff}.board .fx-comic.quack polygon{fill:#fff3bf;stroke:#e67700}.board .fx-comic.quack text{fill:#e67700;stroke:#fff}.board .fx-comic.dull polygon{fill:#e9ecef;stroke:#868e96}.board .fx-comic.dull text{fill:#495057;stroke:#fff}.board .fx-card{animation:fx-card .95s cubic-bezier(.5, 0, .6, 1) calc(var(--fx-at,0s) + var(--fx-i,0) * .13s) both}@keyframes fx-card{0%{opacity:0;transform:scale(.3)}12%{opacity:1}32%{transform:translateY(-46px)scale(1.15)rotate(-10deg)}to{transform:translate(var(--tx), var(--ty)) scale(.5) rotate(200deg);opacity:0}}.board .fx-card-back{stroke:#fff;stroke-width:3px}.board .fx-card-back.b{fill:var(--blue)}.board .fx-card-back.r{fill:var(--red)}.board .fx-card-back.g{fill:var(--green,#2f9e44)}.board .fx-card-mark{stroke:#fffc;stroke-width:2.5px;stroke-linecap:round}.board .fx-again-ring{fill:none;stroke-width:6px;stroke-dasharray:14 10;stroke-linecap:round;animation:fx-again 1.1s ease-out var(--fx-at,0s) both}.board .fx-again-ring.b{stroke:var(--blue)}.board .fx-again-ring.r{stroke:var(--red)}.board .fx-again-ring.g{stroke:var(--green,#2f9e44)}@keyframes fx-again{0%{opacity:0;transform:scale(.6)rotate(0)}20%{opacity:1}to{opacity:0;transform:scale(1.5)rotate(160deg)}}.board .fx-fist{animation:fx-fist .55s cubic-bezier(.6, 0, .8, .6) var(--fx-at,0s) both}@keyframes fx-fist{0%{opacity:0;transform:scale(.5)}10%{opacity:1}56%{transform:translate(var(--tx), var(--ty)) scale(1.25);opacity:1}to{transform:translate(var(--tx), var(--ty)) scale(1.8);opacity:0}}.board .fx-fist-ball{fill:#f4b183;stroke:#7c3f12;stroke-width:3px}.board .fx-fist-knuckles{stroke:#7c3f12;stroke-width:2.5px;stroke-linecap:round}.board .fx-punch-trail{stroke:#fff;stroke-width:8px;stroke-linecap:round;stroke-dasharray:3 14;animation:fx-fade .7s ease-out var(--fx-at,0s) both}.board .fx-bolt{fill:none;stroke:#74c0fc;stroke-width:5px;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1 1;animation:fx-bolt .8s linear var(--fx-at,0s) both}.board .fx-bolt.glow{stroke:#fff;stroke-width:14px;opacity:.6;filter:blur(3px)}@keyframes fx-bolt{0%{stroke-dashoffset:1px;opacity:0}8%{opacity:1}28%{stroke-dashoffset:0;opacity:1}36%{opacity:.25}46%{opacity:1}58%{opacity:.4}70%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}.board .fx-feather{fill:#fff;stroke:#ced4da;stroke-width:1.5px;animation:fx-feather 1.2s ease-out calc(var(--fx-at,0s) + var(--fx-i,0) * 80ms) both}@keyframes fx-feather{0%{opacity:0;transform:translateY(-10px)rotate(0)}15%{opacity:1}to{transform:translate(var(--dx), 40px) rotate(220deg);opacity:0}}.board .fx-roar{fill:none;stroke-width:6px;animation:fx-roar .9s ease-out calc(var(--fx-at,0s) + var(--fx-i,0) * .14s) both}.board .fx-roar.b{stroke:var(--blue)}.board .fx-roar.r{stroke:var(--red)}.board .fx-roar.g{stroke:var(--green,#2f9e44)}@keyframes fx-roar{0%{opacity:0;transform:scale(.8)}12%{opacity:.9}to{opacity:0;transform:scale(2.7)}}.board .fx-puff{fill:#dee2e6;stroke:#adb5bd;stroke-width:2px;animation:fx-puff 1s ease-out calc(var(--fx-at,0s) + var(--fx-i,0) * 70ms) both}@keyframes fx-puff{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-26px)scale(1.4)}}.board .fx-medal-fly{animation:fx-medal-fly 1.35s cubic-bezier(.55, 0, .75, .5) var(--fx-at,0s) both}.board .fx-medal-star{fill:#ffc21a;stroke:#fff;stroke-width:3px;stroke-linejoin:round;filter:drop-shadow(0 0 6px #ffd43be6)}@keyframes fx-medal-fly{0%{opacity:0;transform:scale(.5)}14%{opacity:1;transform:scale(1.5)rotate(20deg)}34%{opacity:1;transform:scale(1.25)rotate(72deg)}to{transform:translate(var(--tx), var(--ty)) scale(.45) rotate(400deg);opacity:.3}}.board .fx-boom{fill:#ffd43b;stroke:#e8590c;stroke-width:4px;stroke-linejoin:round;animation:fx-boom .9s ease-out var(--fx-at,0s) both}@keyframes fx-boom{0%{opacity:0;transform:scale(.2)rotate(0)}15%{opacity:1;transform:scale(1.1)rotate(8deg)}to{opacity:0;transform:scale(1.5)rotate(22deg)}}.board .fx-boom-ring{fill:none;stroke-width:10px;animation:fx-ripple 1.1s ease-out var(--fx-at,0s) both}.board .fx-boom-ring.b{stroke:var(--blue)}.board .fx-boom-ring.r{stroke:var(--red)}.board .fx-boom-ring.g{stroke:var(--green,#2f9e44)}.board .fx-debris{fill:#868e96;stroke:#343a40;stroke-width:2px;animation:fx-debris 1.1s cubic-bezier(.2, .7, .5, 1) calc(var(--fx-at,0s) + var(--fx-i,0) * 20ms) both}@keyframes fx-debris{0%{opacity:0;transform:translate(20px)rotate(0)}10%{opacity:1}to{transform:translate(var(--d), 24px) rotate(300deg);opacity:0}}.tray .rack-tile.in-air{visibility:hidden}.deal-layer{z-index:90;pointer-events:none;position:fixed;inset:0}.flying-card{perspective:600px;transform-origin:50%;filter:drop-shadow(0 10px 8px #00000047);position:fixed}.flying-card-inner{transform-style:preserve-3d;position:absolute;inset:0}.flying-face{backface-visibility:hidden;border-radius:10px;place-items:center;display:grid;position:absolute;inset:0}.flying-face.front{background:var(--surface);border:2px solid var(--line);padding:2px}.flying-face.front .mini{width:100%;height:100%}.flying-face.back{border:2px solid #ffffffd9;transform:rotateY(180deg)}.flying-face.back.b{background:repeating-linear-gradient(45deg,#2f5fd0 0 5px,#3b6fe0 5px 10px)}.flying-face.back.r{background:repeating-linear-gradient(45deg,#b91c1c 0 5px,#d43a3a 5px 10px)}.flying-face.back.g{background:repeating-linear-gradient(45deg,#2b8a3e 0 5px,#37b24d 5px 10px)}.tile-backs i.arrive{animation:fx-back-in .55s cubic-bezier(.25, .8, .3, 1.15) calc(var(--fx-at,0s) + var(--fx-i,0) * .2s) both}@keyframes fx-back-in{0%{opacity:0;transform:translate(-26px,-30px)rotate(-20deg)scaleX(.15)}55%{opacity:1;transform:translateY(-7px)rotate(5deg)scaleX(1.06)}80%{transform:translateY(1px)scale(.97)}to{opacity:1;transform:none}}.opponent-backs{display:block;position:relative}.score-wrap,.opponent-backs{position:relative}.score-wrap{min-width:0;display:inline-flex}.score-wrap>.score{flex:auto;min-width:0}.fx-pop{z-index:5;pointer-events:none;white-space:nowrap;color:#fff;animation:fx-pop 1.2s ease-out var(--fx-at,0s) both;border-radius:999px;padding:.1rem .5rem;font-size:.8rem;font-weight:800;position:absolute;top:-.2rem;left:50%;box-shadow:0 3px 8px #00000040}.fx-pop.gain{background:var(--target)}.fx-pop.loss{background:var(--red)}.fx-pop.medal{background:var(--gold);color:#1f2328}.opponent-backs .fx-pop{top:.4rem}.score-wrap .fx-pop{animation-name:fx-pop-down;top:70%}@keyframes fx-pop-down{0%{opacity:0;transform:translate(-50%,-6px)scale(.5)}18%{opacity:1;transform:translate(-50%,4px)scale(1.1)}75%{opacity:1;transform:translate(-50%,12px)scale(1)}to{opacity:0;transform:translate(-50%,20px)}}@keyframes fx-pop{0%{opacity:0;transform:translate(-50%,6px)scale(.5)}18%{opacity:1;transform:translate(-50%,-4px)scale(1.1)}75%{opacity:1;transform:translate(-50%,-14px)scale(1)}to{opacity:0;transform:translate(-50%,-24px)}}.score.bump{animation:fx-bump .6s cubic-bezier(.3, .7, .4, 1.4) var(--fx-at,0s) both}@keyframes fx-bump{0%{transform:none}40%{transform:scale(1.14);box-shadow:0 0 0 4px #d99a0673}to{transform:none}}.tray .rack.my-move .rack-tile:not(.idle):not(.selected){animation:2.6s ease-in-out infinite fx-breathe}@keyframes fx-breathe{0%,to{box-shadow:0 0 0 3px #16a34a33,0 3px 8px #0000002e}50%{box-shadow:0 0 0 6px #16a34a61,0 0 18px #16a34a73}}.tray .rack.my-move.wave .rack-tile:not(.idle):not(.selected){animation:fx-wave .7s ease-in-out calc(var(--fx-at,0s) + var(--wave-i,0) * 80ms) both, fx-breathe 2.6s ease-in-out calc(var(--fx-at,0s) + .8s) infinite}@keyframes fx-wave{0%,to{transform:none}40%{transform:translateY(-14px)rotate(-2deg);box-shadow:0 0 0 6px #16a34a73,0 10px 16px #00000040}}.tray.your-turn .hand-caption.turn-line.mine{animation:fx-flash 1.1s ease-out var(--fx-at,0s) both}@keyframes fx-flash{0%{box-shadow:0 0 0 2px var(--target)}30%{box-shadow:0 0 0 7px #16a34a8c}to{box-shadow:0 0 0 2px var(--target)}}.your-turn-pill{z-index:6;pointer-events:none;color:#fff;white-space:nowrap;animation:fx-turn-pill 1.8s cubic-bezier(.3, .7, .4, 1) var(--fx-at,0s) both;border:3px solid #fff;border-radius:999px;padding:.45rem 1.2rem;font-size:clamp(1rem,2.4vw,1.5rem);font-weight:900;position:absolute;top:12%;left:50%;box-shadow:0 8px 24px #0000004d}.your-turn-pill.b{background:var(--blue)}.your-turn-pill.r{background:var(--red)}@keyframes fx-turn-pill{0%{opacity:0;transform:translate(-50%,-20px)scale(.6)}15%{opacity:1;transform:translate(-50%)scale(1.08)}25%{transform:translate(-50%)scale(1)}80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-12px)}}.log .turn-block.current li{animation:.35s ease-out both fx-log-in}@keyframes fx-log-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.banner.celebrate{animation:.6s cubic-bezier(.3,.7,.4,1.3) both fx-banner;position:relative}@keyframes fx-banner{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.confetti{pointer-events:none;position:absolute;inset:0;overflow:visible}.confetti i{left:var(--x);width:8px;height:14px;animation:fx-confetti 2.2s cubic-bezier(.2, .6, .4, 1) var(--delay) both;border-radius:2px;position:absolute;top:0}@keyframes fx-confetti{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--drift), 70vh) rotate(var(--spin));opacity:0}}.spinner{vertical-align:-.15em;box-sizing:border-box;border:.16em solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.8s linear infinite fx-spin;display:inline-block}@keyframes fx-spin{to{transform:rotate(360deg)}}.board .fx-pending-tile{opacity:.55}.board .fx-held-tile{opacity:1}.board .fx-pending-ring{fill:none;stroke:#fff;stroke-width:6px;stroke-dasharray:18 12;stroke-linecap:round;filter:drop-shadow(0 0 2px #0009);animation:1.2s linear infinite fx-spin}.tray.sending .tray-hand,.tray.sending .pile{opacity:.6;pointer-events:none;transition:opacity .2s}.panel.turn.sending .status{color:var(--muted)}.net-pill{z-index:7;white-space:nowrap;background:var(--ink);color:var(--bg);border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .9rem;font-size:.85rem;font-weight:700;display:inline-flex;position:absolute;top:.6rem;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000004d}@media (prefers-reduced-motion:reduce){.board .fx-layer>:not(.fx-pending):not(.emote-at),.confetti,.fx-pop,.your-turn-pill{display:none}.spinner,.board .fx-pending-ring{animation-duration:3s}.board .alive,.board .react,.board .fx-drop,.board .fx-fly,.board .fx-under,.board .fx-slide,.tray .rack-tile,.tile-backs i,.score.bump,.pile .pile-backs i,.tray .tray-turn .panel.turn,.log li,.banner.celebrate{animation:none!important}.board .fx-under,.board .fx-shadow{display:none}}.board .fx-moment,.board .fx-moment *{transform-box:view-box}.board .fx-moment{transform-origin:0 0;animation:fx-moment 1.9s cubic-bezier(.25, .8, .3, 1) var(--fx-at,0s) both}@keyframes fx-moment{0%{opacity:0;transform:scale(2.4)}12%{opacity:1;transform:scale(.94)}20%{transform:scale(1.04)}28%{transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.board .fx-moment .moment-rays{animation:moment-rays 1.9s linear var(--fx-at,0s) both}@keyframes moment-rays{0%{opacity:0;transform:rotate(0)scale(.4)}15%{opacity:.85}80%{opacity:.6}to{opacity:0;transform:rotate(40deg)scale(1.1)}}.board .fx-moment .moment-rays polygon{fill:#ffe066}.board .fx-moment .moment-ribbon{stroke:#fff;stroke-width:4px;filter:drop-shadow(0 6px 10px #00000059)}.board .fx-moment.b .moment-ribbon{fill:var(--blue)}.board .fx-moment.r .moment-ribbon{fill:var(--red)}.board .fx-moment.g .moment-ribbon{fill:var(--green)}.board .fx-moment.jackpot .moment-ribbon{fill:#f59f00}.board .fx-moment.danger .moment-ribbon{fill:#1f2328}.board .fx-moment.danger .moment-rays polygon{fill:#ff6b6b}.board .fx-moment .moment-title{text-anchor:middle;letter-spacing:.02em;fill:#fff;paint-order:stroke;stroke:#00000059;stroke-width:6px;stroke-linejoin:round;font-size:40px;font-style:italic;font-weight:900}.board .fx-moment .moment-sub{text-anchor:middle;fill:#fff;font-size:19px;font-weight:800}.board .emote{transform-box:view-box;transform-origin:0 0;animation:2.6s cubic-bezier(.3,.7,.4,1) both emote}@keyframes emote{0%{opacity:0;transform:translateY(14px)scale(0)}12%{opacity:1;transform:translate(0)scale(1.18)}20%{transform:scale(.95)}28%{transform:scale(1)}40%{transform:rotate(-4deg)}52%{transform:rotate(4deg)}64%{transform:rotate(0)}85%{opacity:1;transform:translateY(-4px)}to{opacity:0;transform:translateY(-14px)scale(.9)}}.board .emote .emote-bubble{fill:#fff;stroke-width:4px;stroke-linejoin:round;filter:drop-shadow(0 4px 6px #0000004d)}.board .emote.b .emote-bubble{stroke:var(--blue)}.board .emote.r .emote-bubble{stroke:var(--red)}.board .emote.g .emote-bubble{stroke:var(--green)}.board .emote .emote-glyph{text-anchor:middle;font-size:34px}.emote-picker{z-index:6;flex-direction:column;align-items:center;gap:.35rem;display:flex;position:absolute;bottom:.5rem;right:.5rem}.emote-open,.emote-choice{background:var(--surface);border:2px solid var(--line);cursor:pointer;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;font-size:1.35rem;line-height:1;display:grid;box-shadow:0 3px 10px #0000002e}.emote-open[disabled]{opacity:.5;cursor:default}.emote-picker.open .emote-open{font-size:1rem}.emote-row{flex-direction:column;order:-1;gap:.35rem;display:flex}.emote-choice{animation:.22s cubic-bezier(.3,.7,.4,1.3) both emote-choice}.emote-choice:first-child{animation-delay:.1s}.emote-choice:nth-child(2){animation-delay:80ms}.emote-choice:nth-child(3){animation-delay:60ms}.emote-choice:nth-child(4){animation-delay:40ms}.emote-choice:nth-child(5){animation-delay:20ms}@keyframes emote-choice{0%{opacity:0;transform:translateY(14px)scale(.6)}to{opacity:1;transform:none}}@media (hover:hover){.emote-open:hover,.emote-choice:hover{transform:scale(1.12)}}@media (max-aspect-ratio:4/5),(orientation:landscape) and (max-height:540px){.emote-picker{bottom:.3rem;right:.3rem}.emote-open,.emote-choice{width:38px;height:38px;font-size:1.2rem}}@media (prefers-reduced-motion:reduce){.board .fx-moment,.board .fx-moment .moment-rays,.board .emote,.emote-choice{animation-duration:10ms!important}.board .fx-moment,.board .emote{animation:none!important}}.first-hint{z-index:7;box-sizing:border-box;background:var(--ink);width:max-content;max-width:min(92%,440px);color:var(--bg);pointer-events:none;border-radius:16px;align-items:center;gap:.55rem;padding:.55rem .7rem .55rem .8rem;font-size:.92rem;font-weight:600;line-height:1.3;animation:.35s cubic-bezier(.3,.7,.4,1.3) both hint-in;display:flex;position:absolute;bottom:.8rem;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #0000004d}.first-hint button{pointer-events:auto}.first-hint:not(.step-0){top:.8rem;bottom:auto}.first-hint.step-0:after{content:"";background:var(--ink);border-radius:3px;width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.first-hint-icon{flex:none;font-size:1.3rem}.first-hint-text{min-width:0}.first-hint-ok,.first-hint-skip{border-radius:999px;flex:none;min-height:0;padding:.25rem .65rem;font-size:.78rem;font-weight:700}.first-hint-ok{background:var(--go,#ffd43b);color:#1f232b;border:2px solid var(--edge,#1f232b)}.first-hint-skip{color:inherit;opacity:.7;background:0 0;border:1px solid}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,12px)scale(.92)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.first-hint{animation:none}}@media (max-aspect-ratio:4/5){.first-hint{font-size:.84rem}.first-hint.step-0{bottom:.5rem}.first-hint:not(.step-0){top:.5rem}.first-hint-skip{display:none}}.bot-thinking{z-index:6;box-sizing:border-box;pointer-events:none;background:var(--ink);width:max-content;max-width:min(92%,380px);color:var(--bg);border-radius:18px;align-items:center;gap:.65rem;padding:.5rem .9rem .5rem .55rem;font-size:.92rem;font-weight:700;line-height:1.25;animation:.4s cubic-bezier(.3,.7,.4,1.3) both bt-in;display:flex;position:absolute;top:13.5%;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #00000052}.bot-thinking.deep{border:2px solid var(--go,#ffd43b);min-width:min(78%,280px);padding-right:1rem}.bt-face{flex:none;place-items:center;width:40px;height:48px;display:grid;position:relative}.bt-face img{object-fit:contain;filter:drop-shadow(0 2px 2px #0006);width:36px;height:46px;animation:1.6s ease-in-out infinite bt-bob;position:relative}.bt-ring{border:3px solid var(--go,#ffd43b);opacity:0;border-radius:50%;animation:1.8s ease-out infinite bt-ring;position:absolute;inset:2px}.bt-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.bt-title{flex-wrap:wrap;align-items:baseline;gap:.1rem;display:inline-flex}.bt-tag{background:var(--go,#ffd43b);color:#1f232b;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-self:center;margin-left:.5rem;padding:.05rem .45rem;font-size:.66rem;font-weight:800}.bt-dots{gap:3px;margin-left:.3rem;display:inline-flex}.bt-dots i{background:currentColor;border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite bt-dot}.bt-dots i:nth-child(2){animation-delay:.18s}.bt-dots i:nth-child(3){animation-delay:.36s}.bt-line{opacity:.85;font-size:.8rem;font-weight:600;animation:.5s ease-out both bt-line}.bt-bar{background:#ffffff2e;border-radius:999px;height:5px;display:block;overflow:hidden}.bt-bar i{border-radius:inherit;background:var(--go,#ffd43b);width:38%;height:100%;animation:1.5s ease-in-out infinite bt-bar;display:block}.bt-time{font-variant-numeric:tabular-nums;opacity:.75;flex:none;align-self:flex-start;font-size:.78rem;animation:.5s ease-out both bt-line}@media (max-width:600px){.bot-thinking{gap:.5rem;max-width:88%;padding:.4rem .7rem .4rem .45rem;font-size:.84rem}.bot-thinking.deep{width:82%;min-width:0}.bt-face{width:32px;height:40px}.bt-face img{width:29px;height:38px}.bt-line{font-size:.74rem}}.score .bot-face.thinking img{animation:1.2s ease-in-out infinite bt-bob}@keyframes bt-in{0%{opacity:0;transform:translate(-50%,-14px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes bt-bob{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-3px)rotate(3deg)}}@keyframes bt-ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.5)}}@keyframes bt-dot{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes bt-line{0%{opacity:0;transform:translateY(4px)}to{opacity:.85;transform:none}}@keyframes bt-bar{0%{transform:translate(-110%)}to{transform:translate(270%)}}@media (prefers-reduced-motion:reduce){.bot-thinking,.bt-face img,.bt-ring,.bt-dots i,.bt-line,.bt-bar i,.bt-time,.score .bot-face.thinking img{animation:none!important}.bt-bar i{opacity:.5;width:100%}}.panel.chat{gap:.5rem;display:grid}.chat-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chat-head h3{margin:0}.chat-mute{color:var(--muted);border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.chat-mute.on{color:var(--ink);border-color:var(--gold)}.chat-lines{overscroll-behavior:contain;flex-direction:column;gap:.35rem;max-height:14rem;margin:0;padding:.1rem .1rem .2rem;list-style:none;display:flex;overflow-y:auto}.chat-line{background:var(--spot);border-radius:12px 12px 12px 4px;align-self:flex-start;max-width:85%;padding:.3rem .6rem .35rem;animation:.25s ease-out both chat-in}.chat-line.mine{border-radius:12px 12px 4px;align-self:flex-end}.chat-line.b{background:var(--blue-soft)}.chat-line.r{background:var(--red-soft)}.chat-who{color:var(--muted);font-size:.7rem;font-weight:700;display:block}.chat-line.b .chat-who{color:var(--blue-ink)}.chat-line.r .chat-who{color:var(--red-ink)}.chat-text{overflow-wrap:anywhere;line-height:1.35;display:block}.chat-empty{align-self:center;margin:.4rem 0}@keyframes chat-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.chat-quick{scrollbar-width:thin;gap:.3rem;padding-bottom:.1rem;display:flex;overflow-x:auto}.chat-quick button{white-space:nowrap;border-radius:999px;flex:none;padding:.2rem .6rem;font-size:.8rem}.chat-form{gap:.4rem;display:flex}.chat-form input{flex:auto;min-width:0;font-size:max(.9rem,16px)}.chat-kept{margin:0;font-size:.72rem}.chat-bubble{z-index:8;box-sizing:border-box;border:0;border-left:5px solid var(--line);background:var(--surface);width:max-content;max-width:min(90%,26rem);color:var(--ink);text-align:left;cursor:pointer;-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;border-radius:16px;-webkit-box-orient:vertical;padding:.5rem .9rem;font-size:.95rem;line-height:1.35;animation:6s ease-out both chat-bubble;display:-webkit-box;position:absolute;top:3.4rem;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 24px #00000047}.chat-bubble.b{border-left-color:var(--blue)}.chat-bubble.r{border-left-color:var(--red)}.chat-bubble b{margin-right:.2rem}.chat-bubble.b b{color:var(--blue-ink)}.chat-bubble.r b{color:var(--red-ink)}@keyframes chat-bubble{0%{opacity:0;transform:translate(-50%,-12px)scale(.9)}5%{opacity:1;transform:translate(-50%)scale(1.03)}8%{transform:translate(-50%)scale(1)}90%{opacity:1}to{opacity:0}}.details-button{position:relative}.unread-badge{box-sizing:border-box;background:var(--red);color:#fff;border:2px solid var(--bg);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.68rem;font-weight:800;line-height:1;display:grid;position:absolute;top:-4px;right:-4px}@media (max-aspect-ratio:4/5){.chat-lines{max-height:38dvh}}@media (prefers-reduced-motion:reduce){.chat-line,.chat-bubble{animation:none}}.games-page{max-width:720px}.games-refresh{white-space:nowrap;padding:.3rem .7rem;font-size:.85rem}.games-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.games-head h2,.games-page .card>h2{margin:0}.games-empty{color:var(--muted);margin:.2rem 0}.games-create{justify-self:start;font-weight:700}.rooms{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.room{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.5rem .6rem;display:grid}.room-thumb{width:52px;height:72px;display:block}.room-thumb svg.board{width:auto;max-width:52px;height:72px;aspect-ratio:var(--board-r,.6);border-radius:6px;display:block;overflow:hidden}.room-thumb svg.board .node-tag,.room-thumb svg.board .special-pill{display:none}.room-info{gap:.15rem;min-width:0;display:grid}.room-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-meta{color:var(--muted);font-size:.82rem}.room-seat{font-weight:700}.room-seat.b{color:var(--blue-ink)}.room-seat.r{color:var(--red-ink)}.room-status{font-size:.85rem;font-weight:700}.room-status.turn,.room-status.won{color:var(--target)}.room-status.lost{color:var(--red-ink)}.room-status.wait,.room-status.over{color:var(--muted)}.room.mine-game.turn{border-color:var(--target);box-shadow:0 0 0 2px color-mix(in srgb, var(--target) 25%, transparent)}.room-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.room-tag{background:var(--spot);color:var(--muted);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.room-confirm{text-align:right;flex-basis:100%;font-size:.82rem;font-weight:700}.room-join{gap:.4rem;margin-top:.3rem;display:flex}.room-join input{flex:auto;min-width:0;font-size:max(.9rem,16px)}.room .error{margin:.2rem 0 0;font-size:.85rem}button.danger{background:var(--red);color:#fff;border-color:var(--red)}.home-games{color:var(--ink);border:2px solid var(--blue);gap:.3rem;text-decoration:none}.home-games strong{color:var(--blue-ink)}@media (hover:hover){.home-games:hover{background:var(--spot)}}@media (max-width:520px){.room{grid-template-columns:auto minmax(0,1fr)}.room-actions{grid-column:1/-1;justify-content:stretch}.room-actions>button{flex:auto}.room-confirm{text-align:left}}.seat-picker{border:0;gap:.4rem;min-width:0;margin:0;padding:0;display:grid}.seat-picker.seats-3{grid-template-columns:repeat(3,minmax(0,1fr))}.seat-picker.seats-4{grid-template-columns:repeat(2,minmax(0,1fr))}.seat-picker legend{grid-column:1/-1;margin-bottom:.3rem;padding:0;font-size:.9rem;font-weight:700}.seat-option{min-height:var(--tap);border:2px solid var(--line);background:var(--bg);cursor:pointer;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.45rem;padding:.4rem .55rem;font-weight:700;display:grid;position:relative}.seat-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.seat-option:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:2px}.seat-glyph{grid-row:1/3;font-size:1.15rem;line-height:1}.seat-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seat-state{color:var(--muted);font-size:.72rem;font-weight:600}.seat-option.b .seat-glyph{color:var(--blue)}.seat-option.r .seat-glyph{color:var(--red)}.seat-option.g .seat-glyph{color:var(--green)}.seat-option.selected.b{border-color:var(--chip-b);background:var(--chip-b)}.seat-option.selected.r{border-color:var(--chip-r);background:var(--chip-r)}.seat-option.selected.g{border-color:var(--chip-g);background:var(--chip-g)}.seat-option.selected,.seat-option.selected .seat-glyph,.seat-option.selected .seat-state{color:#fff}.seat-option.taken{cursor:not-allowed;opacity:.5;background:var(--spot);border-style:dashed}.seat-option.taken .seat-name{text-decoration:line-through}@media (hover:hover){.seat-option:not(.taken):not(.selected):hover{border-color:var(--muted)}}.room-join.with-seats{flex-direction:column;gap:.5rem}.room-join-row{gap:.4rem;min-width:0;display:flex}.room-join-row input{flex:auto;min-width:0;font-size:max(.9rem,16px)}.room-join-row button{flex:none}@media (max-width:520px){.room:has(.room-join.with-seats) .room-info{grid-column:1/-1}}.name-field{gap:.25rem;display:grid}.name-field.compact{font-size:.85rem;font-weight:700}.name-field input{font-size:max(.95rem,16px)}.room-join{flex-direction:column;gap:.5rem}.room-host{color:var(--ink);font-weight:700}.history-stats{margin:0}.history-tally{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.history-tally li{background:var(--spot);border-radius:999px;padding:.15rem .6rem;font-size:.85rem}.history-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.history-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);border-left-width:5px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.5rem .7rem;display:grid}.history-row.won{border-left-color:var(--target)}.history-row.lost{border-left-color:var(--red)}.history-main{gap:.1rem;min-width:0;display:grid}.history-result{text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:800}.history-result.won{color:var(--target)}.history-result.lost{color:var(--red-ink)}.history-result.played{color:var(--muted)}.history-map{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-who{font-weight:600}.history-glyph.b{color:var(--blue)}.history-glyph.r{color:var(--red)}.history-glyph.g{color:var(--green)}.history-meta{color:var(--muted);font-size:.8rem}.history-actions{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;display:flex}.history-actions button{padding:.25rem .6rem;font-size:.82rem}.history-ai{font-size:.78rem}@media (max-width:520px){.history-row{grid-template-columns:minmax(0,1fr)}.history-actions{justify-content:flex-start}}.rematch-note{font-size:.85rem;font-weight:500}.games-head .primary{white-space:nowrap;padding:.3rem .8rem;font-size:.95rem}.board .hq-body.g{fill:var(--green-soft);stroke:var(--green)}.tile.g polygon{fill:var(--green)}.tile.rim.g polygon{fill:var(--green-ink)}.tile.art.g .seat-mark polygon{fill:var(--green)}.chat-line.g{background:var(--green-soft)}.chat-line.g .chat-who{color:var(--green-ink)}.chat-bubble.g{border-left-color:var(--green)}.chat-bubble.g b{color:var(--green-ink)}.board .fx-ripple.g,.board .fx-medal-ring.g{stroke:var(--green)}.board .fx-gain.g text,.board .fx-label.g rect{fill:var(--green)}.your-turn-pill.g{background:var(--green)}.room-seat.g{color:var(--green-ink)}.chip.g{background:var(--green)}.turn-block.g{border-left-color:var(--green);background:color-mix(in srgb, var(--green-soft) 55%, var(--surface))}.who.g{color:var(--green-ink)}.troop-chip.g{background:var(--chip-g);border-radius:4px}.troop-chip.g .troop-str{border-radius:3px}.card label.ng-pill.g.selected{border-color:var(--chip-g);background:var(--chip-g);color:#fff}.panel.turn.g{border-left:5px solid var(--green)}.end-seat.g{color:var(--green)}.seat-button.g{border-color:var(--green);color:var(--green)}.holder-seat.g{color:var(--green-ink)}.seat-switch button.on.g{background:var(--green);color:#fff}.score.g{background:var(--green-soft)}.score.active.g{border-color:var(--green)}.banner.g{background:var(--green)}.pile.g .pile-backs i,.tile-backs.g i,.tray .card-back.g{background:repeating-linear-gradient(45deg,#0b6b3e 0 5px,#15874f 5px 10px)}.opponent-card.g .who{color:var(--green-ink)}.opponent-card.active.g{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}.text-g{color:var(--green-ink)}.tile.art.g image{filter:hue-rotate(-78deg)saturate(1.1)}.tile.g .player-mark{color:var(--green)}.your-turn-pill.knocked{background:#1f2328;animation-duration:2.6s;top:40%}.your-turn-pill.knocked.b{border-color:var(--blue)}.your-turn-pill.knocked.r{border-color:var(--red)}.your-turn-pill.knocked.g{border-color:var(--green)}.score.out{opacity:.55;text-decoration:line-through}.score.out .out-tag{text-decoration:none}.opponent-card.out{opacity:.6;filter:grayscale(.6)}
