.lu,.lu-setup,.lu-seats{--lu-0:#d9443a;--lu-1:#2e9a58;--lu-2:#e9b322;--lu-3:#2f78c8;--lu-bg:#f8f6ef;--lu-ink:#14213d;--lu-line:#14213d}.lu-th-night{--lu-0:#f2554a;--lu-1:#36b86b;--lu-2:#f2c230;--lu-3:#4a8fe0;--lu-bg:#1d2940;--lu-line:#7f93b3}.lu-th-pastel{--lu-0:#ee8a80;--lu-1:#7fc79a;--lu-2:#f6d36b;--lu-3:#8ab2ee;--lu-bg:#fffdf8;--lu-line:#646a82}.lu-th-wood{--lu-0:#b0392c;--lu-1:#2e7a40;--lu-2:#d4961f;--lu-3:#2b5b8e;--lu-bg:#eed8af;--lu-line:#4a2f17}.lu-th-bold{--lu-0:#e00000;--lu-1:#008a00;--lu-2:#ffd000;--lu-3:#0050ef;--lu-bg:#fff;--lu-line:#000;--lu-ink:#000}.lu{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:16px;width:100%;display:grid}.lu-c0{--c:var(--lu-0)}.lu-c1{--c:var(--lu-1)}.lu-c2{--c:var(--lu-2)}.lu-c3{--c:var(--lu-3)}.lu-main{justify-content:center;min-width:0;display:flex;position:relative}.lu-banner{z-index:6;pointer-events:none;white-space:nowrap;font:400 clamp(20px,4vw,34px)/1.1 var(--f-word);color:var(--lu-ink);background:color-mix(in srgb,var(--c)30%,#fff);border:3px solid var(--lu-ink);box-shadow:0 0 0 5px var(--c),0 6px 0 var(--lu-ink);border-radius:999px;padding:10px 22px;animation:1.4s ease-out forwards lu-banner;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes lu-banner{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}15%,70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.lu-tok.idle:before{filter:saturate(.55);opacity:.8}.lu-board-wrap{aspect-ratio:1;width:min(100%,100dvh - 200px);min-width:260px;position:relative;container-type:inline-size}.lu-board{width:100%;height:100%;box-shadow:var(--shadow);border-radius:4px;display:block}.lu-bg,.lu-yard{fill:var(--lu-bg)}.lu-f0{fill:var(--lu-0)}.lu-f1{fill:var(--lu-1)}.lu-f2{fill:var(--lu-2)}.lu-f3{fill:var(--lu-3)}.lu-cell{stroke:var(--lu-line);stroke-width:.04px}.lu-cell:not([class*=lu-f]){fill:var(--lu-bg)}.lu-slot{fill:none;stroke-width:.1px}.lu-s0{stroke:var(--lu-0)}.lu-s1{stroke:var(--lu-1)}.lu-s2{stroke:var(--lu-2)}.lu-s3{stroke:var(--lu-3)}.lu-star{fill:none;stroke:var(--lu-line);stroke-width:.16px;stroke-linejoin:round;opacity:.55}.lu-arrow{fill:none;stroke:#fff;stroke-width:.28px;stroke-linecap:round;stroke-linejoin:round}.lu-line{stroke:var(--lu-line);stroke-width:.04px}.lu-edge{fill:none;stroke:var(--lu-line);stroke-width:.06px}.lu-preview{fill:none;stroke:var(--lu-line);stroke-width:.08px;stroke-dasharray:.16 .1}.lu-tok{aspect-ratio:1;z-index:1;cursor:default;background:0 0;border:0;border-radius:50%;place-items:center;width:max(24px,6.6cqi);padding:0;transition:left 90ms linear,top 90ms linear;display:grid;position:absolute;transform:translate(-50%,-50%)}.lu-num{font:700 max(9px,2.5cqi)/1 var(--f-mono);color:#fff;pointer-events:none;text-shadow:0 0 2px var(--lu-ink),0 1px 1px var(--lu-ink);position:relative}.lu-tok.small .lu-num{font-size:max(8px,1.9cqi)}.lu-tok:before{content:"";aspect-ratio:1;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--c)55%,#fff)0 18%,var(--c)48%);box-sizing:border-box;border:2px solid var(--lu-ink);border-radius:50%;width:5.4cqi;transition:width .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px #14213d59,inset 0 0 0 2px #ffffff8c}.lu-tok.small:before{border-width:1.5px;width:4.1cqi}.lu-tok.last{z-index:2}.lu-tok.go{cursor:pointer;z-index:3}.lu-tok.go:before{animation:1s ease-in-out infinite lu-glow}.lu-tok:focus-visible{outline:none}.lu-tok.go:hover:before,.lu-tok.go:focus-visible:before{outline:3px solid var(--lu-ink);outline-offset:2px}.lu-tok:disabled{opacity:1;pointer-events:none}.lu-tok.sel:before{outline:3px solid var(--lu-ink);outline-offset:3px;animation:none;transform:translate(-50%,-50%)scale(1.18)}.lu-target{aspect-ratio:1;z-index:4;cursor:pointer;background:color-mix(in srgb,var(--c)35%,var(--lu-bg));border:2.5px dashed var(--lu-line);width:max(26px,5.6cqi);font:700 max(10px,2.4cqi)/1 var(--f-mono);color:var(--lu-line);border-radius:50%;place-items:center;padding:0;animation:1s ease-in-out infinite lu-target;display:grid;position:absolute;transform:translate(-50%,-50%)}.lu-target.skip{background:var(--lu-bg);border-style:dotted}.lu-target:hover,.lu-target:focus-visible{background:var(--c);color:#fff;outline:3px solid var(--lu-ink);outline-offset:2px}@keyframes lu-target{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.1)}}.lu-lock circle{fill:var(--lu-bg);stroke:var(--lu-line);stroke-width:.05px}.lu-lock rect{fill:var(--lu-line)}.lu-lock-arc{fill:none;stroke:var(--lu-line);stroke-width:.07px}@keyframes lu-glow{0%,to{box-shadow:0 0 0 0 #fffffff2,0 0 0 3px var(--lu-ink)}50%{box-shadow:0 0 0 4px #fffffff2,0 0 0 7px var(--lu-ink)}}.lu-side{flex-direction:column;gap:12px;min-width:0;display:flex}.lu-turn{border-radius:var(--radius);border:2px solid #0000;align-items:center;gap:14px;padding:10px 12px;display:flex}.lu-turn.on{border-color:var(--c);background:color-mix(in srgb,var(--c)14%,transparent)}.lu-turn.mine{box-shadow:0 0 0 3px color-mix(in srgb,var(--c)35%,transparent)}.lu-turn-text{flex-direction:column;gap:4px;min-width:0;display:flex}.lu-turn-tag{font:700 12px/1.4 var(--f-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--lu-ink);background:color-mix(in srgb,var(--c)45%,#fff);border:1.5px solid var(--lu-ink);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:2px 9px 2px 7px;display:inline-flex}.lu-turn-tag:before{content:"";background:var(--c);border:1.5px solid var(--lu-ink);border-radius:50%;width:9px;height:9px}.lu-turnmark{fill:none;stroke:var(--lu-line);stroke-width:.22px;stroke-dasharray:.5 .3;animation:1.6s ease-in-out infinite lu-turnmark}@keyframes lu-turnmark{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.lu-status{font-family:var(--f-word);min-height:2.5em;margin:0;font-size:18px;line-height:1.25}.lu-status.done{color:var(--accent)}.lu-die-box{color:var(--ink);font:inherit;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:4px;padding:0;display:flex}.lu-die-box.live{cursor:pointer}.lu-die{border:3px solid var(--c,var(--lu-ink));width:64px;height:64px;box-shadow:0 3px 0 var(--lu-ink);background:#fff;border-radius:12px;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:3px;padding:9px;display:grid}.lu-die.lu-c0,.lu-die.lu-c1,.lu-die.lu-c2,.lu-die.lu-c3{background:color-mix(in srgb,var(--c)22%,#fff);border-width:4px}.lu-die i{aspect-ratio:1;background:var(--lu-ink);border-radius:50%;place-self:center;width:100%}.lu-die-box.stale .lu-die{opacity:.45;box-shadow:none}.lu-die-who{font-family:var(--f-mono);color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:104px;font-size:11px;overflow:hidden}.lu-mini{background:color-mix(in srgb,var(--c)22%,#fff);border:2.5px solid var(--c);width:38px;height:38px;box-shadow:0 2px 0 var(--lu-ink);border-radius:8px;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:2px;padding:6px;display:grid}.lu-mini i{aspect-ratio:1;background:var(--lu-ink);border-radius:50%;place-self:center;width:100%}.lu-die.rolled{animation:.35s ease-out lu-roll}.lu-die-box.live .lu-die{border-color:var(--accent)}.lu-die-box.pulse .lu-die{animation:1.2s ease-in-out infinite lu-ready}.lu-die-box.live:focus-visible{outline:3px solid var(--info);outline-offset:3px;border-radius:12px}.lu-die-hint{font-family:var(--f-mono);color:var(--accent);font-size:12px;font-weight:600}@keyframes lu-roll{0%{transform:rotate(-30deg)scale(.8)}60%{transform:rotate(12deg)scale(1.06)}to{transform:none}}@keyframes lu-ready{0%,to{transform:none}50%{transform:translateY(-3px)}}.lu-players{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.lu-players li{border-radius:var(--radius);border:1.5px solid #0000;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.lu-players li.turn{border-color:var(--c);background:color-mix(in srgb,var(--c)16%,transparent);border-width:2px}.lu-players li.turn .who b:after{content:" ◂ turn";font:600 11px var(--f-mono);color:var(--muted)}.lu-players li.out .who b{color:var(--muted)}.lu-players .who{flex-direction:column;min-width:0;display:flex}.lu-players .who b{font-family:var(--f-word);text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:400;overflow:hidden}.lu-players .who small{color:var(--muted);font-size:12px}.lu-score{font-family:var(--f-mono);color:var(--muted);font-size:13px}.lu-players li.out .lu-score{color:var(--accent);font-weight:700}.lu-dot{background:var(--c);border:1.5px solid var(--lu-ink);border-radius:50%;flex:none;width:14px;height:14px}.lu-actions{border-top:1.5px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.lu-confirm{flex-direction:column;gap:8px;width:100%;display:flex}.lu-confirm p{margin:0;font-size:14px}.lu-confirm .row{gap:8px}.lu-confirm .btn{flex:1 1 0}.lu-actions .btn{flex:auto}.lu-place{font-family:var(--f-word);margin:0;font-size:17px}.lu-auto{border-top:1.5px solid var(--line);flex-direction:column;gap:6px;padding-top:10px;display:flex}.lu-auto .row{flex-wrap:wrap;align-items:center;gap:4px}.lu-auto .chip-btn{min-width:36px}.lu-order{gap:4px;display:inline-flex}.lu-order .chip-btn{touch-action:none;cursor:grab}.lu-order .chip-btn:active{cursor:grabbing}.lu-rolls{flex-wrap:wrap;align-items:center;gap:8px}.lu-tip{margin:0;font-size:13px}.lu-opts,.lu-ask{border-radius:var(--radius);border:1.5px dashed var(--line);flex-wrap:wrap;gap:6px;padding:10px;display:flex}.lu-ask{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent)10%,transparent)}.lu-opts p,.lu-ask p{width:100%;margin:0 0 2px;font-size:14px}.lu-ask .row{gap:8px}.lu-locked{color:var(--muted);align-items:flex-start;gap:8px;margin:0;font-size:13px;display:flex}.lu-lock-dot{background:var(--muted);border-radius:2px;flex:none;width:10px;height:10px;margin-top:4px}.lu-themes{flex-wrap:wrap;align-items:center;gap:6px}.lu-swatch{cursor:pointer;border:4px solid var(--lu-bg);outline:1.5px solid var(--line);background:conic-gradient(var(--lu-0)0 25%,var(--lu-1)0 50%,var(--lu-2)0 75%,var(--lu-3)0);border-radius:50%;width:28px;height:28px;padding:0}.lu-swatch[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:1px}.lu-swatch:focus-visible{outline:3px solid var(--info);outline-offset:1px}.lu-auto p{margin:0;font-size:12px}.lu-resume{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.lu-setup{flex-direction:column;gap:8px;display:flex}.lu-setup-row{grid-template-columns:14px 64px minmax(0,1fr);align-items:center;gap:8px;display:grid}.lu-setup-row b{font-family:var(--f-word);font-size:17px;font-weight:400}.lu-setup-row .row{flex-wrap:wrap;gap:4px}.lu-seats{grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:380px;display:grid}.lu-seat{border:1.5px solid var(--line);border-radius:var(--radius);text-align:left;grid-template-columns:14px minmax(0,1fr);align-items:center;gap:2px 8px;padding:8px 10px;display:grid}.lu-seat b{font-family:var(--f-word);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:400;overflow:hidden}.lu-seat small{grid-column:2}@media (max-width:860px){.lu{grid-template-columns:1fr}.lu-board-wrap{width:min(100%,100dvh - 300px)}.lu-side{width:min(100%,560px);margin-inline:auto}.lu-players{grid-template-columns:1fr 1fr;display:grid}}@media (max-width:380px){.lu-board-wrap{min-width:0}.lu-setup-row{grid-template-columns:14px minmax(0,1fr)}.lu-setup-row .row{grid-column:1/-1}}@media (orientation:landscape) and (max-height:520px){.lu{grid-template-columns:minmax(0,1fr) 240px}.lu-board-wrap{width:min(100%,100dvh - 90px);min-width:0}.lu-die{width:50px;height:50px;padding:7px}.lu-players li{padding:3px 6px}}@media (prefers-reduced-motion:reduce){.lu-tok{transition:none}.lu-tok.go:before,.lu-die.rolled,.lu-die-box.pulse .lu-die,.lu-turnmark,.lu-target{animation:none}.lu-banner{animation-duration:10ms;animation-delay:1.2s}.lu-tok.go:before{box-shadow:0 0 0 3px #fffffff2,0 0 0 6px var(--lu-ink)}}.lu-invite{text-align:center;flex-direction:column;gap:14px;max-width:420px;margin:0 auto;display:flex}.lu-invite h2{margin:0}.lu-invite form{text-align:left;flex-direction:column;gap:10px;display:flex}.lu-invite form .btn{width:100%}.lu-invite p{margin:0}.lu-invite>.btn.ghost{align-self:center}
