/*! styles.css —— 這是**產生檔**,改這裡會被下一次 build 蓋掉。
    真相在 styles.src.css(sha256 a6cedbf26959b8e96915bc703179ad40b1c4a61c4a67affe7c417fb8840398c8)
    改樣式:改 styles.src.css → node tools/build-css.js
    為什麼要剝註解、為什麼產生檔沿用這個檔名:notes/13-CSS與版面.md */
  :root{color-scheme:only light}
  :root[data-theme="sunset"]{
    --bg1:#2a1136; --bg2:#7a2d54; --bg3:#c85a3c;
    --panel:rgba(255,244,236,.10); --panel-line:rgba(255,255,255,.16);
    --cell:#fff6ec; --cell-edge:#e9d3bd; --cell-text:#4a2b1f;
    --accent:#ff8a3d; --accent-2:#ffd24a; --daub:#ff5a5f; --daub-ink:#fff;
    --text:#fff3ea; --muted:#e7c9bd; --marquee:#ffd24a;
  }
  :root[data-theme="midnight"]{
    --bg1:#05060f; --bg2:#0d1b3a; --bg3:#101026;
    --panel:rgba(120,160,255,.07); --panel-line:rgba(140,190,255,.18);
    --cell:#141a33; --cell-edge:#26305a; --cell-text:#dbe6ff;
    --accent:#22e0ff; --accent-2:#ff4bd8; --daub:#ff2fb0; --daub-ink:#0a0016;
    --text:#eaf2ff; --muted:#8fa2cc; --marquee:#22e0ff;
  }
  :root[data-theme="bubblegum"]{
    --bg1:#ffd9ec; --bg2:#ffc1e3; --bg3:#d5c2ff;
    --panel:rgba(255,255,255,.35); --panel-line:rgba(180,90,170,.22);
    --cell:#ffffff; --cell-edge:#f4c9e4; --cell-text:#7a2b63;
    --accent:#ff4fa3; --accent-2:#9b6bff; --daub:#ff2f86; --daub-ink:#fff;
    --text:#6a1f57; --muted:#a76b96; --marquee:#ff4fa3;
  }
  :root[data-theme="meadow"]{
    --bg1:#16351f; --bg2:#2f6b3c; --bg3:#7fae4a;
    --panel:rgba(245,255,235,.10); --panel-line:rgba(255,255,255,.16);
    --cell:#f7fbec; --cell-edge:#d5e4bd; --cell-text:#274224;
    --accent:#6cc04a; --accent-2:#ffcf47; --daub:#e0563b; --daub-ink:#fff;
    --text:#f2f8e8; --muted:#c3d6b3; --marquee:#ffcf47;
  }
  :root[data-theme="arcade"]{
    --bg1:#000000; --bg2:#140018; --bg3:#001018;
    --panel:rgba(255,255,255,.05); --panel-line:rgba(255,255,255,.14);
    --cell:#0e0e12; --cell-edge:#2a2a33; --cell-text:#f5f5f5;
    --accent:#ffe600; --accent-2:#ff2d55; --daub:#ff2d55; --daub-ink:#000;
    --text:#ffffff; --muted:#8a8a92; --marquee:#ffe600;
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html{scrollbar-width:none;-ms-overflow-style:none}
  ::-webkit-scrollbar{width:0;height:0;display:none}
  html,body{height:100%}
  html,body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
  input,textarea,[contenteditable="true"]{
    user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
  body{
    font-family:'Nunito',system-ui,sans-serif;
    color:var(--text);
    background:var(--bg1);
    height:100vh;height:100dvh;
    display:flex;flex-direction:column;align-items:center;
    padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));
    gap:14px;overflow:hidden;
    transition:background .5s ease;
  }
  .scroll-area{flex:0 1 auto;min-height:0;width:min(92vw,520px);
    display:flex;flex-direction:column;align-items:center;gap:14px;
    overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
  .topbar,#mpBar,#soloHead,#roomTabs,.primary-bar{flex:none}
  #home,#gmkHome,#sdkHome,#mjHome,#m16Home,#svHome,#b2Home,#bjHome,#unHome,#dcHome,#cyHome,
  #fcHome,#tqHome,#blkHome,#bubHome,#lfHome,
  #mpConnect{flex:0 1 auto;min-height:0;
    overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  body.room-tab-fill .scroll-area{flex:1 1 0}
  body{ --boardpx: 520px; }
  body::before{
    content:"";
    position:fixed;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(120% 120% at 15% 0%, var(--bg2) 0%, transparent 55%),
      radial-gradient(120% 120% at 100% 100%, var(--bg3) 0%, transparent 50%),
      var(--bg1);
    transition:background .5s ease;
  }
  .display{font-family:'Fredoka',sans-serif}
  .topbar{width:min(92vw,520px);display:flex;align-items:center;justify-content:space-between;gap:10px}
  .brand{display:flex;align-items:flex-end;gap:8px;min-width:0}
  .topver{font-family:'Fredoka',sans-serif;font-weight:600;font-size:11px;color:var(--muted);
    opacity:.75;letter-spacing:.02em;padding-bottom:5px;white-space:nowrap}
  .marquee{display:flex;gap:6px;align-items:flex-end}
  .marquee .bulb{
    font-family:'Fredoka',sans-serif;font-weight:700;
    font-size:clamp(28px,9vw,44px);line-height:1;
    color:var(--muted);letter-spacing:1px;
    transition:color .3s, text-shadow .3s, transform .3s;
    position:relative;opacity:.55;
  }
  .marquee .bulb.lit{
    color:var(--marquee);opacity:1;
    text-shadow:0 0 8px var(--marquee), 0 0 22px var(--marquee);
    transform:translateY(-2px);
  }
  .tools{display:flex;gap:8px}
  .row:has(> .tools-docked){position:relative;padding-right:84px}
  body.mp-on .row:has(> .tools-docked .tk-btn){padding-right:168px}
  @media (max-width:389px){
    body.mp-on:not(.is-big) .row:has(> .tools-docked .tk-btn):not(:has(> .tools-docked .tk-btn.on)) > .tools-docked .tk-btn{
      display:none}
    body.mp-on:not(.is-big) .row:has(> .tools-docked .tk-btn):not(:has(> .tools-docked .tk-btn.on)){padding-right:84px}
    body.mp-on:not(.is-big) .row:has(> .tools-docked .tk-btn.on) .mp-goal{display:none}
  }
  .tools.tools-docked{position:absolute;right:0;top:50%;transform:translateY(-50%);flex:none}
  .icon-btn{
    width:42px;height:42px;border-radius:13px;border:1px solid var(--panel-line);
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0) 58%),var(--panel);
    box-shadow:0 1px 0 rgba(255,255,255,.24) inset,
               0 -1px 0 rgba(0,0,0,.20) inset,
               0 4px 10px -5px rgba(0,0,0,.5);
    color:var(--text);font-size:19px;cursor:pointer;
    display:grid;place-items:center;backdrop-filter:blur(6px);transition:transform .15s, background .2s;
  }
  @media (hover:hover) and (pointer:fine){
    .icon-btn:hover{transform:translateY(-2px)}
  }
  .icon-btn:active{transform:scale(.94)}
  .icon-btn.active{background:var(--accent);border-color:var(--accent)}
  .icon-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}
  .icon-btn:focus-visible,.btn:focus-visible,.cell:focus-visible,.mini:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}
  body:not(.mp-on) .tk-btn{display:none}
  .tk-btn{position:relative}
  .tk-btn.on{background:var(--accent);border-color:var(--accent);color:#1a1020}
  .tk-ico{width:1.2em;height:1.2em;display:block;fill:currentColor;pointer-events:none}
  .tk-ico .tk-wave,.tk-ico .tk-x{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
  .tk-btn .tk-wave{display:none}
  .tk-btn.on .tk-wave{display:block}
  .tk-btn.on .tk-x{display:none}
  .tk-btn.muted::after{
    content:"";position:absolute;left:50%;top:50%;width:62%;height:2px;border-radius:2px;
    background:currentColor;opacity:.8;pointer-events:none;
    transform:translate(-50%,-50%) rotate(-45deg);
  }
  .tk-btn.bad{background:#c0392b;border-color:#e74c3c;color:#fff;animation:tk-warn 1.4s ease-in-out infinite}
  @keyframes tk-warn{0%,100%{opacity:1}50%{opacity:.55}}
  .mp-chip.tk-talking{border-color:#5bd75b;box-shadow:0 0 0 2px #5bd75b,0 0 12px rgba(91,215,91,.55)}
  .mp-chip.me.tk-talking{border-color:#5bd75b;box-shadow:0 0 0 2px #5bd75b,0 0 12px rgba(91,215,91,.55)}
  .mp-chip.turn.tk-talking{border-color:#5bd75b;animation:tk-turntalk 1.2s ease-in-out infinite}
  @keyframes tk-turntalk{0%,100%{box-shadow:0 0 0 2px #5bd75b}50%{box-shadow:0 0 0 2px #5bd75b,0 0 16px #5bd75b}}
  .tk-tag{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;
    width:15px;height:15px;margin-left:1px;line-height:0;color:var(--muted);opacity:.85}
  .tk-tagico{width:100%;height:100%;display:block;fill:currentColor;pointer-events:none}
  .tk-tag.live{color:#5bd75b;opacity:1}
  .tk-tag.mute{color:var(--muted);opacity:.75}
  .tk-tag.wait{color:#e8c447;opacity:1;animation:tk-warn 1.1s ease-in-out infinite}
  .tk-tag.bad{color:#ff6b5e;opacity:1;animation:tk-warn 1.4s ease-in-out infinite}
  .tk-tag.talking{color:#9dffb0;opacity:1;filter:drop-shadow(0 0 5px rgba(91,215,91,.95))}
  .tk-tag.mute::after,.tk-tag.bad::after{
    content:"";position:absolute;left:50%;top:50%;width:118%;height:2px;border-radius:2px;
    background:currentColor;opacity:.9;pointer-events:none;
    transform:translate(-50%,-50%) rotate(-45deg);
  }
  .mp-chip.turn .tk-tag.live,.mp-chip.turn .tk-tag.mute,.mp-chip.turn .tk-tag.talking{color:#1c1008}
  .mp-chip.turn .tk-tag.wait{color:#5a3a00}
  .panel{
    width:min(92vw,520px);
    background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,0) 44%),var(--panel);
    border:1px solid var(--panel-line);
    border-radius:20px;padding:16px;backdrop-filter:blur(10px);
    box-shadow:0 1px 0 rgba(255,255,255,.20) inset,
               0 -1px 0 rgba(0,0,0,.18) inset,
               0 14px 34px -14px rgba(0,0,0,.55);
  }
  .subtitle{font-weight:800;font-size:15px;letter-spacing:.4px}
  .hint{color:var(--muted);font-size:13.5px;margin-top:3px;line-height:1.5}
  .seg{display:flex;background:rgba(0,0,0,.14);border-radius:12px;padding:3px;gap:4px;position:relative}
  .seg::before{
    content:"";position:absolute;left:3px;top:3px;bottom:3px;border-radius:9px;
    background:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.2);pointer-events:none;
    transition:transform .28s cubic-bezier(.23,1,.32,1),width .28s cubic-bezier(.23,1,.32,1),opacity .15s;
  }
  .seg:has(> button:nth-child(2):last-child)::before{width:calc((100% - 10px)/2)}
  .seg:has(> button:nth-child(3):last-child)::before{width:calc((100% - 14px)/3)}
  .seg:has(> button:nth-child(4):last-child)::before{width:calc((100% - 18px)/4)}
  .seg:has(> button:nth-child(5):last-child)::before{width:calc((100% - 22px)/5)}
  .seg:has(> button:nth-child(1).on)::before{transform:translateX(0)}
  .seg:has(> button:nth-child(2).on)::before{transform:translateX(calc(100% + 4px))}
  .seg:has(> button:nth-child(3).on)::before{transform:translateX(calc(200% + 8px))}
  .seg:has(> button:nth-child(4).on)::before{transform:translateX(calc(300% + 12px))}
  .seg:has(> button:nth-child(5).on)::before{transform:translateX(calc(400% + 16px))}
  .seg:not(:has(> button.on))::before{opacity:0}
  .seg button{
    flex:1;border:0;background:transparent;color:var(--muted);font-family:'Nunito';font-weight:800;
    font-size:14px;padding:8px 8px;border-radius:9px;cursor:pointer;white-space:nowrap;
    position:relative;z-index:1;
    transition:color .2s cubic-bezier(.23,1,.32,1);
  }
  .seg button.on{color:#1c1008}
  .seg.readonly{pointer-events:none;opacity:.9}
  .seg.readonly button{cursor:default}
  .seg.readonly button:not(.on){opacity:.32}
  .seg.readonly::before{background:rgba(0,0,0,.16);box-shadow:none}
  .seg.readonly button.on{color:var(--text)}
  .seg.col::before{display:none}
  .seg.col button.on{background:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.2)}
  .seg.col.readonly button.on{background:rgba(0,0,0,.16);box-shadow:none}
  .seg:has(> button:nth-child(6))::before{display:none}
  .seg:has(> button:nth-child(6)) button.on{background:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.2)}
  .seg:has(> button:nth-child(6)).readonly button.on{background:rgba(0,0,0,.16);box-shadow:none}
  :root[data-theme="midnight"] .seg button.on,
  :root[data-theme="arcade"] .seg button.on{color:var(--daub-ink)}
  .field{margin-top:12px}
  .field-label{display:block;font-weight:800;font-size:12px;color:var(--muted);letter-spacing:.3px;margin-bottom:5px}
  .field .mp-input{width:100%;height:44px}
  .stepper-bar{display:flex;align-items:center;background:rgba(0,0,0,.14);border-radius:12px;padding:3px;gap:4px}
  .stepper-bar .mini{flex:0 0 auto;width:56px;height:auto;min-height:34px;border:0;background:transparent;border-radius:9px;font-size:20px}
  .stepper-bar .mini:hover{background:rgba(255,255,255,.08)}
  .stepper-bar .target-val{flex:1;font-size:20px}
  .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
  .row .label{font-weight:800;font-size:14px}
  .mini{
    width:34px;height:34px;border-radius:10px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--text);font-size:18px;font-weight:800;cursor:pointer;
    display:grid;place-items:center;
  }
  .mini:active{transform:scale(.9)}
  .target-val{font-family:'Fredoka';font-weight:700;font-size:22px;min-width:26px;text-align:center}
  .board-wrap{width:min(92vw,520px);display:flex;flex-direction:column;align-items:center;gap:12px}
  .grid{
    --gap:clamp(6px,1.6vw,10px);
    --cols:5;
    --board:min(92vw,520px,max(160px,var(--boardpx,520px)));
    --cellsize:calc((var(--board) - (var(--cols) - 1) * var(--gap)) / var(--cols));
    width:var(--board);aspect-ratio:1;
    display:grid;
    grid-template-columns:repeat(var(--cols),minmax(0,1fr));
    grid-template-rows:repeat(var(--cols),minmax(0,1fr));
    gap:var(--gap);
  }
  .cell{
    position:relative;border:0;cursor:pointer;border-radius:var(--cellradius,16px);
    background:var(--cell);border:2px solid var(--cell-edge);
    color:var(--cell-text);font-family:'Fredoka',sans-serif;font-weight:600;
    font-size:clamp(11px,calc(var(--cellsize) * .38),40px);line-height:1;
    min-width:0;min-height:0;
    display:grid;place-items:center;overflow:hidden;
    transition:transform .12s ease, box-shadow .25s, border-color .25s;
    box-shadow:0 3px 0 var(--cell-edge);
  }
  .cell:hover{transform:translateY(-2px)}
  .cell:active{transform:translateY(1px)}
  .cell .num{position:relative;z-index:2;transition:color .2s, transform .2s}
  .cell .daub{
    position:absolute;z-index:1;inset:0;margin:auto;width:78%;height:78%;
    border-radius:50%;background:var(--daub);
    transform:scale(0) rotate(-12deg);opacity:0;
    transition:transform .28s cubic-bezier(.34,1.56,.64,1), opacity .2s;
    box-shadow:0 4px 12px rgba(0,0,0,.28) inset, 0 3px 10px rgba(0,0,0,.25);
  }
  .cell.marked .daub{transform:scale(1) rotate(0);opacity:1}
  .cell.marked .num{color:var(--daub-ink);transform:scale(1.05)}
  .cell.inline{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-2), 0 0 18px var(--accent-2)}
  .cell.empty-cell{background:var(--panel);border:2px dashed var(--panel-line);box-shadow:none;color:var(--muted)}
  .cell.empty-cell:hover{border-color:var(--accent);border-style:solid;transform:translateY(-2px)}
  .cell.just-placed{animation:place .25s ease}
  @keyframes place{from{transform:scale(.78)}to{transform:scale(1)}}
  .cell.bc-reach{border-color:var(--accent);animation:bcReach 1.4s ease-in-out infinite}
  @keyframes bcReach{
    0%,100%{box-shadow:0 3px 0 var(--cell-edge), inset 0 0 0 2px var(--accent)}
    50%    {box-shadow:0 3px 0 var(--cell-edge), inset 0 0 0 4px var(--accent),
                       0 0 14px var(--accent)}}
  .cell.bc-reach::after{content:"";position:absolute;top:3px;right:3px;z-index:3;
    width:6px;height:6px;border-radius:50%;background:var(--accent);
    box-shadow:0 0 6px var(--accent)}
  .cell.bc-just::before{content:"";position:absolute;inset:0;margin:auto;z-index:3;
    width:78%;height:78%;border-radius:50%;pointer-events:none;
    animation:bcStamp .5s ease-out forwards}
  @keyframes bcStamp{
    0%  {box-shadow:0 0 0 0 rgba(255,255,255,.60);opacity:.95}
    100%{box-shadow:0 0 0 15px rgba(255,255,255,0);opacity:0}}
  .bc-fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
  .bc-laser{position:fixed;border-radius:99px;
    transform:translate(-50%,-50%) rotate(var(--bc-ang)) scaleX(0);
    background:linear-gradient(90deg,rgba(255,255,255,0),#fff 10%,var(--accent) 38%,
      var(--accent-2) 62%,#fff 90%,rgba(255,255,255,0));
    filter:drop-shadow(0 0 6px var(--accent-2));
    animation:bcLaser .9s cubic-bezier(.2,.75,.2,1) forwards}
  @keyframes bcLaser{
    0%  {transform:translate(-50%,-50%) rotate(var(--bc-ang)) scaleX(0);  opacity:0}
    16% {transform:translate(-50%,-50%) rotate(var(--bc-ang)) scaleX(.35);opacity:.88}
    52% {transform:translate(-50%,-50%) rotate(var(--bc-ang)) scaleX(1);  opacity:.88}
    100%{transform:translate(-50%,-50%) rotate(var(--bc-ang)) scaleX(1);  opacity:0}}
  .bc-ball{position:fixed;left:50%;top:38%;width:min(34vw,148px);aspect-ratio:1;
    border-radius:50%;display:grid;place-items:center;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle at 32% 27%,#fff,rgba(255,255,255,.88) 10%,
      var(--accent) 46%,var(--accent-2) 100%);
    box-shadow:0 14px 34px rgba(0,0,0,.45),
      inset -8px -12px 22px rgba(0,0,0,.26), inset 8px 10px 18px rgba(255,255,255,.40);
    animation:bcBall 1.3s cubic-bezier(.2,1.4,.35,1) forwards}
  .bc-ball b{font:900 clamp(30px,11vw,58px)/1 'Fredoka','Nunito',sans-serif;
    color:#2a1300;text-shadow:0 2px 0 rgba(255,255,255,.45)}
  @keyframes bcBall{
    0%  {transform:translate(-50%,-50%) scale(.2)  rotate(-24deg);opacity:0}
    17% {transform:translate(-50%,-50%) scale(1.13) rotate(4deg); opacity:1}
    30% {transform:translate(-50%,-50%) scale(1)   rotate(0);     opacity:1}
    74% {transform:translate(-50%,-50%) scale(1)   rotate(0);     opacity:1}
    100%{transform:translate(-50%,-58%) scale(.84) rotate(0);     opacity:0}}
  .bc-neon{position:fixed;inset:0;z-index:61;pointer-events:none;
    display:grid;justify-items:center;align-content:start;
    padding-top:clamp(28px,12vh,120px);
    background:radial-gradient(58% 48% at 50% 46%,rgba(0,0,0,.22),rgba(0,0,0,.74));
    animation:bcNeonBg 1.6s ease-out forwards}
  @keyframes bcNeonBg{0%{opacity:0}12%{opacity:1}66%{opacity:1}100%{opacity:0}}
  .bc-neonw{font:900 clamp(38px,14vw,116px)/1 'Fredoka','Nunito',sans-serif;letter-spacing:6px;
    color:#fff;
    text-shadow:0 0 8px #fff, 0 0 22px var(--accent),
                0 0 48px var(--accent-2), 0 0 84px var(--accent-2);
    animation:bcNeonW 1.6s cubic-bezier(.2,1.5,.3,1) forwards}
  @keyframes bcNeonW{
    0%  {transform:scale(2.5) rotate(-7deg);opacity:0}
    15% {transform:scale(1)   rotate(-2deg);opacity:1}
    66% {transform:scale(1)   rotate(-2deg);opacity:1}
    100%{transform:scale(1.1) rotate(-2deg);opacity:0}}
  @media (prefers-reduced-motion:reduce){
    .cell.bc-reach{animation:none;box-shadow:0 3px 0 var(--cell-edge), inset 0 0 0 3px var(--accent)}
    .bc-laser,.bc-ball,.bc-neon{display:none}
  }
  .actions{display:flex;gap:10px;width:min(92vw,520px);flex-wrap:wrap}
  .btn{
    flex:1;min-width:120px;border:0;border-radius:15px;padding:15px 16px;cursor:pointer;
    font-family:'Fredoka';font-weight:600;font-size:17px;transition:transform .15s, filter .2s;
  }
  @media (hover:hover) and (pointer:fine){
    .btn:hover{transform:translateY(-2px)}
  }
  .btn:active{transform:translateY(0) scale(.98)}
  .btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#1c1008;
    box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 6px 16px -6px rgba(0,0,0,.55)}
  :root[data-theme="midnight"] .btn.primary,:root[data-theme="arcade"] .btn.primary{color:var(--daub-ink)}
  .btn.ghost{background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.045) 60%),var(--panel);
    border:1px solid var(--panel-line);color:var(--text);
    box-shadow:0 1px 0 rgba(255,255,255,.26) inset,
               0 -1px 0 rgba(0,0,0,.20) inset,
               0 5px 14px -6px rgba(0,0,0,.55)}
  .status{width:min(92vw,520px);display:flex;justify-content:space-between;align-items:center;
    background:var(--panel);border:1px solid var(--panel-line);border-radius:15px;padding:12px 16px}
  .status .big{font-family:'Fredoka';font-weight:700;font-size:20px}
  .status .lbl{color:var(--muted);font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}
  .veil{position:fixed;inset:0;display:none;place-items:center;z-index:50;
    background:radial-gradient(125% 95% at 50% 45%,rgba(0,0,0,.42),rgba(0,0,0,.68));
    backdrop-filter:blur(4px);padding:20px}
  .veil.show{display:grid;animation:veilIn .18s cubic-bezier(.23,1,.32,1)}
  @keyframes veilIn{from{opacity:0}to{opacity:1}}
  .win-card{background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,0) 48%),var(--panel);
    border:1px solid var(--panel-line);border-radius:26px;
    padding:34px 30px;text-align:center;max-width:380px;backdrop-filter:blur(14px);
    max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;
    box-shadow:0 1px 0 rgba(255,255,255,.24) inset,
               0 -1px 0 rgba(0,0,0,.22) inset,
               0 0 90px -30px var(--accent),
               0 22px 48px -14px rgba(0,0,0,.6),
               0 5px 14px -5px rgba(0,0,0,.45);
    animation:popWin .34s cubic-bezier(.23,1,.32,1) .04s backwards}
  @keyframes pop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
  @keyframes popWin{
    0%{transform:scale(.94);opacity:0}
    55%{transform:scale(1.025);opacity:1}
    100%{transform:scale(1);opacity:1}
  }
  .win-card:not(.confirm-card) > *{animation:winRise .34s cubic-bezier(.23,1,.32,1) backwards}
  .win-card:not(.confirm-card) > :nth-child(1){animation-delay:.10s}
  .win-card:not(.confirm-card) > :nth-child(2){animation-delay:.155s}
  .win-card:not(.confirm-card) > :nth-child(3){animation-delay:.21s}
  .win-card:not(.confirm-card) > :nth-child(4){animation-delay:.265s}
  .win-card:not(.confirm-card) > :nth-child(5){animation-delay:.32s}
  .win-card:not(.confirm-card) > :nth-child(n+6){animation-delay:.36s}
  @keyframes winRise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
  .win-card.confirm-card{animation:pop .2s cubic-bezier(.23,1,.32,1) .04s backwards}
  .win-card .word{font-family:'Fredoka';font-weight:700;font-size:clamp(46px,15vw,76px);line-height:1;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
  .win-card p{color:var(--muted);margin:10px 0 22px;font-weight:700}
  .win-card .actions{width:100%}
  .win-card .btn{min-width:0;font-size:16px;padding:14px 10px}
  .win-champ{display:flex;flex-direction:column;align-items:center;gap:3px;margin:2px 0 14px;line-height:1.2}
  .win-champ .champ-label{font-family:'Fredoka';font-weight:700;font-size:15px;color:var(--muted);letter-spacing:.5px}
  .win-champ .champ-name{font-family:'Fredoka';font-weight:700;font-size:clamp(24px,8vw,34px);color:var(--accent);
    text-shadow:0 0 20px color-mix(in srgb,currentColor 45%,transparent);
    max-width:100%;overflow-wrap:anywhere}
  .win-champ .champ-goal{font-size:12.5px;font-weight:800;color:var(--muted);opacity:.85}
  .win-scores{width:100%;display:flex;flex-direction:column;gap:6px;margin:0 0 20px}
  .win-scores .ws-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;
    background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),rgba(255,255,255,.05);
    box-shadow:0 1px 0 rgba(255,255,255,.08) inset;
    border:1px solid var(--panel-line);font-weight:800;font-size:15px}
  .win-scores .ws-row.lead{background:var(--accent);color:#1c1008;border-color:var(--accent)}
  .win-scores .ws-row.me{box-shadow:0 0 0 2px var(--accent-2)}
  .win-scores .ws-rank{flex:none;font-family:'Fredoka';opacity:.85;min-width:22px}
  .win-scores .ws-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .win-scores .ws-pts{flex:none;font-family:'Fredoka'}
  .win-scores .ws-goal{font-family:'Fredoka';font-weight:700;font-size:14px;color:var(--accent-2);
    text-align:center;margin:-2px 0 2px}
  .mp-veil-card{max-width:min(92vw,440px)}
  .mp-veil-title{font-family:'Fredoka';font-weight:700;font-size:23px;margin-bottom:8px}
  .mp-veil-card .rps-btns{margin-top:4px}
  .mp-veil-card .actions{margin-top:16px}
  .peek-link{margin-top:14px;background:none;border:0;cursor:pointer;
    color:var(--muted);font-family:'Nunito';font-weight:800;font-size:14px;
    text-decoration:underline;text-underline-offset:3px}
  .peek-link:hover{color:var(--text)}
  body.peeking{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .peek-reopen{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:55;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#1c1008;border:0;
    border-radius:999px;padding:12px 22px;cursor:pointer;
    font-family:'Fredoka';font-weight:700;font-size:16px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
  :root[data-theme="midnight"] .peek-reopen,
  :root[data-theme="arcade"] .peek-reopen{color:var(--daub-ink)}
  canvas.confetti{position:fixed;inset:0;pointer-events:none;z-index:60}
  .confirm-card{max-width:340px}
  .confirm-ico{font-size:42px;line-height:1;margin-bottom:2px}
  .confirm-title{font-family:'Fredoka';font-weight:700;font-size:23px;margin-bottom:8px}
  .btn.danger{background:#e03131;color:#fff}
  .btn.danger:hover{filter:brightness(1.08)}
  .set-card{background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,0) 48%),var(--panel);
    border:1px solid var(--panel-line);border-radius:26px;
    box-shadow:0 1px 0 rgba(255,255,255,.24) inset,
               0 -1px 0 rgba(0,0,0,.22) inset,
               0 22px 48px -14px rgba(0,0,0,.6),
               0 5px 14px -5px rgba(0,0,0,.45);
    padding:22px 22px 24px;max-width:360px;width:100%;backdrop-filter:blur(14px);
    max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;
    animation:pop .2s cubic-bezier(.23,1,.32,1) .04s backwards}
  .set-head{font-family:'Fredoka';font-weight:700;font-size:23px;margin-bottom:10px;text-align:center}
  .set-group{border:1px solid var(--panel-line);border-radius:16px;padding:2px 12px;margin-top:12px;
    background:rgba(255,255,255,.04)}
  .set-group:first-child{margin-top:2px}
  .set-group-title{font-family:'Fredoka';font-weight:700;font-size:12px;letter-spacing:.08em;
    color:var(--accent);text-transform:uppercase;padding:11px 2px 3px}
  .set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:14px 2px;border-top:1px solid var(--panel-line)}
  .set-group-title + .set-row{border-top:none}
  .set-lbl{font-weight:800;font-size:15px}
  .set-sub{font-weight:700;font-size:12px;opacity:.55;margin-left:5px}
  .swatches{display:flex;gap:9px}
  .swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--panel-line);cursor:pointer;
    padding:0;transition:transform .12s}
  .swatch:hover{transform:scale(1.12)}
  .swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}
  .switch{width:52px;height:30px;border-radius:999px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.12);cursor:pointer;padding:0;position:relative;transition:background .2s}
  .switch .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;
    background:var(--text);transition:transform .2s}
  .switch[aria-checked="true"]{background:var(--accent)}
  .switch[aria-checked="true"] .knob{transform:translateX(22px);background:#fff}
  .set-card .btn{width:100%;margin-top:18px}
  #setVeil .set-card{display:flex;flex-direction:column;overflow:hidden}
  #setVeil .set-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .set-card.b2-rules-card,
  .set-card.bj-rules-card,
  .set-card.un-rules-card,
  .set-card.dc-rules-card{
    background-color:var(--bg1);
    background-image:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,0) 48%),
                     linear-gradient(0deg,var(--panel),var(--panel)),
                     linear-gradient(180deg,var(--bg1),var(--bg2))}
  .set-select{font-family:'Nunito',sans-serif;font-weight:700;font-size:14px;color:var(--text);
    background:rgba(255,255,255,.12);border:1px solid var(--panel-line);border-radius:12px;
    padding:8px 12px;cursor:pointer;max-width:62%}
  .rng{-webkit-appearance:none;appearance:none;width:132px;height:6px;border-radius:999px;
    background:var(--panel-line);outline:none;cursor:pointer}
  .rng::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;
    border-radius:50%;background:var(--accent);border:none;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3)}
  .rng::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}
  .set-row.dim{opacity:.45}
  .hidden{display:none!important}
  .tab-hidden{display:none!important}
  .room-tabs{width:min(92vw,520px);display:flex;gap:2px;border-bottom:2px solid var(--panel-line)}
  .room-tabs button{flex:1;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;
    padding:11px 8px 12px;font-family:'Nunito';font-weight:800;font-size:15.5px;color:var(--muted);cursor:pointer;transition:.15s}
  .room-tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}
  #fillRow{width:min(92vw,520px);margin-top:0}
  .primary-bar{width:min(92vw,520px);display:flex;flex-direction:column;gap:8px;padding-top:4px}
  .action-hint{text-align:center;font-weight:800;font-size:14px;line-height:1.45;color:var(--text);
    background:rgba(0,0,0,.10);border-radius:12px;padding:9px 12px}
  .mp-input{
    flex:1;min-width:0;background:rgba(255,255,255,.12);border:1px solid var(--panel-line);
    border-radius:12px;padding:11px 14px;color:var(--text);font-family:'Nunito';font-weight:800;font-size:15px;outline:none;
  }
  .mp-input.wide{flex:1}
  .mp-input::placeholder{color:var(--muted)}
  .or-divider{display:flex;align-items:center;gap:12px;margin:16px 2px 12px;color:var(--muted);font-size:12.5px;font-weight:800}
  .or-divider::before,.or-divider::after{content:"";flex:1;height:1px;background:var(--panel-line)}
  .mp-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
  .mp-head .subtitle{margin:0}
  .input-wrap{position:relative;width:100%}
  .input-wrap .mp-input{width:100%;padding-left:46px;padding-right:46px}
  .input-icon-btn{position:absolute;top:50%;right:6px;transform:translateY(-50%);
    width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--muted);
    font-size:19px;cursor:pointer;display:grid;place-items:center;transition:.15s}
  .input-icon-btn:hover{background:rgba(255,255,255,.10);color:var(--text)}
  .block-btn{display:block;width:100%;flex:none;min-width:0;margin-top:10px;padding:13px 16px;font-size:16px}
  .btn.outline{background:transparent;border:2px solid var(--accent);color:var(--accent)}
  .btn.outline:not(:disabled):hover{background:rgba(255,255,255,.06)}
  .btn:disabled,.btn[disabled]{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}
  .btn:disabled:hover,.btn[disabled]:hover{transform:none;background:transparent}
  .room-list{display:flex;flex-direction:column;gap:8px}
  .room-list:not(:empty){margin-top:10px}
  .room-group{display:flex;flex-direction:column;gap:8px}
  .room-group + .room-group{margin-top:14px}
  .room-group-title{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;
    color:var(--muted);letter-spacing:.03em;padding:0 2px 2px}
  .room-group-title .gt-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}
  .room-group.joinable .room-group-title{color:#22c55e}
  .room-group.joinable .room-group-title .gt-dot{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}
  .room-item{display:flex;flex-direction:row;align-items:center;gap:10px;width:100%;text-align:left;
    background:rgba(255,255,255,.10);border:1px solid var(--panel-line);border-radius:12px;
    padding:12px 14px;cursor:pointer;color:var(--text);font-weight:800;transition:transform .1s,border-color .12s,background .12s}
  .room-item .room-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
  .room-item .rn{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:1.25}
  .room-item .meta{width:100%;color:var(--muted);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .room-item .host{color:var(--accent)}
  .room-item.joinable{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.10)}
  .room-item.joinable:hover{transform:translateY(-1px);border-color:#22c55e;background:rgba(34,197,94,.16)}
  .room-item .join-cta{flex:none;display:inline-flex;align-items:center;gap:3px;padding:9px 15px;border-radius:999px;
    background:#22c55e;color:#06301a;font-family:'Fredoka',sans-serif;font-weight:700;font-size:14.5px;white-space:nowrap}
  .room-item.joinable:hover .join-cta{background:#16a34a;color:#fff}
  .room-item.busy{opacity:.55;cursor:not-allowed}
  .room-item.busy:hover{transform:none;border-color:var(--panel-line);background:rgba(255,255,255,.10)}
  .room-item .busy-tag{flex:none;display:inline-flex;align-items:center;gap:4px;padding:8px 13px;border-radius:999px;
    background:rgba(255,255,255,.08);border:1px solid var(--panel-line);color:var(--muted);font-size:13px;font-weight:800;white-space:nowrap}
  .room-item.mps-able{opacity:.86;cursor:pointer;border-color:rgba(99,102,241,.5);background:rgba(99,102,241,.10)}
  .room-item.mps-able:hover{transform:translateY(-1px);opacity:1;border-color:#6366f1;background:rgba(99,102,241,.17)}
  .room-item .join-cta.mps-cta{background:#6366f1;color:#fff}
  .room-item.mps-able:hover .join-cta.mps-cta{background:#4f46e5}
  .mps-eye{flex:none;vertical-align:-2px}
  .room-group-title .gt-sub{margin-left:auto;font-size:11.5px;font-weight:800;color:#818cf8}
  .mp-chip.mps-chip{border-style:dashed;border-color:rgba(99,102,241,.55);
    background:linear-gradient(180deg,rgba(99,102,241,.14),rgba(99,102,241,.05))}
  .mp-chip.mps-chip .mps-eye{color:#818cf8}
  .room-empty{color:var(--muted);font-size:13px;padding:6px 2px}
  .mp-detect-row{display:flex;align-items:center;gap:8px;margin:0 2px}
  .mp-detect-row .mp-live{flex:1;justify-content:flex-start;margin:0}
  .mp-rescan{flex:none;width:40px;height:38px;border:1px solid var(--panel-line);border-radius:12px;
    background:rgba(255,255,255,.06);color:var(--muted);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.15s}
  .mp-rescan:hover{background:rgba(255,255,255,.12);color:var(--text);border-color:var(--accent)}
  .mp-live{display:inline-flex;align-items:center;gap:9px;max-width:100%;margin:0 2px;
    padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.06);
    border:1px solid var(--panel-line);color:var(--muted);font-weight:800;font-size:13px;line-height:1.3}
  .mp-live .dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
  .mp-live[data-state="open"]{color:var(--accent);border-color:var(--accent);background:rgba(255,255,255,.10)}
  .mp-live[data-state="open"] .dot{animation:mpPulse 1.6s ease-out infinite}
  .mp-live[data-state="busy"]{color:var(--accent-2)}
  .mp-live[data-state="error"]{color:var(--daub)}
  @keyframes mpPulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
  .mp-status{font-weight:800;font-size:13px;color:var(--accent)}
  .mp-players{display:flex;flex-wrap:wrap;gap:14px 12px;margin-top:12px}
  .mp-players.oneline{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
    margin-top:9px;padding:3px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .mp-players.oneline .mp-chip{flex:none}
  .mp-players.oneline .mp-chip:first-child{transform-origin:left center}
  .mp-chip{
    display:flex;align-items:center;gap:7px;
    background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.06));
    box-shadow:0 1px 0 rgba(255,255,255,.10) inset;
    border:1px solid var(--panel-line);border-radius:999px;padding:6px 13px;font-weight:800;font-size:14px;
  }
  .mp-chip.clickable{cursor:pointer;transition:transform .1s,border-color .12s}
  @media (hover:hover) and (pointer:fine){
    .mp-chip.clickable:hover{transform:translateY(-1px);border-color:var(--accent)}
  }
  .mp-chip .dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}
  .mp-chip.ready .dot{background:var(--accent)}
  .mp-chip .ln{font-family:'Fredoka';font-weight:700;font-size:12px;line-height:1;
    background:var(--accent);color:#1c1008;border-radius:999px;padding:3px 8px;margin-left:1px}
  .mp-chip.me{border-color:var(--accent-2);box-shadow:0 0 0 2px var(--accent-2)}
  .mp-chip .mp-kick{display:inline-grid;place-items:center;width:20px;height:20px;margin-left:3px;padding:0;
    border:none;border-radius:50%;background:#ff5252;color:#fff;line-height:0;cursor:pointer;
    box-shadow:0 1px 3px rgba(0,0,0,.28);transition:background .15s,transform .1s}
  .mp-chip .mp-kick svg{display:block}
  .mp-chip .mp-kick:hover{background:#e03131;transform:scale(1.1)}
  .mp-chip .seat-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;
    border-radius:10px;background:var(--accent);color:#1c1008;font-family:'Fredoka';font-weight:700;font-size:12.5px}
  :root[data-theme="midnight"] .mp-chip .seat-badge,
  :root[data-theme="midnight"] .mp-chip .ln,
  :root[data-theme="arcade"] .mp-chip .seat-badge,
  :root[data-theme="arcade"] .mp-chip .ln{color:var(--daub-ink)}
  .mp-chip.turn{background:var(--accent);color:#1c1008;border-color:var(--accent);transform:scale(1.04);
    font-size:15px;animation:turnpulse 1.2s ease-in-out infinite}
  .mp-chip.turn .dot{background:#1c1008}
  .mp-chip.turn .ln{background:#1c1008;color:var(--accent)}
  .mp-chip.turn .seat-badge{background:#1c1008;color:var(--accent)}
  @keyframes turnpulse{0%,100%{box-shadow:0 0 0 2px var(--accent)}50%{box-shadow:0 0 0 2px var(--accent),0 0 16px var(--accent)}}
  .mp-chip .score-badge{display:inline-flex;align-items:center;gap:1px;margin-left:2px;
    font-family:'Fredoka';font-weight:700;font-size:12.5px;color:var(--accent-2)}
  .mp-chip.turn .score-badge{color:#1c1008}
  .score-extra{display:flex;flex-direction:column;gap:12px;margin-top:12px}
  .score-extra .wg-group{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
    background:rgba(0,0,0,.12);border-radius:14px;padding:12px 14px}
  .score-extra .wg-lbl{font-size:14px;color:var(--muted);font-weight:800}
  .score-extra .wg-stepper{display:flex;align-items:center;background:rgba(0,0,0,.18);border-radius:12px;padding:3px;gap:4px}
  .score-extra .wg-stepper .mini{width:50px;height:auto;min-height:36px;border:0;border-radius:9px;
    background:transparent;font-size:20px;cursor:pointer}
  .score-extra .wg-stepper .mini:hover{background:rgba(255,255,255,.10)}
  .score-extra .target-val{min-width:28px;text-align:center;font-size:20px}
  .score-extra .wg-stepper .mini:disabled{opacity:.35;cursor:not-allowed}
  .score-extra .wg-stepper .mini:disabled:hover{background:transparent}
  .score-extra .wg-group.locked .target-val{opacity:.7}
  .score-extra .wg-lock-hint{text-align:center;font-size:12px;font-weight:700;color:var(--muted);opacity:.9;line-height:1.4}
  .score-extra .score-reset{align-self:center;width:auto;height:auto;min-width:0;min-height:0;
    padding:10px 22px;font-size:13.5px;font-weight:800;border-radius:11px;cursor:pointer;
    background:transparent;border:1px solid var(--panel-line);color:var(--muted)}
  .score-extra .score-reset:hover{border-color:var(--accent);color:var(--text)}
  .cell.callable{box-shadow:0 0 0 3px var(--accent) inset;cursor:pointer}
  .mp-panel{
    width:min(92vw,520px);background:var(--panel);border:1px solid var(--panel-line);
    border-radius:15px;padding:16px;
  }
  .mp-panel .subtitle{font-size:15px;margin-bottom:4px}
  .rps-hint{color:var(--muted);font-size:13px;margin:6px 0 12px}
  .rps-btns{display:flex;gap:10px;justify-content:center}
  .rps-btn{
    flex:1;max-width:110px;font-size:34px;padding:14px 0;background:rgba(255,255,255,.10);
    border:2px solid var(--panel-line);border-radius:16px;cursor:pointer;transition:transform .08s,border-color .12s;
  }
  .rps-btn:hover{transform:translateY(-2px)}
  .rps-btn:focus{outline:none}
  .rps-btn:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}
  .rps-btn.chosen{border-color:var(--accent);background:rgba(255,255,255,.20);transform:scale(1.06)}
  .rps-btns.locked{pointer-events:none}
  .rps-btn.dim{opacity:.28;transform:none}
  .rps-throws{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;justify-content:center}
  .reveal-hands{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:12px 0 14px}
  .reveal-hand{
    position:relative;
    display:flex;flex-direction:column;align-items:center;gap:3px;min-width:86px;
    background:rgba(255,255,255,.10);border:2px solid var(--panel-line);border-radius:16px;
    padding:12px 14px 10px;opacity:0;transform:translateY(10px) scale(.85);
    animation:revealPop .38s cubic-bezier(.2,.9,.3,1.35) forwards;
  }
  .reveal-hand .emo{font-size:42px;line-height:1;margin-bottom:2px}
  .reveal-hand .rk{font-family:'Fredoka';font-weight:600;color:var(--accent);font-size:12.5px}
  .reveal-hand .nm{font-weight:800;font-size:14px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .reveal-hand .txt{color:var(--muted);font-size:11.5px;font-weight:700}
  .reveal-hand.win{border-color:var(--accent);background:rgba(255,255,255,.20)}
  .reveal-hand.win .nm{color:var(--accent)}
  .reveal-hand.tie{border-style:dashed;opacity:.92}
  .reveal-hand.me{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-2),0 0 16px var(--accent-2);background:rgba(255,255,255,.18)}
  .reveal-hand.me .nm{font-weight:900}
  @keyframes revealPop{to{opacity:1;transform:none}}
  .reveal-order{text-align:center;font-weight:800;font-size:15px;margin-top:2px;line-height:1.5}
  .reveal-champ{font-weight:900;font-size:15px;line-height:1.35}
  .reveal-champ .nm{color:var(--accent);font-size:24px;font-weight:900;word-break:break-word}
  .reveal-seq{color:var(--muted);font-size:13px;font-weight:700;margin-top:6px}
  .you-badge{display:inline-block;background:var(--accent-2);color:#1c1008;font-family:'Fredoka';
    font-weight:700;font-size:11px;line-height:1;padding:3px 8px;border-radius:999px;margin-left:6px;
    vertical-align:middle;box-shadow:0 1px 5px rgba(0,0,0,.28)}
  .reveal-hand .you-badge{position:absolute;top:-9px;right:-6px;margin:0;font-size:10.5px;padding:3px 8px}
  :root[data-theme="midnight"] .you-badge,
  :root[data-theme="arcade"] .you-badge{color:var(--daub-ink)}
  .order-list{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}
  .order-item{
    display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.10);
    border:1px solid var(--panel-line);border-radius:12px;padding:8px 12px;font-weight:800;
  }
  .order-item .seat{font-family:'Fredoka';color:var(--accent);min-width:22px;text-align:center}
  .order-item .nm{flex:1}
  .order-item .mv{display:flex;gap:6px}
  .order-item .mv button{
    width:32px;height:32px;border-radius:9px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.12);color:var(--text);cursor:pointer;font-size:14px;
  }
  .order-item .mv button:disabled{opacity:.3;cursor:default}
  .emote-card{max-width:clamp(340px,44vw,460px);position:relative;overscroll-behavior:contain;touch-action:pan-y}
  #emoteVeil{touch-action:none}
  .set-card.emote-card{animation-duration:.15s}
  .card-x{position:sticky;top:0;margin:-6px -4px -32px auto;z-index:4;flex-shrink:0;
    width:34px;height:34px;border-radius:50%;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.12);color:var(--text);font-size:15px;font-weight:800;line-height:1;
    cursor:pointer;display:grid;place-items:center;transition:background .15s,transform .1s}
  @media (hover:hover) and (pointer:fine){
    .card-x:hover{background:rgba(255,255,255,.22);transform:scale(1.06)}
  }
  .card-x:active{transform:scale(.9)}
  .emote-card .set-head{padding:0 34px}
  .emote-to{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
  .emote-to-btn{border:1px solid var(--panel-line);background:rgba(255,255,255,.10);color:var(--text);
    border-radius:999px;padding:7px 13px;font-family:'Nunito';font-weight:800;font-size:13.5px;cursor:pointer;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.12s}
  .emote-to-btn.on{background:var(--accent);color:#1c1008;border-color:var(--accent)}
  :root[data-theme="midnight"] .emote-to-btn.on,
  :root[data-theme="arcade"] .emote-to-btn.on{color:var(--daub-ink)}
  .emote-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
  .emote-btn{aspect-ratio:1;border:1px solid var(--panel-line);background:rgba(255,255,255,.08);
    border-radius:12px;font-size:clamp(26px,3vw,36px);line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .1s,background .15s;
    user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
  .emote-btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.18)}
  .emote-btn:active{transform:scale(.9)}
  .emote-sub{font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--muted);letter-spacing:.3px;margin:16px 0 8px}
  .emote-phrases{display:flex;flex-wrap:wrap;gap:8px}
  .phrase-btn{border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text);
    border-radius:999px;padding:9px 15px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;
    cursor:pointer;transition:transform .1s,background .15s;
    user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
  .phrase-btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.18)}
  .phrase-btn:active{transform:scale(.94)}
  .clip-btn{background:rgba(120,190,255,.14)}
  .clip-btn:hover{background:rgba(120,190,255,.26)}
  .pd-drag{position:relative;z-index:50;opacity:.92;box-shadow:0 6px 16px rgba(0,0,0,.35);cursor:grabbing;transition:none!important}
  .emote-input{display:flex;align-items:stretch;gap:8px;margin-top:16px}
  #emoteText{flex:1 1 auto;min-width:0;border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text);
    border-radius:999px;padding:11px 16px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;outline:none;transition:border-color .15s}
  #emoteText::placeholder{color:var(--muted);font-weight:700}
  #emoteText:focus{border-color:var(--accent)}
  .emote-card #emoteSend{flex:0 0 auto;width:auto;margin-top:0;padding:11px 20px;font-size:14px}
  .emote-rec{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
    margin-top:8px;border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text);
    border-radius:14px;padding:12px 16px;cursor:pointer;
    font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;line-height:1.2;
    transition:transform .1s,background .15s;
    user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
  .emote-rec .qv-ico{flex:none;font-size:18px;line-height:1}
  @media (hover:hover){ .emote-rec:hover{background:rgba(255,255,255,.18)} }
  .emote-rec:active{transform:scale(.97)}
  .emote-rec.rec{background:linear-gradient(135deg,#ff5a5a,#ff2d2d);border-color:#ff2d2d;color:#fff;
    animation:recPulse 1s ease-in-out infinite}
  .emote-rec:disabled{opacity:.6;cursor:default}
  @keyframes recPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,45,45,.5)}50%{box-shadow:0 0 0 9px rgba(255,45,45,0)}}
  .mp-actions{display:flex;align-items:center;gap:8px;flex:none}
  .rps-actions{justify-content:center;margin-top:16px}
  .mp-act-btn{
    flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;padding:0;border-radius:50%;cursor:pointer;
    border:1px solid var(--panel-line);background:var(--accent);color:#1c1008;
    font-size:22px;line-height:1;transition:transform .1s,background .2s}
  .mp-act-btn:active{transform:scale(.9)}
  @media (hover:hover){ .mp-act-btn:hover{transform:translateY(-1px)} }
  :root[data-theme="midnight"] .mp-act-btn,
  :root[data-theme="arcade"] .mp-act-btn{color:var(--daub-ink)}
  .mp-subrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
  .mp-subrow .mp-status{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mp-goal{flex:none;font-weight:800;font-size:13px;color:var(--accent-2)}
  .mp-status.wait{color:var(--muted)}
  .voice-gate{position:fixed;z-index:66;left:50%;top:calc(10px + env(safe-area-inset-top));transform:translateX(-50%);
    display:inline-flex;align-items:center;gap:6px;max-width:92vw;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#1c1008;border:0;border-radius:999px;
    padding:11px 20px;cursor:pointer;font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;white-space:nowrap;
    box-shadow:0 6px 22px rgba(0,0,0,.35);animation:voiceGateIn .3s cubic-bezier(.34,1.56,.64,1)}
  .voice-gate.hidden{display:none!important}
  .voice-gate:active{transform:translateX(-50%) scale(.95)}
  @keyframes voiceGateIn{from{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
  :root[data-theme="midnight"] .voice-gate,
  :root[data-theme="arcade"] .voice-gate{color:var(--daub-ink)}
  .emote-fly-layer{position:fixed;inset:0;pointer-events:none;z-index:64}
  .emote-fly{position:absolute;--ef-dx:0px;transform:translate(-50%,-50%);display:flex;flex-direction:column;
    align-items:center;gap:3px;animation:emoteFloat var(--ef-dur,3.1s) ease-out forwards}
  .emote-fly .ef-emo{font-size:46px;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.4))}
  .emote-fly .ef-cap{font-family:'Fredoka';font-weight:600;font-size:12px;color:#fff;white-space:nowrap;
    background:rgba(0,0,0,.5);padding:2px 9px;border-radius:999px}
  .emote-fly.is-text .ef-emo{font-size:19px;font-family:'Nunito',sans-serif;font-weight:800;color:#1c1008;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));padding:8px 16px;border-radius:16px;
    white-space:nowrap;line-height:1.25;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
  :root[data-theme="midnight"] .emote-fly.is-text .ef-emo,
  :root[data-theme="arcade"] .emote-fly.is-text .ef-emo{color:var(--daub-ink)}
  .emote-fly.is-voice .ef-emo{animation:voicePulse .55s ease-in-out infinite alternate}
  @keyframes voicePulse{from{transform:scale(1)}to{transform:scale(1.14)}}
  .emote-fly.ef-sm .ef-emo{font-size:34px}
  .emote-fly.ef-sm .ef-cap{font-size:11px;padding:1px 7px}
  .emote-fly.ef-sm.is-text .ef-emo{font-size:16px;padding:6px 12px;border-radius:13px}
  @keyframes emoteFloat{
    0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}
    11%{opacity:1;transform:translate(calc(-50% + var(--ef-dx) * .15),-90%) scale(1.15)}
    24%{transform:translate(calc(-50% + var(--ef-dx) * .35),-140%) scale(1)}
    72%{opacity:1}
    100%{opacity:0;transform:translate(calc(-50% + var(--ef-dx)),-360%) scale(1)}
  }
  #toast{
    position:fixed;top:68px;left:50%;transform:translateX(-50%) translateY(-14px);
    background:var(--daub);color:var(--daub-ink);font-family:'Fredoka';font-weight:600;
    padding:8px 18px;border-radius:999px;font-size:15px;z-index:70;
    opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;
    box-shadow:0 6px 18px rgba(0,0,0,.25);
  }
  #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .upd-pill{
    position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 6px);
    transform:translateX(-50%) translateY(-8px);z-index:75;
    max-width:calc(100vw - 32px);box-sizing:border-box;overflow:hidden;
    padding:5px 14px 6px;border-radius:999px;
    background:rgba(24,14,34,.88);color:#fff;
    font:600 13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;
    white-space:nowrap;text-overflow:ellipsis;
    box-shadow:0 4px 14px rgba(0,0,0,.28);
    opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;
  }
  .upd-pill.upd-on{opacity:1;transform:translateX(-50%) translateY(0)}
  .upd-pill > span{display:block;overflow:hidden;text-overflow:ellipsis}
  .upd-pill > i{position:absolute;left:0;bottom:0;height:3px;width:0;
    background:#5fd38a;transition:width .3s;display:none}
  .upd-pill.upd-bar > i{display:block}
  .upd-pill.upd-news{white-space:normal;text-align:center;border-radius:14px;
    width:max-content;max-width:min(calc(100vw - 32px),440px);
    padding:8px 16px;pointer-events:auto;cursor:pointer}
  .upd-pill.upd-news > span{white-space:normal}
  .set-foot{margin-top:14px;text-align:center;color:var(--muted);opacity:.7;
    font-size:12px;font-weight:700;letter-spacing:.02em}
  #home{text-align:center;padding-top:8px}
  .home-hero{margin:14px 0 4px}
  .bc-art{width:96px;height:96px;margin:0 auto 8px;display:block}
  .home-tagline{color:var(--muted);font-weight:700;margin-top:10px;font-size:15px}
  .home-btn{margin-top:12px;font-size:18px;padding:16px 10px}
  .home-hint{color:var(--muted);font-size:12.5px;margin-top:16px;opacity:.8}
  .solo-head{width:min(92vw,520px);display:flex;align-items:center;gap:10px}
  .solo-head .subtitle{margin:0}
  .mp-input.needs-name{border-color:#ff5252!important;box-shadow:0 0 0 3px rgba(255,82,82,.28);animation:shakeX .45s}
  @keyframes shakeX{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
  @media (prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.05s!important}}
  @media (max-height:560px){
    body{padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:8px}
    .marquee .bulb{font-size:clamp(20px,5.5vw,28px)}
    .topver{padding-bottom:2px;font-size:10px}
    .home-hero{margin:6px 0 2px}
    .bc-art{width:64px;height:64px}
    .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
    .mp-act-btn{width:34px;height:34px;font-size:18px}
    #mpBar{padding:9px 12px}
    .row{margin-top:9px}
    .mp-subrow{margin-top:5px}
    .mp-players{margin-top:8px;gap:8px}
    .mp-players.oneline{margin-top:5px;padding:2px 3px}
    .mp-chip{font-size:12.5px;padding:4px 10px}
    .mp-chip.turn{font-size:13.5px}
    .room-tabs button{padding:8px 4px 7px;font-size:13px}
    .primary-bar{padding-top:2px}
    .primary-bar .btn{padding:11px 14px;font-size:15px}
    .board-wrap{gap:8px}
    .scroll-area{gap:8px}
    .status{padding:8px 14px}
    .status .big{font-size:17px}
  }
  .svs-card{max-width:420px}
  .svs-ping{text-align:center;font-size:12.5px;color:var(--muted);margin:-6px 0 12px;line-height:1.75}
  .svs-mic{color:var(--text);opacity:.85;font-weight:800}
  .svs-actions{display:flex;gap:8px;margin-bottom:14px}
  .svs-actions .btn{width:auto;flex:1;margin-top:0;padding:11px 8px;font-size:13.5px}
  .svs-actions .btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
  .svs-row{border:1px solid var(--panel-line);border-radius:14px;padding:10px 12px;margin-top:10px}
  .svs-row:first-child{margin-top:0}
  .svs-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
  .svs-name{font-weight:800}
  .svs-nums{font-size:12px;color:var(--muted);font-weight:700}
  .svs-stale{margin-top:6px;font-size:12px;color:var(--muted);max-height:190px;overflow-y:auto;line-height:1.7}
  .svs-dot{display:inline-block;width:1.35em;opacity:.55}
  .svs-dot.live{opacity:1}
  .svs-by{color:var(--text);opacity:.72;font-weight:700}
  .svs-stale i{opacity:.7;font-style:normal}
  .svs-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .svs-row .btn.ghost{width:auto;margin-top:0;padding:7px 12px;font-size:13px}
  .svs-spin{
    display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;
    border:2px solid rgba(128,128,128,.3);border-top-color:var(--text);border-radius:50%;
    animation:svsSpin .7s linear infinite;
  }
  @keyframes svsSpin{ to{ transform:rotate(360deg) } }
  .svs-skel .svs-nums{opacity:.6}
  .svs-bar{margin-top:8px;height:6px;border-radius:999px;background:rgba(128,128,128,.16);overflow:hidden}
  .svs-bar i{display:block;width:38%;height:100%;border-radius:999px;
    background:linear-gradient(90deg,transparent,rgba(128,128,128,.55),transparent);
    animation:svsSlide 1.15s ease-in-out infinite}
  @keyframes svsSlide{ 0%{transform:translateX(-100%)} 100%{transform:translateX(340%)} }
  @media (prefers-reduced-motion:reduce){
    .svs-spin,.svs-bar i{animation:none}
  }
  .svs-fb-list{margin-top:8px;max-height:min(52vh,460px);overflow-y:auto}
  .svs-fb-item{border-top:1px solid var(--panel-line);padding:9px 0}
  .svs-fb-item:first-child{border-top:0;padding-top:2px}
  .svs-fb-meta{font-size:12px;color:var(--muted);font-weight:700}
  .svs-fb-text{margin:3px 0 5px;font-size:14px;font-weight:600;line-height:1.55;
    white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word}
  .svs-fb-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
  .svs-fb-kind{color:var(--text);font-weight:800}
  .svs-fb-who{font-size:13px;font-weight:800;color:var(--text)}
  .svs-fb-nick{font-size:11.5px;font-weight:600;color:var(--text)}
  .svs-fb-done{font-weight:700;color:var(--text);padding:0 6px;border-radius:999px;
    border:1px solid rgba(128,128,128,.45)}
  .svs-fb-anon{font-weight:600;color:var(--muted)}
  .svs-fb-none{margin-top:8px;font-size:13px;font-weight:700;color:var(--muted)}
  .svs-fb .svs-nums{color:var(--text)}
  .svs-fb-bad{margin-top:8px;padding:8px 10px;border-radius:10px;
    border:1px solid rgba(224,49,49,.45);background:rgba(224,49,49,.13);
    font-size:13px;font-weight:700;line-height:1.6;color:var(--text)}
  .svs-fb-bad code{font-size:12px;padding:1px 5px;border-radius:6px;background:rgba(128,128,128,.2)}
  .svs-fb-skel .svs-nums{opacity:.6}
  .svs-fb-foot .btn.ghost{
    flex:none;width:auto;min-width:0;margin-top:0;
    padding:4px 9px;font-size:11px;border-radius:10px;
  }
  :root{ --gmk-wood:#e9c98d; --gmk-line:rgba(66,40,12,.55); --gmk-star:rgba(66,40,12,.75); --gmk-edge:rgba(66,40,12,.28); --gmk-frame:#8a5a24; }
  :root[data-theme="midnight"]{ --gmk-wood:#141c31; --gmk-line:rgba(140,190,255,.34); --gmk-star:rgba(140,190,255,.6); --gmk-edge:rgba(140,190,255,.2); --gmk-frame:#39527f; }
  :root[data-theme="bubblegum"]{ --gmk-wood:#fff0f8; --gmk-line:rgba(150,70,130,.4); --gmk-star:rgba(150,70,130,.65); --gmk-edge:rgba(150,70,130,.22); --gmk-frame:#c07aa8; }
  :root[data-theme="meadow"]{ --gmk-wood:#e6dfb8; --gmk-line:rgba(40,66,36,.5); --gmk-star:rgba(40,66,36,.72); --gmk-edge:rgba(40,66,36,.26); --gmk-frame:#5d7038; }
  :root[data-theme="arcade"]{ --gmk-wood:#0d0d12; --gmk-line:rgba(255,230,0,.3); --gmk-star:rgba(255,230,0,.55); --gmk-edge:rgba(255,230,0,.18); --gmk-frame:#6b6220; }
  .gmk-scroll{flex:1 1 auto}
  .as-link{text-decoration:none}
  a.block-btn.as-link{display:flex;align-items:center;justify-content:center;text-align:center}
  a.icon-btn.as-link{display:grid;place-items:center;flex:none}
  .gmk-stage{
    position:relative;flex:1 1 auto;min-height:0;width:min(92vw,520px);
    background:var(--panel);border:1px solid var(--panel-line);border-radius:20px;
    overflow:hidden;touch-action:none;cursor:grab;
    user-select:none;-webkit-user-select:none;
  }
  .gmk-stage.dragging{cursor:grabbing}
  .gmk-canvas{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}
  .gmk-board{
    position:relative;
    width:calc(var(--n,15) * var(--gcell,40px));
    height:calc(var(--n,15) * var(--gcell,40px));
    background-color:var(--gmk-wood);
    background-image:
      linear-gradient(to right, var(--gmk-line) 1px, transparent 1px),
      linear-gradient(to bottom, var(--gmk-line) 1px, transparent 1px);
    background-size:var(--gcell,40px) var(--gcell,40px);
    background-position:calc(var(--gcell,40px) / 2) calc(var(--gcell,40px) / 2);
    box-shadow:0 0 0 3px var(--gmk-frame), 0 8px 22px rgba(0,0,0,.32);
    border-radius:6px;
  }
  .gmk-board::after{
    content:"";position:absolute;pointer-events:none;
    left:calc(var(--gcell,40px) / 2); top:calc(var(--gcell,40px) / 2);
    right:calc(var(--gcell,40px) / 2); bottom:calc(var(--gcell,40px) / 2);
    border:2px solid var(--gmk-frame);
  }
  .gmk-board::before{
    content:"";position:absolute;inset:0;pointer-events:none;border-radius:6px;
    background-image:
      repeating-linear-gradient(90deg,
        rgba(92,58,20,.05) 0 1px, rgba(255,244,214,.045) 1px 2px, rgba(0,0,0,0) 2px 17px),
      repeating-linear-gradient(90deg,
        rgba(92,58,20,.035) 0 1px, rgba(0,0,0,0) 1px 29px),
      repeating-linear-gradient(90deg,
        rgba(64,38,10,.055) 0 2px, rgba(0,0,0,0) 2px 43px),
      linear-gradient(to right, rgba(255,255,255,.19) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(255,255,255,.19) 1px, transparent 1px);
    background-size:
      auto, auto, auto,
      var(--gcell,40px) var(--gcell,40px),
      var(--gcell,40px) var(--gcell,40px);
    background-position:
      0 0, 7px 0, 19px 0,
      calc(var(--gcell,40px) / 2 + 1px) 0,
      0 calc(var(--gcell,40px) / 2 + 1px);
  }
  .gmk-star{position:absolute;width:7px;height:7px;border-radius:50%;
    background:radial-gradient(circle at 36% 30%, #ffe9a6 0%, #f0bd45 52%, #b8832a 100%);
    box-shadow:0 0 0 .5px rgba(70,44,10,.55), inset 0 -.5px .5px rgba(255,255,255,.5);
    transform:translate(-50%,-50%);pointer-events:none}
  .gmk-stone{
    position:absolute;width:calc(var(--gcell,40px) * .88);height:calc(var(--gcell,40px) * .88);
    border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1;
    animation:gmkDrop .16s ease-out;
  }
  .gmk-stone.b{background:
      radial-gradient(ellipse 16% 11% at 33% 24%, rgba(214,232,255,.92), rgba(190,214,245,.28) 55%, rgba(255,255,255,0) 100%),
      radial-gradient(ellipse 52% 40% at 62% 78%, rgba(120,140,170,.16), rgba(255,255,255,0) 70%),
      radial-gradient(circle at 34% 28%, #7a7a7a 0%, #2b2b2b 45%, #050505 100%);
    box-shadow:0 2px 5px rgba(0,0,0,.45), inset 0 -1px 3px rgba(255,255,255,.10)}
  .gmk-stone.w{background:
      radial-gradient(ellipse 16% 11% at 33% 24%, rgba(255,255,255,.98), rgba(255,255,255,.42) 55%, rgba(255,255,255,0) 100%),
      radial-gradient(ellipse 60% 46% at 50% 82%, rgba(255,250,235,.75), rgba(255,246,225,0) 72%),
      radial-gradient(circle at 34% 28%, #ffffff 0%, #f2ede4 45%, #c3bcb0 100%);
    box-shadow:0 2px 5px rgba(0,0,0,.35), inset 0 -1px 3px rgba(0,0,0,.10)}
  @keyframes gmkDrop{ from{transform:translate(-50%,-50%) scale(.4);opacity:.3} to{transform:translate(-50%,-50%) scale(1);opacity:1} }
  .gmk-stone.last::after{
    content:"";position:absolute;inset:18%;border-radius:50%;
    border:2.5px solid var(--accent);animation:gmkLast 1.4s ease-in-out infinite;
  }
  @keyframes gmkLast{ 0%,100%{opacity:.45} 50%{opacity:1} }
  .gmk-stone.last::before{
    content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
    border:1.5px solid var(--accent);animation:gmkRipple 1.9s ease-out infinite;
  }
  @keyframes gmkRipple{ 0%{transform:scale(.86);opacity:.62} 58%{opacity:0} 100%{transform:scale(1.62);opacity:0} }
  .gmk-stone.four{outline:2px dashed rgba(255,110,92,.85);outline-offset:2px}
  .gmk-stone.win{z-index:2;box-shadow:0 0 0 3px var(--accent), 0 0 14px 3px var(--accent);
    animation:gmkWinFlare .46s ease-out both, gmkWin .9s ease-in-out infinite alternate;
    animation-delay:calc(var(--wi,0) * 90ms), calc(var(--wi,0) * 90ms + 460ms)}
  @keyframes gmkWin{ from{box-shadow:0 0 0 3px var(--accent), 0 0 6px 1px var(--accent)} to{box-shadow:0 0 0 3px var(--accent), 0 0 20px 6px var(--accent)} }
  @keyframes gmkWinFlare{
    0%{box-shadow:0 0 0 2px var(--accent), 0 0 0 0 rgba(255,240,190,.9);filter:brightness(1)}
    45%{box-shadow:0 0 0 4px #fff2bd, 0 0 22px 9px rgba(255,201,60,.95);filter:brightness(1.35)}
    100%{box-shadow:0 0 0 3px var(--accent), 0 0 14px 3px var(--accent);filter:brightness(1)}
  }
  .gmk-beam{position:absolute;z-index:0;pointer-events:none;
    height:calc(var(--gcell,40px) * 1.25);border-radius:999px;
    background:linear-gradient(90deg, rgba(255,236,170,0), rgba(255,255,255,.97) 16%,
                                      rgba(255,250,225,.97) 50%, rgba(255,255,255,.97) 84%, rgba(255,236,170,0));
    box-shadow:0 0 24px 9px rgba(255,196,44,.8), 0 0 6px 2px rgba(255,255,255,.7);
    opacity:.92}
  .gmk-aim{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .1s linear}
  .gmk-aim.show{opacity:.7}
  .gmk-aim i{position:absolute;background:var(--accent);border-radius:2px}
  .gmk-aim-h{left:0;right:0;top:var(--ay,0);height:2px;transform:translateY(-50%)}
  .gmk-aim-v{top:0;bottom:0;left:var(--ax,0);width:2px;transform:translateX(-50%)}
  .gmk-ghost{position:absolute;width:calc(var(--gcell,40px) * .88);height:calc(var(--gcell,40px) * .88);
    border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1;opacity:.34;display:none}
  .gmk-ghost.show{display:block}
  .gmk-zoom{position:absolute;right:8px;bottom:8px;z-index:3;display:flex;flex-direction:column;gap:6px}
  .gmk-zoom button{width:36px;height:36px;border:1px solid var(--panel-line);border-radius:12px;
    background:rgba(0,0,0,.28);color:var(--text);font-family:'Fredoka',sans-serif;font-weight:700;
    font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(6px)}
  .gmk-zoom button:active{transform:scale(.9)}
  .gmk-zoom button:disabled{opacity:.35;cursor:default}
  :root[data-theme="bubblegum"] .gmk-zoom button{background:rgba(255,255,255,.55)}
  .gmk-turn{position:absolute;left:50%;top:8px;transform:translateX(-50%);z-index:3;
    display:flex;align-items:center;gap:7px;white-space:nowrap;
    padding:6px 14px;border-radius:999px;font-weight:800;font-size:13px;
    background:rgba(0,0,0,.32);color:var(--text);border:1px solid var(--panel-line);backdrop-filter:blur(6px)}
  .gmk-turn.mine{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#1c1008;border-color:transparent;
    animation:gmkTurnPulse 1.5s ease-in-out infinite}
  @keyframes gmkTurnPulse{ 0%,100%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.045)} }
  :root[data-theme="midnight"] .gmk-turn.mine,:root[data-theme="arcade"] .gmk-turn.mine{color:var(--daub-ink)}
  :root[data-theme="bubblegum"] .gmk-turn{background:rgba(255,255,255,.6)}
  .gmk-step{margin-left:6px;padding:1px 6px;border-radius:999px;
    font-size:11px;font-weight:800;background:rgba(0,0,0,.18);opacity:.9}
  .gmk-dot{width:13px;height:13px;border-radius:50%;flex:none;display:inline-block}
  .gmk-dot.b{background:#111;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
  .gmk-dot.w{background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
  .gmk-side{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:13px;color:var(--muted)}
  .gmk-room{padding:9px 12px}
  .gmk-room .row{margin-top:0}
  .gmk-room-top{flex-wrap:nowrap;gap:8px}
  .gmk-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
  .gmk-room-title b{font-size:15px;color:var(--text)}
  .gmk-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .gmk-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .gmk-room .mp-subrow{margin-top:5px}
  .gmk-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .gmk-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .gmk-room-foot .mp-players.oneline{overflow-x:hidden}
  .gmk-room-foot .mp-players.oneline .mp-chip{flex:0 1 auto;min-width:0;padding:4px 10px;gap:5px}
  .gmk-room-foot .mp-chip.turn{font-size:14px}
  .gmk-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gmk-resign{flex:none;border:1px solid var(--panel-line);border-radius:999px;padding:7px 12px;
    background:rgba(255,90,90,.14);color:var(--text);cursor:pointer;
    font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;line-height:1;white-space:nowrap;
    transition:transform .1s,background .15s}
  .gmk-resign:hover{background:rgba(255,90,90,.28)}
  .gmk-resign:active{transform:scale(.94)}
  .gmk-win.lose .word{background:none;color:#ff8f8f;-webkit-text-fill-color:#ff8f8f}
  .gmk-win.draw .word{background:none;color:var(--muted);-webkit-text-fill-color:var(--muted)}
  .gmk-win.win{border-color:var(--accent);box-shadow:0 0 26px rgba(0,0,0,.25),0 0 0 1px var(--accent)}
  .gmk-win{padding:30px 22px}
  .gmk-win p{margin:8px 0 18px}
  .gmk-winner{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;
    margin:12px 0 0;padding:7px 14px;border-radius:999px;
    background:rgba(255,255,255,.10);border:1px solid var(--panel-line);
    font-weight:800;font-size:15px;max-width:100%}
  .gmk-winner:empty{display:none}
  .gmk-winner .gw-name{font-family:'Fredoka',sans-serif;font-weight:700;font-size:18px;
    max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gmk-winner .gw-tag{font-size:13px;color:var(--muted)}
  .gmk-winner .you-badge{margin-left:0}
  .gmk-win.win .gmk-winner{background:var(--accent);border-color:var(--accent);color:#1c1008}
  .gmk-win.win .gmk-winner .gw-tag{color:#1c1008;opacity:.75}
  :root[data-theme="midnight"] .gmk-win.win .gmk-winner,
  :root[data-theme="arcade"] .gmk-win.win .gmk-winner{color:var(--daub-ink)}
  .win-scores .gw-plus{flex:none;font-family:'Fredoka',sans-serif;font-weight:700;font-size:12.5px;
    padding:2px 7px;border-radius:999px;background:var(--accent-2);color:#1c1008}
  .win-scores .ws-row.lead .gw-plus{background:#1c1008;color:var(--accent)}
  .gmk-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 18px}
  .gmk-react{width:40px;height:40px;padding:0;flex:none;border-radius:50%;cursor:pointer;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.10);color:var(--text);
    font-size:20px;line-height:1;display:grid;place-items:center;
    transition:transform .1s,background .15s}
  .gmk-react:hover{transform:translateY(-2px);background:rgba(255,255,255,.2)}
  .gmk-react:active{transform:scale(.88)}
  .gmk-react.more{background:var(--accent);border-color:var(--accent);color:#1c1008}
  .gmk-react.sent{animation:gmkReactPop .32s ease-out}
  @keyframes gmkReactPop{ 0%{transform:scale(1)} 40%{transform:scale(1.35)} 100%{transform:scale(1)} }
  .gmk-seat{display:inline-flex;align-items:center;gap:5px;flex:none;
    padding:2px 8px 2px 3px;border-radius:999px;font-weight:800;font-size:12px;line-height:1.6}
  .gmk-seat i{width:15px;height:15px;border-radius:50%;flex:none;display:block}
  .gmk-seat.b{background:#141414;color:#fff}
  .gmk-seat.b i{background:radial-gradient(circle at 34% 28%,#8a8a8a 0%,#2b2b2b 45%,#050505 100%);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
  .gmk-seat.w{background:#f4f1ea;color:#1c1008}
  .gmk-seat.w i{background:radial-gradient(circle at 34% 28%,#ffffff 0%,#f2ede4 45%,#c3bcb0 100%);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.32)}
  .gmk-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,7.5vw,34px);
    line-height:1;color:var(--marquee);letter-spacing:.06em}
  @media (prefers-reduced-motion:reduce){
    .gmk-stone.last::before{display:none}
    .gmk-stone.last::after{animation:none}
    .gmk-stone.win{animation:none}
    .gmk-aim{transition:none}
  }
  @media (max-height:560px){
    .gmk-turn{top:5px;padding:4px 11px;font-size:12px}
    .gmk-zoom button{width:32px;height:32px;font-size:15px}
    .gmk-brand{font-size:clamp(19px,5vw,26px)}
  }
  .home-pick-head{margin:10px 0 18px}
  .home-pick-title{font-family:'Fredoka';font-weight:700;font-size:clamp(26px,8vw,36px);line-height:1.1;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .home-pick-head .home-tagline{margin-top:8px}
  .gc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;margin-top:10px}
  .game-card{display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:6px;width:100%;text-align:center;
    background:var(--panel);border:1px solid var(--panel-line);border-radius:16px;
    padding:10px 6px;cursor:pointer;color:var(--text);
    font-family:'Nunito',sans-serif;transition:transform .15s, border-color .2s}
  .game-card:hover{transform:translateY(-2px);border-color:var(--accent)}
  .game-card:active{transform:scale(.985)}
  .gc-art{width:46px;height:46px;flex:none;margin:0;display:block}
  .gc-body{display:flex;flex-direction:column;align-items:center;gap:2px;
    flex:1 1 auto;width:100%;min-width:0}
  .gc-name{font-size:15.5px;font-weight:700;line-height:1.15;letter-spacing:0}
  .game-card[data-gk]{position:relative}
  .gc-rank{position:absolute;top:5px;left:6px;z-index:1;
    min-width:16px;padding:0 3px;border-radius:6px;text-align:center;
    font:800 11px/16px 'Nunito',sans-serif;font-variant-numeric:tabular-nums;
    background:rgba(0,0,0,.20);color:var(--muted)}
  .gc-rank[data-top="1"]{background:rgba(250,204,21,.22);color:#facc15}
  .gc-rank[data-top="2"]{background:rgba(203,213,225,.24);color:#cbd5e1}
  .gc-rank[data-top="3"]{background:rgba(251,146,60,.20);color:#fb923c}
  .gc-rank[data-top="new"]{background:#34d399;color:#062a1c;letter-spacing:.3px}
  .home-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,7.5vw,34px);
    line-height:1;display:inline-flex;align-items:flex-end;min-height:clamp(28px,9vw,44px);
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .home-sub-head{display:flex;align-items:center;gap:10px;text-align:left}
  .home-sub-head .subtitle{color:var(--muted)}
  @media (max-height:560px){
    .home-brand{font-size:clamp(19px,5vw,26px);min-height:clamp(20px,5.5vw,28px)}
    .home-pick-head{margin:4px 0 10px}
    .gc-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:9px}
    .game-card{padding:8px 5px;gap:5px}
    .gc-art{width:40px;height:40px}
    .gc-name{font-size:14px}
    .gc-rank{top:4px;left:4px;min-width:14px;font-size:10px;line-height:14px}
  }
  :root{ --sdk-paper:#fff6ec; --sdk-line:rgba(74,43,31,.22); --sdk-thick:rgba(74,43,31,.62);
         --sdk-given:#4a2b1f; --sdk-sel:rgba(255,138,61,.30); --sdk-peer:rgba(255,138,61,.10);
         --sdk-same:rgba(255,210,74,.30); --sdk-note:rgba(74,43,31,.5);
         --sdk-gold:#d9942a; --sdk-fiber:rgba(74,43,31,.05); }
  :root[data-theme="midnight"]{ --sdk-paper:#141a33; --sdk-line:rgba(140,190,255,.20); --sdk-thick:rgba(140,190,255,.55);
         --sdk-given:#dbe6ff; --sdk-sel:rgba(34,224,255,.26); --sdk-peer:rgba(34,224,255,.09);
         --sdk-same:rgba(255,75,216,.24); --sdk-note:rgba(219,230,255,.5);
         --sdk-gold:#ffd479; --sdk-fiber:rgba(140,190,255,.06); }
  :root[data-theme="bubblegum"]{ --sdk-paper:#ffffff; --sdk-line:rgba(122,43,99,.20); --sdk-thick:rgba(122,43,99,.55);
         --sdk-given:#7a2b63; --sdk-sel:rgba(255,79,163,.24); --sdk-peer:rgba(255,79,163,.09);
         --sdk-same:rgba(155,107,255,.22); --sdk-note:rgba(122,43,99,.5);
         --sdk-gold:#dc9a2c; --sdk-fiber:rgba(122,43,99,.045); }
  :root[data-theme="meadow"]{ --sdk-paper:#f7fbec; --sdk-line:rgba(39,66,36,.20); --sdk-thick:rgba(39,66,36,.58);
         --sdk-given:#274224; --sdk-sel:rgba(108,192,74,.28); --sdk-peer:rgba(108,192,74,.10);
         --sdk-same:rgba(255,207,71,.30); --sdk-note:rgba(39,66,36,.5);
         --sdk-gold:#bf8a17; --sdk-fiber:rgba(39,66,36,.05); }
  :root[data-theme="arcade"]{ --sdk-paper:#0e0e12; --sdk-line:rgba(255,230,0,.18); --sdk-thick:rgba(255,230,0,.5);
         --sdk-given:#f5f5f5; --sdk-sel:rgba(255,230,0,.24); --sdk-peer:rgba(255,230,0,.08);
         --sdk-same:rgba(255,45,85,.26); --sdk-note:rgba(245,245,245,.45);
         --sdk-gold:#ffe600; --sdk-fiber:rgba(255,230,0,.07); }
  :root{ --sp0:#ff7a33; --sp1:#3d8bff; --sp2:#3fc45a; --sp3:#b06bff; --sp4:#ff4d8d; --sp5:#00bfa8; }
  .sdk-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,7.5vw,34px);
    line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .sdk-scroll{flex:1 1 auto}
  .sdk-hero{text-align:center;margin:14px 0 4px}
  .sdk-art{width:92px;height:92px;display:block;margin:0 auto 8px}
  .sdk-room{padding:9px 12px}
  .sdk-room .row{margin-top:0}
  .sdk-room-top{flex-wrap:nowrap;gap:8px}
  .sdk-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
  .sdk-room-title b{font-size:15px;color:var(--text)}
  .sdk-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .sdk-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .sdk-room .mp-subrow{margin-top:5px}
  .sdk-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .sdk-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .sdk-room-foot .mp-players.oneline .mp-chip{flex:0 0 auto;min-width:0;padding:4px 9px;gap:5px}
  .sdk-room-foot .mp-chip.turn{font-size:14px}
  .sdk-room.playing .sdk-room-foot{display:none}
  .sdk-hcard{cursor:pointer}
  .sdk-hcard:active{transform:scale(.97)}
  .sdk-seat{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
  .sdk-seat.p0{background:var(--sp0)} .sdk-seat.p1{background:var(--sp1)}
  .sdk-seat.p2{background:var(--sp2)} .sdk-seat.p3{background:var(--sp3)}
  .sdk-seat.p4{background:var(--sp4)} .sdk-seat.p5{background:var(--sp5)}
  .sdk-pts{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;color:var(--accent);flex:none}
  .sdk-solobar{padding:9px 12px}
  .sdk-solobar .row{margin-top:0}
  .sdk-solobar .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .sdk-lvtag{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-weight:800;font-size:13px;color:var(--muted)}
  .sdk-timer{font-size:19px;font-weight:700;letter-spacing:.5px;flex:none}
  .sdk-miss{font-weight:800;font-size:13px;color:var(--daub);flex:none}
  .sdk-mini{width:34px;height:34px;border-radius:11px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--text);font-size:15px;cursor:pointer;flex:none;
    display:grid;place-items:center}
  .sdk-mini:active{transform:scale(.9)}
  .sdk-solotools{display:flex;gap:8px;margin-top:7px}
  .sdk-tool{flex:1;border:1px solid var(--panel-line);border-radius:11px;padding:7px 10px;
    background:rgba(255,255,255,.06);color:var(--text);font-family:'Nunito',sans-serif;
    font-weight:800;font-size:13px;cursor:pointer;transition:.15s}
  .sdk-tool:hover{background:rgba(255,255,255,.12)}
  .sdk-tool:active{transform:scale(.96)}
  .sdk-tool.on{background:var(--accent);border-color:var(--accent);color:#1c1008}
  .sdk-tool:disabled{opacity:.4;cursor:default}
  .sdk-play{flex:1 1 auto;min-height:0;width:min(92vw,520px);
    display:flex;flex-direction:column;align-items:center;gap:10px}
  .sdk-boardbox{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}
  .sdk-stage{position:relative;height:min(100%,92vw,460px);aspect-ratio:1;
    container-type:size;
    border-radius:14px;overflow:hidden;
    background:var(--sdk-paper);box-shadow:0 0 0 3px var(--sdk-thick),0 10px 30px rgba(0,0,0,.22)}
  .sdk-stage.locked{opacity:.75}
  .sdk-stage.frozen .sdk-board{filter:grayscale(.5) brightness(.85)}
  .sdk-board{position:absolute;inset:0;display:grid;
    grid-template-columns:repeat(var(--sn,9),1fr);
    grid-template-rows:repeat(var(--sn,9),1fr)}
  .sdk-cell{position:relative;border:0;padding:0;cursor:pointer;
    background:transparent;
    font-family:'Fredoka',sans-serif;font-weight:600;
    display:grid;place-items:center;
    box-shadow:inset -1px 0 0 0 var(--sdk-line),inset 0 -1px 0 0 var(--sdk-line);
    transition:background .12s}
  .sdk-cell.rb{box-shadow:inset -3px 0 0 0 var(--sdk-thick),inset 0 -1px 0 0 var(--sdk-line)}
  .sdk-cell.bb{box-shadow:inset 0 -3px 0 0 var(--sdk-thick),inset -1px 0 0 0 var(--sdk-line)}
  .sdk-cell.rb.bb{box-shadow:inset -3px 0 0 0 var(--sdk-thick),inset 0 -3px 0 0 var(--sdk-thick)}
  .sdk-v{font-size:clamp(15px,4.6vw,26px);line-height:1;color:var(--sdk-given)}
  @supports (font-size:1cqmin){ .sdk-v{font-size:calc(62cqmin / var(--sn,9))} }
  .sdk-cell.peer{background:var(--sdk-peer)}
  .sdk-cell.same{background:var(--sdk-same)}
  .sdk-cell.sel{background:var(--sdk-sel);box-shadow:inset 0 0 0 2px var(--accent)}
  .sdk-cell.given .sdk-v{color:var(--sdk-given);font-weight:700}
  .sdk-cell.filled.p0 .sdk-v{color:var(--sp0)}
  .sdk-cell.filled.p1 .sdk-v{color:var(--sp1)}
  .sdk-cell.filled.p2 .sdk-v{color:var(--sp2)}
  .sdk-cell.filled.p3 .sdk-v{color:var(--sp3)}
  .sdk-cell.filled.p4 .sdk-v{color:var(--sp4)}
  .sdk-cell.filled.p5 .sdk-v{color:var(--sp5)}
  .sdk-cell.filled.me .sdk-v{color:var(--accent)}
  .sdk-cell.filled.hintfill .sdk-v{color:var(--accent-2);font-style:italic}
  .sdk-cell.wrong{animation:sdkWrong .6s ease-out}
  @keyframes sdkWrong{ 0%{background:var(--daub)} 60%{background:var(--daub)} 100%{background:transparent} }
  .sdk-cell.taken{animation:sdkTaken .7s ease-out}
  @keyframes sdkTaken{ 0%{transform:scale(1)} 35%{transform:scale(1.18)} 100%{transform:scale(1)} }
  .sdk-nt{position:absolute;inset:8%;display:none;
    grid-template-columns:repeat(3,1fr);align-content:center;
    font-family:'Nunito',sans-serif;font-weight:800;color:var(--sdk-note);line-height:1.1}
  .sdk-nt.on{display:grid}
  .sdk-nt i{font-style:normal;font-size:clamp(7px,1.9vw,11px);text-align:center}
  @supports (font-size:1cqmin){ .sdk-nt i{font-size:calc(24cqmin / var(--sn,9))} }
  .sdk-board.sdk-6 .sdk-nt{grid-template-columns:repeat(2,1fr)}
  .sdk-cnt{position:absolute;top:2px;right:2px;z-index:2;display:none;
    font-family:'Fredoka',sans-serif;font-weight:700;line-height:1;
    font-size:clamp(10px,2.6vw,18px);
    color:var(--sdk-paper);background:var(--sdk-given);
    border-radius:999px;padding:2px 5px;
    box-shadow:0 0 0 1.5px var(--sdk-paper);
    pointer-events:none}
  @supports (font-size:1cqmin){ .sdk-cnt{font-size:clamp(10px,calc(30cqmin / var(--sn,9)),18px)} }
  .sdk-cnt.on{display:block}
  .sdk-freeze{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:34px;
    background:rgba(0,0,0,.62);color:#fff;border-radius:16px;padding:10px 20px;
    pointer-events:none;animation:sdkFreezePulse .8s ease-in-out infinite alternate}
  @keyframes sdkFreezePulse{ from{opacity:.82} to{opacity:1} }
  .sdk-pad{flex:none;width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
  .sdk-pad.sdk-6{grid-template-columns:repeat(4,1fr)}
  .sdk-key{position:relative;border:1px solid var(--panel-line);border-radius:13px;
    background:var(--panel);color:var(--text);cursor:pointer;
    padding:9px 0;display:grid;place-items:center;transition:.12s;
    backdrop-filter:blur(6px)}
  .sdk-key:hover{background:rgba(255,255,255,.16)}
  .sdk-key:active{transform:scale(.93)}
  .sdk-kn{font-family:'Fredoka',sans-serif;font-weight:700;font-size:23px;line-height:1.1}
  .sdk-kleft{position:absolute;top:3px;right:6px;font-size:10px;font-weight:800;color:var(--muted)}
  .sdk-key.done{opacity:.34}
  .sdk-key.erase .sdk-kn{font-size:19px}
  .sdk-hud{flex:none;width:100%;display:grid;gap:6px;
    grid-template-columns:repeat(4,minmax(0,1fr))}
  .sdk-hud.sdk-hud-c1{grid-template-columns:minmax(0,1fr)}
  .sdk-hud.sdk-hud-c2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sdk-hud.sdk-hud-c3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sdk-hud.sdk-hud-c4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sdk-hud.sdk-hud-c5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .sdk-hud.sdk-hud-c6{grid-template-columns:repeat(6,minmax(0,1fr))}
  .sdk-hud.sdk-hud-two{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sdk-hud.sdk-hud-two .sdk-hcard{padding:4px 7px 5px}
  .sdk-hud.sdk-hud-two .sdk-hname{font-size:11px}
  .sdk-hud.sdk-hud-two .sdk-hval{font-size:16px}
  .sdk-hcard{position:relative;overflow:hidden;
    background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;
    padding:5px 8px 7px;display:flex;flex-direction:column;gap:2px;min-width:0}
  .sdk-hcard.me{border-color:var(--accent)}
  .sdk-hname{display:flex;align-items:center;gap:5px;font-weight:800;font-size:11.5px;
    color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sdk-hname b{color:var(--accent);font-size:10px}
  .sdk-hval{font-family:'Fredoka',sans-serif;font-weight:700;font-size:19px;line-height:1;color:var(--text)}
  .sdk-hval em{font-style:normal;font-size:11px;color:var(--muted);margin-left:2px}
  .sdk-bar{display:block;height:3px;border-radius:2px;background:rgba(0,0,0,.18);overflow:hidden;margin-top:2px}
  .sdk-bar i{display:block;height:100%;border-radius:2px;transition:width .25s}
  .sdk-hcard.p0 .sdk-bar i{background:var(--sp0)} .sdk-hcard.p1 .sdk-bar i{background:var(--sp1)}
  .sdk-hcard.p2 .sdk-bar i{background:var(--sp2)} .sdk-hcard.p3 .sdk-bar i{background:var(--sp3)}
  .sdk-hcard.p4 .sdk-bar i{background:var(--sp4)} .sdk-hcard.p5 .sdk-bar i{background:var(--sp5)}
  .sdk-pop{position:absolute;right:7px;top:6px;pointer-events:none;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;line-height:1;
    animation:sdkPop .9s ease-out forwards}
  .sdk-pop.up{color:#5fe08a}
  .sdk-pop.down{color:#ff8f8f}
  @keyframes sdkPop{
    0%{opacity:0;transform:translateY(6px)}
    22%{opacity:1;transform:translateY(0)}
    100%{opacity:0;transform:translateY(-10px)}
  }
  .sdk-win{padding:30px 22px}
  .sdk-win p{margin:8px 0 16px}
  .sdk-win.lose .word{background:none;color:#ff8f8f;-webkit-text-fill-color:#ff8f8f}
  .sdk-win.draw .word{background:none;color:var(--muted);-webkit-text-fill-color:var(--muted)}
  .sdk-win.win{border-color:var(--accent);box-shadow:0 0 26px rgba(0,0,0,.25),0 0 0 1px var(--accent)}
  .sdk-winner{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;
    margin-top:8px;padding:5px 12px;border-radius:999px;
    background:rgba(255,255,255,.10);border:1px solid var(--panel-line)}
  .sdk-winner:empty{display:none}
  .sdk-winner .gw-name{font-family:'Fredoka',sans-serif;font-weight:700;font-size:18px;color:var(--text)}
  .sdk-winner .gw-tag{font-size:13px;color:var(--muted)}
  .sdk-winner .you-badge{margin-left:0}
  .sdk-win.win .sdk-winner{background:var(--accent);border-color:var(--accent)}
  .sdk-win.win .sdk-winner .gw-name,.sdk-win.win .sdk-winner .gw-tag{color:#1c1008}
  .sdk-stats{display:flex;justify-content:center;gap:10px;margin:14px 0 4px;flex-wrap:wrap}
  .sdk-stat{background:rgba(255,255,255,.08);border:1px solid var(--panel-line);border-radius:12px;
    padding:7px 13px;display:flex;flex-direction:column;gap:2px;min-width:74px}
  .sdk-stat .ss-k{font-size:11px;color:var(--muted);font-weight:800}
  .sdk-stat .ss-v{font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;color:var(--text)}
  .sdk-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on #winScores,body.solo-on #winChamp,body.solo-on .sdk-react-row,body.solo-on #mpWinBtns{display:none}
  body:not(.solo-on) #soloWinBtns,body:not(.solo-on) .sdk-stats{display:none}
  .sdk-stage{background-image:
    repeating-linear-gradient(0deg,var(--sdk-fiber) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(90deg,var(--sdk-fiber) 0 1px,transparent 1px 9px)}
  .sdk-cell.filled.p0{--sdk-ink:var(--sp0)}
  .sdk-cell.filled.p1{--sdk-ink:var(--sp1)}
  .sdk-cell.filled.p2{--sdk-ink:var(--sp2)}
  .sdk-cell.filled.p3{--sdk-ink:var(--sp3)}
  .sdk-cell.filled.p4{--sdk-ink:var(--sp4)}
  .sdk-cell.filled.p5{--sdk-ink:var(--sp5)}
  .sdk-cell.filled.me{--sdk-ink:var(--accent)}
  .sdk-cell.filled.hintfill{--sdk-ink:var(--accent-2)}
  .sdk-cell::before{content:"";position:absolute;inset:2px;z-index:0;border-radius:3px;
    pointer-events:none;opacity:0;background:var(--sdk-ink,var(--accent));
    -webkit-mask-image:radial-gradient(118% 118% at 32% 26%,#000 8%,rgba(0,0,0,.55) 54%,transparent 86%);
    mask-image:radial-gradient(118% 118% at 32% 26%,#000 8%,rgba(0,0,0,.55) 54%,transparent 86%);
    transition:opacity .22s}
  .sdk-cell::after{content:"";position:absolute;inset:0;z-index:1;border-radius:3px;
    pointer-events:none;opacity:0}
  .sdk-v{position:relative;z-index:2}
  .sdk-nt{z-index:2}
  .sdk-board.claim .sdk-cell.filled::before{opacity:.2}
  .sdk-cell.ink{animation:sdkInk .36s cubic-bezier(.34,1.56,.64,1)}
  .sdk-cell.ink .sdk-v{animation:sdkInkV .36s cubic-bezier(.34,1.56,.64,1)}
  .sdk-cell.ink::after{animation:sdkRipple .54s ease-out}
  @keyframes sdkInk{ 0%{transform:scale(.84)} 100%{transform:scale(1)} }
  @keyframes sdkInkV{ 0%{opacity:.15;transform:scale(1.55)} 55%{opacity:1;transform:scale(.93)} 100%{transform:scale(1)} }
  @keyframes sdkRipple{ 0%{opacity:.6;box-shadow:inset 0 0 0 0 var(--sdk-ink,var(--accent))}
                        100%{opacity:0;box-shadow:inset 0 0 0 10px var(--sdk-ink,var(--accent))} }
  .sdk-cell.taken::after{animation:sdkClaim .7s ease-out}
  @keyframes sdkClaim{ 0%{opacity:0;box-shadow:inset 0 0 0 4px var(--sdk-ink,var(--accent))}
                       25%{opacity:1;box-shadow:inset 0 0 0 2px var(--sdk-ink,var(--accent))}
                       75%{opacity:1;box-shadow:inset 0 0 0 2px var(--sdk-ink,var(--accent))}
                       100%{opacity:0;box-shadow:inset 0 0 0 2px var(--sdk-ink,var(--accent))} }
  .sdk-fx{position:absolute;inset:0;pointer-events:none;z-index:3}
  .sdk-sweep{position:absolute;overflow:hidden;border-radius:3px;
    box-shadow:0 0 0 2px var(--sdk-gold),0 0 16px 1px var(--sdk-gold);
    animation:sdkSweepBox .95s ease-out forwards}
  .sdk-sweep::before{content:"";position:absolute;left:0;top:0;width:55%;height:100%;
    background:linear-gradient(90deg,transparent,var(--sdk-gold),transparent);
    animation:sdkSweepH .62s cubic-bezier(.4,0,.2,1)}
  .sdk-sweep.v::before{width:100%;height:55%;
    background:linear-gradient(180deg,transparent,var(--sdk-gold),transparent);
    animation:sdkSweepV .62s cubic-bezier(.4,0,.2,1)}
  @keyframes sdkSweepBox{ 0%{opacity:0} 12%{opacity:1} 66%{opacity:1} 100%{opacity:0} }
  @keyframes sdkSweepH{ from{transform:translateX(-180%)} to{transform:translateX(320%)} }
  @keyframes sdkSweepV{ from{transform:translateY(-180%)} to{transform:translateY(320%)} }
  .sdk-cell.frost::after{opacity:.92;
    background:
      repeating-linear-gradient(58deg,rgba(255,255,255,.5) 0 1px,transparent 1px 5px),
      repeating-linear-gradient(-58deg,rgba(255,255,255,.4) 0 1px,transparent 1px 6px),
      linear-gradient(140deg,rgba(176,226,255,.82),rgba(240,252,255,.55) 45%,rgba(150,210,255,.78));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.75);
    filter:saturate(2.2);
    animation:sdkFrostIn .45s ease-out backwards}
  @keyframes sdkFrostIn{ from{opacity:0;transform:scale(.35) rotate(-25deg)} to{opacity:.92;transform:none} }
  .sdk-cell.shatter::after{opacity:.92;
    background:linear-gradient(140deg,rgba(176,226,255,.82),rgba(240,252,255,.55) 45%,rgba(150,210,255,.78));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.75);
    animation:sdkShatter .5s ease-out forwards}
  @keyframes sdkShatter{ 0%{opacity:.92;transform:none;filter:blur(0)}
                         100%{opacity:0;transform:scale(1.8) rotate(11deg);filter:blur(2px)} }
  .sdk-stage:has(.sdk-board.done){
    box-shadow:0 0 0 3px var(--sdk-gold),0 0 40px -6px var(--sdk-gold),0 10px 30px rgba(0,0,0,.22)}
  .sdk-cell.lit::after{animation:sdkLit .72s ease-out}
  .sdk-cell.lit .sdk-v{animation:sdkLitV .72s ease-out}
  @keyframes sdkLit{ 0%{opacity:0;box-shadow:inset 0 0 0 0 var(--sdk-gold)}
                     30%{opacity:1;box-shadow:inset 0 0 0 3px var(--sdk-gold)}
                     100%{opacity:0;box-shadow:inset 0 0 0 7px var(--sdk-gold)} }
  @keyframes sdkLitV{ 0%,100%{transform:none;filter:none}
                      30%{transform:scale(1.34);filter:drop-shadow(0 0 6px var(--sdk-gold))} }
  .sdk-key{box-shadow:0 2px 0 rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.16);
    touch-action:manipulation}
  .sdk-key:active{transform:translateY(2px) scale(.97);
    box-shadow:0 0 0 rgba(0,0,0,0),inset 0 2px 5px rgba(0,0,0,.28)}
  .sdk-key.done{box-shadow:none;opacity:.42}
  .sdk-key.done .sdk-kleft{color:#5fe08a;font-size:12px}
  .sdk-terr{grid-column:1/-1;display:flex;height:7px;border-radius:999px;overflow:hidden;
    background:rgba(0,0,0,.24);box-shadow:inset 0 0 0 1px var(--panel-line)}
  .sdk-terr i{display:block;height:100%;transition:width .3s}
  .sdk-terr i.p0{background:var(--sp0)} .sdk-terr i.p1{background:var(--sp1)}
  .sdk-terr i.p2{background:var(--sp2)} .sdk-terr i.p3{background:var(--sp3)}
  .sdk-terr i.p4{background:var(--sp4)} .sdk-terr i.p5{background:var(--sp5)}
  .sdk-hcard.hot{animation:sdkHot 1.2s ease-out}
  @keyframes sdkHot{
    0%{box-shadow:0 0 0 0 rgba(255,150,50,.85)}
    35%{box-shadow:0 0 0 5px rgba(255,150,50,0),0 0 18px 2px rgba(255,150,50,.75)}
    100%{box-shadow:0 0 0 0 rgba(255,150,50,0)}
  }
  .sdk-title{display:inline-block;margin:10px 0 0;padding:5px 15px;border-radius:999px;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:14px;line-height:1.2;
    background:linear-gradient(135deg,var(--sdk-gold),var(--accent));color:#1c1008;
    box-shadow:0 3px 10px rgba(0,0,0,.3)}
  .sdk-title.pop{animation:sdkTitlePop .5s cubic-bezier(.2,1.5,.35,1) .18s backwards}
  @keyframes sdkTitlePop{ 0%{opacity:0;transform:scale(.6)}
                          62%{opacity:1;transform:scale(1.06)}
                          100%{opacity:1;transform:scale(1)} }
  @media (max-height:620px){
    .sdk-hero{margin:6px 0 2px}
    .sdk-art{width:64px;height:64px}
    .sdk-solotools{margin-top:5px}
    .sdk-tool{padding:5px 8px;font-size:12px}
    .sdk-pad{gap:5px}
    .sdk-key{padding:6px 0;border-radius:11px}
    .sdk-kn{font-size:20px}
    .sdk-hud{gap:4px}
    .sdk-hcard{padding:4px 6px 5px}
    .sdk-hval{font-size:16px}
    .sdk-terr{height:5px}
    .sdk-play{gap:7px}
  }
  @media (max-height:620px) and (min-width:600px){
    .sdk-hud.sdk-hud-two.sdk-hud-c5{grid-template-columns:repeat(5,minmax(0,1fr))}
    .sdk-hud.sdk-hud-two.sdk-hud-c6{grid-template-columns:repeat(6,minmax(0,1fr))}
  }
  .sdk-play:has(.sdk-stage.locked) .sdk-pad{opacity:.4;pointer-events:none}
  @media (max-height:780px) and (pointer:coarse){
    body:has(#sdkPlay:not(.hidden)) .topbar,
    body:has(#gmkStage:not(.hidden)) .topbar{display:none}
  }
  .pwa-tip{position:fixed;left:0;right:0;bottom:0;z-index:99;
    padding:16px 18px calc(16px + env(safe-area-inset-bottom));
    background:var(--panel);border-top:1px solid var(--panel-line);
    border-radius:18px 18px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.35);
    backdrop-filter:blur(10px);animation:pwaTipUp .32s cubic-bezier(.2,.9,.3,1)}
  .pwa-tip h4{margin:0 0 6px;font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;color:var(--text)}
  .pwa-tip p{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--muted)}
  .pwa-tip ol{margin:0 0 13px;padding-left:20px;font-size:13.5px;line-height:1.85;color:var(--text)}
  .pwa-tip .pwa-ok{width:100%}
  @keyframes pwaTipUp{ from{transform:translateY(100%)} to{transform:translateY(0)} }
  .set-row .mvc-open{flex:0 0 auto;min-width:0;width:auto;margin-top:0;
    padding:9px 18px;font-size:14px;border-radius:12px}
  .mvc-card{max-width:360px;position:relative}
  .mvc-hint{font-size:12.5px;line-height:1.65;color:var(--muted);margin:2px 0 14px}
  .mvc-hint b{color:var(--text)}
  .mvc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
  .mvc-empty{font-size:13px;line-height:1.7;color:var(--muted);text-align:center;
    padding:18px 12px;border:1px dashed var(--panel-line);border-radius:14px}
  .mvc-row{display:flex;align-items:center;gap:8px}
  .mvc-play,.mvc-del{flex:0 0 auto;width:38px;height:38px;border-radius:11px;cursor:pointer;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text);
    font-size:15px;line-height:1;transition:transform .15s, background .2s}
  .mvc-play:hover,.mvc-del:hover{background:rgba(255,255,255,.2)}
  .mvc-play:active,.mvc-del:active{transform:scale(.9)}
  .mvc-name{flex:1 1 auto;min-width:0;font-family:'Nunito',sans-serif;font-weight:700;font-size:14px;
    color:var(--text);background:rgba(255,255,255,.06);border:1px solid var(--panel-line);
    border-radius:11px;padding:9px 12px}
  .mvc-name:focus{outline:2px solid var(--accent);outline-offset:1px}
  .mvc-save{display:flex;gap:8px;align-items:center;margin-bottom:10px}
  .mvc-save input{flex:1 1 auto;min-width:0;font-family:'Nunito',sans-serif;font-weight:700;font-size:14px;
    color:var(--text);background:rgba(255,255,255,.06);border:1px solid var(--panel-line);
    border-radius:11px;padding:11px 12px}
  .mvc-save .btn{flex:0 0 auto;width:auto;min-width:0;padding:11px 20px;font-size:14px;border-radius:12px}
  .mvc-card .mvc-rec{width:100%;margin-top:4px;background:var(--panel);border:1px solid var(--panel-line);
    color:var(--text);font-size:15px}
  .mvc-rec:disabled{opacity:.45;cursor:default;transform:none}
  .mvc-rec.rec{background:linear-gradient(135deg,#ff5a5a,#ff2d2d);color:#fff;border-color:transparent;
    animation:recPulse 1s ease-in-out infinite}
  .mvc-foot{margin-top:10px;text-align:center;font-size:12px;font-weight:800;color:var(--muted)}
  .mvc-btn{background:rgba(255,205,90,.16)}
  .mvc-btn:hover{background:rgba(255,205,90,.3)}
  .gmk-hero{text-align:center;margin:14px 0 4px}
  .gmk-art{width:92px;height:92px;display:block;margin:0 auto 8px}
  .gmk-solobar{padding:9px 12px}
  .gmk-solobar .row{margin-top:0}
  .gmk-solobar .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .gmk-lvtag{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13.5px;font-weight:800;color:var(--text)}
  .gmk-rec{flex:none;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
  .gmk-solotools{display:flex;gap:8px;margin-top:7px}
  .gmk-tool{flex:1;border:1px solid var(--panel-line);border-radius:11px;padding:7px 10px;
    background:rgba(255,255,255,.06);color:var(--text);font-family:'Nunito',sans-serif;
    font-weight:800;font-size:13px;cursor:pointer;transition:transform .12s,background .2s}
  .gmk-tool:hover{background:rgba(255,255,255,.12)}
  .gmk-tool:active{transform:scale(.96)}
  .gmk-tool:disabled{opacity:.4;cursor:default;transform:none}
  body.solo-on .gmk-react-row{display:none}
  .gmk-solomsg{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--muted);font-weight:700}
  @media (max-height:560px){
    .gmk-hero{margin:6px 0 2px}
    .gmk-art{width:64px;height:64px}
    .gmk-solobar{padding:7px 10px}
    .gmk-solotools{margin-top:5px}
    .gmk-tool{padding:5px 8px;font-size:12px}
  }
  .hl-live{text-align:left;margin:0 0 16px;padding:12px;border-radius:18px;
    border:1px solid rgba(34,197,94,.45);background:rgba(34,197,94,.08)}
  .hl-head{display:flex;align-items:center;gap:7px;margin-bottom:9px;
    font-size:12.5px;font-weight:800;color:#22c55e;letter-spacing:.02em}
  .hl-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex:none;
    box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:hl-pulse 1.8s ease-in-out infinite}
  @keyframes hl-pulse{0%,100%{opacity:1}50%{opacity:.35}}
  .hl-rooms{display:flex;flex-direction:column;gap:8px;max-height:232px;overflow-y:auto}
  .hl-item{text-decoration:none;color:var(--text)}
  .hl-tag{flex:none;font-size:12px;font-weight:800;color:var(--muted);
    padding:4px 8px;border-radius:999px;background:rgba(0,0,0,.14);white-space:nowrap}
  .hl-card-ic{vertical-align:middle;margin:-2px 2px 0 0}
  .hl-badge{position:absolute;top:5px;right:6px;z-index:1;
    display:inline-flex;align-items:center;gap:3px;
    min-width:16px;padding:0 4px;border-radius:6px;
    font:800 11px/16px 'Nunito',sans-serif;font-variant-numeric:tabular-nums;
    background:rgba(34,197,94,.18);color:#22c55e}
  .hl-badge::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;
    background:currentColor}
  .hl-badge[data-state="busy"]{background:rgba(249,115,22,.18);color:#f97316}
  @media (max-height:560px){
    .hl-live{margin-bottom:10px;padding:9px}
    .hl-head{margin-bottom:7px}
    .hl-badge{top:4px;right:4px;min-width:14px;font:800 10px/14px 'Nunito',sans-serif}
  }
  :root{ --mj-face:#fdf6ea; --mj-edge:#d9bb9d; --mj-side:#c19a72; --mj-ink:#3b2a1c;
         --mj-z:#3f5896;
         --mj-jz:#d0342c; --mj-jf:#1f7a4d; --mj-jb:#3f5896; }
  :root{ --mj-ha:#34a853; --mj-hb:#e0533f; --mj-hc:#e8890c; --mj-hd:#3f5896;
         --mj-pa:#d6417a; --mj-pb:#8b5cf6; --mj-pc:#15803d; --mj-pd:#a16207; }
  :root{ --mj-c-u:#3f5896; --mj-c-r:#c9524f; --mj-c-g:#3a8b69; }
  .mj-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .mj-scroll{flex:1 1 auto}
  .mj-hero{text-align:center;margin:14px 0 4px}
  .mj-art{width:92px;height:92px;display:block;margin:0 auto 8px}
  .mk-tune{align-self:flex-start;padding:1px 8px;border-radius:8px;
    background:rgba(249,115,22,.18);color:#fb923c;
    font:800 11.5px/1.7 'Nunito',sans-serif}
  .mj-room{padding:9px 12px}
  .mj-room .row{margin-top:0}
  .mj-room-top{flex-wrap:nowrap;gap:8px}
  .mj-room .mj-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .mj-room .mj-room-title b{font-size:15px;color:var(--text)}
  .mj-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .mj-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .mj-room .mp-subrow{margin-top:5px}
  .mj-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .mj-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .mj-room.playing .mj-room-foot{display:none}
  .mj-solobar{padding:9px 12px}
  .mj-solobar .row{margin-top:0}
  .mj-solobar .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .mj-lvtag{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:800;color:var(--muted)}
  .mj-timer{font-size:19px;font-weight:700;letter-spacing:.5px;flex:none}
  .mj-mini{width:34px;height:34px;border-radius:11px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--text);font-size:15px;flex:none;cursor:pointer}
  .mj-mini:active{transform:scale(.9)}
  .mj-play{flex:1 1 auto;min-height:0;width:min(98vw,780px);
    display:flex;flex-direction:column;align-items:center;gap:8px}
  .mj-boardbox{position:relative;flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}
  .mj-stage{position:relative;z-index:0;
    width:calc((var(--cols,10) + var(--lmax,2) * 0.13) * var(--mjw,32px));
    height:calc((var(--rows,5) * 1.32 + var(--lmax,2) * 0.13) * var(--mjw,32px))}
  .mj-stage.locked{opacity:.72;pointer-events:none}
  .mj-stage.done{filter:saturate(.6)}
  .mj-tile{position:absolute;border:0;padding:0;cursor:pointer;overflow:hidden;
    width:var(--mjw,32px);
    height:calc(var(--mjw,32px) * 1.32);
    left:calc((var(--c) + (var(--lmax) - var(--l)) * 0.13) * var(--mjw,32px));
    top:calc((var(--r) * 1.32 + (var(--lmax) - var(--l)) * 0.13) * var(--mjw,32px));
    background:linear-gradient(150deg,#fff,var(--mj-face) 46%,var(--mj-face));
    border-radius:calc(var(--mjw,32px) * 0.17);
    box-shadow:inset 0 0 0 1px var(--mj-edge),
               calc(var(--mjw,32px) * 0.055) calc(var(--mjw,32px) * 0.065) 0 0 var(--mj-side),
               0 2px 5px rgba(0,0,0,.28);
    transition:transform .1s,filter .12s}
  .mj-tile:active{transform:scale(.94)}
  .mj-svg{display:block;width:100%;height:100%}
  .mj-hole{fill:var(--mj-face)}
  .mj-wing{fill:none;stroke:var(--mj-face);stroke-width:4;stroke-linecap:round}
  .mj-frm{fill:none;stroke:currentColor;stroke-width:6}
  .mj-frn{fill:none;stroke:currentColor;stroke-width:2.4;opacity:.55;stroke-linecap:round}
  .mj-t{fill:currentColor;font-weight:700;text-anchor:middle;dominant-baseline:central;
    font-family:'Noto Sans TC','Microsoft JhengHei','PingFang TC','Heiti TC',sans-serif}
  .mj-cu{fill:var(--mj-c-u)}
  .mj-cr{fill:var(--mj-c-r)}
  .mj-cg{fill:var(--mj-c-g)}
  .mj-t.mj-cu{fill:var(--mj-c-u)}
  .mj-t.mj-cr{fill:var(--mj-c-r)}
  .mj-t.mj-cg{fill:var(--mj-c-g)}
  .mj-t.mj-ink{fill:var(--mj-ink)}
  .mj-tile[data-suit="z"]{color:var(--mj-z)}
  .mj-tile[data-suit="jz"]{color:var(--mj-jz)}
  .mj-tile[data-suit="jf"]{color:var(--mj-jf)}
  .mj-tile[data-suit="jb"]{color:var(--mj-jb)}
  .mj-tile[data-suit="ha"]{color:var(--mj-ha)}
  .mj-tile[data-suit="hb"]{color:var(--mj-hb)}
  .mj-tile[data-suit="hc"]{color:var(--mj-hc)}
  .mj-tile[data-suit="hd"]{color:var(--mj-hd)}
  .mj-tile[data-suit="pa"]{color:var(--mj-pa)}
  .mj-tile[data-suit="pb"]{color:var(--mj-pb)}
  .mj-tile[data-suit="pc"]{color:var(--mj-pc)}
  .mj-tile[data-suit="pd"]{color:var(--mj-pd)}
  .mj-tile.blocked{filter:brightness(.84) saturate(.62)}
  .mj-tile.sel{--sy:-3px;transform:translateY(var(--sy));
    box-shadow:inset 0 0 0 2px var(--accent),
               calc(var(--mjw,32px) * 0.055) calc(var(--mjw,32px) * 0.065) 0 0 var(--mj-side),
               0 0 0 3px var(--accent),0 6px 14px rgba(0,0,0,.35);
    z-index:9999}
  .mj-tile.same{box-shadow:inset 0 0 0 2px var(--accent-2),
               calc(var(--mjw,32px) * 0.055) calc(var(--mjw,32px) * 0.065) 0 0 var(--mj-side),
               0 0 0 2px var(--accent-2),0 2px 5px rgba(0,0,0,.28)}
  .mj-tile.hintpair{animation:mj-hint .7s ease-in-out infinite}
  @keyframes mj-hint{0%,100%{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 2px var(--accent),0 2px 5px rgba(0,0,0,.28)}
                     50%{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 7px rgba(255,255,255,.30),0 2px 5px rgba(0,0,0,.28)}}
  .mj-tile.bad{animation:mj-bad .4s ease}
  @keyframes mj-bad{
    0%,100%{transform:translate(0,var(--sy,0px))}
    25%{transform:translate(-4px,var(--sy,0px));
        box-shadow:inset 0 0 0 2px #ff6b6b,0 0 0 4px rgba(255,86,86,.55),0 2px 8px rgba(0,0,0,.3)}
    50%{box-shadow:inset 0 0 0 2px #ff6b6b,0 0 0 5px rgba(255,86,86,.42),0 2px 8px rgba(0,0,0,.3)}
    75%{transform:translate(4px,var(--sy,0px))}}
  .mj-tile.gone{pointer-events:none;animation:mj-pop .26s ease forwards}
  @keyframes mj-pop{to{opacity:0;transform:scale(.5) rotate(8deg)}}
  .mj-tile.off{display:none}
  .mj-tile.gone.p0{box-shadow:0 0 0 3px var(--sp0)} .mj-tile.gone.p1{box-shadow:0 0 0 3px var(--sp1)}
  .mj-tile.gone.p2{box-shadow:0 0 0 3px var(--sp2)} .mj-tile.gone.p3{box-shadow:0 0 0 3px var(--sp3)}
  .mj-tile.gone.p4{box-shadow:0 0 0 3px var(--sp4)} .mj-tile.gone.p5{box-shadow:0 0 0 3px var(--sp5)}
  .mj-zone{position:absolute;pointer-events:none;z-index:10000;
    top:-4px;height:calc(100% + 8px);
    left:calc(var(--z0,0) * var(--mjw,32px) - 4px);
    width:calc((var(--z1,1) - var(--z0,0) + var(--lmax,2) * 0.13) * var(--mjw,32px) + 8px);
    border:2px dashed var(--accent);border-radius:12px;
    background:rgba(255,255,255,.05);
    box-shadow:0 0 0 2px rgba(0,0,0,.32);
    animation:mj-zone-in .28s ease both,mj-zone-b 1.8s ease-in-out .28s infinite}
  @keyframes mj-zone-in{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
  @keyframes mj-zone-b{0%,100%{opacity:.95}50%{opacity:.45}}
  .mj-sweep{position:absolute;inset:0;pointer-events:none;z-index:10001;
    overflow:hidden;border-radius:12px}
  .mj-sweep-band{position:absolute;top:-25%;left:-45%;width:38%;height:150%;
    transform:skewX(-14deg);
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
    animation:mj-sweep-go .85s ease-out forwards}
  @keyframes mj-sweep-go{to{left:118%}}
  .mj-sweep-txt{position:absolute;left:50%;top:50%;
    font-family:'Fredoka',sans-serif;font-weight:800;color:#fff;white-space:nowrap;
    font-size:clamp(15px,4.2vw,25px);padding:9px 17px;border-radius:15px;
    background:rgba(0,0,0,.58);box-shadow:0 6px 18px rgba(0,0,0,.35);
    animation:mj-sweep-txt 1.25s ease forwards}
  @keyframes mj-sweep-txt{
    0%{opacity:0;transform:translate(-50%,-50%) scale(.82)}
    18%{opacity:1;transform:translate(-50%,-50%) scale(1)}
    72%{opacity:1;transform:translate(-50%,-50%) scale(1)}
    100%{opacity:0;transform:translate(-50%,-58%) scale(.96)}}
  .mj-tools{flex:none;width:100%;display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
  .mj-count{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13.5px;color:var(--muted);
    padding:6px 9px;border-radius:10px;background:rgba(0,0,0,.16);white-space:nowrap;flex:none}
  .mj-count.dead{color:#fff;background:var(--daub)}
  .mj-count.mj-warm{color:var(--text);animation:mj-warm 1.5s ease-in-out infinite}
  @keyframes mj-warm{0%,100%{background:rgba(0,0,0,.16)}50%{background:rgba(255,255,255,.20)}}
  body:not(.mj-mp) .mj-stall{display:none}
  .mj-stall.mj-hot{color:var(--text);box-shadow:inset 0 0 0 2px var(--accent)}
  .mj-tool{flex:1 1 0;min-width:82px;border:1px solid var(--panel-line);border-radius:11px;padding:7px 8px;
    background:rgba(255,255,255,.07);color:var(--text);font-weight:800;font-size:13px;cursor:pointer;
    white-space:nowrap}
  .mj-tool:active{transform:scale(.96)}
  .mj-tool:disabled{opacity:.4;cursor:default}
  body.mj-mp .mj-solo-only{display:none}
  .mj-hud{flex:none;width:100%;display:grid;gap:6px;
    grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
  .mj-hud.mj-hud-two{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mj-hud.mj-hud-two .mj-hcard{padding:4px 7px 5px}
  .mj-hud.mj-hud-two .mj-hname{font-size:11px}
  .mj-hud.mj-hud-two .mj-hval{font-size:16px}
  .mj-hcard{position:relative;overflow:hidden;cursor:pointer;
    padding:5px 9px 6px;border-radius:12px;border:1px solid var(--panel-line);
    background:var(--panel);display:flex;flex-direction:column;gap:1px}
  .mj-hcard:active{transform:scale(.97)}
  .mj-hcard.me{border-color:var(--accent)}
  .mj-hname{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:var(--muted);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mj-hname b{color:var(--accent);font-size:10px}
  .mj-hval{font-family:'Fredoka',sans-serif;font-weight:700;font-size:19px;line-height:1;color:var(--text)}
  .mj-hval em{font-style:normal;font-size:11px;font-weight:800;color:var(--muted);margin-left:2px}
  .mj-bar{display:block;height:3px;border-radius:2px;background:rgba(0,0,0,.18);overflow:hidden;margin-top:2px}
  .mj-bar i{display:block;height:100%;border-radius:2px;transition:width .25s}
  .mj-hcard.p0 .mj-bar i{background:var(--sp0)} .mj-hcard.p1 .mj-bar i{background:var(--sp1)}
  .mj-hcard.p2 .mj-bar i{background:var(--sp2)} .mj-hcard.p3 .mj-bar i{background:var(--sp3)}
  .mj-hcard.p4 .mj-bar i{background:var(--sp4)} .mj-hcard.p5 .mj-bar i{background:var(--sp5)}
  .mj-seat{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
  .mj-seat.p0{background:var(--sp0)} .mj-seat.p1{background:var(--sp1)}
  .mj-seat.p2{background:var(--sp2)} .mj-seat.p3{background:var(--sp3)}
  .mj-seat.p4{background:var(--sp4)} .mj-seat.p5{background:var(--sp5)}
  .mj-pts{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;color:var(--accent);flex:none}
  .mj-pop{position:absolute;right:8px;top:4px;font-family:'Fredoka',sans-serif;font-weight:700;
    font-size:15px;pointer-events:none;animation:mj-pop-up .9s ease forwards}
  .mj-pop.up{color:#22c55e}
  @keyframes mj-pop-up{0%{opacity:0;transform:translateY(6px)}25%{opacity:1;transform:translateY(0)}
                       100%{opacity:0;transform:translateY(-14px)}}
  .mj-win{padding:30px 22px}
  .mj-win p{margin:8px 0 16px}
  .win-card.mj-win .word{font-size:clamp(30px,7.5vw,44px)}
  .mj-win.lose .word{background:none;color:#ff8f8f;-webkit-text-fill-color:#ff8f8f}
  .mj-win.draw .word{background:none;color:var(--muted);-webkit-text-fill-color:var(--muted)}
  .mj-win.win{border-color:var(--accent);box-shadow:0 0 26px rgba(0,0,0,.25),0 0 0 1px var(--accent)}
  .mj-winner{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;
    padding:6px 12px;margin:2px 0 4px;border-radius:999px;
    border:1px solid var(--panel-line);background:rgba(0,0,0,.14)}
  .mj-winner:empty{display:none}
  .mj-winner .gw-name{font-family:'Fredoka',sans-serif;font-weight:700;font-size:18px;color:var(--text)}
  .mj-winner .gw-tag{font-size:13px;color:var(--muted)}
  .mj-winner .you-badge{margin-left:0}
  .mj-win.win .mj-winner{background:var(--accent);border-color:var(--accent)}
  .mj-win.win .mj-winner .gw-name,.mj-win.win .mj-winner .gw-tag{color:#1c1008}
  .mj-stats{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
  .mj-stat{display:flex;flex-direction:column;gap:2px;min-width:62px;
    padding:7px 10px;border-radius:12px;background:rgba(0,0,0,.16)}
  .ms-k{font-size:11px;font-weight:800;color:var(--muted)}
  .ms-v{font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;color:var(--text)}
  .mj-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .mj-react-row{display:none}
  body:not(.solo-on) .mj-stats{display:none}
  .mj-stage::before{content:"";position:absolute;pointer-events:none;z-index:-1;
    inset:calc(var(--mjpad,0px) * -1);
    border-radius:calc(var(--mjw,32px) * 0.42);
    background:
      repeating-linear-gradient(48deg,rgba(255,255,255,.035) 0 2px,transparent 2px 6px),
      radial-gradient(120% 92% at 50% 0%,rgba(255,255,255,.10),transparent 64%),
      var(--panel);
    box-shadow:inset 0 0 0 1px var(--panel-line),
               inset 0 calc(var(--mjw,32px) * 0.1) calc(var(--mjw,32px) * 0.24) rgba(0,0,0,.3),
               0 6px 18px rgba(0,0,0,.26)}
  .mj-tile.gone.fly{animation:mj-fly .3s cubic-bezier(.34,.02,.5,1) forwards}
  @keyframes mj-fly{
    0%{opacity:1}
    24%{opacity:1}
    100%{opacity:0;
         transform:translate(calc(var(--dx,0) * var(--mjw,32px)),calc(var(--dy,0) * var(--mjw,32px))) scale(.34)}}
  .mj-spark{position:absolute;pointer-events:none;z-index:9998;
    left:calc(var(--bx,0) * var(--mjw,32px));
    top:calc(var(--by,0) * var(--mjw,32px));
    width:calc(var(--mjw,32px) * 1.55);height:calc(var(--mjw,32px) * 1.55);
    margin:calc(var(--mjw,32px) * -0.775) 0 0 calc(var(--mjw,32px) * -0.775);
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.96) 0 15%,rgba(255,228,150,.82) 26%,
                               rgba(255,196,64,.32) 46%,transparent 66%);
    box-shadow:0 0 0 1.5px rgba(255,246,214,.8),0 0 14px rgba(255,190,60,.5);
    animation:mj-spark .64s ease-out forwards}
  @keyframes mj-spark{
    0%{opacity:.96;transform:scale(.26)}
    55%{opacity:.78}
    100%{opacity:0;transform:scale(1.55)}}
  .mj-spark.p0{background:radial-gradient(circle,#fff 0 12%,var(--sp0) 30%,transparent 66%)}
  .mj-spark.p1{background:radial-gradient(circle,#fff 0 12%,var(--sp1) 30%,transparent 66%)}
  .mj-spark.p2{background:radial-gradient(circle,#fff 0 12%,var(--sp2) 30%,transparent 66%)}
  .mj-spark.p3{background:radial-gradient(circle,#fff 0 12%,var(--sp3) 30%,transparent 66%)}
  .mj-spark.p4{background:radial-gradient(circle,#fff 0 12%,var(--sp4) 30%,transparent 66%)}
  .mj-spark.p5{background:radial-gradient(circle,#fff 0 12%,var(--sp5) 30%,transparent 66%)}
  .mj-combo{position:absolute;z-index:2;left:50%;bottom:0;
    transform:translateX(-50%) scale(.72);opacity:0;pointer-events:none;
    font-family:'Fredoka',sans-serif;font-weight:800;font-size:clamp(12.5px,3.4vw,17px);
    color:#fff;white-space:nowrap;padding:3px 12px;border-radius:999px;
    background:linear-gradient(180deg,rgba(255,162,50,.96),rgba(212,84,18,.96));
    box-shadow:0 4px 14px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.34)}
  .mj-combo.on{animation:mj-combo .9s cubic-bezier(.2,.9,.3,1) forwards}
  @keyframes mj-combo{
    0%{opacity:0;transform:translateX(-50%) scale(.72)}
    16%{opacity:1;transform:translateX(-50%) scale(1.12)}
    30%{transform:translateX(-50%) scale(1)}
    70%{opacity:1}
    100%{opacity:0;transform:translateX(-50%) translateY(-9px) scale(.98)}}
  .mj-tile.blocker{animation:mj-blk .62s ease}
  @keyframes mj-blk{
    0%,100%{box-shadow:inset 0 0 0 1px var(--mj-edge),
            calc(var(--mjw,32px) * 0.055) calc(var(--mjw,32px) * 0.065) 0 0 var(--mj-side),
            0 2px 5px rgba(0,0,0,.28)}
    28%,72%{box-shadow:inset 0 0 0 2px #fff,0 0 0 4px rgba(122,192,255,.78),0 3px 10px rgba(0,0,0,.34)}}
  .mj-stage.shuf .mj-tile:not(.off){animation:mj-wave .5s ease both;
    animation-delay:calc(var(--c,0) * .028s)}
  @keyframes mj-wave{
    0%{transform:translate(0,var(--sy,0px)) rotate(0)}
    38%{transform:translate(0,calc(var(--sy,0px) - var(--mjw,32px) * 0.13)) rotate(-2.4deg)}
    100%{transform:translate(0,var(--sy,0px)) rotate(0)}}
  .mj-count.mj-bump{animation:mj-bump .24s ease}
  @keyframes mj-bump{0%,100%{transform:scale(1)}45%{transform:scale(1.16)}}
  .mj-count.mj-one{color:#fff;box-shadow:inset 0 0 0 2px #fb923c;
    animation:mj-one 1.1s ease-in-out infinite}
  @keyframes mj-one{0%,100%{background:rgba(249,115,22,.2)}50%{background:rgba(249,115,22,.5)}}
  .mj-cheer{position:fixed;inset:0;z-index:61;pointer-events:none;overflow:hidden}
  .mj-cheer .mj-ring{position:absolute;left:var(--cx,50%);top:var(--cy,50%);
    width:180px;height:180px;margin:-90px 0 0 -90px;border-radius:50%;
    border:3px solid rgba(255,214,120,.9);
    box-shadow:0 0 26px rgba(255,196,64,.55),inset 0 0 26px rgba(255,196,64,.34);
    animation:mj-ring 1.15s cubic-bezier(.16,.7,.3,1) forwards}
  .mj-cheer .mj-ring.r2{animation-delay:.16s;border-color:rgba(255,255,255,.78)}
  @keyframes mj-ring{
    0%{opacity:.95;transform:scale(.16)}
    58%{opacity:.8}
    100%{opacity:0;transform:scale(4.6)}}
  .mj-cheer .mj-glow{position:absolute;left:var(--cx,50%);top:var(--cy,50%);
    width:66vmax;height:66vmax;margin:-33vmax 0 0 -33vmax;border-radius:50%;
    background:radial-gradient(circle,rgba(255,206,88,.34),rgba(255,206,88,.1) 42%,transparent 68%);
    animation:mj-glow 1.25s ease-out forwards}
  @keyframes mj-glow{0%{opacity:.34}24%{opacity:1}100%{opacity:0}}
  @media (max-height:560px){
    .mj-hero{margin:6px 0 2px}
    .mj-art{width:64px;height:64px}
    .mj-play{gap:5px}
    .mj-tools{gap:4px}
    .mj-tool{padding:5px 7px;font-size:12px}
    .mj-count{padding:4px 7px;font-size:12px}
    .mj-solobar,.mj-room{padding:6px 10px}
  }
.m16-art{width:92px;height:92px;display:block;margin:0 auto 8px}
@media (max-height:560px){ .m16-art{width:64px;height:64px} }
:root{ --m16-back:#2f6f52; --m16-backl:#7fc4a3; }
.mj-bk{fill:var(--m16-back)}
.mj-bkl{fill:none;stroke:var(--m16-backl);stroke-width:3;stroke-linejoin:round}
body.m16-mp .mj-play{width:min(98vw,960px)}
body.m16-mp .mj-room{width:min(98vw - 16px,944px)}
body.m16-mp .topbar .topver{display:none}
body.m16-mp .topbar{width:min(98vw - 16px,944px)}
.m16-stage{position:relative;isolation:isolate;z-index:0;
  display:flex;flex-direction:column;gap:6px;padding:6px 8px;
  width:100%;scrollbar-gutter:stable;
  flex:1 1 auto;min-height:0;overflow-y:auto}
.m16-tile{position:relative;flex:none;
  width:var(--m16w,36px);
  height:calc(var(--m16w,36px) * 1.32);
  border-radius:calc(var(--m16w,36px) * 0.16);
  background:linear-gradient(150deg,#fff,var(--mj-face) 46%,var(--mj-face));
  box-shadow:inset 0 0 0 1px var(--mj-edge),
             0 calc(var(--m16w,36px) * 0.06) 0 0 var(--mj-side);
  overflow:hidden}
.m16-tile.m16-back{background:var(--m16-back);box-shadow:inset 0 0 0 1px var(--mj-side)}
.m16-tile[data-suit="z"]{color:var(--mj-z)}
.m16-tile[data-suit="jz"]{color:var(--mj-jz)}
.m16-tile[data-suit="jf"]{color:var(--mj-jf)}
.m16-tile[data-suit="jb"]{color:var(--mj-jb)}
.m16-tile[data-suit="ha"]{color:var(--mj-ha)}
.m16-tile[data-suit="hb"]{color:var(--mj-hb)}
.m16-tile[data-suit="hc"]{color:var(--mj-hc)}
.m16-tile[data-suit="hd"]{color:var(--mj-hd)}
.m16-tile[data-suit="pa"]{color:var(--mj-pa)}
.m16-tile[data-suit="pb"]{color:var(--mj-pb)}
.m16-tile[data-suit="pc"]{color:var(--mj-pc)}
.m16-tile[data-suit="pd"]{color:var(--mj-pd)}
.m16-mine{display:flex;flex-direction:column;align-items:center;gap:4px;
  width:100%;margin-top:auto;flex:none}
.m16-hand{display:flex;flex-direction:column;gap:4px;align-items:center;
  width:100%;padding-top:2px}
.m16-row{display:flex;align-items:flex-end;flex-wrap:nowrap;justify-content:flex-start;
  width:var(--m16hw,auto);max-width:100%}
.m16-ht{transition:transform .12s}
.m16-hand.live .m16-ht{cursor:pointer}
.m16-ht.sel{transform:translateY(-22%);
  box-shadow:inset 0 0 0 2px var(--mj-jz),
             0 calc(var(--m16w,36px) * 0.10) 0 0 var(--mj-side)}
@media (hover:hover) and (pointer:fine){
  .m16-hand.live .m16-ht:hover{transform:translateY(-22%);
    box-shadow:inset 0 0 0 2px var(--mj-jz),
               0 calc(var(--m16w,36px) * 0.10) 0 0 var(--mj-side)}
}
.m16-draw{margin-left:calc(var(--m16w,36px) * 0.45)}
.m16-drawin{animation:m16Draw .16s cubic-bezier(.23,1,.32,1) backwards}
@keyframes m16Draw{
  from{opacity:0;transform:translateX(calc(var(--m16w,36px) * 0.3))}
  to{opacity:1;transform:none}
}
.m16-slot{flex:none;width:calc(var(--m16w,36px) * 1.45)}
.m16-hand .m16-ht{touch-action:none;-webkit-user-drag:none}
.m16-hand .m16-ht.m16-drag{transition:none;z-index:6;cursor:grabbing;
  box-shadow:inset 0 0 0 2px var(--accent),0 8px 16px rgba(0,0,0,.45)}
.m16-stage.m16-dragging{overflow-x:hidden}
.m16-hand.claim .m16-ht{cursor:default;opacity:.55}
.m16-hand.claim .m16-ht.opt,
.m16-hand.claim .m16-ht.alt{opacity:1;cursor:pointer}
.m16-ht.opt{box-shadow:inset 0 0 0 2px var(--mj-jf),
            0 calc(var(--m16w,36px) * 0.10) 0 0 var(--mj-side)}
.m16-omk{position:absolute;z-index:2;left:10%;right:10%;bottom:0;height:14%;
  min-height:3px;border-radius:2px 2px 0 0;background:var(--mj-jf);
  box-shadow:0 0 0 1px rgba(0,0,0,.30)}
.m16-mymelds,.m16-fmelds{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.m16-mymelds{position:relative;width:100%;min-height:34px;padding-right:var(--m16aw,0px)}
.m16-meld{display:inline-flex;align-items:flex-end;gap:1px;
  padding:3px;border-radius:8px;background:rgba(255,255,255,.10)}
.m16-meld.cc{background:rgba(0,0,0,.22)}
.m16-mymelds .m16-meld{background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.m16-mt{opacity:.96}
.m16-meld.m16-flg,
.m16-mymelds .m16-meld.m16-flg{background:rgba(255,196,80,.20);
  box-shadow:inset 0 0 0 1px rgba(255,196,80,.42)}
.m16-pool{display:flex;flex-wrap:wrap;gap:2px;align-content:flex-start;justify-content:flex-start;
  padding:5px var(--m16wl,62px) 5px 5px;border-radius:10px;background:rgba(0,0,0,.14);
  height:var(--m16ph,auto);
  flex:none;overflow-y:auto;scrollbar-gutter:stable}
.m16-pt{opacity:.8;align-self:flex-end}
.m16-pt.last{outline:2px solid var(--mj-jz);outline-offset:1px;opacity:1}
.m16-pslot{flex:none;align-self:flex-end;
  width:var(--m16w,36px);
  height:calc(var(--m16w,36px) * 1.32)}
.m16-wall{position:absolute;top:0;left:0;z-index:2;pointer-events:none;
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 7px;border-radius:8px;background:rgba(0,0,0,.34);
  font:800 10.5px/1.6 'Nunito',sans-serif;color:var(--muted)}
.m16-wall em{font-style:normal}
.m16-wall b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;color:var(--text)}
.m16-wall.low{background:rgba(249,115,22,.22);color:#fb923c}
.m16-wall.low b{color:#fb923c}
.m16-wall.crit{background:var(--mj-jz);color:#fff}
.m16-wall.crit b{color:#fff}
.m16-foes{display:flex;flex-direction:column;gap:4px;flex:none}
.m16-foe{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:3px 7px;border-radius:9px;background:rgba(255,255,255,.07);
  font:700 11px/1.4 'Nunito',sans-serif}
.m16-foe.on{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1.5px var(--mj-jf)}
.m16-fslot{visibility:hidden}
.m16-wind{display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;border-radius:50%;background:var(--mj-z);color:#fff;
  font:800 11px/19px 'Nunito',sans-serif;flex:none}
.m16-foename{font-weight:800;max-width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m16-cnt{opacity:.8;display:inline-flex;align-items:center;gap:4px}
.m16-cntb{width:12px;height:16px;flex:none;display:block}
.m16-cntb .mj-bkl{stroke-width:9}
.m16-dz{display:inline-grid;place-items:center;min-width:18px;height:17px;padding:0 3px;flex:none;
  border-radius:6px;background:var(--mj-jz);color:#fff;
  font:800 11px/1 'Nunito',sans-serif}
.m16-lz{display:inline-grid;place-items:center;height:17px;padding:0 5px;flex:none;
  border-radius:6px;background:var(--accent-2);color:#1c1008;
  font:800 11px/1 'Nunito',sans-serif;margin-left:3px}
.m16-acts{position:absolute;left:0;right:0;
  top:var(--m16ty,0px);height:var(--m16th,34px);
  display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap;
  padding:0;z-index:2;pointer-events:none}
.m16-acts > *{pointer-events:auto}
.m16-act{border:0;border-radius:11px;padding:8px 15px;cursor:pointer;
  font:800 14px/1 'Nunito',sans-serif;color:#fff;background:var(--mj-z)}
.m16-act.win{background:var(--mj-jz)}
.m16-act.take{background:var(--mj-jf)}
.m16-act.pass{background:rgba(255,255,255,.26);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.m16-act:active{transform:scale(.95)}
.m16-more{opacity:.75;font-size:11px}
.m16-timer{font:800 12px/1 'Nunito',sans-serif;align-self:center;
  padding:4px 8px;border-radius:999px;white-space:nowrap;
  background:rgba(9,15,12,.55);color:var(--text)}
.m16-ready{display:inline-flex;align-items:center;gap:3px;flex:none;
  padding:2px 6px 2px 5px;border-radius:9px;
  background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px var(--mj-jf)}
.m16-ready>b{font:800 11px/1 'Nunito',sans-serif;color:var(--mj-jf);letter-spacing:.5px}
.m16-ready>i{font:800 10px/1 'Nunito',sans-serif;font-style:normal;opacity:.85}
.m16-act.ting{background:var(--mj-jf)}
.m16-hand.tingpick .m16-ht.tingno{opacity:.32;filter:grayscale(.65);pointer-events:none}
.m16-hand.tingpick .m16-ht.tingok{cursor:pointer;
  box-shadow:inset 0 0 0 2px var(--mj-jf),0 calc(var(--m16w,36px) * 0.10) 0 0 var(--mj-side)}
.m16-hand.tingpick .m16-ht.tingok.sel{transform:translateY(-22%)}
.m16-hand.locked .m16-ht{opacity:.5;filter:grayscale(.45);pointer-events:none}
.m16-hand.locked .m16-draw{opacity:1;filter:none;pointer-events:auto;
  box-shadow:inset 0 0 0 2px var(--mj-jf),0 calc(var(--m16w,36px) * 0.10) 0 0 var(--mj-side)}
.m16-tg{display:inline-grid;place-items:center;min-width:18px;height:17px;padding:0 4px;flex:none;
  border-radius:6px;background:var(--mj-jf);color:#fff;
  font:800 10.5px/1 'Nunito',sans-serif;letter-spacing:.3px}
.m16-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
.m16-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.m16-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
.m16-cdbg{stroke:rgba(255,255,255,.16)}
.m16-cdfg{stroke:var(--mj-jf);stroke-dasharray:107;stroke-dashoffset:0}
@keyframes m16cd{from{stroke-dashoffset:0}to{stroke-dashoffset:107}}
.m16-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
.m16-cdn.m16-beat{animation:m16beat .34s ease-out}
@keyframes m16beat{0%{transform:scale(1.55);opacity:.55}70%{transform:scale(1)}100%{transform:scale(1)}}
.m16-cd.m16-hot .m16-cdfg{stroke:var(--mj-jz)}
.m16-cd.m16-hot .m16-cdn{color:var(--mj-jz)}
.m16-cd.m16-hot{animation:m16cdhot .9s ease-in-out infinite}
@keyframes m16cdhot{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){
  .m16-cd.m16-hot{animation:none}
  .m16-cdn.m16-beat{animation:none}
}
body.m16-mp .mj-play,body.m16-solo .mj-play{position:relative}
.m16-claim{position:absolute;left:50%;bottom:var(--m16cb,36%);z-index:6;
  transform:translateX(-50%);
  max-width:min(94vw,380px);
  display:flex;flex-direction:column;align-items:center;gap:9px;
  padding:12px 16px 13px;border-radius:20px;
  background:linear-gradient(180deg,rgba(32,48,39,.95),rgba(10,18,14,.97));
  backdrop-filter:blur(8px);
  box-shadow:0 18px 40px rgba(0,0,0,.56),
             0 0 0 1.5px rgba(255,255,255,.16),
             inset 0 1px 0 rgba(255,255,255,.18),
             0 0 30px -6px rgba(255,210,74,.3)}
.m16-claim.hidden{display:none}
.m16-claim::before{content:"";position:absolute;left:16px;right:16px;top:0;height:1.5px;
  border-radius:2px;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,210,74,0),rgba(255,210,74,.85),rgba(255,210,74,0))}
.m16-chd{display:flex;align-items:center;gap:10px;
  font:800 14.5px/1 'Nunito',sans-serif;color:var(--text)}
.m16-chd b{font-weight:800;opacity:.92}
.m16-cbig{flex:none;display:block}
.m16-cmt{display:inline-flex;align-items:center;gap:2px}
.m16-cbig .m16-ct{outline:2px solid var(--mj-jz);outline-offset:1px}
.m16-crow{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.m16-claim .m16-act{display:inline-flex;align-items:center;gap:6px;
  padding:10px 16px;border-radius:13px;font-size:15.5px;
  box-shadow:0 3px 0 rgba(0,0,0,.3)}
.m16-claim .m16-act:active{transform:translateY(2px) scale(.97);box-shadow:0 1px 0 rgba(0,0,0,.3)}
.m16-claim .m16-act.win{background:linear-gradient(180deg,var(--accent),var(--accent-2));
  color:#2a1503;animation:m16chu 1.15s ease-in-out infinite}
@keyframes m16chu{
  0%,100%{box-shadow:0 3px 0 rgba(0,0,0,.3),0 0 0 0 rgba(251,191,36,.42)}
  50%{box-shadow:0 3px 0 rgba(0,0,0,.3),0 0 17px 3px rgba(251,191,36,.42)}}
.m16-crow.m16-copts{gap:7px}
.m16-claim.m16-many{gap:6px;padding:9px 12px 10px}
.m16-claim.m16-many .m16-act{padding:7px 11px;font-size:14px;border-radius:11px}
.m16-claim.m16-many .m16-crow{gap:6px}
.m16-claim.m16-many .m16-chd{font-size:12px}
.m16-claim .m16-act.take.on{box-shadow:0 3px 0 rgba(0,0,0,.3),inset 0 0 0 2px rgba(255,255,255,.92)}
.m16-claim .m16-more{opacity:.82;font:700 11.5px/1 'Nunito',sans-serif;color:var(--muted);
  text-align:center;line-height:1.35}
.m16-claim.m16-in{animation:m16cin .3s cubic-bezier(.22,1.4,.4,1)}
@keyframes m16cin{
  0%{transform:translateX(-50%) translateY(12px) scale(.84);opacity:0}
  60%{transform:translateX(-50%) translateY(0) scale(1.04);opacity:1}
  100%{transform:translateX(-50%) translateY(0) scale(1);opacity:1}}
.m16-acts.m16-hush .m16-cd{position:absolute;left:50%;margin-left:-17px;
  bottom:calc(var(--m16cb,36%) + var(--m16ch,120px) - 17px);z-index:7;pointer-events:none;
  background:radial-gradient(closest-side,rgba(9,15,12,.94) 68%,rgba(9,15,12,0));
  border-radius:50%}
@media (prefers-reduced-motion:reduce){
  .m16-claim.m16-in{animation:none}
  .m16-claim .m16-act.win{animation:none}
}
body.m16-mp .mj-room.playing .mj-room-foot{display:flex}
.m16-cw{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 3px;
  border-radius:6px;background:rgba(0,0,0,.24);
  font:800 11px/1 'Nunito',sans-serif}
.mp-chip.turn .m16-cw{background:#1c1008;color:var(--accent)}
.m16-seat{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.m16-seat.p0{background:var(--sp0)} .m16-seat.p1{background:var(--sp1)}
.m16-seat.p2{background:var(--sp2)} .m16-seat.p3{background:var(--sp3)}
.m16-pts{font:800 13px/1 'Fredoka','Nunito',sans-serif;color:var(--mj-jf);margin-left:3px}
.m16-pts.neg{color:var(--mj-jz)}
.m16-pts em{font:700 9.5px/1 'Nunito',sans-serif;font-style:normal;opacity:.72;margin-left:1px}
.mp-chip.turn .m16-pts,.mp-chip.turn .m16-pts.neg{color:#1c1008}
.m16-reveal{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:flex-end}
.m16-meld.m16-hg{flex-wrap:wrap;max-width:100%;justify-content:center;
  background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.m16-mt.m16-wt{position:relative;z-index:2;margin:0 3px;
  outline:2px solid var(--mj-jz);outline-offset:1px}
.m16-ht.m16-wt{position:relative;z-index:2;
  outline:2.5px solid var(--mj-jz);outline-offset:2px}
.m16-cele{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}
.m16-cele i{position:absolute;left:50%;top:50%;width:132px;height:132px;margin:-66px 0 0 -66px;
  border-radius:50%;border:3px solid rgba(255,197,84,.9);opacity:0;
  animation:m16Ring .95s cubic-bezier(.23,1,.32,1) forwards}
.m16-cele i:nth-child(2){animation-delay:.15s}
.m16-cele i:nth-child(3){animation-delay:.3s}
.m16-cele::after{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,206,110,.5) 0%,rgba(255,176,60,.22) 38%,transparent 70%);
  opacity:0;animation:m16Glow .95s ease-out forwards}
@keyframes m16Ring{
  0%{opacity:0;transform:scale(.35)}
  14%{opacity:.95}
  62%{opacity:0;transform:scale(2.6)}
  100%{opacity:0;transform:scale(3.4)}
}
@keyframes m16Glow{0%{opacity:0}18%{opacity:1}62%{opacity:.72}100%{opacity:0}}
.m16-fx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:7}
.m16-fxw{display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:translateY(-16%)}
.m16-fxwho{font:800 13px/1.2 'Nunito',sans-serif;color:#ffe6a0;letter-spacing:.04em;
  text-shadow:0 1px 3px rgba(0,0,0,.7);opacity:0;
  animation:m16FxWho .9s cubic-bezier(.23,1,.32,1) forwards}
.m16-fxw b{font:900 clamp(46px,14vw,88px)/1.15 'Fredoka','Nunito',sans-serif;
  color:#ffe9ab;letter-spacing:.06em;
  text-shadow:0 2px 0 #b8781a,0 4px 0 #7d4e0c,0 7px 16px rgba(0,0,0,.55),
              0 0 26px rgba(255,193,74,.72);
  opacity:0;animation:m16FxWord .9s cubic-bezier(.18,1.5,.4,1) forwards}
.m16-fxw-chow b{font-size:clamp(38px,11vw,70px);text-shadow:0 2px 0 #b8781a,0 4px 0 #7d4e0c,
  0 7px 16px rgba(0,0,0,.55),0 0 18px rgba(255,193,74,.5)}
.m16-fxw-kong b{font-size:clamp(52px,16vw,98px)}
.m16-fxw-ready b{color:#cfe8ff;
  text-shadow:0 2px 0 #2a6ea8,0 4px 0 #17456b,0 7px 16px rgba(0,0,0,.55),
              0 0 26px rgba(120,196,255,.7)}
.m16-fxw-ready .m16-fxwho{color:#cfe8ff}
@keyframes m16FxWord{
  0%{opacity:0;transform:scale(.42) rotate(-7deg)}
  26%{opacity:1;transform:scale(1.1) rotate(1.5deg)}
  40%{transform:scale(1) rotate(0)}
  72%{opacity:1;transform:scale(1) rotate(0)}
  100%{opacity:0;transform:scale(1.04) translateY(-10px)}
}
@keyframes m16FxWho{
  0%{opacity:0;transform:translateY(6px)}
  30%{opacity:.95;transform:none}
  74%{opacity:.95}
  100%{opacity:0;transform:translateY(-6px)}
}
.m16-fxdust,.m16-fxcoin,.m16-fxleaf{position:absolute;left:50%;top:50%;width:7px;height:7px;
  margin:-3.5px 0 0 -3.5px;border-radius:50%;opacity:0;
  background:radial-gradient(circle at 35% 32%,#fff5d0,#ffc44e 58%,#d9901c);
  animation:m16FxDust .72s cubic-bezier(.23,1,.32,1) forwards}
.m16-fxw-ready .m16-fxdust{background:radial-gradient(circle at 35% 32%,#eaf6ff,#8fccff 58%,#3d86c4)}
@keyframes m16FxDust{
  0%{opacity:0;transform:rotate(var(--a,0deg)) translateY(0) scale(.3)}
  22%{opacity:1}
  100%{opacity:0;transform:rotate(var(--a,0deg)) translateY(calc(var(--d,60px) * -1)) scale(var(--s,1))}
}
.m16-fxfin{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:61;
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.m16-fxdim{position:absolute;inset:0;opacity:0;
  background:radial-gradient(circle at 50% 46%,transparent 0%,rgba(0,0,0,.28) 38%,rgba(0,0,0,.62) 100%);
  animation:m16FxDim 1.15s ease-out forwards}
@keyframes m16FxDim{0%{opacity:0}12%{opacity:1}44%{opacity:.55}100%{opacity:0}}
.m16-fxrays{position:absolute;width:min(150vw,150vh);height:min(150vw,150vh);opacity:0;
  background:repeating-conic-gradient(from 0deg,rgba(255,214,120,.26) 0deg 5deg,transparent 5deg 16deg);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0%,rgba(0,0,0,.5) 32%,transparent 64%);
  mask-image:radial-gradient(circle at 50% 50%,#000 0%,rgba(0,0,0,.5) 32%,transparent 64%);
  animation:m16FxRays 1.15s cubic-bezier(.23,1,.32,1) forwards}
@keyframes m16FxRays{
  0%{opacity:0;transform:scale(.4) rotate(-14deg)}
  22%{opacity:.5}
  100%{opacity:0;transform:scale(1.15) rotate(12deg)}
}
.m16-fxbig{position:relative;display:flex;align-items:center;justify-content:center;padding:0 16px}
.m16-fxbig b{font:900 clamp(64px,21vw,150px)/1.15 'Fredoka','Nunito',sans-serif;
  color:#fff0bd;letter-spacing:.05em;
  text-shadow:0 3px 0 #c07f18,0 6px 0 #8a5406,0 10px 26px rgba(0,0,0,.6),
              0 0 46px rgba(255,196,74,.9),0 0 90px rgba(255,158,40,.5);
  opacity:0;animation:m16FxBig 1.3s cubic-bezier(.16,1.6,.36,1) forwards}
.m16-fxfin.tsumo .m16-fxbig b{font-size:clamp(56px,18vw,132px)}
@keyframes m16FxBig{
  0%{opacity:0;transform:scale(2.2) rotate(-6deg)}
  20%{opacity:1;transform:scale(.94) rotate(1deg)}
  32%{transform:scale(1.04) rotate(0)}
  40%{transform:scale(1)}
  70%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.12)}
}
.m16-fxcoin{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;
  background:linear-gradient(145deg,#fff3ca,#ffc247 46%,#c9840f);
  box-shadow:0 1px 3px rgba(0,0,0,.4);
  animation:m16FxCoin 1.15s cubic-bezier(.23,1,.32,1) forwards}
@keyframes m16FxCoin{
  0%{opacity:0;transform:rotate(var(--a,0deg)) translateY(0) scale(.3)}
  18%{opacity:1}
  100%{opacity:0;
    transform:rotate(var(--a,0deg)) translateY(calc(var(--d,60px) * -3.4)) scale(var(--s,1)) rotate(300deg)}
}
.m16-fxmist{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:55}
.m16-fxmist i{position:absolute;left:-40%;width:180%;height:26%;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(214,226,236,.5) 40%,rgba(230,238,246,.62) 55%,transparent);
  filter:blur(12px);animation:m16FxMist 1.35s ease-in-out forwards}
.m16-fxmist i:nth-child(1){top:16%}
.m16-fxmist i:nth-child(2){top:44%;animation-delay:.1s}
.m16-fxmist i:nth-child(3){top:70%;animation-delay:.2s}
@keyframes m16FxMist{
  0%{opacity:0;transform:translateX(-22%)}
  30%{opacity:.9}
  70%{opacity:.7}
  100%{opacity:0;transform:translateX(20%)}
}
.m16-fxpetal{display:block}
.m16-fxleaf{top:auto;bottom:20%;width:9px;height:9px;margin:0 0 0 -4.5px;
  border-radius:60% 12% 60% 12%;
  background:linear-gradient(150deg,#ffd9e6,#ff9dc0 55%,#e2648f);
  animation:m16FxLeaf 1.15s ease-out forwards}
@keyframes m16FxLeaf{
  0%{opacity:0;transform:rotate(var(--a,0deg)) translateY(0) scale(.4)}
  20%{opacity:1}
  100%{opacity:0;
    transform:rotate(var(--a,0deg)) translateY(calc(var(--d,60px) * -.8)) scale(var(--s,1)) rotate(180deg)}
}
.m16-fxting{display:block}
.m16-fxting::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;
  background:linear-gradient(0deg,rgba(96,180,255,.42),rgba(96,180,255,.12) 46%,transparent);
  opacity:0;animation:m16FxTing 1.5s ease-out forwards}
@keyframes m16FxTing{0%{opacity:0}16%{opacity:1}52%{opacity:.72}100%{opacity:0}}
.m16-dropin{animation:m16Drop .2s cubic-bezier(.34,1.56,.64,1) backwards}
@keyframes m16Drop{
  0%{transform:translateY(-42%) scale(1.14);filter:brightness(1.5)}
  62%{transform:translateY(4%) scale(.97);filter:brightness(1.12)}
  100%{transform:none;filter:none}
}
.m16-sortbtn{position:absolute;left:0;top:-2px;z-index:8;
  pointer-events:auto;-webkit-tap-highlight-color:transparent;
  appearance:none;border:1px solid rgba(255,255,255,.22);
  background:rgba(24,30,40,.72);color:#dbe6f2;
  font:700 11px/1 'Nunito',sans-serif;padding:4px 7px;border-radius:8px;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.35);opacity:.9}
.m16-sortbtn:hover{opacity:1;background:rgba(34,44,58,.86)}
.m16-sortbtn:active{transform:scale(.94)}
.m16-sortbtn.up{top:-23px}
.m16-fxhow{display:block;margin-bottom:7px}
.m16-fxtai{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;align-items:center}
.m16-fxti{display:inline-flex;align-items:center;gap:4px;
  font:700 12px/1 'Nunito',sans-serif;color:#e8eef6;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  border-radius:999px;padding:4px 9px;
  opacity:0;animation:m16FxTi .34s cubic-bezier(.23,1,.32,1) forwards;
  animation-delay:calc(var(--i,0) * 90ms)}
.m16-fxti b{font:800 12px/1 'Fredoka','Nunito',sans-serif;color:#ffd479}
.m16-fxti.none{color:var(--muted);background:none;border-style:dashed}
.m16-fxsum{display:inline-flex;align-items:center;gap:4px;
  font:700 12.5px/1 'Nunito',sans-serif;color:#f2f6fb;
  opacity:0;animation:m16FxTi .34s cubic-bezier(.23,1,.32,1) forwards;
  animation-delay:calc(var(--i,0) * 90ms + 120ms)}
.m16-fxsum b{font:900 17px/1 'Fredoka','Nunito',sans-serif;color:#ffd479;
  min-width:1.6em;text-align:center;
  text-shadow:0 0 14px rgba(255,196,74,.5)}
@keyframes m16FxTi{
  0%{opacity:0;transform:translateY(7px) scale(.9)}
  100%{opacity:1;transform:none}
}
.m16-fxfly{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:40}
.m16-fxray{position:absolute;transform-origin:0 50%;border-radius:99px;opacity:0;
  background:linear-gradient(90deg,rgba(255,214,120,0),rgba(255,206,90,.5) 52%,rgba(255,244,200,.95));
  filter:blur(1.5px);
  animation:m16FxRay .34s cubic-bezier(.4,0,.3,1) forwards}
@keyframes m16FxRay{
  0%{opacity:0;transform:rotate(var(--ang,0deg)) scaleX(0)}
  20%{opacity:.95}
  60%{opacity:.8;transform:rotate(var(--ang,0deg)) scaleX(1)}
  100%{opacity:0;transform:rotate(var(--ang,0deg)) scaleX(1)}
}
.m16-fxbolt{position:absolute;border-radius:14%;opacity:0;
  background:linear-gradient(145deg,#fff8dd,#ffd473 46%,#e9a326);
  box-shadow:0 0 10px 2px rgba(255,196,74,.7),0 0 26px 8px rgba(255,168,40,.32);
  animation:m16FxBolt .34s cubic-bezier(.45,0,.3,1) forwards}
@keyframes m16FxBolt{
  0%{opacity:0;transform:translate(0,0) scale(1)}
  14%{opacity:1}
  78%{opacity:1}
  100%{opacity:0;transform:translate(var(--dx,0),var(--dy,0)) scale(var(--sx,1),var(--sy,1))}
}
.m16-fxlock{position:absolute;border-radius:12%;opacity:0;
  box-shadow:0 0 0 2px rgba(255,222,140,.95),0 0 20px 6px rgba(255,190,60,.45);
  animation:m16FxLock .32s ease-out .28s forwards}
@keyframes m16FxLock{
  0%{opacity:0;transform:scale(.88)}
  34%{opacity:1;transform:scale(1.08)}
  100%{opacity:0;transform:scale(1)}
}
.m16-fxronly{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:61;
  display:flex;align-items:center;justify-content:center}
.m16-fxron{display:flex;align-items:center;justify-content:center;gap:9px;
  width:min(92vw,440px);padding:0 8px}
.m16-fxfin .m16-fxron{margin-top:10px}
.m16-fxrn{display:flex;flex-direction:column;align-items:center;gap:3px;flex:0 0 auto;
  min-width:0;max-width:38%;opacity:0;
  animation:m16FxRn .46s cubic-bezier(.23,1,.32,1) forwards}
.m16-fxrn.to{animation-delay:.16s}
.m16-fxrn b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font:900 17px/1.25 'Nunito',sans-serif;color:#fff0bd;
  text-shadow:0 2px 8px rgba(0,0,0,.8)}
.m16-fxrn i{flex:none;font:800 10.5px/1 'Nunito',sans-serif;font-style:normal;
  letter-spacing:.1em;text-indent:.1em;padding:3px 8px;border-radius:99px}
.m16-fxrn.from b{color:#ffd6cf}
.m16-fxrn.from i{color:#ffdad4;background:rgba(198,52,40,.72);
  box-shadow:inset 0 0 0 1px rgba(255,130,110,.45)}
.m16-fxrn.to i{color:#3b2a06;background:linear-gradient(180deg,#ffdf95,#efb23a)}
.m16-fxrbeam{position:relative;flex:1 1 auto;min-width:26px;height:5px;align-self:center}
.m16-fxrbeam i{position:absolute;inset:0;border-radius:99px;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,rgba(214,58,45,.95),rgba(255,196,74,.98));
  box-shadow:0 0 12px 2px rgba(255,170,60,.45);
  animation:m16FxBeam .5s cubic-bezier(.5,0,.25,1) .12s forwards}
.m16-fxrbeam::after{content:"";position:absolute;right:-3px;top:50%;margin-top:-7px;
  border:7px solid transparent;border-left-color:#ffcc5e;opacity:0;
  animation:m16FxTip .28s ease-out .5s forwards}
@keyframes m16FxRn{0%{opacity:0;transform:translateY(9px) scale(.9)}100%{opacity:1;transform:none}}
@keyframes m16FxBeam{0%{transform:scaleX(0)}100%{transform:scaleX(1)}}
@keyframes m16FxTip{0%{opacity:0;transform:translateX(-7px)}100%{opacity:1;transform:none}}
.m16-fxstamp{display:block;width:max-content;margin:11px auto 2px;
  font:900 15px/1 'Nunito',sans-serif;letter-spacing:.24em;text-indent:.24em;
  color:#ff6154;padding:8px 13px;border-radius:7px;
  border:2.5px solid #dd3a2c;
  box-shadow:inset 0 0 0 1px rgba(221,58,44,.45),0 0 16px rgba(221,58,44,.22);
  text-shadow:0 0 9px rgba(255,97,84,.45);
  opacity:0;transform:rotate(-11deg);
  animation:m16FxStamp .5s cubic-bezier(.2,1.5,.4,1) forwards;
  animation-delay:calc(var(--i,0) * 90ms + 430ms)}
@keyframes m16FxStamp{
  0%{opacity:0;transform:rotate(-32deg) scale(2.9)}
  55%{opacity:1;transform:rotate(-9deg) scale(.94)}
  74%{transform:rotate(-11.5deg) scale(1.05)}
  100%{opacity:.96;transform:rotate(-11deg) scale(1)}
}
.m16-stage{border-radius:12px;
  background:
    repeating-linear-gradient(48deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(-48deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),
    radial-gradient(118% 86% at 50% 38%,rgba(38,94,68,.34),rgba(16,46,35,.46) 58%,rgba(8,26,20,.56));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),
             inset 0 12px 26px -14px rgba(0,0,0,.6),
             inset 0 -14px 28px -16px rgba(0,0,0,.55)}
.m16-hand .m16-row:last-child{
  box-shadow:0 3px 0 2px rgba(122,84,45,.92),
             0 6px 0 4px rgba(56,35,17,.9),
             0 9px 10px -3px rgba(0,0,0,.5)}
.m16-foe.shown{align-items:flex-start}
.m16-foe .m16-reveal{gap:3px;justify-content:flex-start;flex:1 1 auto;min-width:0}
.m16-foe .m16-meld.m16-hg{gap:1px;padding:3px;justify-content:flex-start}
.m16-champline{display:inline-block;font-weight:800;font-size:1.06em;color:var(--accent)}
.m16-tai{margin:8px 0 14px;padding:9px 10px 8px;border-radius:11px;
  background:rgba(0,0,0,.16);text-align:left}
.m16-taih{font:700 11px/1.5 'Nunito',sans-serif;opacity:.8;margin-bottom:5px}
.m16-taih b{font-weight:800;opacity:1}
.m16-tair{display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-radius:10px;
  background:rgba(255,255,255,.06);font:700 12px/1.3 'Nunito',sans-serif}
.m16-tair + .m16-tair{margin-top:5px}
.m16-rmain{display:flex;align-items:center;gap:6px}
.m16-tair.me{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent-2)}
.m16-rno{flex:none;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.14);font:800 11px/1 'Nunito',sans-serif}
.m16-tair.win .m16-rno{background:var(--accent);color:#1c1008}
.m16-rcrown{flex:none;font-size:12px;line-height:1}
.m16-rname{flex:0 1 auto;min-width:0;text-align:left;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m16-tair b{margin-left:auto;flex:none;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--mj-jf)}
.m16-tair b.neg{color:var(--mj-jz)}
.m16-tair b.zero{color:var(--muted)}
.m16-rmain.has-win .m16-rwin{margin-left:auto}
.m16-rmain.has-win b{margin-left:0;min-width:52px;text-align:right}
.m16-rwin{flex:none;min-width:38px;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;
  padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.10);
  font:800 10.5px/1.35 'Nunito',sans-serif;color:var(--muted)}
.m16-rwin i{font-style:normal;font-weight:800;color:var(--accent)}
.m16-rsub{display:flex;align-items:baseline;gap:5px;padding-left:25px;
  font:700 11px/1.45 'Nunito',sans-serif;color:var(--muted)}
.m16-rlab{flex:none;padding:1px 5px;border-radius:6px;background:rgba(255,255,255,.10);
  font:800 9.5px/1.5 'Nunito',sans-serif;opacity:.85}
.m16-rrole{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m16-rd{flex:none;font:800 12px/1 'Fredoka','Nunito',sans-serif;color:var(--muted)}
.m16-rd.pos{color:var(--mj-jf)}
.m16-rd.neg{color:var(--mj-jz)}
.win-card.m16-win{width:min(88vw,380px);max-width:none}
.win-card.m16-win .win-scores{gap:0;margin:0}
.win-card.m16-win .win-scores .ws-row{display:none}
.win-card.m16-win .win-scores .ws-goal{margin:0 0 12px}
.m16-warn{display:inline-block;margin-top:4px;opacity:.75;font-size:11px}
.m16-next{margin:10px 0 -4px;text-align:center;
  font:700 12px/1.5 'Nunito',sans-serif;color:var(--muted)}
.m16-next b{font-weight:800;font-size:1.15em;color:var(--accent)}
body.m16-solo .mj-play{width:min(98vw,960px)}
body.m16-solo .mj-room{width:min(98vw - 16px,944px)}
body.m16-solo .topbar{width:min(98vw - 16px,944px)}
.set-row.m16-vrow{flex-wrap:wrap}
.m16-vrow .m16-vseg{flex:1 1 100%}
.m16-bigbtn{font-family:'Nunito',sans-serif;font-weight:800}
.m16-bigbtn.on{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,.16)}
body.m16-big .topbar{display:none}
body.m16-big{padding:6px;gap:4px}
body.m16-big .mj-room{display:flex;align-items:center;gap:8px;padding-top:6px;padding-bottom:6px}
body.m16-big .mj-room .mj-room-top{flex:none;order:3}
body.m16-big .mj-room .mp-subrow{order:2;flex:none;margin-top:0;font-size:10px;max-width:6em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.m16-big .mj-room-foot{order:1;flex:1 1 0;min-width:0;margin-top:0}
body.m16-big .mj-play{gap:4px}
body.m16-big .mj-room .mp-chip{padding:2px 6px;gap:4px;font-size:11px}
body.m16-big .mj-room .m16-seat{display:none}
body.m16-big .mj-room .you-badge{display:none}
body.m16-big .mj-room .gmk-nm{max-width:3.4em}
body.m16-big .mj-room .m16-pts{font-size:11px;margin-left:2px}
body.m16-big .mj-room-foot .mp-players{
  -webkit-mask-image:linear-gradient(to right,#000 90%,transparent);
  mask-image:linear-gradient(to right,#000 90%,transparent)}
body.m16-big .mj-room-title{display:none}
body.m16-big .mj-room .mp-leave-btn{display:none}
body.m16-big .mj-room .mp-goal{display:none}
body.m16-big .mj-room-top .mp-actions{margin-left:auto}
body.m16-big .mj-room-top > .m16-bigbtn{margin-left:auto}
body.m16-big .mj-room .tools-docked{display:none}
body.m16-big .mj-room .row:has(> .tools-docked){padding-right:0}
@media (orientation:landscape) and (max-height:560px) and (pointer:coarse){
  body.m16-mp .topbar,body.m16-solo .topbar{display:none}
  body.m16-mp,body.m16-solo{padding:6px;gap:4px}
  body.m16-mp .mj-room,body.m16-solo .mj-room{
    position:relative;
    padding:4px 44px 4px 10px;display:flex;align-items:center;gap:8px}
  body.m16-mp .mj-room .tools-docked,body.m16-solo .mj-room .tools-docked{
    display:flex;position:absolute;right:8px;top:50%;transform:translateY(-50%);gap:6px}
  body.m16-mp .mj-room .tools-docked #settingsBtn{display:none}
  body.m16-solo .mj-room .tools-docked #settingsBtn{display:none}
  body.m16-mp #mpBar{padding:4px 112px 4px 10px}
  body.m16-mp .mj-room .row:has(> .tools-docked),
  body.m16-solo .mj-room .row:has(> .tools-docked){position:static;padding-right:0}
  body.m16-mp .mj-room .mj-room-top,body.m16-solo .mj-room .mj-room-top{flex:none}
  body.m16-mp .mj-room .mp-subrow{flex:none;margin-top:0;font-size:10px;max-width:6em;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.m16-mp .mj-room-foot,body.m16-solo .mj-room-foot{flex:1;min-width:0;margin-top:0}
  body.m16-mp .mj-room .icon-btn,body.m16-solo .mj-room .icon-btn{
    width:28px;height:28px;border-radius:9px;font-size:14px}
  body.m16-mp .mj-room .mp-act-btn{width:28px;height:28px;font-size:15px}
  body.m16-mp .mj-room .mj-room-title,body.m16-solo .mj-room .mj-room-title{font-size:12px}
  body.m16-mp .mj-room .mj-room-title b,body.m16-solo .mj-room .mj-room-title b{font-size:13px}
  .m16-bigbtn{display:none}
  body.m16-big .mj-room .mj-room-title{display:block}
  body.m16-big .mj-room .mp-leave-btn{display:grid}
  body.m16-big .mj-room .mp-goal{display:inline}
  body.m16-mp .mp-chip,body.m16-solo .mp-chip{padding:2px 7px;font-size:11px}
  body.m16-mp .mj-play,body.m16-solo .mj-play{gap:4px}
  .m16-stage{display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"pool foes" "melds melds" "hand hand";
    align-content:start;
    align-content:safe end;
    gap:4px 8px;padding:4px 8px}
  .m16-pool{grid-area:pool;min-width:0;--m16wl:54px}
  .m16-wall{padding:1px 6px;font-size:10px}
  .m16-wall b{font-size:12px}
  .m16-foes{grid-area:foes;max-width:40vw}
  .m16-mine{display:contents}
  .m16-mymelds{grid-area:melds;justify-content:center;gap:6px;
    min-height:calc(var(--m16w,20px) * 1.32)}
  .m16-hand{grid-area:hand}
  .m16-foes{gap:3px;justify-content:space-between}
  .m16-foe{flex-wrap:wrap;padding:2px 6px;gap:4px;font-size:10.5px}
  .m16-foe .m16-wind{width:17px;height:17px;font-size:10px;line-height:17px}
  .m16-foe .m16-dz{min-width:16px;height:15px;font-size:10px}
  .m16-foe .m16-lz{height:15px;padding:0 4px;font-size:10px;margin-left:2px}
  .m16-foe .m16-foename{max-width:4em}
  .m16-fmelds{display:flex;flex-wrap:wrap;gap:2px}
  .m16-acts .m16-cd{width:28px;height:28px}
  .m16-acts .m16-cdn{font-size:12px}
  .m16-claim{padding:7px 11px 8px;gap:5px;border-radius:14px;max-width:min(94vw,330px)}
  .m16-chd{font-size:12px;gap:7px}
  .m16-claim .m16-act{padding:8px 13px;font-size:14px;border-radius:11px}
  .m16-claim .m16-more{font-size:10.5px}
  .m16-crow{gap:6px}
}
  :root{ --sv-face:#fdfaf3; --sv-line:#c3ae90; --sv-blk:#22303f; --sv-red:#c92c2c;
         --sv-redlit:#ff7b7b; --sv-bk:#3f5896;
         --sv-tw:min(98vw,700px); --sv-cw:clamp(27px,7.6vw,40px);
         --sv-tpad:8px; --sv-cgap:2px;
         --sv-cellw:min(var(--sv-cw),
           calc((var(--sv-tw) - var(--sv-tpad) * 2 - var(--sv-cgap) * 12) / 13)); }
  .sv-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .sv-scroll{flex:1 1 auto}
  .sv-hero{text-align:center;margin:14px 0 4px}
  .sv-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .pk-ic-bd{fill:var(--sv-face);stroke:var(--sv-line);stroke-width:.9}
  .pk-ic-t{fill:var(--sv-blk);font:800 9.7px/1 'Nunito',sans-serif;text-anchor:middle}
  .pk-ic-s{fill:var(--sv-blk)}
  .pk-ic-t.pk-ic-red,.pk-ic-s.pk-ic-red{fill:var(--sv-red)}
  .sv-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .sv-room{padding:9px 12px}
  .sv-room .row{margin-top:0}
  .sv-room-top{flex-wrap:nowrap;gap:8px}
  .sv-room .sv-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .sv-room .sv-room-title b{font-size:15px;color:var(--text)}
  .sv-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .sv-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .sv-room .mp-subrow{margin-top:5px}
  .sv-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .sv-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .sv-seat{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
  .sv-seat.p0{background:var(--sp0)}.sv-seat.p1{background:var(--sp1)}.sv-seat.p2{background:var(--sp2)}
  .sv-seat.p3{background:var(--sp3)}.sv-seat.p4{background:var(--sp4)}.sv-seat.p5{background:var(--sp5)}
  .sv-chn,.sv-chp{display:inline-flex;align-items:center;gap:1px;
    font:800 10.5px/1 'Nunito',sans-serif;color:var(--muted)}
  .sv-chp{color:var(--sv-redlit)}
  .sv-pip{display:inline-block;width:7px;height:10px;border-radius:2px;
    background:var(--sv-face);border:1px solid var(--sv-line);margin-right:2px}
  .sv-pip.back{background:var(--sv-bk);border-color:var(--sv-bk)}
  .sv-play{flex:1 1 auto;min-height:0;width:var(--sv-tw);
    display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .sv-stage{flex:1 1 auto;min-height:0;position:relative;z-index:0;
    display:flex;flex-direction:column;gap:7px;overflow-y:auto;overflow-x:hidden}
  .sv-acts{flex:none;min-height:40px;display:flex;align-items:center;justify-content:center;
    gap:12px;flex-wrap:wrap;padding:2px 0}
  .sv-tracks{display:flex;flex-direction:column;gap:3px;flex:0 1 auto;min-height:0;overflow-y:auto;
    border-radius:14px;padding:6px var(--sv-tpad);
    background:
      radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.10), rgba(0,0,0,0) 60%),
      linear-gradient(180deg,#1d4c3a,#12332a 70%,#0e2822);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.07), inset 0 10px 26px rgba(0,0,0,.34)}
  .sv-track{display:flex;align-items:center}
  .sv-cells{flex:1;min-width:0;display:grid;justify-content:center;
    grid-template-columns:repeat(13,minmax(0,var(--sv-cw)));gap:var(--sv-cgap)}
  .sv-cell{min-height:26px;aspect-ratio:.72;border-radius:4px;position:relative;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:calc(var(--sv-cellw) * .03);
    background:rgba(255,255,255,.05);color:rgba(255,255,255,.34);
    font:700 calc(var(--sv-cellw) * .50)/1 'Nunito',sans-serif}
  .sv-cell b{font-weight:800;letter-spacing:-.02em}
  .sv-cell i{display:block;line-height:0}
  .sv-sv{display:block;width:1em;height:1em;fill:currentColor}
  .sv-cell .sv-sv{width:.84em;height:.84em}
  .sv-cell i{color:rgba(255,255,255,.38)}
  .sv-track.red .sv-cell i{color:rgba(255,123,123,.52)}
  .sv-cell.on{background:var(--sv-face);color:var(--sv-blk);box-shadow:0 1px 0 rgba(0,0,0,.24)}
  .sv-cell.on i{color:var(--sv-blk)}
  .sv-track.red .sv-cell.on,.sv-track.red .sv-cell.on i{color:var(--sv-red)}
  .sv-cell.seven{box-shadow:inset 0 0 0 1px rgba(245,201,106,.46)}
  .sv-cell.seven.on{box-shadow:0 1px 0 rgba(0,0,0,.24), inset 0 0 0 1px rgba(186,140,44,.55)}
  .sv-cell.mine{background:rgba(255,255,255,.12);color:rgba(255,255,255,.66);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)}
  .sv-cell.mine i{color:rgba(255,255,255,.66)}
  .sv-track.red .sv-cell.mine i{color:rgba(255,150,150,.80)}
  .sv-cell.open{background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1.6px var(--accent)}
  .sv-cell.mine.open{background:rgba(255,208,120,.22);color:#ffe6b4;
    animation:svHot 1.5s ease-in-out infinite}
  .sv-cell.mine.open i{color:#ffe6b4}
  @keyframes svHot{
    0%,100%{box-shadow:inset 0 0 0 2px #f3c46a, 0 0 5px rgba(243,196,106,.30)}
    50%    {box-shadow:inset 0 0 0 2px #ffdf9a, 0 0 13px rgba(255,223,154,.62)}}
  .sv-cell.seal{background:rgba(224,83,63,.38);color:#ffd9d2;
    box-shadow:inset 0 0 0 2px #e0533f}
  .sv-cell.seal i{color:#ffd9d2}
  .sv-cell.sealed{box-shadow:inset 0 0 0 1px rgba(224,83,63,.40);
    background:repeating-linear-gradient(45deg,rgba(224,83,63,.22) 0 3px,rgba(0,0,0,0) 3px 6px)}
  .sv-cell.on.lnk::after{content:"";position:absolute;top:50%;
    right:calc(var(--sv-cgap) * -1 - 1px);width:calc(var(--sv-cgap) + 2px);height:2px;
    transform:translateY(-50%);border-radius:1px;
    background:linear-gradient(90deg,#e2ae52,#ffe9b0,#e2ae52)}
  .sv-cell.just{animation:svSnap .42s cubic-bezier(.2,1.5,.4,1);z-index:1}
  @keyframes svSnap{
    0%  {transform:scale(1.38);filter:brightness(2)}
    58% {transform:scale(.96);filter:brightness(1)}
    100%{transform:scale(1)}}
  .sv-track.done .sv-cells{box-shadow:0 0 0 1.5px rgba(245,201,106,.55);border-radius:6px}
  .sv-mypile{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:3px;
    padding:5px 9px;border-radius:10px;background:rgba(0,0,0,.14);
    font:700 11.5px/1.3 'Nunito',sans-serif;color:var(--muted)}
  .sv-mypile.empty{opacity:.85}
  .sv-plbl{margin-right:3px}
  .sv-pts{margin-left:5px;font-weight:800;color:var(--sv-redlit)}
  .sv-pts.none{color:var(--accent)}
  .sv-hand{flex:0 0 auto;margin-top:auto;display:flex;flex-wrap:wrap;justify-content:center;
    align-content:flex-start;gap:5px;padding:3px 2px 6px}
  .sv-card{--svw:var(--sv-cw);
    flex:none;width:var(--svw);height:calc(var(--svw) * 1.42);
    border-radius:calc(var(--svw) * .13);border:1px solid var(--sv-line);
    background:linear-gradient(155deg,#fff,var(--sv-face) 58%);
    color:var(--sv-blk);display:flex;flex-direction:column;align-items:center;justify-content:center;
    line-height:1;user-select:none;box-shadow:0 1px 2px rgba(0,0,0,.28);
    transition:transform .12s,box-shadow .12s,filter .15s}
  .sv-card.red{color:var(--sv-red)}
  .sv-cr{font:800 calc(var(--svw) * .50)/1 'Nunito',sans-serif}
  .sv-cs{font:700 calc(var(--svw) * .42)/1 'Nunito',sans-serif;margin-top:calc(var(--svw) * .04)}
  .sv-hand .sv-card{cursor:pointer}
  .sv-hand .sv-card.can{box-shadow:0 1px 2px rgba(0,0,0,.28),0 0 0 2px var(--accent)}
  .sv-hand .sv-card.can:hover{transform:translateY(-4px)}
  .sv-hand .sv-card.no{filter:grayscale(.6) brightness(.68)}
  .sv-hand .sv-card:active{transform:scale(.94)}
  .sv-hand.cover .sv-card{filter:none;box-shadow:0 1px 2px rgba(0,0,0,.28)}
  .sv-hand.cover .sv-card:hover{transform:translateY(-4px)}
  .sv-hand .sv-card.sel{transform:translateY(-9px);
    box-shadow:0 4px 8px rgba(0,0,0,.36),0 0 0 3px #e0533f}
  .sv-card.tiny{--svw:21px;cursor:default;box-shadow:0 1px 1px rgba(0,0,0,.22)}
  .sv-empty{font:800 13px/1 'Nunito',sans-serif;color:var(--accent);padding:12px 0}
  .sv-hand.cover{border:2px dashed rgba(224,83,63,.62);border-radius:14px;
    background:rgba(224,83,63,.10);padding:7px 6px 9px;row-gap:8px}
  .sv-hand.cover.just{animation:svCvIn .6s ease-out 2}
  @keyframes svCvIn{ from{box-shadow:0 0 0 0 rgba(224,83,63,.50)} to{box-shadow:0 0 0 14px rgba(224,83,63,0)} }
  .sv-cvbar{flex:1 0 100%;display:flex;align-items:center;gap:8px;padding:0 2px 1px}
  .sv-cvi{flex:none;font-size:19px;line-height:1}
  .sv-cvt{min-width:0;display:flex;flex-direction:column;gap:2px}
  .sv-cvt b{font:800 13.5px/1.25 'Nunito',sans-serif;color:var(--sv-redlit)}
  .sv-cvt i{font:700 11.5px/1.3 'Nunito',sans-serif;font-style:normal;color:var(--muted)}
  .sv-pickw{flex:none;display:flex;flex-direction:column;align-items:center;gap:3px;
    transition:transform .12s}
  .sv-cost{font-family:'Nunito',sans-serif;font-weight:800;line-height:1;font-style:normal;
    font-size:max(9px,calc(var(--sv-cw) * .27));letter-spacing:-.02em;color:var(--sv-redlit)}
  .sv-hand.cover .sv-card.sel{transform:none}
  .sv-pickw.sel{transform:translateY(-9px)}
  .sv-pickw.sel .sv-cost{color:#fff;background:#e0533f;border-radius:999px;padding:1.5px 6px}
  .sv-actrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center}
  .sv-atxt{font:700 13px/1.4 'Nunito',sans-serif;color:var(--muted)}
  .sv-atxt b{color:var(--text)}
  .sv-atxt.mine{color:var(--text)}
  .sv-atip{font:800 12px/1 'Nunito',sans-serif;color:var(--accent)}
  .sv-act{padding:6px 14px;font-size:13px;border-radius:11px}
  .sv-actline{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;flex-wrap:wrap}
  .sv-actline .sv-actrow{min-width:0}
  .sv-cdwrap{flex:none;display:flex;align-items:center}
  .sv-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .sv-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .sv-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .sv-cdbg{stroke:rgba(255,255,255,.16)}
  .sv-cdfg{stroke:var(--accent);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,30s) linear var(--cd-delay,0s) forwards}
  .sv-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .sv-cdn.sv-beat{animation:m16beat .34s ease-out}
  .sv-cd.sv-hot .sv-cdfg{stroke:var(--sv-redlit)}
  .sv-cd.sv-hot .sv-cdn{color:var(--sv-redlit)}
  .sv-cd.sv-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .sv-cd.sv-hot{animation:none}
    .sv-cdn.sv-beat{animation:none}
  }
  .win-card.sv-win .word{font-size:clamp(28px,7.2vw,40px)}
  .win-card.sv-win{width:min(88vw,520px);max-width:none;padding:26px 24px}
  .sv-win p{margin:7px 0 14px}
  .sv-result{margin:2px 0 12px}
  .sv-rank{display:flex;flex-direction:column;gap:5px}
  .sv-rrow{display:flex;flex-direction:column;gap:3px;padding:6px 9px;border-radius:11px;
    background:rgba(255,255,255,.06);font:700 12px/1.3 'Nunito',sans-serif}
  .sv-rmain{display:flex;align-items:center;gap:6px}
  .sv-rrow.me{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent-2)}
  .sv-rno{flex:none;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.14);font:800 11px/1 'Nunito',sans-serif}
  .sv-rrow.win .sv-rno{background:var(--accent);color:#1c1008}
  .sv-rcrown{flex:none;font-size:12px;line-height:1}
  .sv-rname{flex:0 1 auto;min-width:0;text-align:left;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sv-rpts{flex:none;margin-left:auto;font-weight:700;font-size:11px;color:var(--muted)}
  .sv-rpts b{font:800 15px/1 'Fredoka','Nunito',sans-serif;color:var(--sv-redlit);margin-right:1px}
  .sv-rmain.has-win .sv-rwin{margin-left:auto}
  .sv-rmain.has-win .sv-rpts{margin-left:0;min-width:46px;text-align:right}
  .sv-rwin{flex:none;min-width:38px;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;
    padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.10);
    font:800 10.5px/1.35 'Nunito',sans-serif;color:var(--muted)}
  .sv-rwin i{font-style:normal;font-weight:800;color:var(--accent)}
  .sv-rcards{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding-left:25px}
  .sv-rcn{font-size:11px;font-weight:700;color:var(--muted);margin-right:3px}
  .sv-clean{font-size:11px;font-weight:800;color:var(--accent)}
  .sv-rcards{animation:svReveal .34s ease-out both;
    animation-delay:calc(var(--i,0) * .14s + .08s);transform-origin:top center}
  @keyframes svReveal{from{opacity:0;transform:translateY(-5px) rotateX(72deg)}
                      to{opacity:1;transform:none}}
  .sv-clean.gold{color:#291705;background:linear-gradient(135deg,#ffdf9a,#eeb44c);
    border-radius:999px;padding:2px 9px;box-shadow:0 1px 5px rgba(238,180,76,.45)}
  .sv-rfoot{margin-top:9px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--muted);text-align:center}
  .win-card.sv-win .win-scores{gap:0;margin:0}
  .win-card.sv-win .win-scores .ws-row{display:none}
  .win-card.sv-win .win-scores .ws-goal{margin:0 0 12px}
  .sv-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .sv-react-row{display:none}
  .sv-fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
  .sv-flyc{position:fixed;animation:svFly .48s cubic-bezier(.35,.02,.2,1) forwards}
  .sv-flyc .sv-card{width:100%;height:100%}
  @keyframes svFly{
    from{transform:translate(0,0) scale(1) rotate(0);opacity:1}
    to  {transform:translate(var(--fx),var(--fy)) scale(var(--fs)) rotate(-7deg);opacity:.15}}
  .sv-boom{position:fixed;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;
    box-shadow:0 0 0 2px rgba(255,223,154,.92), 0 0 18px rgba(255,205,110,.55);
    animation:svBoom .95s ease-out forwards}
  @keyframes svBoom{from{transform:scale(1);opacity:.95}to{transform:scale(24);opacity:0}}
  .sv-drag{position:fixed;border-radius:8px;overflow:hidden}
  .sv-drag::after{content:"";position:absolute;inset:0;transform:translateX(-115%);
    background:linear-gradient(100deg,rgba(255,223,154,0) 0%,rgba(255,243,206,.88) 45%,
      rgba(255,223,154,0) 72%);
    animation:svDragSweep 1.2s ease-out forwards}
  @keyframes svDragSweep{to{transform:translateX(115%)}}
  body.sv-mp .sv-room,body.sv-solo .sv-room{width:min(92vw,700px)}
  body.sv-mp .topbar,body.sv-solo .topbar{width:min(92vw,700px)}
  @media (max-height:600px){
    :root{--sv-cw:clamp(24px,6.8vw,34px); --sv-tpad:7px; --sv-tw:min(98vw,940px);
      --sv-cellw:min(var(--sv-cw),
        calc((var(--sv-tw) / 2 - var(--sv-tpad) * 2 - var(--sv-cgap) * 12) / 13))}
    .sv-hero{margin:6px 0 2px}
    .sv-art{width:66px;height:66px}
    .sv-play{gap:5px}
    .sv-room{padding:6px 10px}
    .sv-tracks{gap:2px;padding:4px var(--sv-tpad);
      flex-direction:row;flex-wrap:wrap;align-content:flex-start;column-gap:8px}
    .sv-track{width:calc(50% - 4px)}
    .sv-stage{gap:4px}
    .sv-mypile{padding:3px 8px;font-size:11px}
    .sv-mypile .sv-card.tiny{--svw:17px}
    .sv-hand{gap:4px}
    .sv-hand.cover{padding:5px 5px 7px;row-gap:6px}
    .sv-cvbar{gap:6px}
    .sv-cvi{font-size:16px}
    .sv-cvt{flex-direction:row;align-items:baseline;gap:7px}
    .sv-cvt b{font-size:12.5px}
    .sv-cvt i{font-size:11px}
  }
  @media (orientation:landscape) and (max-height:560px) and (pointer:coarse){
    body.sv-mp .topbar,body.sv-solo .topbar{display:none}
    body.sv-mp,body.sv-solo{padding:6px;gap:4px}
    body.sv-mp .sv-room,body.sv-solo .sv-room{padding:5px 9px}
    .sv-room .mp-subrow,.sv-room-foot{margin-top:3px}
  }
  :root{ --b2-face:#fdfaf3; --b2-line:#c3ae90; --b2-blk:#22303f; --b2-red:#c92c2c;
         --b2-redlit:#ff7b7b; --b2-bk:#3f5896;
         --b2-tw:min(98vw,700px); --b2-cw:clamp(27px,7.6vw,40px); --b2-hgap:5px;
         --b2-trh:248px; --b2-acth:46px;
           }
  .b2-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .b2-scroll{flex:1 1 auto}
  .b2-hero{text-align:center;margin:14px 0 4px}
  .b2-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .b2-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .b2-room{padding:9px 12px}
  .b2-room .row{margin-top:0}
  .b2-room-top{flex-wrap:nowrap;gap:8px}
  .b2-room .b2-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .b2-room .b2-room-title b{font-size:15px;color:var(--text)}
  .b2-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .b2-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .b2-room .mp-subrow{margin-top:5px}
  .b2-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .b2-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .b2-seat{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
  .b2-seat.p0{background:var(--sp0)}.b2-seat.p1{background:var(--sp1)}
  .b2-seat.p2{background:var(--sp2)}.b2-seat.p3{background:var(--sp3)}
  .b2-chn{display:inline-flex;align-items:center;gap:1px;
    font:800 10.5px/1 'Nunito',sans-serif;color:var(--muted)}
  .b2-chf{display:inline-flex;align-items:center;padding:1px 5px;border-radius:7px;
    background:rgba(255,255,255,.16);font:800 10px/1.4 'Nunito',sans-serif;color:var(--accent)}
  .mp-chip.out{opacity:.72}
  .b2-chla{display:inline-flex;align-items:center;white-space:nowrap;
    padding:1px 5px;margin-right:3px;border-radius:7px;
    background:rgba(224,83,63,.26);box-shadow:0 0 0 1px rgba(224,83,63,.55) inset;
    font:900 10px/1.4 'Nunito',sans-serif;color:#ffd7cf;letter-spacing:.5px}
  .b2-pip{display:inline-block;width:7px;height:10px;border-radius:2px;
    background:var(--b2-face);border:1px solid var(--b2-line);margin-right:2px}
  .b2-play{flex:1 1 auto;min-height:0;width:var(--b2-tw);
    display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .b2-stage{flex:1 1 auto;min-height:0;position:relative;z-index:0;
    display:flex;flex-direction:column;justify-content:flex-end;gap:7px;
    overflow-y:auto;overflow-x:hidden}
  .b2-acts{flex:none;min-height:var(--b2-acth);display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:6px;padding:2px 0}
  .b2-trick{--b2-tcw:clamp(calc(var(--b2-cw) * .66),var(--b2-tfit,0px),var(--b2-cw));
    --b2-tch:calc(var(--b2-tcw) * 1.42);
    --b2-tph:calc(var(--b2-tch) + 30px);
    --b2-tsw:calc(var(--b2-cw) * 10 + 122px);
    flex:1 1 auto;min-height:var(--b2-trh);overflow:hidden;position:relative;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    border-radius:12px;padding:8px 10px;
    background:
      radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.10), rgba(0,0,0,0) 60%),
      linear-gradient(180deg,#1d4c3a,#12332a 70%,#0e2822);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.07), inset 0 10px 26px rgba(0,0,0,.34)}
  .b2-tlbl{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;
    font:700 11.5px/1.3 'Nunito',sans-serif;color:var(--muted)}
  .b2-tttl{padding:1px 9px;border-radius:9px;background:rgba(255,255,255,.13);
    font-weight:800;color:var(--text)}
  .b2-thint b{color:var(--accent)}
  :root{ --b2-tmw:44px; }
  .b2-tseats{flex:0 1 auto;min-height:0;overflow-y:auto;
    display:grid;gap:7px;align-content:start;
    width:min(100%,var(--b2-tsw));
    grid-template-columns:minmax(0,1fr) var(--b2-tmw) minmax(0,1fr);
    grid-auto-rows:minmax(var(--b2-tph),auto)}
  .b2-tseats.s4{grid-template-areas:"t t t" "l m r" "b b b"}
  .b2-tseats.s3{grid-template-areas:"l m r" "b b b"}
  .b2-tseats.s2{grid-template-areas:"t t t" "m m m" "b b b";
    grid-template-rows:minmax(var(--b2-tph),auto) 30px minmax(var(--b2-tph),auto)}
  .b2-tmv.pos-t{grid-area:t}
  .b2-tmv.pos-b{grid-area:b}
  .b2-tmv.pos-l{grid-area:l}
  .b2-tmv.pos-r{grid-area:r}
  .b2-tmv.pos-t,.b2-tmv.pos-b{justify-self:center;
    width:min(100%,calc((100% - var(--b2-tmw) - 14px) / 2))}
  .b2-tmid{grid-area:m;display:flex;align-items:center;justify-content:center;
    min-width:0;overflow:hidden;font-size:26px;line-height:1;
    opacity:.16;filter:grayscale(1) brightness(2.6) contrast(.55);
    pointer-events:none;user-select:none}
  .b2-trick.empty .b2-tmid{opacity:.26;animation:b2Mid 3.4s ease-in-out infinite}
  @keyframes b2Mid{0%,100%{opacity:.19}50%{opacity:.34}}
  .b2-tmv{min-height:var(--b2-tph);position:relative;
    display:flex;flex-direction:column;justify-content:center;gap:2px;
    padding:3px 5px;border:2px solid transparent;border-radius:10px;
    background:rgba(255,255,255,.05)}
  .b2-tmv.idle{background:transparent}
  .b2-tmv.top{background:rgba(255,255,255,.12);border-color:var(--accent)}
  .b2-tmv.pass{background:transparent;opacity:.82}
  .b2-thd{display:flex;align-items:center;gap:4px;min-width:0;height:18px;overflow:hidden}
  .b2-sn{flex:none;min-width:15px;height:15px;padding:0 3px;border-radius:8px;
    display:inline-flex;align-items:center;justify-content:center;
    font:900 10px/1 'Nunito',sans-serif;color:#241a2e;background:#cfd4e0}
  .b2-sn.p0{background:var(--sp0)}.b2-sn.p1{background:var(--sp1)}
  .b2-sn.p2{background:var(--sp2)}.b2-sn.p3{background:var(--sp3)}
  .b2-tnm{flex:1 1 auto;min-width:1.2em;
    font:800 11.5px/1.3 'Nunito',sans-serif;color:var(--text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .b2-tyou{flex:none;padding:0 4px;border-radius:6px;background:var(--accent-2);
    font:900 9.5px/1.5 'Nunito',sans-serif;color:#2a1c00}
  .b2-tct{flex:none;margin-left:auto;
    padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.14);
    font:800 10.5px/1.5 'Nunito',sans-serif;color:var(--text)}
  .b2-tpass{padding:2px 11px;border-radius:999px;
    border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);
    font:900 11px/1.35 'Nunito',sans-serif;color:var(--muted);letter-spacing:1.5px}
  .b2-twait{font:700 10.5px/1 'Nunito',sans-serif;color:var(--muted)}
  .b2-tcs{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:3px;
    min-height:var(--b2-tch);overflow:hidden}
  .b2-tcs .b2-card{flex:0 1 auto;min-width:0}
  .b2-tmv.just{animation:b2Land .38s cubic-bezier(.2,1.5,.4,1)}
  @keyframes b2Land{0%{transform:scale(1.06)}58%{transform:scale(.985)}100%{transform:scale(1)}}
  .b2-tmv.just .b2-tcs .b2-card{animation:b2Drop .34s cubic-bezier(.25,1.4,.4,1) both}
  .b2-tmv.just .b2-tcs .b2-card:nth-child(2){animation-delay:.06s}
  .b2-tmv.just .b2-tcs .b2-card:nth-child(3){animation-delay:.12s}
  .b2-tmv.just .b2-tcs .b2-card:nth-child(4){animation-delay:.18s}
  .b2-tmv.just .b2-tcs .b2-card:nth-child(5){animation-delay:.24s}
  @keyframes b2Drop{
    0%  {opacity:0;transform:translateY(-16px) scale(1.18) rotate(-5deg)}
    62% {opacity:1;transform:translateY(0) scale(.97) rotate(0)}
    100%{opacity:1;transform:none}}
  @media (prefers-reduced-motion:reduce){
    .b2-tmv.just,.b2-tmv.just .b2-tcs .b2-card{animation:none}
    .b2-tla{animation:none}
  }
  .b2-rbomb{flex:none;padding:1px 5px;border-radius:8px;background:var(--b2-redlit);
    font:800 9.5px/1.5 'Nunito',sans-serif;color:#2a0d0d}
  .b2-trick .b2-tlbl{color:rgba(255,255,255,.76)}
  .b2-trick .b2-tttl{color:#fff;background:rgba(255,255,255,.17)}
  .b2-trick .b2-thint{color:rgba(255,255,255,.82)}
  .b2-trick .b2-thint b{color:#ffd489}
  .b2-trick .b2-tnm{color:#fff}
  .b2-trick .b2-tct{color:#fff;background:rgba(255,255,255,.19)}
  .b2-trick .b2-tpass{color:rgba(255,255,255,.60)}
  .b2-trick .b2-twait{color:rgba(255,255,255,.60)}
  .b2-tla{flex:none;padding:1px 8px;border-radius:9px;
    font:900 11px/1.45 'Nunito',sans-serif;letter-spacing:.5px;
    color:#fff;background:rgba(176,32,24,.86);
    box-shadow:0 0 0 1px rgba(255,120,100,.55);
    animation:b2LaBeat 1.25s ease-in-out infinite}
  @keyframes b2LaBeat{
    0%,100%{box-shadow:0 0 0 1px rgba(255,120,100,.50), 0 0 0 0 rgba(224,60,45,.42)}
    55%    {box-shadow:0 0 0 1px rgba(255,170,150,.90), 0 0 0 6px rgba(224,60,45,0)}}
  .b2-tmv.top .b2-tcs{border-radius:9px;
    background:
      radial-gradient(72% 128% at 50% 104%, rgba(255,212,137,.30), rgba(255,212,137,0) 74%),
      linear-gradient(180deg, rgba(255,212,137,0), rgba(255,212,137,.10))}
  .b2-trick .b2-tmv.top .b2-tct{color:#2a1c00;background:#ffd489}
  .b2-tmv.beat{background:transparent}
  .b2-tmv.beat .b2-tcs{opacity:.78}
  .b2-trick .b2-tmv.beat .b2-tct{color:rgba(255,255,255,.62);background:rgba(255,255,255,.10)}
  .b2-twait.mine{color:#8fe0ff;letter-spacing:.5px;
    animation:b2Guide 1.9s ease-in-out infinite}
  @keyframes b2Guide{
    0%,100%{opacity:.62;transform:translateY(-1px)}
    50%    {opacity:1;transform:translateY(1px)}}
  @media (prefers-reduced-motion:reduce){
    .b2-twait.mine{animation:none;opacity:1}
    .b2-trick.empty .b2-tmid{animation:none}
  }
  :root{ --b2-turn:#6ec8ff; }
  .b2-tmv.me,.b2-tmv.me.top{
    background:linear-gradient(180deg,rgba(255,212,137,.20),rgba(255,212,137,.06))}
  .b2-tmv.me .b2-tnm{color:#ffd489}
  .b2-tmv.me::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;
    border-radius:0 4px 4px 0;background:#ffd489;pointer-events:none}
  .b2-tmv.act::after{content:"";position:absolute;left:10px;right:10px;top:0;height:3px;
    border-radius:0 0 4px 4px;background:var(--b2-turn);
    animation:b2Turn 1.6s ease-in-out infinite;pointer-events:none}
  @keyframes b2Turn{0%,100%{opacity:.45}50%{opacity:1}}
  @media (prefers-reduced-motion:reduce){
    .b2-tmv.act::after{animation:none;opacity:1}
  }
  .b2-fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
  .b2-flyc{position:fixed;animation:b2Fly .52s cubic-bezier(.3,.02,.2,1) forwards}
  .b2-flyc .b2-card{width:100%;height:100%}
  @keyframes b2Fly{
    from{transform:translate(0,0) scale(1) rotate(0);opacity:1}
    to  {transform:translate(var(--fx),var(--fy)) scale(var(--fs)) rotate(6deg);opacity:.12}}
  .b2-cut{position:fixed;display:grid;place-items:center;overflow:hidden;border-radius:14px;
    animation:b2Cut 1.05s ease-out forwards;
    background:radial-gradient(80% 70% at 50% 50%,rgba(0,0,0,.55),rgba(0,0,0,.14) 74%,rgba(0,0,0,0))}
  @keyframes b2Cut{0%{opacity:0}12%{opacity:1}74%{opacity:1}100%{opacity:0}}
  .b2-cutw{font:900 clamp(30px,11vw,62px)/1 'Fredoka','Nunito',sans-serif;letter-spacing:4px;
    color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.75);
    animation:b2CutW 1.05s cubic-bezier(.18,1.5,.32,1) forwards}
  @keyframes b2CutW{
    0%  {transform:scale(2.6) rotate(-10deg);opacity:0}
    16% {transform:scale(1)   rotate(-3deg); opacity:1}
    76% {transform:scale(1)   rotate(-3deg); opacity:1}
    100%{transform:scale(1.14) rotate(-3deg);opacity:0}}
  .b2-cut.t5{background:radial-gradient(82% 72% at 50% 50%,
    rgba(190,30,20,.66),rgba(30,0,0,.40) 72%,rgba(0,0,0,0))}
  .b2-cut.t5 .b2-cutw{color:#ffd9cf}
  .b2-cut.t6{background:
    radial-gradient(82% 72% at 50% 50%,rgba(255,226,150,.62),rgba(20,10,40,.42) 72%,rgba(0,0,0,0)),
    conic-gradient(from 0deg,rgba(255,120,120,.30),rgba(255,230,140,.30),
      rgba(120,255,190,.30),rgba(140,190,255,.30),rgba(255,120,120,.30))}
  .b2-cut.t6 .b2-cutw{color:#fff8e0}
  @media (prefers-reduced-motion:reduce){
    .b2-flyc{display:none}
  }
  .set-card.b2-rules-card{width:min(92vw,480px);max-width:none;
    display:flex;flex-direction:column;overflow:hidden}
  .b2-rules-card .set-body{flex:1 1 auto;min-height:0;overflow-y:auto;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .b2-rules-who{flex:none;margin:-4px 0 8px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--accent-2)}
  .b2-rules-card .set-row.col{flex-direction:column;align-items:stretch;gap:5px}
  .b2-rules-card .set-row.col .set-lbl{text-align:left}
  .b2-rules-card .set-row.col .seg{width:100%}
  .b2-rules-card .set-row.col .seg button{flex:1 1 0;min-width:0;font-size:12.5px;padding:6px 4px}
  .b2-rules-card .seg.col{flex-direction:column;gap:4px}
  .b2-rules-card .seg.col button{flex:none;width:100%;text-align:left;
    font-size:12px;padding:7px 9px;letter-spacing:.2px;white-space:normal;line-height:1.35}
  .b2-rules-card .seg.col button b{color:var(--accent-2)}
  .b2-rules-card .seg.col button.on b{color:inherit}
  .b2-rules-card .seg.readonly{opacity:.78}
  .b2-rules-list{margin:2px 0 0;padding:0;list-style:none;text-align:left}
  .b2-rules-list li{position:relative;padding:3px 0 3px 15px;
    font:600 12px/1.55 'Nunito',sans-serif;color:var(--muted)}
  .b2-rules-list li::before{content:"";position:absolute;left:3px;top:10px;
    width:5px;height:5px;border-radius:50%;background:var(--accent)}
  .b2-rules-list li b{color:var(--text)}
  .b2-rules-sum{flex:none;text-align:left;padding-top:8px;
    font:700 12px/1.5 'Nunito',sans-serif;color:var(--accent-2)}
  .b2-hand{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-start;
    align-content:flex-start;gap:var(--b2-hgap);padding:3px 2px 6px;
    width:min(100%,calc(var(--b2-slots,13) * (var(--b2-cw) + var(--b2-hgap))));margin-inline:auto}
  .b2-hand:has(.b2-empty){justify-content:center}
  .b2-card{--b2w:var(--b2-cw);
    flex:none;width:var(--b2w);height:calc(var(--b2w) * 1.42);
    border-radius:calc(var(--b2w) * .13);border:1px solid var(--b2-line);
    background:linear-gradient(155deg,#fff,var(--b2-face) 58%);
    color:var(--b2-blk);display:flex;flex-direction:column;align-items:center;justify-content:center;
    line-height:1;user-select:none;box-shadow:0 1px 2px rgba(0,0,0,.28);
    transition:transform .12s,box-shadow .12s,filter .15s}
  .b2-card.red{color:var(--b2-red)}
  .b2-cr{font:800 calc(var(--b2w) * .50)/1 'Nunito',sans-serif}
  .b2-cs{font:700 calc(var(--b2w) * .42)/1 'Nunito',sans-serif;margin-top:calc(var(--b2w) * .04)}
  .b2-sv{display:block;width:1em;height:1em;fill:currentColor}
  .b2-hand .b2-card{cursor:pointer;touch-action:none;-webkit-user-drag:none}
  .b2-hand .b2-card:hover{transform:translateY(-4px)}
  .b2-hand .b2-card:active{transform:scale(.94)}
  .b2-hand .b2-card.hot{box-shadow:0 2px 8px rgba(129,199,132,.45),0 0 0 1.5px rgba(129,199,132,.9)}
  .b2-hand .b2-card.cold{filter:grayscale(.62) brightness(.72)}
  .b2-hand .b2-card.sel{transform:translateY(-14px);
    box-shadow:0 8px 14px rgba(0,0,0,.36),0 0 0 2.5px var(--accent-2);
    background:linear-gradient(155deg,#fff,#fff5d8 58%)}
  .b2-hand .b2-card.sel:active{transform:translateY(-14px) scale(.94)}
  .b2-hand .b2-card.b2-armed{position:relative;z-index:5;
    box-shadow:0 8px 14px rgba(0,0,0,.36),0 0 0 2.5px var(--accent),
               0 0 13px rgba(255,138,61,.55)}
  .b2-hand .b2-card.b2-armed::after{content:"出";position:absolute;
    left:50%;top:-8px;transform:translateX(-50%);
    min-width:17px;height:16px;padding:0 4px;border-radius:8px;
    background:var(--accent);color:#241030;
    font:800 10.5px/16px 'Nunito',sans-serif;letter-spacing:.5px;
    box-shadow:0 1px 3px rgba(0,0,0,.35);pointer-events:none}
  .b2-hand .b2-card.b2-drag{transition:none;position:relative;z-index:6;cursor:grabbing;
    box-shadow:0 12px 20px rgba(0,0,0,.45),0 0 0 2px var(--accent)}
  .b2-hand .b2-card.b2-gsep{position:relative}
  .b2-hand .b2-card.b2-gsep::before{content:"";position:absolute;
    left:-3.5px;top:14%;bottom:14%;width:2px;border-radius:1px;
    background:rgba(255,255,255,.42);pointer-events:none}
  .b2-card.sm{--b2w:calc(var(--b2-cw) * .82);cursor:default}
  .b2-card.mid{--b2w:var(--b2-tcw,calc(var(--b2-cw) * .66));cursor:default}
  .b2-card.tiny{--b2w:21px;cursor:default;box-shadow:0 1px 1px rgba(0,0,0,.22)}
  .b2-empty{font:800 13px/1 'Nunito',sans-serif;color:var(--accent);padding:12px 0}
  .b2-actrow{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
  .b2-atxt{font:700 13px/1.4 'Nunito',sans-serif;color:var(--muted)}
  .b2-atxt b{color:var(--text)}
  .b2-btns{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}
  .b2-btns .btn{padding:8px 14px;font-size:13.5px}
  .b2-btns .btn.dim{opacity:.62;pointer-events:auto}
  .b2-actline{display:flex;align-items:center;justify-content:center;gap:9px;width:100%}
  .b2-actline .b2-actrow{min-width:0}
  .b2-sortbtn{flex:none;width:34px;height:34px;border-radius:11px;
    display:grid;place-items:center;line-height:1;cursor:pointer;
    font:800 15px/1 'Fredoka','Nunito',sans-serif;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text)}
  .b2-sortbtn:hover{background:rgba(255,255,255,.15)}
  .b2-sortbtn:active{transform:scale(.9)}
  .b2-cdwrap{flex:none;display:flex;align-items:center}
  .b2-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .b2-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .b2-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .b2-cdbg{stroke:rgba(255,255,255,.16)}
  .b2-cdfg{stroke:var(--accent-2);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,30s) linear var(--cd-delay,0s) forwards}
  .b2-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .b2-cdn.b2-beat{animation:m16beat .34s ease-out}
  .b2-cd.b2-hot .b2-cdfg{stroke:var(--b2-redlit)}
  .b2-cd.b2-hot .b2-cdn{color:var(--b2-redlit)}
  .b2-cd.b2-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .b2-cd.b2-hot{animation:none}
    .b2-cdn.b2-beat{animation:none}
  }
  .win-card.b2-win{width:min(88vw,520px);max-width:none;padding:26px 24px}
  .win-card.b2-win .word{font-size:clamp(28px,7.2vw,40px)}
  .b2-win p{margin:7px 0 14px}
  .b2-result{margin:2px 0 12px}
  .b2-rank{display:flex;flex-direction:column;gap:5px}
  .b2-rrow{display:flex;flex-direction:column;gap:3px;padding:6px 9px;border-radius:11px;
    background:rgba(255,255,255,.07)}
  .b2-rmain{display:flex;align-items:center;gap:6px}
  .b2-rrow.me{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent-2)}
  .b2-rno{flex:none;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.18);font:800 11px/1 'Nunito',sans-serif;color:var(--text)}
  .b2-rrow.win .b2-rno{background:var(--accent);color:#1c1008}
  .b2-rcrown{flex:none;font-size:12px;line-height:1}
  .b2-rshut{flex:none;padding:1px 6px;border-radius:8px;
    font:900 9.5px/1.6 'Nunito',sans-serif;letter-spacing:.4px;
    color:#fff;background:linear-gradient(135deg,#b0261c,#7d1410);
    box-shadow:0 1px 4px rgba(176,38,28,.5)}
  .b2-rname{flex:0 1 auto;min-width:0;text-align:left;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font:800 13.5px/1.2 'Nunito',sans-serif;color:var(--text)}
  .b2-rpts{flex:none;margin-left:auto;font-weight:700;font-size:11px;color:var(--muted)}
  .b2-rpts b{font:800 15px/1 'Fredoka','Nunito',sans-serif;color:var(--accent);margin-right:1px}
  .b2-rmain.has-win .b2-rwin{margin-left:auto}
  .b2-rmain.has-win .b2-rpts{margin-left:0;min-width:46px;text-align:right}
  .b2-rwin{flex:none;min-width:38px;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;
    padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.14);
    font:700 10.5px/1.6 'Nunito',sans-serif;color:var(--muted)}
  .b2-rwin i{font-style:normal;font-weight:800;color:var(--accent)}
  .b2-rcards{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding-left:25px}
  .b2-rcn{font-size:11px;font-weight:700;color:var(--muted);margin-right:3px}
  .b2-clean{font-size:11px;font-weight:800;color:var(--accent)}
  .b2-rfoot{margin-top:9px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--muted);text-align:center}
  .win-card.b2-win .win-scores{gap:0;margin:0}
  .win-card.b2-win .win-scores .ws-row{display:none}
  .win-card.b2-win .win-scores .ws-goal{margin:0 0 12px}
  .b2-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .b2-react-row{display:none}
  body.b2-mp .b2-room,body.b2-solo .b2-room{width:min(92vw,700px)}
  body.b2-mp .topbar,body.b2-solo .topbar{width:min(92vw,700px)}
  @media (max-height:600px){
    :root{--b2-cw:clamp(24px,6.8vw,34px); --b2-hgap:4px; --b2-trh:172px; --b2-acth:42px}
    .b2-hero{margin:6px 0 2px}
    .b2-art{width:66px;height:66px}
    .b2-play{gap:5px}
    .b2-room{padding:6px 10px}
    .b2-stage{gap:4px}
    .b2-trick{padding:5px 8px;gap:4px}
    .b2-tseats{gap:4px}
    .b2-tseats.s4{grid-template-columns:repeat(3,minmax(0,1fr));
      grid-template-areas:"l t r" "b b b";
      width:min(100%,calc(var(--b2-cw) * 15 + 92px))}
    .b2-tseats.s4 .b2-tmv.pos-t{width:auto;justify-self:stretch}
    .b2-tseats.s4 .b2-tmv.pos-b{width:min(100%,calc((100% - 8px) / 3))}
    .b2-tseats.s4 .b2-tmid,.b2-tseats.s2 .b2-tmid{display:none}
    .b2-tseats.s2{grid-template-rows:minmax(var(--b2-tph),auto) 0 minmax(var(--b2-tph),auto)}
    .b2-hand{padding:2px 2px 4px}
    .b2-acts{gap:4px}
    .b2-btns .btn{padding:6px 11px;font-size:12.5px}
  }
  @media (max-width:520px) and (min-height:601px){
    :root{--b2-cw:clamp(31px,min(12.2vw,6vh),48px); --b2-tmw:24px; --b2-trh:150px}
    .b2-trick{--b2-tcw:clamp(21px,var(--b2-tfit,0px),var(--b2-cw));padding:6px 8px;gap:5px}
    .b2-tmid{font-size:16px}
    body.b2-mp .b2-room,body.b2-solo .b2-room{padding:7px 10px}
    .b2-room .mp-subrow,.b2-room-foot{margin-top:4px}
    .b2-room .mp-players.oneline{gap:7px}
    .b2-room .mp-chip{padding:5px 9px;font-size:12.5px;gap:5px}
    .b2-room .mp-chip .you-badge{display:none}
    .b2-play{gap:6px}
    .b2-stage{gap:5px}
    @media (max-height:820px){
      .b2-trick{max-height:calc(var(--b2-tmax,999px) + 8vh)}
    }
  }
  @media (orientation:landscape) and (max-height:560px) and (pointer:coarse){
    body.b2-mp .topbar,body.b2-solo .topbar{display:none}
    body.b2-mp,body.b2-solo{padding:6px;gap:4px}
    body.b2-mp .b2-room,body.b2-solo .b2-room{padding:5px 9px}
    .b2-room .mp-subrow,.b2-room-foot{margin-top:3px}
    .b2-trick{padding:4px 8px;gap:3px}
    .b2-tseats{gap:4px}
  }
  :root{ --bj-face:#fdfaf3; --bj-line:#c3ae90; --bj-blk:#22303f; --bj-red:#c92c2c;
         --bj-redlit:#ff7b7b; --bj-grn:#81c784; --bj-bk:#3f5896;
         --bj-tw:min(98vw,700px);
         --bj-cw:clamp(44px,12.5vw,62px); --bj-hgap:6px;
         --bj-trh:236px; --bj-acth:104px; }
  body.bj-mp{ --bj-acth:128px; }
  .bj-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .bj-scroll{flex:1 1 auto}
  .bj-hero{text-align:center;margin:14px 0 4px}
  .bj-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .bj-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .bj-rules{margin:6px 0 0;padding:0 0 0 4px;list-style:none;text-align:left}
  .bj-rules li{position:relative;padding:3px 0 3px 15px;line-height:1.5}
  .bj-rules li::before{content:"";position:absolute;left:2px;top:11px;
    width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.75}
  .bj-rules li b{color:var(--accent-2)}
  .set-card.bj-rules-card{width:min(92vw,480px);max-width:none}
  .set-card.bj-rules-card{display:flex;flex-direction:column;overflow:hidden}
  .bj-rules-card .set-body{flex:1 1 auto;min-height:0;overflow-y:auto;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .bj-rules-card > .btn{flex:none}
  .bj-rules-who{flex:none;margin:-4px 0 8px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--accent-2)}
  .bj-rules-card .set-row.col{flex-direction:column;align-items:stretch;gap:5px}
  .bj-rules-card .set-row.col .set-lbl{text-align:left}
  .bj-rules-card .set-row.col .seg{width:100%}
  .bj-rules-card .set-row.col .seg button{flex:1 1 0;min-width:0;font-size:12.5px;padding:6px 4px}
  .bj-rules-card .seg.readonly{opacity:.78}
  .bj-rules-sum{text-align:left;font:600 11.5px/1.5 'Nunito',sans-serif;color:var(--muted)}
  .bj-rules-sum .bj-rules li{padding:2px 0 2px 14px;font-size:11.5px}
  .bj-rules-sum .bj-rules li::before{top:9px;width:4px;height:4px}
  .bj-room{padding:9px 12px}
  .bj-room .row{margin-top:0}
  .bj-room-top{flex-wrap:nowrap;gap:8px}
  .bj-room .bj-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .bj-room .bj-room-title b{font-size:15px;color:var(--text)}
  .bj-room .mp-goal{flex:0 1 auto;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bj-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .bj-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .bj-room .mp-subrow{margin-top:5px}
  .bj-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .bj-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .bj-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
  .bj-dot.p0{background:var(--sp0)}.bj-dot.p1{background:var(--sp1)}.bj-dot.p2{background:var(--sp2)}
  .bj-dot.p3{background:var(--sp3)}.bj-dot.p4{background:var(--sp4)}
  .bj-chd{display:inline-flex;align-items:center;white-space:nowrap;
    padding:1px 5px;margin-right:3px;border-radius:7px;
    background:rgba(255,210,74,.24);box-shadow:0 0 0 1px rgba(255,210,74,.5) inset;
    font:900 10px/1.4 'Nunito',sans-serif;color:#ffe9a8}
  .bj-chc{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;
    padding:1px 6px;border-radius:7px;
    background:rgba(255,210,74,.18);box-shadow:0 0 0 1px rgba(255,210,74,.42) inset;
    font:800 10px/1.4 'Nunito',sans-serif;color:#ffe9a8}
  .bj-chc b{font:900 12px/1 'Fredoka','Nunito',sans-serif;color:#fff4d2;letter-spacing:.2px}
  .mp-chip.turn .bj-chc{background:rgba(0,0,0,.26);box-shadow:none;color:#fff1c4}
  .mp-chip.turn .bj-chc b{color:#fff}
  .bj-play{flex:1 1 auto;min-height:0;width:var(--bj-tw);position:relative;
    display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .bj-stage{flex:1 1 auto;min-height:0;position:relative;z-index:0;
    display:flex;flex-direction:column;justify-content:flex-end;gap:7px;
    overflow-y:auto;overflow-x:hidden}
  .bj-acts{flex:none;min-height:var(--bj-acth);display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:6px;padding:2px 0}
  .bj-table{flex:1 1 auto;min-height:var(--bj-trh);overflow:hidden;
    display:flex;flex-direction:column;justify-content:center;gap:7px;
    background:rgba(0,0,0,.16);border-radius:12px;padding:9px 10px}
  .bj-dealer{flex:none;display:flex;flex-direction:column;gap:3px;
    padding:5px 8px;border:2px solid transparent;border-radius:10px;
    background:rgba(255,255,255,.07)}
  .bj-dealer.me{background:rgba(255,255,255,.11)}
  .bj-dealer.act{border-color:var(--accent)}
  .bj-dhd{display:flex;align-items:center;gap:5px;min-width:0;height:20px}
  .bj-crown{flex:none;font-size:13px;line-height:1}
  .bj-dnm{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font:800 12.5px/1.3 'Nunito',sans-serif;color:var(--text)}
  .bj-dcs{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;
    min-height:calc(var(--bj-cw) * 0.72 * 1.42);overflow:hidden}
  .bj-dcs .bj-card,.bj-scs .bj-card{flex:0 1 auto;min-width:0}
  .bj-card.just{animation:bjDeal .30s cubic-bezier(.22,1.35,.36,1) both}
  @keyframes bjDeal{
    0%  {opacity:0;transform:translate(14px,-20px) rotate(9deg) scale(1.06)}
    100%{opacity:1;transform:none}}
  .bj-card.flip{animation:bjFlip .42s cubic-bezier(.3,.8,.3,1) both;
    transform-style:preserve-3d;backface-visibility:hidden}
  @keyframes bjFlip{
    0%  {transform:rotateY(-92deg) scale(1.05)}
    58% {transform:rotateY(8deg)   scale(1.02)}
    100%{transform:none}}
  @media (prefers-reduced-motion:reduce){
    .bj-card.just,.bj-card.flip{animation:none}
  }
  .bj-dwait{font:700 11.5px/1 'Nunito',sans-serif;color:var(--muted)}
  .bj-seats{flex:0 1 auto;min-height:0;overflow-y:auto;
    display:flex;flex-direction:column;gap:4px}
  .bj-seat{flex:none;display:flex;align-items:center;gap:5px;min-width:0;
    height:calc(var(--bj-cw) * 0.52 * 1.42 + 10px);
    padding:0 7px;border:2px solid transparent;border-radius:9px;
    background:rgba(255,255,255,.05)}
  .bj-seat.act{border-color:rgba(255,255,255,.34)}
  .bj-seat.done{opacity:.82}
  .bj-seat.bust{opacity:.7}
  .bj-snm{flex:0 1 auto;min-width:1.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font:800 11.5px/1.3 'Nunito',sans-serif;color:var(--text)}
  .bj-scs{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;align-items:center;gap:3px;
    overflow:hidden}
  .bj-bet{flex:none;display:inline-flex;align-items:center;gap:1px;white-space:nowrap;
    padding:1px 5px;border-radius:7px;background:rgba(255,255,255,.14);
    font:800 10px/1.5 'Nunito',sans-serif;color:var(--text)}
  .bj-bet i{font-style:normal;font-weight:700;color:var(--muted);margin-right:1px}
  .bj-bet b{color:var(--accent-2);margin-left:1px}
  .bj-st{flex:none;white-space:nowrap;font:800 10px/1.5 'Nunito',sans-serif;color:var(--muted)}
  .bj-st.ok{color:var(--bj-grn)}
  .bj-st.bad{color:var(--bj-redlit)}
  .bj-st.wait{color:var(--accent-2)}
  .bj-pt{flex:none;margin-left:auto;white-space:nowrap;
    padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.16);
    font:900 11px/1.5 'Nunito',sans-serif;color:var(--text)}
  .bj-pt i{font-style:normal;font-weight:800;font-size:9.5px;margin-left:2px}
  .bj-pt.bust{background:rgba(224,83,63,.3);color:#ffd7cf}
  .bj-pt.bj{background:var(--accent-2);color:#2a1c00}
  .bj-pt.dragon{background:rgba(129,199,132,.3);color:#dcffdd}
  .bj-pt.part b{font-weight:800;font-size:9.5px;opacity:.7;margin-left:1px}
  .bj-fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
  .bj-cut{position:fixed;display:grid;place-items:center;overflow:hidden;border-radius:14px;
    animation:bjCut 1s ease-out forwards;
    background:radial-gradient(78% 68% at 50% 50%,rgba(0,0,0,.50),rgba(0,0,0,.12) 74%,rgba(0,0,0,0))}
  @keyframes bjCut{0%{opacity:0}13%{opacity:1}72%{opacity:1}100%{opacity:0}}
  .bj-cutw{font:900 clamp(26px,9vw,54px)/1 'Fredoka','Nunito',sans-serif;letter-spacing:3px;
    color:#fff;text-shadow:0 3px 16px rgba(0,0,0,.7);
    animation:bjCutW 1s cubic-bezier(.2,1.45,.35,1) forwards}
  @keyframes bjCutW{
    0%  {transform:scale(2.4) rotate(-8deg);opacity:0}
    17% {transform:scale(1)   rotate(-3deg);opacity:1}
    74% {transform:scale(1)   rotate(-3deg);opacity:1}
    100%{transform:scale(1.12) rotate(-3deg);opacity:0}}
  .bj-cut.bust{background:radial-gradient(80% 70% at 50% 50%,
    rgba(206,44,32,.62),rgba(30,0,0,.36) 72%,rgba(0,0,0,0))}
  .bj-cut.bust .bj-cutw{color:#ffd7cf}
  .bj-cut.bj{background:radial-gradient(80% 70% at 50% 50%,
    rgba(120,72,0,.74),rgba(20,12,0,.42) 72%,rgba(0,0,0,0))}
  .bj-cut.bj .bj-cutw{color:#ffe08a}
  .bj-cut.dragon{background:radial-gradient(80% 70% at 50% 50%,
    rgba(20,110,58,.68),rgba(0,24,12,.40) 72%,rgba(0,0,0,0))}
  .bj-cut.dragon .bj-cutw{color:#c8ffd4}
  .bj-cut.grab{background:radial-gradient(80% 70% at 50% 50%,
    rgba(150,96,0,.68),rgba(24,14,0,.40) 72%,rgba(0,0,0,0))}
  .bj-cut.grab .bj-cutw{color:#ffd489}
  .bj-card{--bjw:var(--bj-cw);
    flex:none;width:var(--bjw);height:calc(var(--bjw) * 1.42);
    border-radius:calc(var(--bjw) * .13);border:1px solid var(--bj-line);
    background:linear-gradient(155deg,#fff,var(--bj-face) 58%);
    color:var(--bj-blk);display:flex;flex-direction:column;align-items:center;justify-content:center;
    line-height:1;user-select:none;box-shadow:0 1px 2px rgba(0,0,0,.28)}
  .bj-card.red{color:var(--bj-red)}
  .bj-cr{font:800 calc(var(--bjw) * .46)/1 'Nunito',sans-serif}
  .bj-cs{font:700 calc(var(--bjw) * .38)/1 'Nunito',sans-serif;margin-top:calc(var(--bjw) * .04)}
  .bj-sv{display:block;width:1em;height:1em;fill:currentColor}
  .bj-card.mid{--bjw:calc(var(--bj-cw) * .72)}
  .bj-card.sm{--bjw:calc(var(--bj-cw) * .52)}
  .bj-card.tiny{--bjw:21px;box-shadow:0 1px 1px rgba(0,0,0,.22)}
  .bj-card.back{background:linear-gradient(155deg,#5b76c9,var(--bj-bk) 62%);
    border-color:rgba(255,255,255,.34);padding:2px}
  .bj-bk{display:block;width:100%;height:100%;border-radius:calc(var(--bjw) * .09);
    background-image:
      repeating-linear-gradient(45deg,rgba(255,255,255,.20) 0 2px,transparent 2px 6px),
      repeating-linear-gradient(-45deg,rgba(255,255,255,.20) 0 2px,transparent 2px 6px);
    box-shadow:0 0 0 1px rgba(255,255,255,.22) inset}
  .bj-actrow{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
  .bj-atxt{font:700 13px/1.4 'Nunito',sans-serif;color:var(--muted);text-align:center;padding:0 8px}
  .bj-atxt b{color:var(--text)}
  .bj-selbar{display:flex;align-items:center;gap:7px;max-width:100%;
    padding:5px 10px;border-radius:11px;background:rgba(255,255,255,.08);
    font:700 12px/1.35 'Nunito',sans-serif;color:var(--muted)}
  .bj-selbar.ok{background:rgba(129,199,132,.20);color:var(--text)}
  .bj-selico{flex:none;font-size:14px;line-height:1}
  .bj-seltxt{min-width:0}
  .bj-btns{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}
  .bj-btns .btn{padding:8px 15px;font-size:13.5px}
  .bj-selbar.bet .bj-seltxt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bj-selbar .bj-bamt{flex:none;display:inline-flex;align-items:baseline;gap:2px;
    margin-left:auto;padding:1px 7px;border-radius:8px;
    background:rgba(255,210,74,.18);box-shadow:0 0 0 1px rgba(255,210,74,.42) inset}
  .bj-bamt i{font-style:normal;font:800 9.5px/1.4 'Nunito',sans-serif;color:#ffe9a8}
  .bj-bamt b{font:900 15px/1 'Fredoka','Nunito',sans-serif;color:#fff4d2}
  .bj-bamt.ok{background:rgba(129,199,132,.24);box-shadow:0 0 0 1px rgba(129,199,132,.5) inset}
  .bj-bamt.ok i,.bj-bamt.ok b{color:#e6ffe7}
  .bj-selbar .bj-bok{flex:none;padding:4px 11px;font-size:12.5px;border-radius:9px}
  .bj-bsteps .btn.bj-bstep{flex:0 0 auto;min-width:38px;white-space:nowrap;
    padding:5px 7px;font-size:12.5px;line-height:1.35;
    font-family:'Nunito',sans-serif;font-weight:900;letter-spacing:-.2px}
  .bj-bsteps.locked .btn.bj-bstep{opacity:.5;pointer-events:auto}
  .bj-btns .btn.dim{opacity:.62;pointer-events:auto}
  .bj-cdwrap{display:flex;align-items:center;justify-content:center}
  .bj-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .bj-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .bj-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .bj-cdbg{stroke:rgba(255,255,255,.16)}
  .bj-cdfg{stroke:var(--accent);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,30s) linear var(--cd-delay,0s) forwards}
  .bj-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .bj-cdn.bj-beat{animation:m16beat .34s ease-out}
  .bj-cd.bj-hot .bj-cdfg{stroke:var(--bj-redlit)}
  .bj-cd.bj-hot .bj-cdn{color:var(--bj-redlit)}
  .bj-cd.bj-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .bj-cd.bj-hot{animation:none}
    .bj-cdn.bj-beat{animation:none}
  }
  .win-card.bj-win{width:min(90vw,540px);max-width:none;padding:26px 24px}
  .win-card.bj-win .word{font-size:clamp(28px,7.2vw,40px)}
  .bj-win p{margin:7px 0 14px}
  .bj-result{margin:2px 0 12px}
  .bj-rank{display:flex;flex-direction:column;gap:5px}
  .bj-rsub{margin:12px 0 6px;font:800 11.5px/1 'Nunito',sans-serif;color:var(--muted);
    text-align:left;letter-spacing:.5px}
  .bj-rrow{display:flex;flex-direction:column;gap:3px;padding:6px 9px;border-radius:11px;
    background:rgba(255,255,255,.07)}
  .bj-rrow.me{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent-2)}
  .bj-rrow.dealer{background:rgba(255,210,74,.12)}
  .bj-rrow.me.dealer{background:rgba(255,210,74,.2)}
  .bj-rmain{display:flex;align-items:center;gap:6px}
  .bj-rno{flex:none;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.18);font:800 11px/1 'Nunito',sans-serif;color:var(--text)}
  .bj-rrow.win .bj-rno{background:var(--accent);color:#1c1008}
  .bj-rcrown{flex:none;font-size:12px;line-height:1}
  .bj-rname{flex:0 1 auto;min-width:0;text-align:left;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font:800 13.5px/1.2 'Nunito',sans-serif;color:var(--text)}
  .bj-rtag{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font:700 10.5px/1.4 'Nunito',sans-serif;color:var(--muted)}
  .bj-rpt{flex:none;padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.14);
    font:800 11px/1.5 'Nunito',sans-serif;color:var(--text)}
  .bj-rchip{flex:none;margin-left:auto;min-width:34px;text-align:right;
    font:900 12.5px/1.5 'Fredoka','Nunito',sans-serif;color:#ffe1a0}
  .bj-rd{flex:none;min-width:42px;text-align:right;
    font:900 14px/1 'Fredoka','Nunito',sans-serif;color:var(--muted)}
  .bj-rrow.up .bj-rd{color:var(--bj-grn)}
  .bj-rrow.down .bj-rd{color:var(--bj-redlit)}
  .bj-rcards{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding-left:25px}
  .bj-rbet{font-size:11px;font-weight:700;color:var(--muted);margin-right:3px}
  .bj-rfoot{margin-top:9px;font:700 11px/1.5 'Nunito',sans-serif;color:var(--muted);text-align:center}
  .win-card.bj-win .win-scores{gap:0;margin:0}
  .win-card.bj-win .win-scores .ws-row{display:none}
  .win-card.bj-win .win-scores .ws-goal{margin:0 0 12px}
  .bj-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .bj-react-row{display:none}
  body.bj-mp .bj-room,body.bj-solo .bj-room{width:min(92vw,700px)}
  body.bj-mp .topbar,body.bj-solo .topbar{width:min(92vw,700px)}
  @media (max-height:600px){
    :root{--bj-cw:clamp(36px,10vw,50px); --bj-hgap:5px; --bj-trh:168px; --bj-acth:80px}
    body.bj-mp{--bj-acth:112px}
    .bj-cd{width:30px;height:30px}
    .bj-cdn{font-size:12.5px}
    .bj-hero{margin:6px 0 2px}
    .bj-art{width:66px;height:66px}
    .bj-play{gap:5px}
    .bj-room{padding:6px 10px}
    .bj-stage{gap:4px}
    .bj-table{padding:6px 8px;gap:5px}
    .bj-acts{gap:4px}
    .bj-btns .btn{padding:6px 12px;font-size:12.5px}
    .bj-selbar{padding:4px 8px;font-size:11.5px}
    .bj-rules li{padding:2px 0 2px 14px}
  }
  @media (orientation:landscape) and (max-height:560px) and (pointer:coarse){
    body.bj-mp .topbar,body.bj-solo .topbar{display:none}
    body.bj-mp,body.bj-solo{padding:6px;gap:4px}
    body.bj-mp .bj-room,body.bj-solo .bj-room{padding:5px 9px}
    .bj-room .mp-subrow,.bj-room-foot{margin-top:3px}
    :root{--bj-cw:34px; --bj-hgap:4px; --bj-trh:64px; --bj-acth:78px}
    body.bj-mp{--bj-acth:108px}
    .bj-cd{width:26px;height:26px}
    .bj-cdn{font-size:11.5px}
    .bj-table{flex-direction:row;align-items:center;justify-content:flex-start;
      padding:4px 8px;gap:6px}
    .bj-seats{flex:1 1 auto;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:4px}
    .bj-seat{flex:1 1 0;min-width:104px}
  }
  :root{ --bj-bxh:132px; --bj-trh:300px; }
  .bj-table{flex:1 1 auto;min-height:var(--bj-trh);overflow:hidden;
    display:flex;flex-direction:column;justify-content:flex-start;gap:8px;
    padding:10px;border-radius:14px;
    background:
      radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.10), rgba(0,0,0,0) 60%),
      linear-gradient(180deg,#1d4c3a,#12332a 70%,#0e2822);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.07), inset 0 10px 26px rgba(0,0,0,.34)}
  .bj-dealer{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:3px;
    padding:6px 5px;border-radius:12px;border:2px solid transparent;
    background:linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.18))}
  .bj-dealer.act{border-color:rgba(255,196,84,.9)}
  .bj-dealer.me{background:linear-gradient(180deg,rgba(255,212,137,.20),rgba(255,212,137,.06))}
  .bj-card.dbig{--bjw:calc(var(--bj-cw) * .92)}
  .bj-dhd{flex:none;height:20px}
  .bj-dnm{font:900 15px/1.3 'Nunito',sans-serif;color:#fff;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bj-dcs{flex:1 1 auto;min-height:0;display:flex;flex-wrap:nowrap;gap:3px;
    align-items:center;justify-content:center;overflow:hidden}
  .bj-boxes{flex:1 1 auto;min-height:0;display:flex;flex-wrap:wrap;
    align-content:stretch;gap:7px;overflow:hidden}
  .bj-box{min-width:0;height:var(--bj-bxh);min-height:0;display:flex;flex-direction:column;gap:3px;
    padding:6px 5px;border-radius:11px;border:2px solid transparent;
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.045));
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
  .bj-box.act{border-color:rgba(255,255,255,.42)}
  .bj-box.bust{background:linear-gradient(180deg,rgba(224,83,63,.22),rgba(224,83,63,.07))}
  .bj-box.caught{background:linear-gradient(180deg,rgba(255,196,84,.20),rgba(255,196,84,.07))}
  .bj-box.stood{filter:saturate(.86) brightness(.94);
    background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02)),
      repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 6px,rgba(0,0,0,0) 6px 12px)}
  .bj-box{position:relative}
  .bj-grng{position:absolute;right:5px;bottom:4px;pointer-events:none;
    padding:1px 6px;border-radius:7px;
    font:900 10.5px/1.5 'Nunito',sans-serif;letter-spacing:.3px;
    color:#20140a;background:rgba(255,255,255,.90);
    box-shadow:0 1px 4px rgba(0,0,0,.45)}
  .bj-table .bj-dnm,.bj-table .bj-bnm,.bj-table .bj-snm{color:#fff}
  .bj-table .bj-dwait,.bj-table .bj-bwait{color:rgba(255,255,255,.62)}
  .bj-table .bj-st:not(.ok):not(.bad):not(.wait){color:rgba(255,255,255,.66)}
  .bj-table .bj-st.wait{color:#ffd489}
  .bj-table .bj-pt:not(.bust):not(.bj):not(.dragon){color:#fff}
  .bj-table .bj-bet{color:#fff}
  .bj-table .bj-bet i{color:rgba(255,255,255,.62)}
  .bj-table .bj-bet b{color:#ffd489}
  .bj-box.me{border-color:#ffd489;
    background:linear-gradient(180deg,rgba(255,212,137,.20),rgba(255,212,137,.06))}
  .bj-box.target{border-color:#ffc454;box-shadow:0 0 0 3px rgba(255,196,84,.22)}
  .bj-bhd{display:flex;align-items:center;gap:4px;min-width:0;flex:none}
  .bj-bnm{font:900 11.5px/1 'Nunito',sans-serif;color:#fff;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bj-bcs{flex:1 1 auto;min-height:0;display:flex;flex-wrap:wrap;gap:3px;
    align-items:center;align-content:center;justify-content:center;overflow:hidden}
  .bj-bwait{font:700 11px/1 'Nunito',sans-serif;color:var(--muted)}
  .bj-bnm{flex:0 1 auto;min-width:0}
  .bj-bhd{height:19px}
  .bj-bmeta{margin-left:auto;flex:none;display:flex;align-items:center;gap:3px}
  .bj-bmeta .bj-pt{margin-left:0}
  .bj-st.caught{color:#ffc454;font-weight:900}
  .bj-box.idle{opacity:.85}
  .bj-grabs{display:flex;gap:6px;align-items:stretch}
  .bj-gbtn{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    padding-left:6px;padding-right:6px}
  .bj-gx{flex:0 0 auto;min-width:40px}
  .bj-selbar.grab .bj-selico{color:#ffc454}
  @media (max-height:600px){
    :root{--bj-bxh:104px; --bj-trh:200px}
    .bj-table{padding:7px 8px;gap:6px;flex-direction:column;align-items:stretch;
      justify-content:flex-start}
  }
  @media (max-height:440px){
    :root{--bj-bxh:88px; --bj-trh:150px}
  }
  :root{ --bj-cardw:44px; --bj-bxh:112px; --bj-dlh:92px; }
  .bj-table .bj-card{--bjw:var(--bj-cardw)}
  :root{ --bj-trh:120px; }
  .bj-dealer{height:var(--bj-dlh)}
  .bj-boxes{align-content:flex-start}
  .bj-boxes{overflow-y:auto;overflow-x:hidden}
  .bj-bcs{flex-wrap:nowrap}
  .bj-bcs .bj-card{flex:0 1 auto;min-width:0}
  .bj-box.target{cursor:pointer;animation:bjTgt 1.1s ease-in-out infinite}
  @keyframes bjTgt{ 0%,100%{ filter:brightness(1) } 50%{ filter:brightness(1.22) } }
  .bj-gtip{flex:none;padding:0 4px;border-radius:6px;background:#ffc454;
    font:900 9.5px/1.5 'Nunito',sans-serif;color:#2a1c00;white-space:nowrap}
  @media (max-height:700px){
    .bj-box{padding:4px 5px;gap:2px}
    .bj-box .bj-bet,.bj-box .bj-pt{padding:0 5px}
    .bj-bnm{font-size:11px}
    .bj-bhd{height:17px}
    .bj-dealer{padding:4px 5px;gap:2px}
    .bj-dhd{height:19px}
    .bj-dnm{font-size:14px}
  }
  .bj-sn{flex:none;min-width:15px;height:15px;padding:0 3px;border-radius:8px;
    display:inline-flex;align-items:center;justify-content:center;
    font:900 10px/1 'Nunito',sans-serif;color:#241a2e;background:#cfd4e0}
  .bj-sn.p0{background:var(--sp0)}.bj-sn.p1{background:var(--sp1)}.bj-sn.p2{background:var(--sp2)}
  .bj-sn.p3{background:var(--sp3)}.bj-sn.p4{background:var(--sp4)}.bj-sn.p5{background:var(--sp5)}
  .bj-first-who{flex-wrap:wrap}
  .bj-first-who::before{display:none}
  .bj-first-who button.on{background:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.2)}
  .bj-first-who.readonly button.on{background:rgba(0,0,0,.16);box-shadow:none}
  .bj-first-lbl{font:800 10.5px/1.4 'Nunito',sans-serif;color:var(--muted);margin-top:2px}
  .bj-first-note{font:800 10.5px/1.4 'Nunito',sans-serif;color:#ffb4a2;margin-top:4px}
  :root{ --bj-turn:#6ec8ff; }
  .bj-box,.bj-dealer{position:relative}
  .bj-box.me .bj-bnm,.bj-dealer.me .bj-dnm{color:#ffd489}
  .bj-box.act::after,.bj-dealer.act::after{
    content:"";position:absolute;left:10px;right:10px;top:0;height:3px;
    border-radius:0 0 4px 4px;background:var(--bj-turn);
    animation:bjTurn 1.6s ease-in-out infinite;pointer-events:none}
  @keyframes bjTurn{0%,100%{opacity:.45}50%{opacity:1}}
  @media (prefers-reduced-motion:reduce){
    .bj-box.act::after,.bj-dealer.act::after{animation:none;opacity:1}
  }
  .bj-dealer.act{border-color:transparent}
  .bj-box.act{border-color:transparent}
  .bj-box.me,.bj-box.me.act,.bj-dealer.me,.bj-dealer.me.act{border-color:#ffd489}
  .bj-box.target{border-color:#ffffff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
  .bj-gtip{background:#ffffff;color:#1d2b1f}
  .bj-hand{position:absolute;inset:0;z-index:3;display:none;
    align-items:center;justify-content:center;padding:5px;border-radius:12px;
    background:rgba(8,12,18,.93);backdrop-filter:blur(3px)}
  .bj-hand.show{display:flex}
  .bj-hcard{width:100%;max-height:100%;overflow:hidden;
    display:flex;flex-direction:column;gap:4px;padding:9px 10px;border-radius:14px;
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
  .bj-httl{font:800 11px/1 'Nunito',sans-serif;color:var(--muted);
    letter-spacing:.7px;text-align:center}
  .bj-hbig{font:900 clamp(24px,8vw,36px)/1 'Fredoka','Nunito',sans-serif;
    text-align:center;letter-spacing:.5px;color:#fff}
  .bj-hbig.up{color:var(--bj-grn)}
  .bj-hbig.down{color:var(--bj-redlit)}
  .bj-hbig.even,.bj-hbig.none{font-size:clamp(18px,5.5vw,24px)}
  .bj-hwhy{font:800 12px/1.35 'Nunito',sans-serif;color:#fff;text-align:center;opacity:.92}
  .bj-hlist{flex:1 1 auto;min-height:0;overflow-y:auto;margin-top:1px}
  .bj-hbar{height:4px;border-radius:3px;margin-top:3px;overflow:hidden;
    background:rgba(255,255,255,.16)}
  .bj-hbar i{display:block;height:100%;width:100%;border-radius:3px;
    background:var(--accent);transform-origin:left center;
    animation:bjHbar var(--bj-hdur,3s) linear forwards}
  @keyframes bjHbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
  .bj-hend{display:flex;align-items:center;gap:8px;margin-top:2px}
  .bj-hfoot{flex:1 1 auto;min-width:0;font:800 11px/1.3 'Nunito',sans-serif;
    color:var(--muted);text-align:left;overflow:hidden;text-overflow:ellipsis}
  .bj-hskip{flex:0 0 auto;padding:7px 14px;font-size:13px;white-space:nowrap}
  .bj-hskip.voted{background:rgba(255,255,255,.14);color:#fff;box-shadow:none;opacity:.72}
  :root{ --un-r:#e0322f; --un-y:#f2b01c; --un-g:#2ea94c; --un-b:#2470c4;
         --un-face:#ffffff; --un-line:#f4f1ea; --un-blk:#1d2733; }
  .un-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .un-play{--un-cw:clamp(44px,12.5vw,58px);--un-acth:74px;
    display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-height:0}
  .un-stage{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;
    overflow-y:auto;overflow-x:hidden}
  .un-card{position:relative;display:inline-block;flex:none;overflow:hidden;
    width:var(--un-cw);height:calc(var(--un-cw) * 1.45);border-radius:calc(var(--un-cw) * .14);
    background:var(--un-blk);border:2px solid var(--un-face);
    box-shadow:0 2px 6px rgba(0,0,0,.28);cursor:pointer;
    -webkit-tap-highlight-color:transparent;user-select:none;
    transition:transform .12s, filter .15s, box-shadow .15s}
  .un-c-r{background:var(--un-r)}
  .un-c-y{background:var(--un-y)}
  .un-c-g{background:var(--un-g)}
  .un-c-b{background:var(--un-b)}
  .un-c-w{background:var(--un-blk)}
  .un-c-none{background:var(--panel-line)}
     ⚠⚠ 一定要 `::before`，**不可以是 `::after`** —— 定位過的偽元素按樹序疊，
     `::after` 會盖在白橢圓與數字上面:那道白光斜斜刷過去，牌面那個**彩色數字會被洗成灏的**
     （截圖才看得出來，斷言量不到）。改成 `::before` 就只亮在**牌的彩色底**上。
  .un-card::before{content:"";position:absolute;inset:0;border-radius:inherit;
    pointer-events:none;
    background:
      linear-gradient(148deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.14) 28%,
                      rgba(255,255,255,0) 48%),
      linear-gradient(0deg,rgba(0,0,0,.20),rgba(0,0,0,0) 36%)}
  .un-ov{position:absolute;left:50%;top:50%;
    width:calc(var(--un-cw) * .74);height:calc(var(--un-cw) * 1.26);
    border-radius:50%;background:var(--un-face);
    transform:translate(-50%,-50%) rotate(-20deg)}
  .un-lb{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);
    text-align:center;font:800 calc(var(--un-cw) * .46)/1 'Nunito',sans-serif;
    letter-spacing:-.02em}
  .un-lb.two{font-size:calc(var(--un-cw) * .34)}
  .un-c-r .un-lb{color:var(--un-r)}
  .un-c-y .un-lb{color:var(--un-y)}
  .un-c-g .un-lb{color:var(--un-g)}
  .un-c-b .un-lb{color:var(--un-b)}
  .un-cl{position:absolute;right:calc(var(--un-cw) * .08);bottom:calc(var(--un-cw) * .04);
    font:800 calc(var(--un-cw) * .22)/1 'Nunito',sans-serif;color:#fff;opacity:.92;display:none}
  .un-wq{position:absolute;left:50%;top:50%;
    width:calc(var(--un-cw) * .74);height:calc(var(--un-cw) * 1.26);
    transform:translate(-50%,-50%) rotate(-20deg);
    display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;
    border-radius:50%;overflow:hidden}
  .un-wq i{display:block}
  .un-wq i:nth-child(1){background:var(--un-r)}
  .un-wq i:nth-child(2){background:var(--un-y)}
  .un-wq i:nth-child(3){background:var(--un-g)}
  .un-wq i:nth-child(4){background:var(--un-b)}
  .un-lb.wild{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.7);
    font-size:calc(var(--un-cw) * .34)}
  .un-card.back{background:var(--un-blk);cursor:pointer}
  .un-bk{position:absolute;left:50%;top:50%;
    width:calc(var(--un-cw) * .70);height:calc(var(--un-cw) * 1.20);border-radius:50%;
    transform:translate(-50%,-50%) rotate(-20deg);
    background:var(--un-face)}
  .un-card.can{box-shadow:0 0 0 2px var(--accent),0 3px 10px rgba(0,0,0,.34)}
  .un-card.can:hover{box-shadow:0 0 0 3px var(--accent),0 4px 14px rgba(0,0,0,.42)}
  .un-card.can:active{transform:scale(.96)}
  .un-card.no{filter:brightness(.72);opacity:.72}
  .un-card.big{--un-cw:clamp(58px,17vw,78px)}
  .un-card.tiny{--un-cw:26px;border-width:1px;box-shadow:none}
  .un-table{position:relative;flex:0 1 auto;min-height:200px;max-height:340px;
    display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:10px;
    border-radius:18px;padding:12px 10px;
    background:
      radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.10), rgba(0,0,0,0) 60%),
      linear-gradient(180deg,#1d4c3a,#12332a 70%,#0e2822);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.07), inset 0 10px 26px rgba(0,0,0,.34)}
  .un-table .un-swatch{box-shadow:inset 0 0 0 1px rgba(0,0,0,.25),0 0 0 2px rgba(255,255,255,.24)}
  .un-table .un-nowtxt{color:#fff}
  .un-table .un-dir{color:rgba(255,255,255,.78);background:rgba(0,0,0,.26)}
  .un-top{position:relative;display:flex;align-items:center;justify-content:center}
  .un-top > .un-card{position:relative;z-index:1}
  .un-under{position:absolute;left:50%;top:50%;z-index:0;line-height:0;
    transform:translate(-58%,-46%) rotate(-6.5deg);
    filter:brightness(.66) saturate(.85);opacity:.9}
  .un-now{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
  .un-swatch{width:20px;height:20px;border-radius:6px;flex:none;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
  .un-nowtxt{font:800 13px/1.2 'Nunito',sans-serif;color:var(--text)}
  .un-dir{font:800 11.5px/1 'Nunito',sans-serif;color:var(--muted);
    padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.16)}
  .un-dir.flip{animation:unDirFlip .5s cubic-bezier(.3,1.3,.4,1)}
  @keyframes unDirFlip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg) scale(1.14)}
                       100%{transform:rotateX(0)}}
  .un-pen{position:absolute;left:9px;top:7px;z-index:1;
    font:800 12.5px/1 'Nunito',sans-serif;color:#ffd66b;text-align:center;
    background:rgba(0,0,0,.28);border-radius:999px;padding:4px 11px}
  .un-pen b{font-size:14px;color:#fff}
  .un-pen.lv2{color:#ffc46b;background:rgba(92,38,0,.46);
    box-shadow:0 0 0 1px rgba(255,180,90,.45)}
  .un-pen.lv3{color:#ff9b78;background:rgba(112,16,0,.54);
    box-shadow:0 0 0 1px rgba(255,140,100,.5), 0 0 12px rgba(255,110,70,.42)}
  .un-pen.lv4{color:#f0c8ff;background:rgba(58,0,78,.66);
    box-shadow:0 0 0 1px rgba(200,120,255,.55), 0 0 16px rgba(180,90,255,.55);
    animation:unPenHot 1.15s ease-in-out infinite}
  @keyframes unPenHot{0%,100%{box-shadow:0 0 0 1px rgba(200,120,255,.55),0 0 10px rgba(180,90,255,.42)}
                      50%    {box-shadow:0 0 0 1px rgba(226,170,255,.85),0 0 22px rgba(200,120,255,.80)}}
  .un-pen.grow{animation:unPenGrow .44s cubic-bezier(.2,1.5,.4,1)}
  @keyframes unPenGrow{0%{transform:scale(1.55)}62%{transform:scale(.96)}100%{transform:scale(1)}}
  .un-handwrap{flex:0 0 auto;margin-top:auto;display:flex;flex-direction:column;gap:4px}
  .un-hlabel{display:flex;align-items:center;gap:8px;
    font:800 12px/1.2 'Nunito',sans-serif;color:var(--muted);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .un-hand{display:flex;overflow-x:auto;overflow-y:hidden;
    height:calc(var(--un-cw) * 1.45 + 12px);
    padding:8px 2px 4px;touch-action:pan-x;
    scrollbar-width:none;-ms-overflow-style:none}
  .un-hand::-webkit-scrollbar{width:0;height:0;display:none}
  .un-hand.rows2{height:calc(var(--un-cw) * .7 * 1.45 * 2 + 4px + 12px)}
  .un-hand.rows3{height:calc(var(--un-cw) * .7 * 1.45 * 3 + 8px + 12px)}
  .un-hrow.wrap{flex-wrap:wrap;align-content:center;row-gap:4px}
  .un-hrow{display:flex;align-items:center;width:100%;height:100%;
    gap:calc(var(--un-cw) * .09)}
  .un-handrow{display:flex;align-items:center;gap:7px}
  .un-handrow .un-hand{flex:1 1 0;min-width:0}
  .un-drawpad{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:1px;padding:0;cursor:pointer;
    width:calc(var(--un-cw) * .92);height:calc(var(--un-cw) * 1.45);
    border:2px dashed var(--panel-line);border-radius:calc(var(--un-cw) * .14);
    background:rgba(255,255,255,.06);color:var(--muted)}
  .un-drawpad .un-dp-t{font:800 11px/1.1 'Nunito',sans-serif}
  .un-drawpad .un-dp-n{font:800 16px/1 'Fredoka','Nunito',sans-serif;white-space:nowrap}
  .un-drawpad .un-dp-n i{font:800 9.5px/1 'Nunito',sans-serif;font-style:normal;opacity:.8}
  .un-drawpad .un-dp-p{font:800 9.5px/1 'Nunito',sans-serif;opacity:.6}
  .un-drawpad.can{border-style:solid;border-color:var(--accent);color:var(--accent);
    background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(255,255,255,.14)}
  .un-drawpad.pen .un-dp-n{color:var(--un-r)}
  .un-drawpad:active{transform:scale(.96)}
  .un-acts{flex:0 0 auto;height:var(--un-acth);position:relative;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
  .un-arow{flex:none;height:40px;display:flex;align-items:center;justify-content:center;
    gap:8px;flex-wrap:nowrap;max-width:100%}
  .un-atxt{flex:none;height:16px;max-width:100%;text-align:center;
    font:800 12.5px/16px 'Nunito',sans-serif;color:var(--muted);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .un-atxt.me{color:var(--accent)}
  .un-acts .btn{flex:0 1 auto;min-width:92px;padding:9px 16px;font-size:16px;line-height:1.2;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .un-catch{background:var(--un-r);color:#fff}
  .un-unobtn{flex:none;display:inline-grid;place-items:center;
    width:88px;height:38px;padding:0;border:none;border-radius:999px;cursor:pointer;
    background:var(--un-y);
    box-shadow:0 0 0 2.5px #fff inset,0 3px 0 rgba(0,0,0,.24),0 4px 12px rgba(0,0,0,.26);
    animation:unpulse 1.25s ease-in-out infinite}
  .un-uw{display:block;transform:rotate(-7deg);
    font:italic 800 19px/1 'Fredoka','Nunito',sans-serif;color:var(--un-r);
    letter-spacing:.4px;text-shadow:0 1px 0 rgba(255,255,255,.55)}
  .un-unobtn:active{animation:none;transform:scale(.94)}
  @keyframes unpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
  .un-cd{flex:none;position:relative;width:36px;height:36px;display:grid;place-items:center}
  .un-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .un-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .un-cdbg{stroke:rgba(255,255,255,.24)}
  .un-cdfg{stroke:var(--accent);stroke-dasharray:107;stroke-dashoffset:0}
  @keyframes uncd{from{stroke-dashoffset:0}to{stroke-dashoffset:107}}
  .un-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .un-cdn.un-beat{animation:unbeat .34s ease-out}
  @keyframes unbeat{0%{transform:scale(1.55);opacity:.55}70%{transform:scale(1)}100%{transform:scale(1)}}
  .un-cd.un-hot .un-cdfg{stroke:var(--un-r)}
  .un-cd.un-hot .un-cdn{color:var(--un-r)}
  .un-cd.un-hot{animation:uncdhot .9s ease-in-out infinite}
  @keyframes uncdhot{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
  .un-catch{animation:unCatchBeat .78s ease-in-out infinite}
  @keyframes unCatchBeat{
    0%,100%{transform:scale(1);   box-shadow:0 0 0 0 rgba(224,83,63,.55)}
    50%    {transform:scale(1.05);box-shadow:0 0 0 7px rgba(224,83,63,0)}}
  @media (prefers-reduced-motion:reduce){
    .un-unobtn{animation:none}
    .un-cd.un-hot{animation:none}
    .un-cdn.un-beat{animation:none}
    .un-catch{animation:none}
    .un-pen.lv4{animation:none}
  }
  .un-colors{position:relative;display:grid;grid-template-columns:1fr 1fr;
    grid-template-rows:1fr 1fr;gap:6px;margin:12px auto 4px;
    width:min(62vw,230px);aspect-ratio:1}
  .un-cbtn{display:flex;align-items:center;justify-content:center;
    border:none;cursor:pointer;padding:0;
    font:800 17px/1 'Nunito',sans-serif;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.22);
    transition:transform .12s, filter .12s}
  .un-cbtn:nth-child(1){border-radius:100% 8px 8px 8px}
  .un-cbtn:nth-child(2){border-radius:8px 100% 8px 8px}
  .un-cbtn:nth-child(3){border-radius:8px 8px 8px 100%}
  .un-cbtn:nth-child(4){border-radius:8px 8px 100% 8px}
  .un-cbtn:hover{filter:brightness(1.12)}
  .un-cbtn:active{transform:scale(.95)}
  .un-colors::after{content:"";position:absolute;left:50%;top:50%;
    width:26%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
    pointer-events:none;background:var(--card);
    box-shadow:0 2px 10px rgba(0,0,0,.4), inset 0 0 0 2px rgba(255,255,255,.14)}
  .un-cbtn b{font-size:30px}
  .un-cbtn:nth-child(1) b{transform:translate(-14%,-14%)}
  .un-cbtn:nth-child(2) b{transform:translate(14%,-14%)}
  .un-cbtn:nth-child(3) b{transform:translate(-14%,14%)}
  .un-cbtn:nth-child(4) b{transform:translate(14%,14%)}
  .un-cbtn b{font-size:27px}
  .un-cb-r{background:var(--un-r)}
  .un-cb-y{background:var(--un-y);color:#3a2a00;text-shadow:none}
  .un-cb-g{background:var(--un-g)}
  .un-cb-b{background:var(--un-b)}
  .un-fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
  .un-cut{position:fixed;display:grid;place-items:center;overflow:hidden;
    border-radius:18px;animation:unCut .9s ease-out forwards}
  @keyframes unCut{0%{opacity:0}14%{opacity:1}72%{opacity:1}100%{opacity:0}}
  .un-cutw{font:900 clamp(28px,10vw,58px)/1 'Fredoka','Nunito',sans-serif;
    letter-spacing:2px;color:#fff;text-shadow:0 3px 16px rgba(0,0,0,.6);
    animation:unCutW .9s cubic-bezier(.2,1.4,.35,1) forwards}
  @keyframes unCutW{
    0%  {transform:scale(2.3) rotate(-9deg);opacity:0}
    18% {transform:scale(1)   rotate(-4deg);opacity:1}
    74% {transform:scale(1)   rotate(-4deg);opacity:1}
    100%{transform:scale(1.12) rotate(-4deg);opacity:0}}
  .un-cut{background:radial-gradient(80% 70% at 50% 50%,
    rgba(0,0,0,.52),rgba(0,0,0,.10) 72%,rgba(0,0,0,0))}
  .un-cut.un-cc-r{background:radial-gradient(85% 75% at 50% 50%,
    rgba(224,50,47,.62),rgba(0,0,0,.30) 70%,rgba(0,0,0,0))}
  .un-cut.un-cc-y{background:radial-gradient(85% 75% at 50% 50%,
    rgba(242,176,28,.62),rgba(0,0,0,.30) 70%,rgba(0,0,0,0))}
  .un-cut.un-cc-g{background:radial-gradient(85% 75% at 50% 50%,
    rgba(46,169,76,.62),rgba(0,0,0,.30) 70%,rgba(0,0,0,0))}
  .un-cut.un-cc-b{background:radial-gradient(85% 75% at 50% 50%,
    rgba(36,112,196,.62),rgba(0,0,0,.30) 70%,rgba(0,0,0,0))}
  .un-cut.w{background:radial-gradient(85% 75% at 50% 50%,
    rgba(96,54,0,.80),rgba(18,10,0,.46) 70%,rgba(0,0,0,0))}
  .un-cut.w .un-cutw{color:#ffd873;text-shadow:0 2px 12px rgba(0,0,0,.75)}
  .un-cut.caught{background:radial-gradient(85% 75% at 50% 50%,
    rgba(235,60,45,.66),rgba(60,0,0,.36) 70%,rgba(0,0,0,0))}
  .un-cut.unocall{background:linear-gradient(90deg,rgba(0,0,0,0) 34%,
    rgba(255,214,107,.34) 50%,rgba(0,0,0,0) 66%)}
  .un-cut.unocall .un-cutw{color:#ffe9b0}
  .un-ring{position:absolute;width:min(56%,148px);aspect-ratio:1;border-radius:50%;
    border:5px dashed rgba(255,255,255,.62);border-top-color:transparent;
    animation:unRing .9s cubic-bezier(.3,0,.2,1) forwards}
  @keyframes unRing{from{transform:rotate(0) scale(.55);opacity:.15}
                    38%{opacity:.9}
                    to {transform:rotate(-540deg) scale(1.28);opacity:0}}
  .un-rtab{width:100%;border-collapse:collapse;font-family:'Nunito',sans-serif}
  .un-rtab th{font-size:11px;font-weight:800;color:var(--muted);padding:3px 4px;text-align:left}
  .un-rtab td{padding:4px;font-size:13px;font-weight:700;vertical-align:middle}
  .un-rtab tr.me td{color:var(--accent)}
  .un-rtab td.rk{width:2.4em;font-size:15px;font-weight:800;text-align:center}
  .un-rtab td.nm{max-width:8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .un-rtab td.lf{font-size:11.5px;color:var(--muted);white-space:nowrap}
  .un-rtab td.pt{text-align:right;white-space:nowrap}
  .un-rtab td.pt small{display:block;font-size:10px;font-weight:700;color:var(--muted)}
  .un-rtab tr.cd td{padding:0 4px 8px;border-bottom:1px solid var(--panel-line)}
  .un-rcards{display:flex;gap:3px;flex-wrap:wrap}
  .un-rout{font-size:11.5px;font-weight:800;color:var(--accent)}
  .un-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .un-scroll{flex:1 1 auto}
  .un-hero{text-align:center;margin:14px 0 4px}
  .un-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .un-room{padding:9px 12px}
  .un-room .row{margin-top:0}
  .un-room-top{flex-wrap:nowrap;gap:8px}
  .un-room .un-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .un-room .un-room-title b{font-size:15px;color:var(--text)}
  .un-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .un-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .un-room .mp-subrow{margin-top:5px}
  .un-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .un-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .un-chn{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:800;color:var(--muted)}
  .un-pip{width:7px;height:9px;border-radius:2px;background:var(--muted);display:inline-block;opacity:.8}
  .un-chu{font-size:10px;font-weight:800;color:#3a2a00;background:var(--un-y);
    padding:1px 5px;border-radius:999px;margin-right:3px}
  .win-card.un-win{width:min(88vw,520px);max-width:none;padding:26px 24px}
  .win-card.un-win .word{font-size:clamp(28px,7.2vw,40px)}
  .un-win p{margin:7px 0 14px}
  .un-result{margin:2px 0 12px}
  .un-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .un-react-row{display:none}
  .set-card.un-rules-card{width:min(92vw,480px);max-width:none;
    display:flex;flex-direction:column;overflow:hidden}
  .un-rules-card .set-body{flex:1 1 auto;min-height:0;overflow-y:auto;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .un-rules-who{flex:none;margin:-4px 0 8px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--accent-2)}
  .un-rules-card .set-row.col{flex-direction:column;align-items:stretch;gap:5px}
  .un-rules-card .set-row.col .set-lbl{text-align:left}
  .un-rules-card .set-row.col .seg{width:100%}
  .un-rules-card .set-row.col .seg button{flex:1 1 0;min-width:0;font-size:12.5px;padding:6px 4px}
  .un-rules-card .seg.readonly{opacity:.78}
  .un-rules-list{margin:2px 0 0;padding:0;list-style:none;text-align:left}
  .un-rules-list li{position:relative;padding:3px 0 3px 15px;
    font:600 12px/1.55 'Nunito',sans-serif;color:var(--muted)}
  .un-rules-list li::before{content:"";position:absolute;left:3px;top:10px;
    width:5px;height:5px;border-radius:50%;background:var(--accent)}
  .un-rules-list li b{color:var(--text)}
  .un-rules-sum{flex:none;text-align:left;padding-top:8px;
    font:700 12px/1.5 'Nunito',sans-serif;color:var(--accent-2)}
  .set-card.un-color-card{width:min(88vw,380px);max-width:none;text-align:center}
  .un-play{width:min(92vw,720px);margin:0 auto}
  body.un-mp .un-room,body.un-solo .un-room{width:min(92vw,720px)}
  body.un-mp .topbar,body.un-solo .topbar{width:min(92vw,720px)}
  @media (max-height:560px){
    .un-hero{margin:6px 0 2px}
    .un-room{padding:6px 10px}
    .un-room .mp-subrow,.un-room-foot{margin-top:3px}
    .un-play{--un-cw:clamp(38px,9vw,48px);--un-acth:58px}
    .un-stage{gap:6px}
    .un-table{flex:none;padding:6px 8px;gap:clamp(10px,3vw,22px);min-height:0;max-height:none;
      flex-direction:row;align-items:center;justify-content:center}
    .un-card.big{--un-cw:clamp(50px,13vw,62px)}
    .un-hand{padding:6px 2px 3px;height:calc(var(--un-cw) * 1.45 + 9px)}
    .un-arow{height:32px}
    .un-acts .btn{padding:6px 13px;font-size:14.5px;min-width:80px}
    .un-unobtn{width:76px;height:30px}
    .un-uw{font-size:16px}
    .un-cd{width:28px;height:28px}
    .un-cdn{font-size:12px}
    .un-colors{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr;
      width:min(88vw,340px);aspect-ratio:auto;gap:10px;margin:8px auto 2px}
    .un-cbtn{aspect-ratio:1;border-radius:50%;font-size:14px}
    .un-cbtn:nth-child(1),.un-cbtn:nth-child(2),
    .un-cbtn:nth-child(3),.un-cbtn:nth-child(4){border-radius:50%}
    .un-cbtn b{font-size:24px;transform:none}
    .un-cbtn:nth-child(1) b,.un-cbtn:nth-child(2) b,
    .un-cbtn:nth-child(3) b,.un-cbtn:nth-child(4) b{transform:none}
    .un-colors::after{display:none}
  }
  :root{ --dc-wood:#eee1c0; --dc-wood-e:#b98a4e; --dc-wood-in:#e4d3aa;
         --dc-back:#d4bd8d; --dc-back-e:#8a5c30; --dc-back-in:#c3a978;
         --dc-red:#c62828; --dc-blk:#2b2622;
         --dc-ink-r:#8e1f27; --dc-ink-b:#241f1c;
         --dc-cap-face:#f5ebd2;
         --dc-thr:.105;
         --dc-well:#7d5231; --dc-well-e:#5c3a21; --dc-slot:rgba(52,28,8,.05);
         --dc-tgt:#2e9c4a; --dc-tgt-eat:#e0563b; --dc-tgt-far:#8a5cd6;
         --dc-x:#c62828; --dc-x-lit:rgba(255,247,233,.92); --dc-x-op:.7;
         --dc-sel:rgba(245,190,105,.95); --dc-sel-glow:rgba(255,190,90,.55);
         --dc-last:#1f8f9c; --dc-last-hi:#63d3de; --dc-last-lo:#166f7a;
         --dc-slab:#8a5c30; --dc-slab-d:#6b4420; --dc-slab-l:#a06e3d;
         --dc-cut:rgba(48,25,7,.42); --dc-lit:rgba(255,238,205,.18);
         --dc-grainimg:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'>\
<defs>\
<filter id='w' x='-30%25' y='-30%25' width='160%25' height='160%25'>\
<feTurbulence type='fractalNoise' baseFrequency='0.006 0.05' numOctaves='4' seed='17' result='t'/>\
<feDisplacementMap in='SourceGraphic' in2='t' scale='34' xChannelSelector='R' yChannelSelector='G'/>\
</filter>\
<filter id='f' x='-30%25' y='-30%25' width='160%25' height='160%25'>\
<feTurbulence type='fractalNoise' baseFrequency='0.02 0.9' numOctaves='3' seed='5' result='t2'/>\
<feDisplacementMap in='SourceGraphic' in2='t2' scale='7' xChannelSelector='R' yChannelSelector='G'/>\
</filter>\
</defs>\
<g filter='url(%23w)' stroke='%239c7442' fill='none' stroke-linecap='round'>\
<g opacity='0.34'>\
<path d='M-40 26 L280 -14' stroke-width='3.2'/>\
<path d='M-40 62 L280 22' stroke-width='2.1'/>\
<path d='M-40 96 L280 56' stroke-width='4.0'/>\
<path d='M-40 138 L280 98' stroke-width='2.6'/>\
<path d='M-40 172 L280 132' stroke-width='3.4'/>\
<path d='M-40 208 L280 168' stroke-width='2.2'/>\
<path d='M-40 244 L280 204' stroke-width='3.0'/>\
</g>\
<g opacity='0.16' stroke-width='1.1'>\
<path d='M-40 44 L280 4'/><path d='M-40 80 L280 40'/><path d='M-40 116 L280 76'/>\
<path d='M-40 156 L280 116'/><path d='M-40 190 L280 150'/><path d='M-40 226 L280 186'/>\
</g>\
</g>\
<g filter='url(%23f)' stroke='%23a07a44' opacity='0.13' stroke-width='0.8' fill='none'>\
<path d='M-40 34 L280 -6'/><path d='M-40 54 L280 14'/><path d='M-40 72 L280 32'/>\
<path d='M-40 90 L280 50'/><path d='M-40 108 L280 68'/><path d='M-40 126 L280 86'/>\
<path d='M-40 146 L280 106'/><path d='M-40 164 L280 124'/><path d='M-40 182 L280 142'/>\
<path d='M-40 200 L280 160'/><path d='M-40 218 L280 178'/><path d='M-40 236 L280 196'/>\
</g>\
</svg>");
         --dc-ringimg:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff'\
 stroke-width='2.6'>\
<circle cx='50' cy='50' r='41.5'/>\
<path d='M38 10.9V15.2H45.4V12.2M62 10.9V15.2H54.6V12.2M50 9.2V15.4'/>\
<path d='M38 89.1V84.8H45.4V87.8M62 89.1V84.8H54.6V87.8M50 90.8V84.6'/>\
</svg>");
         --dc-keyimg:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'>\
<defs><path id='k' d='M85.4 26H114.6M111 26V11H89.6V20.5H104' fill='none' stroke='%23fff'\
 stroke-width='2.8'/></defs>\
<use href='%23k'/><use href='%23k' transform='rotate(18 100 100)'/>\
<use href='%23k' transform='rotate(36 100 100)'/><use href='%23k' transform='rotate(54 100 100)'/>\
<use href='%23k' transform='rotate(72 100 100)'/><use href='%23k' transform='rotate(90 100 100)'/>\
<use href='%23k' transform='rotate(108 100 100)'/><use href='%23k' transform='rotate(126 100 100)'/>\
<use href='%23k' transform='rotate(144 100 100)'/><use href='%23k' transform='rotate(162 100 100)'/>\
<use href='%23k' transform='rotate(180 100 100)'/><use href='%23k' transform='rotate(198 100 100)'/>\
<use href='%23k' transform='rotate(216 100 100)'/><use href='%23k' transform='rotate(234 100 100)'/>\
<use href='%23k' transform='rotate(252 100 100)'/><use href='%23k' transform='rotate(270 100 100)'/>\
<use href='%23k' transform='rotate(288 100 100)'/><use href='%23k' transform='rotate(306 100 100)'/>\
<use href='%23k' transform='rotate(324 100 100)'/><use href='%23k' transform='rotate(342 100 100)'/>\
</svg>");
         --dc-innerimg:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff'\
 stroke-width='1.5'><circle cx='50' cy='50' r='35.4'/></svg>");
         --dc-thinimg:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff'\
 stroke-width='1.4'><circle cx='50' cy='50' r='40.5'/></svg>"); }
  .dcs-plain,.dcs-carved,.dcs-ebony{
    --dcs-ring:initial; --dcs-bring:initial;
    --dcs-ring-c:initial; --dcs-ring-lit:initial;
    --dcs-bring-c:initial; --dcs-bring-lit:initial;
    --dcs-key-d:initial; --dcs-key-c:initial; --dcs-key-lit:initial;
    --dcs-knot-x:initial; --dcs-knot-y:initial; --dcs-knot-w:initial; --dcs-knot-h:initial;
    --dcs-knot-t:initial; --dcs-knot-o:initial; --dcs-knot-bg:initial;
    --dcs-s1:initial; --dcs-s2:initial; --dcs-s3:initial; --dcs-s4:initial;
    --dcs-s5:initial; --dcs-s6:initial; --dcs-s7:initial; --dcs-s8:initial;
    --dcs-bs1:initial; --dcs-bs2:initial; --dcs-bs3:initial; --dcs-bs4:initial;
    --dcs-bs5:initial; --dcs-bs6:initial; --dcs-bs7:initial; --dcs-bs8:initial;
    --dcs-pbg:initial; --dcs-pbox:initial; --dcs-bbg:initial; --dcs-bbox:initial;
    --dcs-cut:initial; --dcs-ink-r:initial; --dcs-ink-b:initial}
  .dcs-plain{
    --dcs-ring:var(--dc-thinimg);  --dcs-bring:var(--dc-thinimg);
    --dcs-ring-c:rgba(108,74,30,.34); --dcs-ring-lit:rgba(255,252,240,.50);
    --dcs-bring-c:rgba(108,74,30,.30); --dcs-bring-lit:rgba(255,252,240,.44);
    --dcs-key-d:none;
    --dcs-knot-x:63%; --dcs-knot-y:32%; --dcs-knot-w:11%; --dcs-knot-h:7%;
    --dcs-knot-t:translate(-50%,-50%) rotate(24deg); --dcs-knot-o:.42;
    --dcs-knot-bg:
      radial-gradient(ellipse at 44% 30%, rgba(255,244,220,.30) 0%, rgba(255,244,220,0) 58%),
      radial-gradient(ellipse at 52% 58%, rgba(96,58,20,.70) 0%, rgba(96,58,20,0) 80%)}
  .dcs-carved{
    --dcs-ring:var(--dc-ringimg);  --dcs-bring:var(--dc-innerimg);
    --dcs-ring-c:currentColor; --dcs-ring-lit:rgba(255,252,238,.62);
    --dcs-bring-c:rgba(96,58,20,.42); --dcs-bring-lit:rgba(255,250,232,.42);
    --dcs-key-d:block; --dcs-key-c:rgba(96,58,20,.60); --dcs-key-lit:rgba(255,250,232,.50);
    --dcs-knot-bg:none}
  .dcs-ebony{
    --dcs-ring:var(--dc-ringimg);  --dcs-bring:var(--dc-innerimg);
    --dcs-ring-c:currentColor; --dcs-ring-lit:rgba(255,238,214,.30);
    --dcs-bring-c:rgba(12,6,3,.60); --dcs-bring-lit:rgba(206,168,134,.46);
    --dcs-key-d:block; --dcs-key-c:rgba(8,4,1,.70); --dcs-key-lit:rgba(214,176,140,.56);
    --dcs-knot-bg:none;
    --dcs-s1:#6b4c3c; --dcs-s2:#5e4234; --dcs-s3:#52382c; --dcs-s4:#452f25;
    --dcs-s5:#39261e; --dcs-s6:#2e1e18; --dcs-s7:#241712; --dcs-s8:#1a100c;
    --dcs-bs1:#5f4234; --dcs-bs2:#53392d; --dcs-bs3:#472f26; --dcs-bs4:#3b271f;
    --dcs-bs5:#301f19; --dcs-bs6:#261813; --dcs-bs7:#1d120e; --dcs-bs8:#140b08;
    --dcs-pbg:
      radial-gradient(circle at 50% 50%, rgba(255,232,204,0) 0 88%,
        rgba(255,236,208,.26) 90% 95%, rgba(10,5,2,.34) 97% 100%),
      radial-gradient(circle at 64% 76%, rgba(255,240,216,0) 0 74%,
        rgba(255,240,216,.30) 89% 97%, rgba(255,240,216,0) 100%),
      radial-gradient(ellipse 78% 68% at 38% 26%, rgba(255,238,212,.16) 0%, rgba(255,238,212,0) 68%),
      radial-gradient(ellipse 44% 44% at 50% 50%, #f2e6c6 0 99%, rgba(0,0,0,0) 100%),
      var(--dc-grainimg) var(--dc-wx,50%) var(--dc-wy,50%)/235% 235% no-repeat,
      radial-gradient(circle at 50% 44%, #59392c 0%, #472c22 62%, #35201a 100%);
    --dcs-pbox:
      inset 0 1.5px 2px rgba(255,232,204,.20),
      inset 0 -3px 5px rgba(8,4,1,.40),
      0 0 0 1px rgba(30,17,10,.62);
    --dcs-bbg:
      radial-gradient(circle at 50% 50%, rgba(255,232,204,0) 0 88%,
        rgba(255,236,208,.22) 90% 95%, rgba(10,5,2,.36) 97% 100%),
      radial-gradient(circle at 64% 76%, rgba(255,240,216,0) 0 74%,
        rgba(255,240,216,.26) 89% 97%, rgba(255,240,216,0) 100%),
      radial-gradient(ellipse 78% 68% at 38% 26%, rgba(255,238,212,.14) 0%, rgba(255,238,212,0) 68%),
      var(--dc-grainimg) var(--dc-wx,50%) var(--dc-wy,50%)/235% 235% no-repeat,
      radial-gradient(circle at 52% 46%, #4d3126 0%, #3e2720 60%, #2c1a15 100%);
    --dcs-bbox:
      inset 0 1.5px 2px rgba(255,232,204,.16),
      inset 0 -3px 6px rgba(8,4,1,.38),
      0 0 0 1px rgba(30,17,10,.60);
    --dcs-cut:
      inset 0 2.5px 3px rgba(8,4,1,.50),
      inset 0 -2px 2px rgba(226,190,150,.30),
      0 2.5px 2px -1px rgba(226,190,150,.34),
      0 -2px 2px -1px rgba(8,4,1,.34);
    --dcs-ink-r:#9e1f28; --dcs-ink-b:#221d1a}
  .dc-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .dc-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
    line-height:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
  .dc-scroll{flex:1 1 auto}
  .dc-hero{text-align:center;margin:14px 0 4px}
  .dc-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .dc-solomsg{display:inline-block;margin-top:2px;font-size:13px;color:var(--muted)}
  .dc-red-t{color:var(--dc-red)}
  .dc-blk-t{color:var(--text);text-shadow:0 0 2px rgba(0,0,0,.35)}
  .dc-room{padding:9px 12px}
  .dc-room .row{margin-top:0}
  .dc-room-top{flex-wrap:nowrap;gap:8px}
  .dc-room .dc-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:13px;font-weight:700;color:var(--muted)}
  .dc-room .dc-room-title b{font-size:15px;color:var(--text)}
  .dc-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .dc-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .dc-room .mp-subrow{margin-top:5px}
  .dc-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .dc-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .dc-room .mp-chip{height:34px;padding:0 13px}
  .dc-chip-side{font-size:10px;font-weight:800;padding:1px 5px;border-radius:999px;
    background:rgba(255,255,255,.16);margin-left:3px}
  .dc-chip-n{display:inline-flex;align-items:center;font-size:11px;font-weight:800;
    color:var(--muted);margin-left:3px}
  .dc-chip-side{display:inline-block}
  .dc-side-pop{animation:dcSidePop .52s cubic-bezier(.22,.61,.36,1) both}
  @keyframes dcSidePop{
    0%{transform:rotateX(90deg) scale(.86);opacity:.35}
    46%{transform:rotateX(0deg) scale(1.22)}
    70%{transform:scale(1.06)}
    100%{transform:scale(1)}
  }
  .dc-resign{font-size:15px;color:var(--muted)}
  .dc-resign:hover{color:var(--daub)}
  .dc-play{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-height:0;
    width:min(92vw,720px);margin:0 auto}
  .dc-stage{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;
    overflow:hidden;position:relative}
  .dc-board{position:relative;display:grid;grid-template-columns:repeat(var(--dc-cols,8),1fr);
    grid-auto-rows:1fr;gap:4px;padding:16px;border-radius:17px;
    background:
      repeating-linear-gradient(92deg, rgba(46,24,6,.17) 0 1px, rgba(46,24,6,0) 1px 5px,
        rgba(46,24,6,.10) 5px 6px, rgba(46,24,6,0) 6px 13px),
      repeating-linear-gradient(88deg, rgba(255,232,190,.07) 0 1px, rgba(255,232,190,0) 1px 9px),
      radial-gradient(130% 62% at 20% 10%, var(--dc-slab-l) 0%, rgba(160,110,61,0) 62%),
      linear-gradient(96deg, var(--dc-slab) 0%, var(--dc-slab-d) 36%, var(--dc-slab) 62%,
        var(--dc-slab-d) 100%);
    box-shadow:
      inset 0 0 0 1px rgba(255,238,205,.20),
      inset 0 0 0 16px rgba(48,25,7,.26),
      inset 0 0 26px rgba(38,19,4,.30),
      0 0 0 2px var(--dc-well-e),
      0 12px 26px rgba(0,0,0,.42)}
  .dc-board::before{content:"";position:absolute;inset:9px;border-radius:12px;pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(44,23,6,.62),inset 0 0 0 2px rgba(255,240,210,.14)}
  .dc-sq{--dc-groove:0 0 0 2px var(--dc-cut),0 2px 1px -1px var(--dc-lit);
    --dc-th:calc(var(--dc-cell,44px) * var(--dc-thr));
    --dc-poff:calc(var(--dc-th) / -2);
    --dc-pick:3px;
    position:relative;appearance:none;-webkit-appearance:none;border:0;padding:0;margin:0;
    background:var(--dc-slot);border-radius:4px;cursor:pointer;box-shadow:var(--dc-groove);
    display:flex;align-items:center;justify-content:center;perspective:340px;
    -webkit-tap-highlight-color:transparent;touch-action:manipulation}
  .dc-board:not(.dc-mine) .dc-sq{cursor:default}
  .dc-p{--dc-th:calc(var(--dc-cell,44px) * var(--dc-thr));
    --dc-lift:
      0 calc(var(--dc-th) * .10) 0 var(--dc-s1),
      0 calc(var(--dc-th) * .22) 0 var(--dc-s2),
      0 calc(var(--dc-th) * .36) 0 var(--dc-s3),
      0 calc(var(--dc-th) * .52) 0 var(--dc-s4),
      0 calc(var(--dc-th) * .68) 0 var(--dc-s5),
      0 calc(var(--dc-th) * .82) 0 var(--dc-s6),
      0 calc(var(--dc-th) * .92) 0 var(--dc-s7),
      0 var(--dc-th) 0 var(--dc-s8),
      0 calc(var(--dc-th) + 4px) calc(var(--dc-th) + 9px) rgba(20,8,0,.52);
    --dc-s1:var(--dcs-s1,#f2e8cd); --dc-s2:var(--dcs-s2,#e8dbba);
    --dc-s3:var(--dcs-s3,#dccca4); --dc-s4:var(--dcs-s4,#cdb98c);
    --dc-s5:var(--dcs-s5,#bda775); --dc-s6:var(--dcs-s6,#a98f5d);
    --dc-s7:var(--dcs-s7,#93784a); --dc-s8:var(--dcs-s8,#7d633a);
    position:relative;width:80%;height:80%;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    margin-bottom:var(--dc-th);
    background:var(--dcs-pbg,
      radial-gradient(circle at 50% 50%, rgba(255,252,243,0) 0 88%,
        rgba(255,252,244,.55) 90% 95%, rgba(120,80,36,.16) 97% 100%),
      radial-gradient(circle at 64% 76%, rgba(255,255,252,0) 0 74%,
        rgba(255,255,252,.72) 89% 97%, rgba(255,255,252,0) 100%),
      radial-gradient(circle at 50% 50%, rgba(255,255,250,.30) 0%, rgba(255,255,250,0) 46%,
        rgba(126,88,40,.10) 78%, rgba(126,88,40,.22) 100%),
      radial-gradient(ellipse 78% 68% at 38% 26%, rgba(255,254,249,.52) 0%, rgba(255,254,249,0) 68%),
      var(--dc-grainimg) var(--dc-wx,50%) var(--dc-wy,50%)/235% 235% no-repeat,
      radial-gradient(circle at 50% 44%, var(--dc-wood) 0%, var(--dc-wood-in) 62%, #d9c79d 100%));
    box-shadow:
      var(--dcs-pbox,
        inset 0 1.5px 2px rgba(255,255,255,.50),
        inset 0 -3px 5px rgba(110,72,30,.24),
        0 0 0 1px rgba(150,104,52,.46)),
      var(--dc-lift)}
  .dc-sq:nth-child(4n+2) .dc-p{--dc-wx:8%;  --dc-wy:82%}
  .dc-sq:nth-child(4n+3) .dc-p{--dc-wx:88%; --dc-wy:14%}
  .dc-sq:nth-child(4n)   .dc-p{--dc-wx:22%; --dc-wy:30%}
  .dc-p::after{content:"";position:absolute;inset:4.5%;border-radius:50%;pointer-events:none;
    box-shadow:var(--dcs-cut,
      inset 0 2.5px 3px rgba(108,74,30,.42),
      inset 0 -2px 2px rgba(255,253,245,.62),
      0 2.5px 2px -1px rgba(255,253,245,.75),
      0 -2px 2px -1px rgba(108,74,30,.26))}
  .dc-ring{position:absolute;inset:0;border-radius:50%;border:0;opacity:1;pointer-events:none}
  .dc-ring::before,.dc-ring::after{content:"";position:absolute;inset:0;border-radius:50%;
    pointer-events:none;
    -webkit-mask:var(--dcs-ring,var(--dc-thinimg)) center/100% 100% no-repeat;
    mask:var(--dcs-ring,var(--dc-thinimg)) center/100% 100% no-repeat}
  .dc-ring::before{background:var(--dcs-ring-lit,rgba(255,252,240,.50));
    transform:translate(.9px,.9px)}
  .dc-ring::after{background:var(--dcs-ring-c,rgba(108,74,30,.34))}
  .dc-ch{position:relative;font-family:'Noto Serif TC','Songti TC','PMingLiU',serif;font-weight:800;
    line-height:1;font-size:calc(var(--dc-cell,44px) * .42);
    text-shadow:
      -1px -1px 0 rgba(88,56,22,.55),
      1px 1px 0 rgba(255,252,240,.62)}
  .dc-red{color:var(--dcs-ink-r,var(--dc-ink-r))}
  .dc-blk{color:var(--dcs-ink-b,var(--dc-ink-b))}
  .dc-backface{color:var(--dc-back-e);
    --dc-s1:var(--dcs-bs1,#e6d8b0); --dc-s2:var(--dcs-bs2,#dbcb9e);
    --dc-s3:var(--dcs-bs3,#cdba87); --dc-s4:var(--dcs-bs4,#bda672);
    --dc-s5:var(--dcs-bs5,#ab925d); --dc-s6:var(--dcs-bs6,#977d49);
    --dc-s7:var(--dcs-bs7,#816739); --dc-s8:var(--dcs-bs8,#6b532c);
    --dc-wx:70%; --dc-wy:22%;
    background:var(--dcs-bbg,
      radial-gradient(circle at 50% 50%, rgba(255,236,204,0) 0 88%,
        rgba(255,250,234,.52) 90% 95%, rgba(96,58,20,.17) 97% 100%),
      radial-gradient(circle at 64% 76%, rgba(255,253,244,0) 0 74%,
        rgba(255,253,244,.66) 89% 97%, rgba(255,253,244,0) 100%),
      radial-gradient(circle at 50% 50%, rgba(255,252,240,.26) 0%, rgba(255,252,240,0) 46%,
        rgba(112,76,32,.11) 78%, rgba(112,76,32,.24) 100%),
      radial-gradient(ellipse 78% 68% at 38% 26%, rgba(255,252,240,.46) 0%, rgba(255,252,240,0) 68%),
      var(--dc-grainimg) var(--dc-wx,50%) var(--dc-wy,50%)/235% 235% no-repeat,
      radial-gradient(circle at 52% 46%, var(--dc-back) 0%, var(--dc-back-in) 60%, #b89c6e 100%));
    box-shadow:
      var(--dcs-bbox,
        inset 0 1.5px 2px rgba(255,253,242,.45),
        inset 0 -3px 6px rgba(96,58,20,.22),
        0 0 0 1px rgba(150,110,58,.44)),
      var(--dc-lift)}
  .dc-backface .dc-ring::before,.dc-backface .dc-ring::after{
    -webkit-mask-image:var(--dcs-bring,var(--dc-thinimg));
    mask-image:var(--dcs-bring,var(--dc-thinimg))}
  .dc-backface .dc-ring::before{background:var(--dcs-bring-lit,rgba(255,252,240,.44));
    transform:translate(.8px,.8px)}
  .dc-backface .dc-ring::after{background:var(--dcs-bring-c,rgba(108,74,30,.30));transform:none}
  .dc-grain{position:absolute;border-radius:50%;pointer-events:none;
    left:var(--dcs-knot-x,0); top:var(--dcs-knot-y,0);
    width:var(--dcs-knot-w,100%); height:var(--dcs-knot-h,100%);
    transform:var(--dcs-knot-t,none); opacity:var(--dcs-knot-o,1);
    background:var(--dcs-knot-bg,none)}
  .dc-grain::before,.dc-grain::after{content:"";position:absolute;inset:0;pointer-events:none;
    display:var(--dcs-key-d,none);
    -webkit-mask:var(--dc-keyimg) center/100% 100% no-repeat;
    mask:var(--dc-keyimg) center/100% 100% no-repeat}
  .dc-grain::before{background:var(--dcs-key-c,rgba(96,58,20,.60))}
  .dc-grain::after{background:var(--dcs-key-lit,rgba(255,250,232,.50));
    transform:translate(.8px,.8px)}
  .dc-skin-pick{display:flex;gap:8px}
  .dc-skin{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;
    padding:8px 4px 6px;border-radius:12px;cursor:pointer;
    border:2px solid transparent;background:rgba(255,255,255,.05);
    -webkit-tap-highlight-color:transparent}
  .dc-skin:hover{background:rgba(255,255,255,.09)}
  .dc-skin.on{border-color:var(--daub);background:rgba(255,255,255,.12)}
  .dc-skin-pv{--dc-cell:44px;display:flex;align-items:flex-start;justify-content:center;gap:3px}
  .dc-skin-pv .dc-p{width:38px;height:38px;flex:none}
  .dc-skin-nm{font-size:12px;font-weight:800;color:var(--text)}
  .dc-skin-hint{margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
  .dc-skin-pick.readonly .dc-skin:not(.on){opacity:.42}
  .dc-skin-pick.readonly .dc-skin:not(.on):hover{background:rgba(255,255,255,.05)}
  .dc-sel .dc-p{box-shadow:0 0 0 2px var(--dc-sel),0 0 16px 5px var(--dc-sel-glow),var(--dc-lift)}
  .dc-sq .dc-p{transition:transform .16s cubic-bezier(.25,.7,.35,1)}
  .dc-sel .dc-p{transform:translateY(calc(var(--dc-pick) * -1));
    box-shadow:0 0 0 2px var(--dc-sel),0 0 16px 5px var(--dc-sel-glow),var(--dc-lift),
      0 calc(var(--dc-th) + 9px) 13px rgba(18,7,0,.34)}
  @media (hover:hover) and (pointer:fine){
    .dc-board.dc-mine .dc-sq:hover:not(.dc-sel) .dc-p{transform:translateY(-1.5px)}
  }
  .dc-tgt{box-shadow:inset 0 0 0 3px var(--dc-tgt),var(--dc-groove)}
  .dc-tgt.dc-t-eat,.dc-tgt.dc-t-jump{box-shadow:inset 0 0 0 3px var(--dc-tgt-eat),var(--dc-groove)}
  .dc-tgt.dc-t-rush,.dc-tgt.dc-t-rushDark,.dc-tgt.dc-t-dark{
    box-shadow:inset 0 0 0 3px var(--dc-tgt-far),var(--dc-groove)}
  .dc-tgt.dc-empty::after{content:"";position:absolute;width:26%;height:26%;border-radius:50%;
    background:var(--dc-tgt);opacity:.75}
  .dc-tgt:not(.dc-empty)::after{content:"";position:absolute;inset:7%;border-radius:50%;
    pointer-events:none;border:2px solid var(--dc-tgt-eat);opacity:.9;
    transform:translateY(var(--dc-poff))}
  .dc-tgt.dc-t-rush:not(.dc-empty)::after,
  .dc-tgt.dc-t-rushDark:not(.dc-empty)::after,
  .dc-tgt.dc-t-dark:not(.dc-empty)::after{border-color:var(--dc-tgt-far)}
  .dc-sq .dc-x{position:absolute;left:0;top:0;width:100%;height:100%;
    pointer-events:none;overflow:visible;opacity:var(--dc-x-op);
    transform:translateY(var(--dc-poff))}
  .dc-x path{fill:none;stroke-linecap:round}
  .dc-xh{stroke:var(--dc-x-lit);stroke-width:7.5}
  .dc-xi{stroke:var(--dc-x);stroke-width:4.5}
  .dc-p.dc-screen-fx{animation:dcScreenPulse .42s cubic-bezier(.3,.7,.4,1)}
  @keyframes dcScreenPulse{
    0%{transform:scale(1)}
    38%{transform:scale(1.075)}
    100%{transform:scale(1)}
  }
  .dc-hit .dc-p{animation:dcHitGlow .5s ease-out}
  .dc-from{box-shadow:inset 0 0 0 2px rgba(255,255,255,.34),var(--dc-groove)}
  @keyframes dcHitGlow{
    0%{box-shadow:0 0 0 3px var(--dc-tgt-eat),0 0 16px 5px var(--dc-tgt-eat),var(--dc-lift)}
    100%{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,var(--dc-lift)}
  }
  .dc-sq.dc-lastto::before{content:"";position:absolute;inset:5%;pointer-events:none;
    --dc-lb-arm:calc(var(--dc-cell,44px) * .2);
    --dc-lb-w:max(1.5px,calc(var(--dc-cell,44px) * .032));
    background-image:
      linear-gradient(to right,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to bottom,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to left,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to bottom,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to right,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to top,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to left,var(--dc-last-hi),var(--dc-last)),
      linear-gradient(to top,var(--dc-last-hi),var(--dc-last));
    background-size:
      var(--dc-lb-arm) var(--dc-lb-w),var(--dc-lb-w) var(--dc-lb-arm),
      var(--dc-lb-arm) var(--dc-lb-w),var(--dc-lb-w) var(--dc-lb-arm),
      var(--dc-lb-arm) var(--dc-lb-w),var(--dc-lb-w) var(--dc-lb-arm),
      var(--dc-lb-arm) var(--dc-lb-w),var(--dc-lb-w) var(--dc-lb-arm);
    background-position:
      left top,left top,right top,right top,
      left bottom,left bottom,right bottom,right bottom;
    background-repeat:no-repeat;
    filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.5))}
  .dc-hit .dc-flip3d .dc-p{animation:none}
  .dc-flip3d{position:relative;width:80%;height:80%;transform-style:preserve-3d;
    --dc-th:calc(var(--dc-cell,44px) * var(--dc-thr));margin-bottom:var(--dc-th);
    --dc-flipdur:.38s;
    animation:dcFlipIn var(--dc-flipdur) cubic-bezier(.22,.61,.36,1) both}
  .dc-face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;
    -webkit-backface-visibility:hidden}
  .dc-face .dc-p,.dc-face.dc-p{margin-bottom:0}
  .dc-face-f{transform:rotateY(180deg)}
  .dc-face .dc-p{width:100%;height:100%}
  @keyframes dcFlipIn{ from{transform:rotateY(0)} to{transform:rotateY(180deg)} }
  .dc-sq .dc-face-f::after{content:"";position:absolute;inset:0;border-radius:50%;
    pointer-events:none;background-repeat:no-repeat;background-size:230% 100%;
    background-image:linear-gradient(112deg,
      rgba(255,255,255,0) 34%, rgba(255,255,255,.13) 43%,
      rgba(255,255,255,.46) 50%, rgba(255,255,255,.13) 57%, rgba(255,255,255,0) 66%);
    animation:dcSheen .46s cubic-bezier(.33,.02,.5,1) var(--dc-flipdur,.38s) both}
  @keyframes dcSheen{
    0%{background-position:128% 50%;opacity:0}
    18%{opacity:1}
    100%{background-position:-32% 50%;opacity:0}
  }
  .dc-sq.dc-rv .dc-flip3d{animation-delay:var(--dc-rvd,0ms)}
  .dc-sq.dc-rv .dc-face-f::after{animation:none;opacity:0}
  .dc-sq.dc-deal{animation:dcDeal .34s cubic-bezier(.2,.72,.36,1) var(--dc-dld,0ms) backwards}
  @keyframes dcDeal{
    from{opacity:0;transform:translateY(-24%)}
    to{opacity:1;transform:none}
  }
  .dc-win .dc-revealbtn{margin-right:16px}
  .dc-p.dc-sliding{z-index:5}
  .dc-reveal{position:absolute;display:flex;align-items:center;justify-content:center;
    pointer-events:none;z-index:8;will-change:transform;
    animation:dcRevealLift var(--rv-dur,1400ms) linear both}
  .dc-reveal .dc-flip3d{animation-duration:calc(var(--rv-dur,1400ms) * .21);
    animation-delay:calc(var(--rv-dur,1400ms) * .19)}
  @keyframes dcRevealLift{
    0%  {transform:translate(0,0) scale(var(--rv-s0,.625));opacity:1}
    40% {transform:translate(0,0) scale(var(--rv-s0,.625));opacity:1;
         animation-timing-function:cubic-bezier(.32,.72,.28,1)}
    62% {transform:translate(var(--fx,0),var(--fy,0)) scale(1);opacity:1}
    83% {transform:translate(var(--fx,0),var(--fy,0)) scale(1);opacity:1;
         animation-timing-function:ease-in}
    100%{transform:translate(var(--fx,0),var(--fy,0)) scale(.94);opacity:0}
  }
  .dc-acts{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:5px;
    padding:6px 10px;border-radius:14px;background:var(--panel);
    border:1px solid var(--panel-line);text-align:center}
  .dc-actline{width:100%;min-height:28px;display:flex;align-items:center;justify-content:center;
    gap:8px;flex-wrap:wrap}
  .dc-actline.has-cd{min-height:34px}
  .dc-tray{width:100%;display:flex;flex-direction:column;gap:2px;
    padding-bottom:4px;border-bottom:1px solid var(--panel-line)}
  .dc-tray-row{display:flex;align-items:center;gap:6px;min-height:28px}
  .dc-tray-lbl{flex:none;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:11px;font-weight:800;color:var(--muted);
    appearance:none;-webkit-appearance:none;border:0;background:none;padding:0;margin:0;
    font-family:inherit;line-height:1.25;text-align:left;cursor:pointer;
    text-decoration:underline dotted;text-underline-offset:2px;
    -webkit-tap-highlight-color:transparent}
  .dc-tray-lbl:hover{color:var(--text)}
  .dc-tray-pcs{--dc-cell:28px;flex:1;min-width:0;display:flex;align-items:center;overflow:hidden}
  .dc-tray-pcs .dc-p,.dc-tv .dc-p{width:26px;height:26px;flex:none;
    background:var(--dc-cap-face);
    box-shadow:0 0 0 1.5px rgba(36,31,28,.50);
    margin-bottom:0}
  .dc-tray-pcs .dc-p.dc-red,.dc-tv .dc-p.dc-red{box-shadow:0 0 0 1.5px rgba(142,31,39,.60)}
  .dc-tray-pcs .dc-p::after,.dc-tv .dc-p::after{display:none}
  .dc-tray-pcs .dc-ring,.dc-tv .dc-ring{display:none}
  .dc-tray-pcs .dc-ch,.dc-tv .dc-ch{font-size:calc(var(--dc-cell,28px) * .60);text-shadow:none}
  .dc-cp{flex:none;display:inline-flex;align-items:center;margin-right:3px}
  .dc-cn{margin-left:1px;font-size:11px;font-weight:800;font-style:normal;color:var(--text)}
  @media (max-width:360px){
    .dc-tray-pcs{--dc-cell:24px}
    .dc-tray-pcs .dc-p{width:22px;height:22px}
  }
  .dc-idle{position:absolute;top:0;right:0;z-index:9;pointer-events:none;
    height:17px;display:flex;align-items:center;gap:3px;
    max-width:95px;white-space:nowrap;
    padding:0 8px;border-radius:999px;
    font-size:10px;font-weight:800;color:#f3e4c6;
    background:rgba(38,19,4,.86);
    box-shadow:0 0 0 1px rgba(255,238,205,.24),0 3px 8px rgba(0,0,0,.34)}
  .dc-idle b{font-size:12px;color:var(--dc-tgt)}
  .dc-idle-hot{background:rgba(104,22,12,.90)}
  .dc-idle-hot b{color:#ffd0c4}
  .dc-rp{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);z-index:13;
    display:flex;align-items:center;gap:2px;padding:3px 4px;border-radius:999px;
    background:rgba(16,10,4,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
    border:1px solid rgba(255,255,255,.14);box-shadow:0 6px 18px rgba(0,0,0,.4)}
  .dc-rp-b,.dc-rp-x{appearance:none;-webkit-appearance:none;border:0;background:none;
    padding:0;margin:0;cursor:pointer;color:#f4e6cf;display:inline-flex;
    align-items:center;justify-content:center;width:30px;height:26px;border-radius:999px}
  .dc-rp-b:hover,.dc-rp-x:hover{background:rgba(255,255,255,.14)}
  .dc-rp-next svg{transform:rotate(180deg)}
  .dc-rp-b.off{opacity:.32}
  .dc-rp-n{font:800 12px/1 'Nunito';color:#f4e6cf;padding:0 4px;white-space:nowrap}
  .dc-rp-n b{font-size:13px}
  .dc-rp-x{font-size:13px;color:#e8cfa8}
  .dc-tally{position:absolute;inset:0;z-index:12;display:flex;
    align-items:center;justify-content:center;padding:8px;
    background:rgba(16,10,4,.58);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .dc-tally-card{width:100%;max-width:300px;max-height:100%;overflow:auto;
    padding:10px 12px 12px;border-radius:14px;
    background:var(--panel);border:1px solid var(--panel-line);
    box-shadow:0 14px 34px rgba(0,0,0,.45)}
  .dc-tally-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;
    margin-bottom:6px;font-size:13px}
  .dc-tally-x{appearance:none;-webkit-appearance:none;border:0;background:none;
    padding:0 2px;font-size:15px;line-height:1;color:var(--muted);cursor:pointer}
  .dc-tally-sum{margin:0 0 6px;font-size:12px;color:var(--muted)}
  .dc-tally-sum b{font-size:15px;color:var(--text)}
  .dc-tally-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;align-items:center}
  .dc-tally-grid .dc-th{font-size:11px;font-weight:800;text-align:center;
    padding-bottom:2px;border-bottom:1px solid var(--panel-line)}
  .dc-tv{--dc-cell:28px;display:flex;align-items:center;justify-content:center;gap:5px}
  .dc-tn{font-size:13px;font-weight:800;font-style:normal;color:var(--text);min-width:12px}
  .dc-tv-0{opacity:.28}
  .dc-tally-ft,.dc-tally-idle{margin:7px 0 0;font-size:11px;color:var(--muted);line-height:1.5}
  .dc-tally-ft b,.dc-tally-idle b{color:var(--text);font-size:12px}
  .dc-tally-off{margin:0;font-size:12px;color:var(--muted);line-height:1.65;text-align:left}
  .dc-tally-off b{color:var(--text)}
  .dc-chain-txt{font-size:13px;font-weight:800;color:var(--accent-2)}
  .dc-chain-txt b{color:var(--text)}
  .dc-stop{height:28px;padding:0 15px;font-size:14px;min-width:96px}
  .dc-cdwrap{display:flex;align-items:center;justify-content:center}
  .dc-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .dc-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .dc-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .dc-cdbg{stroke:rgba(255,255,255,.16)}
  .dc-cdfg{stroke:var(--accent-2);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,30s) linear var(--cd-delay,0s) forwards}
  .dc-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .dc-cdn.dc-beat{animation:m16beat .34s ease-out}
  .dc-cd.dc-hot .dc-cdfg{stroke:var(--daub)}
  .dc-cd.dc-hot .dc-cdn{color:var(--daub)}
  .dc-cd.dc-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .dc-cd.dc-hot{animation:none}
    .dc-cdn.dc-beat{animation:none}
    .dc-sq .dc-face-f::after{animation:none;opacity:0}
    .dc-sq .dc-p{transition:none}
    .dc-sq.dc-rv .dc-flip3d{animation:none;transform:rotateY(180deg)}
    .dc-side-pop{animation:none}
    .dc-sq.dc-deal{animation:none}
  }
  .win-card.dc-win{width:min(88vw,420px);max-width:none;padding:26px 24px}
  .win-card.dc-win .word{font-size:clamp(28px,7.2vw,40px)}
  .dc-win p{margin:7px 0 14px}
  .dc-result{margin:2px 0 12px}
  .dc-table{width:100%;border-collapse:collapse;font-size:14px}
  .dc-table th{font-size:11px;font-weight:800;color:var(--muted);padding:3px 5px;text-align:center}
  .dc-table th:first-child{text-align:left}
  .dc-table td{padding:7px 5px;border-top:1px solid var(--panel-line);vertical-align:middle}
  .dc-table tr.dc-w{background:rgba(255,210,74,.14)}
  .dc-table tr.dc-me .dc-r-nm{color:var(--accent-2)}
  .dc-r-nm{text-align:left;font-weight:800}
  .dc-r-side{font-size:10px;font-weight:800;margin-left:5px;padding:1px 5px;border-radius:999px;
    background:rgba(255,255,255,.14)}
  .dc-r-n{text-align:center;font-weight:800}
  .dc-plus{font-style:normal;font-size:11px;color:var(--accent-2);margin-left:2px}
  .dc-none{color:var(--muted);font-size:12px}
  .dc-seal{margin:12px auto 2px;pointer-events:none;
    width:60px;height:60px;border-radius:6px;
    display:grid;grid-template-rows:1fr 1fr;grid-auto-flow:column;direction:rtl;place-items:center;
    background:#b3241f;color:#fff;opacity:.95;transform:rotate(-8deg);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.86),0 3px 10px rgba(0,0,0,.38)}
  .dc-seal span{font:900 21px/1 'Noto Serif TC','Songti TC','PMingLiU',serif}
  .dc-win .dc-seal.dc-stamp{animation:dcSeal .5s cubic-bezier(.2,1.5,.35,1) .3s backwards}
  @keyframes dcSeal{
    0%{opacity:0;transform:rotate(13deg) scale(1.7)}
    62%{opacity:1;transform:rotate(-11deg) scale(.94)}
    100%{opacity:.95;transform:rotate(-8deg) scale(1)}
  }
  @media (prefers-reduced-motion:reduce){
    .dc-win .dc-seal.dc-stamp{animation:none}
  }
  .dc-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .dc-react-row{display:none}
  .dc-rules-btn{padding:15px 16px;font-size:18px}
  .set-card.dc-rules-card{width:min(92vw,480px);max-width:none;
    display:flex;flex-direction:column;overflow:hidden}
  .dc-rules-card .set-body{flex:1 1 auto;min-height:0;overflow-y:auto;
    -webkit-overflow-scrolling:touch}
  .dc-rules-who{flex:none;margin:-4px 0 8px;font:700 11.5px/1.4 'Nunito',sans-serif;color:var(--accent-2)}
  .dc-rules-card .set-row.col{flex-direction:column;align-items:stretch;gap:5px}
  .dc-rules-card .set-row.col .set-lbl{text-align:left}
  .dc-rules-card .set-row.col .seg{width:100%}
  .dc-rules-card .set-row.col .seg button{flex:1 1 0;min-width:0;font-size:12.5px;padding:6px 4px}
  .dc-rules-card .seg.readonly{opacity:.78}
  .dc-rules-card .seg[data-rp] button{font-size:12px;padding:6px 2px}
  .dc-rules-list{margin:2px 0 0;padding:0;list-style:none;text-align:left}
  .dc-rules-list li{position:relative;padding:3px 0 3px 15px;
    font-size:12.5px;line-height:1.5;color:var(--muted)}
  .dc-rules-list li::before{content:"";position:absolute;left:3px;top:10px;
    width:5px;height:5px;border-radius:50%;background:var(--accent)}
  .dc-rules-list li b{color:var(--text)}
  .dc-rules-sum{flex:none;text-align:left;padding-top:8px;
    font:800 12px/1.4 'Nunito',sans-serif;color:var(--accent-2)}
  body.dc-on .dc-room{width:min(92vw,720px)}
  body.dc-on .topbar{width:min(92vw,720px)}
  @media (max-height:560px){
    .dc-hero{margin:6px 0 2px}
    .dc-room{padding:6px 10px}
    .dc-room .mp-subrow,.dc-room-foot{margin-top:3px}
    .dc-acts{padding:4px 8px;gap:3px}
    .dc-stop{height:26px;padding:0 13px;font-size:13px;min-width:86px}
    .dc-tray-row{min-height:24px}
    .dc-tray-pcs{--dc-cell:24px}
    .dc-tray-pcs .dc-p{width:22px;height:22px}
  }
  :root{ --cy-paper:#fff6ec; --cy-line:rgba(74,43,31,.22); --cy-thick:rgba(74,43,31,.62);
         --cy-given:#4a2b1f; --cy-sel:rgba(255,138,61,.30); --cy-block:rgba(74,43,31,.12);
         --cy-track:rgba(255,138,61,.14); --cy-track2:rgba(255,138,61,.06);
         --cy-gold:#d9942a; --cy-fiber:rgba(74,43,31,.05);
         --cy-seal:#b3241f; }
  :root[data-theme="midnight"]{ --cy-paper:#141a33; --cy-line:rgba(140,190,255,.20); --cy-thick:rgba(140,190,255,.55);
         --cy-given:#dbe6ff; --cy-sel:rgba(34,224,255,.26); --cy-block:rgba(140,190,255,.10);
         --cy-track:rgba(34,224,255,.13); --cy-track2:rgba(34,224,255,.055);
         --cy-gold:#ffd479; --cy-fiber:rgba(140,190,255,.06); }
  :root[data-theme="bubblegum"]{ --cy-paper:#ffffff; --cy-line:rgba(122,43,99,.20); --cy-thick:rgba(122,43,99,.55);
         --cy-given:#7a2b63; --cy-sel:rgba(255,79,163,.24); --cy-block:rgba(122,43,99,.10);
         --cy-track:rgba(255,79,163,.12); --cy-track2:rgba(255,79,163,.05);
         --cy-gold:#dc9a2c; --cy-fiber:rgba(122,43,99,.05); }
  :root[data-theme="meadow"]{ --cy-paper:#f7fbec; --cy-line:rgba(39,66,36,.20); --cy-thick:rgba(39,66,36,.58);
         --cy-given:#274224; --cy-sel:rgba(108,192,74,.28); --cy-block:rgba(39,66,36,.10);
         --cy-track:rgba(108,192,74,.15); --cy-track2:rgba(108,192,74,.06);
         --cy-gold:#bf8a17; --cy-fiber:rgba(39,66,36,.05); }
  :root[data-theme="arcade"]{ --cy-paper:#0e0e12; --cy-line:rgba(255,230,0,.18); --cy-thick:rgba(255,230,0,.5);
         --cy-given:#f5f5f5; --cy-sel:rgba(255,230,0,.24); --cy-block:rgba(255,230,0,.08);
         --cy-track:rgba(255,230,0,.12); --cy-track2:rgba(255,230,0,.05);
         --cy-gold:#ffe600; --cy-fiber:rgba(255,230,0,.07); }
  .cy-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,7.5vw,34px);
    line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .cy-scroll{flex:1 1 auto}
  .cy-hero{text-align:center;margin:14px 0 4px}
  .cy-art{width:92px;height:92px;display:block;margin:0 auto 8px}
  .cy-room{padding:9px 12px}
  .cy-room .row{margin-top:0}
  .cy-room-top{flex-wrap:nowrap;gap:8px}
  .cy-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
  .cy-room-title b{font-size:15px;color:var(--text)}
  .cy-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .cy-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .cy-room .mp-subrow{margin-top:5px}
  .cy-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .cy-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .cy-room-foot .mp-players.oneline .mp-chip{flex:0 0 auto;min-width:0;padding:4px 9px;gap:5px}
  .cy-room.playing .cy-room-foot{display:none}
  .cy-hcard{cursor:pointer}
  .cy-hcard:active{transform:scale(.97)}
  .cy-seat{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
  .cy-seat.p0{background:var(--sp0)} .cy-seat.p1{background:var(--sp1)}
  .cy-seat.p2{background:var(--sp2)} .cy-seat.p3{background:var(--sp3)}
  .cy-seat.p4{background:var(--sp4)} .cy-seat.p5{background:var(--sp5)}
  .cy-pts{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;color:var(--accent);flex:none}
  .cy-solobar{padding:9px 12px}
  .cy-solobar .row{margin-top:0}
  .cy-solobar .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .cy-lvtag{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-weight:800;font-size:13px;color:var(--muted)}
  .cy-timer{font-size:19px;font-weight:700;letter-spacing:.5px;flex:none}
  .cy-miss{font-weight:800;font-size:13px;color:var(--daub);flex:none}
  .cy-mini{width:34px;height:34px;border-radius:11px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--text);font-size:15px;cursor:pointer;flex:none;
    display:grid;place-items:center}
  .cy-mini:active{transform:scale(.9)}
  .cy-solotools{display:flex;gap:8px;margin-top:7px}
  .cy-tool{flex:1;border:1px solid var(--panel-line);border-radius:11px;padding:7px 10px;
    background:rgba(255,255,255,.06);color:var(--text);font-family:'Nunito',sans-serif;
    font-weight:800;font-size:13px;cursor:pointer;transition:.15s}
  .cy-tool:hover{background:rgba(255,255,255,.12)}
  .cy-tool:active{transform:scale(.96)}
  .cy-tool:disabled{opacity:.4;cursor:default}
  .cy-play{flex:1 1 auto;min-height:0;width:min(92vw,520px);
    display:flex;flex-direction:column;align-items:center;gap:10px}
  .cy-stage{flex:1 1 0;min-height:0;width:100%;position:relative;
    display:flex;align-items:center;justify-content:center;overflow:hidden}
  .cy-stage.locked{opacity:.75}
  .cy-stage.frozen .cy-board{filter:grayscale(.5) brightness(.85)}
  .cy-board{position:relative;display:grid;
    grid-template-columns:repeat(var(--cyc,9),1fr);
    grid-template-rows:repeat(var(--cyr,9),1fr);
    gap:3px;padding:4px;border-radius:14px;
    background:var(--cy-paper);box-shadow:0 0 0 3px var(--cy-thick),0 10px 30px rgba(0,0,0,.22)}
  .cy-cell{position:relative;border:0;padding:0;margin:0;cursor:pointer;
    background:var(--cy-paper);border-radius:3px;
    font-family:'Fredoka',sans-serif;font-weight:600;
    display:grid;place-items:center;
    box-shadow:inset 0 0 0 1px var(--cy-line);
    transition:background .12s}
  .cy-cell.block{background:var(--cy-block);box-shadow:none;cursor:default}
  .cy-v{font-size:calc(var(--cy-cell,28px) * .58);line-height:1;color:var(--cy-given)}
  .cy-cell.sel{background:var(--cy-sel);box-shadow:inset 0 0 0 2px var(--accent)}
  .cy-cell.given .cy-v{color:var(--cy-given);font-weight:700}
  .cy-cell.filled.p0 .cy-v{color:var(--sp0)}
  .cy-cell.filled.p1 .cy-v{color:var(--sp1)}
  .cy-cell.filled.p2 .cy-v{color:var(--sp2)}
  .cy-cell.filled.p3 .cy-v{color:var(--sp3)}
  .cy-cell.filled.p4 .cy-v{color:var(--sp4)}
  .cy-cell.filled.p5 .cy-v{color:var(--sp5)}
  .cy-cell.filled.me .cy-v{color:var(--accent)}
  .cy-cell.filled.hintfill .cy-v{color:var(--accent-2);font-style:italic}
  .cy-cell.wrong{animation:cyWrong .6s ease-out}
  @keyframes cyWrong{ 0%{background:var(--daub)} 60%{background:var(--daub)} 100%{background:var(--cy-paper)} }
  .cy-cell.taken{animation:cyTaken .7s ease-out}
  @keyframes cyTaken{ 0%{transform:scale(1)} 35%{transform:scale(1.18)} 100%{transform:scale(1)} }
  .cy-freeze{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:34px;
    background:rgba(0,0,0,.62);color:#fff;border-radius:16px;padding:10px 20px;
    pointer-events:none;animation:cyFreezePulse .8s ease-in-out infinite alternate}
  @keyframes cyFreezePulse{ from{opacity:.82} to{opacity:1} }
  .cy-pad{flex:none;width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:7px}
  .cy-key{position:relative;border:1px solid var(--panel-line);border-radius:13px;
    background:var(--panel);color:var(--text);cursor:pointer;
    padding:9px 0;display:grid;place-items:center;transition:.12s;
    backdrop-filter:blur(6px)}
  .cy-key:hover{background:rgba(255,255,255,.16)}
  .cy-key:active{transform:scale(.93)}
  .cy-kc{font-family:'Fredoka',sans-serif;font-weight:700;font-size:21px;line-height:1.1}
  .cy-kleft{position:absolute;top:3px;right:6px;font-size:10px;font-weight:800;color:var(--muted)}
  .cy-key.done{opacity:.34}
  .cy-hud{flex:none;width:100%;display:grid;gap:6px;
    grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
  .cy-hud.cy-hud-two{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cy-hud.cy-hud-two .cy-hcard{padding:4px 7px 5px}
  .cy-hud.cy-hud-two .cy-hname{font-size:11px}
  .cy-hud.cy-hud-two .cy-hval{font-size:16px}
  .cy-hcard{position:relative;overflow:hidden;
    background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;
    padding:5px 8px 7px;display:flex;flex-direction:column;gap:2px;min-width:0}
  .cy-hcard.me{border-color:var(--accent)}
  .cy-hname{display:flex;align-items:center;gap:5px;font-weight:800;font-size:11.5px;
    color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cy-hname b{color:var(--accent);font-size:10px}
  .cy-hval{font-family:'Fredoka',sans-serif;font-weight:700;font-size:19px;line-height:1;color:var(--text)}
  .cy-hval em{font-style:normal;font-size:11px;color:var(--muted);margin-left:2px}
  .cy-bar{display:block;height:3px;border-radius:2px;background:rgba(0,0,0,.18);overflow:hidden;margin-top:2px}
  .cy-bar i{display:block;height:100%;border-radius:2px;transition:width .25s}
  .cy-hcard.p0 .cy-bar i{background:var(--sp0)} .cy-hcard.p1 .cy-bar i{background:var(--sp1)}
  .cy-hcard.p2 .cy-bar i{background:var(--sp2)} .cy-hcard.p3 .cy-bar i{background:var(--sp3)}
  .cy-hcard.p4 .cy-bar i{background:var(--sp4)} .cy-hcard.p5 .cy-bar i{background:var(--sp5)}
  .cy-pop{position:absolute;right:7px;top:6px;pointer-events:none;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;line-height:1;
    animation:cyPop .9s ease-out forwards}
  .cy-pop.up{color:#5fe08a}
  @keyframes cyPop{
    0%{opacity:0;transform:translateY(6px)}
    22%{opacity:1;transform:translateY(0)}
    100%{opacity:0;transform:translateY(-10px)}
  }
  .cy-win{padding:30px 22px;position:relative}
  .cy-win p{margin:8px 0 16px}
  .cy-win.lose .word{background:none;color:#ff8f8f;-webkit-text-fill-color:#ff8f8f}
  .cy-win.draw .word{background:none;color:var(--muted);-webkit-text-fill-color:var(--muted)}
  .cy-win.win{border-color:var(--accent);box-shadow:0 0 26px rgba(0,0,0,.25),0 0 0 1px var(--accent)}
  .cy-winner{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;
    margin-top:8px;padding:5px 12px;border-radius:999px;
    background:rgba(255,255,255,.10);border:1px solid var(--panel-line)}
  .cy-winner:empty{display:none}
  .cy-winner .gw-name{font-family:'Fredoka',sans-serif;font-weight:700;font-size:18px;color:var(--text)}
  .cy-winner .gw-tag{font-size:13px;color:var(--muted)}
  .cy-win.win .cy-winner{background:var(--accent);border-color:var(--accent)}
  .cy-win.win .cy-winner .gw-name,.cy-win.win .cy-winner .gw-tag{color:#1c1008}
  .cy-stats{display:flex;justify-content:center;gap:10px;margin:14px 0 4px;flex-wrap:wrap}
  .cy-stat{background:rgba(255,255,255,.08);border:1px solid var(--panel-line);border-radius:12px;
    padding:7px 13px;display:flex;flex-direction:column;gap:2px;min-width:74px}
  .cy-stat .ss-k{font-size:11px;color:var(--muted);font-weight:800}
  .cy-stat .ss-v{font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;color:var(--text)}
  .cy-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  .cy-next{margin:10px 0 -4px;text-align:center;font:700 12px/1.5 'Nunito',sans-serif;color:var(--muted)}
  .cy-next b{font-weight:800;font-size:1.15em;color:var(--accent)}
  body.solo-on #winScores,body.solo-on #winChamp,body.solo-on .cy-react-row,body.solo-on #mpWinBtns,body.solo-on #cyNext{display:none}
  body:not(.solo-on) #soloWinBtns,body:not(.solo-on) .cy-stats{display:none}
  .cy-cell.track:not(.sel){background-color:var(--cy-track)}
  .cy-cell.xtrack:not(.sel){background-color:var(--cy-track2)}
  .cy-cell.filled.p0{--cy-ink:var(--sp0)}
  .cy-cell.filled.p1{--cy-ink:var(--sp1)}
  .cy-cell.filled.p2{--cy-ink:var(--sp2)}
  .cy-cell.filled.p3{--cy-ink:var(--sp3)}
  .cy-cell.filled.p4{--cy-ink:var(--sp4)}
  .cy-cell.filled.p5{--cy-ink:var(--sp5)}
  .cy-cell.filled.me{--cy-ink:var(--accent)}
  .cy-cell.filled.hintfill{--cy-ink:var(--accent-2)}
  .cy-cell::after{content:"";position:absolute;inset:0;border-radius:3px;
    pointer-events:none;opacity:0}
  .cy-cell.ink{animation:cyInk .34s cubic-bezier(.34,1.56,.64,1)}
  .cy-cell.ink .cy-v{animation:cyInkV .34s cubic-bezier(.34,1.56,.64,1)}
  .cy-cell.ink::after{animation:cyRipple .5s ease-out}
  @keyframes cyInk{ 0%{transform:scale(.84)} 100%{transform:scale(1)} }
  @keyframes cyInkV{ 0%{opacity:.15;transform:scale(1.55)} 55%{opacity:1;transform:scale(.93)} 100%{transform:scale(1)} }
  @keyframes cyRipple{ 0%{opacity:.6;box-shadow:inset 0 0 0 0 var(--cy-ink,var(--accent))}
                       100%{opacity:0;box-shadow:inset 0 0 0 10px var(--cy-ink,var(--accent))} }
  .cy-cell.taken::after{animation:cyClaim .7s ease-out}
  @keyframes cyClaim{ 0%{opacity:0;box-shadow:inset 0 0 0 4px var(--cy-ink,var(--accent))}
                      25%{opacity:1;box-shadow:inset 0 0 0 2px var(--cy-ink,var(--accent))}
                      75%{opacity:1;box-shadow:inset 0 0 0 2px var(--cy-ink,var(--accent))}
                      100%{opacity:0;box-shadow:inset 0 0 0 2px var(--cy-ink,var(--accent))} }
  .cy-fx{position:absolute;inset:0;pointer-events:none;z-index:3}
  .cy-sweep{position:absolute;border-radius:4px;overflow:hidden;
    box-shadow:0 0 0 2px var(--cy-gold),0 0 16px 1px var(--cy-gold);
    animation:cySweepBox .95s ease-out forwards}
  .cy-sweep::before{content:"";position:absolute;left:0;top:0;width:55%;height:100%;
    background:linear-gradient(90deg,transparent,var(--cy-gold),transparent);
    animation:cySweepH .62s cubic-bezier(.4,0,.2,1)}
  .cy-sweep.v::before{width:100%;height:55%;
    background:linear-gradient(180deg,transparent,var(--cy-gold),transparent);
    animation:cySweepV .62s cubic-bezier(.4,0,.2,1)}
  @keyframes cySweepBox{ 0%{opacity:0} 12%{opacity:1} 66%{opacity:1} 100%{opacity:0} }
  @keyframes cySweepH{ from{transform:translateX(-180%)} to{transform:translateX(320%)} }
  @keyframes cySweepV{ from{transform:translateY(-180%)} to{transform:translateY(320%)} }
  .cy-cell.wdone:not(.sel){box-shadow:inset 0 0 0 1px var(--cy-gold)}
  .cy-board.done{box-shadow:0 0 0 3px var(--cy-gold),0 0 38px -6px var(--cy-gold),0 10px 30px rgba(0,0,0,.22)}
  .cy-cell.frost::after{opacity:.92;
    background:
      repeating-linear-gradient(58deg,rgba(255,255,255,.5) 0 1px,transparent 1px 5px),
      repeating-linear-gradient(-58deg,rgba(255,255,255,.4) 0 1px,transparent 1px 6px),
      linear-gradient(140deg,rgba(176,226,255,.82),rgba(240,252,255,.55) 45%,rgba(150,210,255,.78));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.75);
    animation:cyFrostIn .45s ease-out backwards}
  @keyframes cyFrostIn{ from{opacity:0;transform:scale(.35) rotate(-25deg)} to{opacity:.92;transform:none} }
  .cy-cell.shatter::after{opacity:.92;
    background:linear-gradient(140deg,rgba(176,226,255,.82),rgba(240,252,255,.55) 45%,rgba(150,210,255,.78));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.75);
    animation:cyShatter .5s ease-out forwards}
  @keyframes cyShatter{ 0%{opacity:.92;transform:none;filter:blur(0)}
                        100%{opacity:0;transform:scale(1.8) rotate(11deg);filter:blur(2px)} }
  .cy-cell:not(.block){background-image:repeating-linear-gradient(0deg,var(--cy-fiber) 0 1px,transparent 1px 4px)}
  .cy-cell.block{background-image:repeating-linear-gradient(45deg,transparent 0 6px,var(--cy-fiber) 6px 7px)}
  .cy-board{background-image:
    repeating-linear-gradient(0deg,var(--cy-fiber) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(90deg,var(--cy-fiber) 0 1px,transparent 1px 9px)}
  .cy-key{box-shadow:0 2px 0 rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.16)}
  .cy-key:active{transform:translateY(2px) scale(.97);
    box-shadow:0 0 0 rgba(0,0,0,0),inset 0 2px 5px rgba(0,0,0,.28)}
  .cy-key.done{box-shadow:none}
  .cy-seal{margin:14px auto 2px;pointer-events:none;
    width:62px;height:62px;border-radius:7px;
    display:grid;grid-template-rows:1fr 1fr;grid-auto-flow:column;direction:rtl;place-items:center;
    background:var(--cy-seal);color:#fff;opacity:.94;transform:rotate(-9deg);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.85),0 3px 10px rgba(0,0,0,.38)}
  .cy-seal span{font-weight:900;font-size:22px;line-height:1}
  .cy-win .cy-seal.stamp{animation:cySeal .5s cubic-bezier(.2,1.5,.35,1) .34s backwards}
  @keyframes cySeal{ 0%{opacity:0;transform:rotate(14deg) scale(1.8)}
                     62%{opacity:1;transform:rotate(-13deg) scale(.93)}
                     100%{opacity:.94;transform:rotate(-9deg) scale(1)} }
  @media (max-height:620px){
    .cy-hero{margin:6px 0 2px}
    .cy-art{width:64px;height:64px}
    .cy-solotools{margin-top:5px}
    .cy-tool{padding:5px 8px;font-size:12px}
    .cy-pad{gap:5px}
    .cy-key{padding:6px 0;border-radius:11px}
    .cy-kc{font-size:18px}
    .cy-hud{gap:4px}
    .cy-hcard{padding:4px 6px 5px}
    .cy-hval{font-size:16px}
    .cy-play{gap:7px}
  }
  @media (max-height:620px) and (min-width:600px){
    .cy-hud.cy-hud-two{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
  }
  .cy-play:has(.cy-stage.locked) .cy-pad{opacity:.4;pointer-events:none}
  @media (max-height:780px) and (pointer:coarse){
    body:has(#cyPlay:not(.hidden)) .topbar{display:none}
  }
  :root{ --dw-paper:#fffdf7; --dw-ink:#20242c; --dw-edge:#a9764a; --dw-edge2:#6f4526; }
  .dw-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,7.5vw,34px);
    line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .dw-scroll{flex:1 1 auto}
  .dw-hero{text-align:center;margin:14px 0 4px}
  .dw-intro{margin-bottom:6px}
  .dw-art{width:92px;height:92px;display:block;margin:0 auto 8px}
  .dw-room{padding:9px 12px}
  .dw-room .row{margin-top:0}
  .dw-room-top{flex-wrap:nowrap;gap:8px}
  .dw-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
  .dw-room-title b{font-size:15px;color:var(--text)}
  .dw-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .dw-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .dw-room .mp-subrow{margin-top:5px}
  .dw-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .dw-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .dw-room-foot .mp-players.oneline .mp-chip{flex:0 0 auto;min-width:0;padding:4px 9px;gap:5px}
  .dw-hit{font-size:11px;flex:none;line-height:1}
  .dw-seat{width:11px;height:11px;border-radius:50%;flex:none;display:inline-block}
  .dw-seat.p0{background:var(--sp0)} .dw-seat.p1{background:var(--sp1)}
  .dw-seat.p2{background:var(--sp2)} .dw-seat.p3{background:var(--sp3)}
  .dw-seat.p4{background:var(--sp4)} .dw-seat.p5{background:var(--sp5)}
  .dw-pts{font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;color:var(--accent);flex:none}
  .mp-chip.turn .dw-pts{color:#1c1008}
  .mp-chip.turn .dw-seat{box-shadow:0 0 0 1.5px #1c1008}
  body:has(.dw-play:not(.hidden)) .dw-room,
  body:has(.dw-play:not(.hidden)) .topbar{width:min(92vw,760px)}
  .dw-play{flex:1 1 auto;min-height:0;width:min(92vw,760px);
    display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .dw-bar{flex:none;display:flex;align-items:center;gap:8px;min-height:28px}
  .dw-round{font-weight:800;font-size:12.5px;color:var(--muted);flex:none}
  .dw-role{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-weight:800;font-size:12.5px;color:var(--text)}
  .dw-role.mine{color:var(--accent-2)}
  .dw-len{flex:none;display:flex;align-items:center;gap:4px;white-space:nowrap;
    padding:3px 8px;border-radius:999px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--muted);
    font-family:'Nunito',sans-serif;font-weight:800;font-size:11.5px;line-height:1}
  .dw-len b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:14px;color:var(--accent-2)}
  .dw-hcat{flex:none;display:inline-flex;align-items:center;gap:1px;padding:1px 5px;
    border-radius:999px;background:rgba(255,255,255,.10);
    box-shadow:inset 0 0 0 1px var(--panel-line);
    font-weight:800;font-size:11px;color:var(--text);letter-spacing:.3px}
  .dw-hmask{flex:none;display:inline-flex;align-items:flex-end;gap:2px}
  .dw-hc{display:inline-block;width:13px;height:16px;line-height:16px;text-align:center;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;
    border-bottom:2px solid var(--panel-line);border-radius:2px;color:transparent}
  .dw-hc.on{color:var(--accent-2);border-bottom-color:var(--accent-2)}
  .dw-len.pop{animation:dwHintPop .8s cubic-bezier(.2,1.6,.35,1)}
  @keyframes dwHintPop{
    0%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,209,102,0)}
    22%{transform:scale(1.18);box-shadow:0 0 12px 3px rgba(255,209,102,.55)}
    100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,209,102,0)}
  }
  .dw-fin{flex:none;display:inline-flex;align-items:center;gap:2px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.08);color:var(--text);font-weight:800;font-size:12px;
    border-radius:11px;padding:5px 9px;cursor:pointer;white-space:nowrap;
    -webkit-tap-highlight-color:transparent}
  .dw-fin.on{background:var(--accent-2);border-color:var(--accent-2);color:#1c1008}
  .dw-fin:active{transform:scale(.94)}
  .dw-zoombtn{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--muted);
    font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;
    cursor:pointer;transition:.15s}
  .dw-zoombtn:hover{background:rgba(255,255,255,.16)}
  .dw-zoombtn:active{transform:scale(.9)}
  .dw-zoombtn.on{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,.16)}
  .dw-zoombtn.hidden{display:none}
  .dw-cd{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:14px;color:var(--text);
    background:conic-gradient(var(--accent) var(--dw-p,100%),rgba(0,0,0,.22) 0);
    box-shadow:inset 0 0 0 4px var(--panel)}
  .dw-cd.hot{color:#fff;background:conic-gradient(var(--daub) var(--dw-p,100%),rgba(0,0,0,.22) 0)}
  .dw-stage{flex:1 1 0;min-height:120px;width:100%;position:relative;
    display:flex;align-items:center;justify-content:center;overflow:hidden}
  .dw-wrap{position:relative;flex:none}
  .dw-ink{display:block;border-radius:14px;
    background-color:var(--dw-paper);
    background-image:repeating-linear-gradient(58deg,rgba(120,96,64,.022) 0 1px,transparent 1px 4px),
                     repeating-linear-gradient(-32deg,rgba(120,96,64,.018) 0 1px,transparent 1px 6px);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),
               0 0 0 3px var(--dw-edge),0 0 0 5px var(--dw-edge2),
               0 10px 30px rgba(0,0,0,.28);
    touch-action:none;-webkit-user-select:none;user-select:none}
  .dw-ink.live{cursor:crosshair}
  .dw-pinch{position:absolute;top:8px;left:8px;padding:6px 11px;border-radius:999px;
    border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.88);color:var(--dw-ink);
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:12px;line-height:1;
    cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.20)}
  .dw-pinch:active{transform:scale(.94)}
  .dw-pinch.hidden{display:none}
  .dw-over{position:absolute;inset:0;display:grid;place-items:center;padding:10px;
    background:rgba(0,0,0,.55);backdrop-filter:blur(4px);border-radius:14px}
  .dw-ov-card{background:var(--panel);border:1px solid var(--panel-line);border-radius:16px;
    padding:14px 16px;text-align:center;max-width:100%;backdrop-filter:blur(14px);
    box-shadow:0 10px 30px rgba(0,0,0,.35)}
  .dw-ov-t{font-weight:800;font-size:15px;color:var(--text);margin-bottom:10px}
  .dw-ov-s{font-size:12px;color:var(--muted);margin-top:8px}
  .dw-ov-w{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(26px,8vw,38px);
    line-height:1.1;color:var(--accent-2);margin:2px 0 8px}
  .dw-picks{display:flex;flex-direction:column;gap:8px}
  .dw-pickbtn{display:flex;align-items:center;gap:10px;min-width:190px;
    border:1px solid var(--panel-line);border-radius:13px;padding:9px 14px;
    background:rgba(255,255,255,.10);color:var(--text);cursor:pointer;transition:.15s}
  .dw-pickbtn:hover{background:rgba(255,255,255,.18)}
  .dw-pickbtn:active{transform:scale(.97)}
  .dw-pickbtn.on{border-color:var(--accent);background:rgba(255,255,255,.20)}
  .dw-pk-ic{font-size:22px;line-height:1;flex:none}
  .dw-pk-w{font-family:'Fredoka',sans-serif;font-weight:700;font-size:18px}
  .dw-own{display:flex;gap:6px;margin-top:8px}
  .dw-own-i{flex:1;min-width:0;border-radius:11px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.10);color:var(--text);
    font-family:'Nunito',sans-serif;font-weight:700;font-size:16px;padding:8px 11px}
  .dw-own-i::placeholder{color:var(--muted);font-weight:600;font-size:13px}
  .dw-own-i:focus{outline:none;border-color:var(--accent)}
  .dw-own-b{flex:none;border:1px solid var(--panel-line);border-radius:11px;padding:8px 12px;
    background:rgba(255,255,255,.10);color:var(--text);cursor:pointer;
    font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;transition:.15s}
  .dw-own-b:hover{background:rgba(255,255,255,.18)}
  .dw-own-b:active{transform:scale(.97)}
  .dw-sh-list{display:flex;flex-direction:column;gap:4px;margin-top:4px;text-align:left}
  .dw-sh-row{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}
  .dw-sh-row.me{color:var(--text)}
  .dw-sh-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
  .dw-sh-p{font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;color:var(--accent);flex:none}
  .dw-shbtn{position:absolute;top:8px;right:8px;z-index:2;width:44px;height:44px;
    display:grid;place-items:center;border-radius:50%;cursor:pointer;font-size:19px;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.16);color:var(--text);
    transition:.15s}
  .dw-shbtn:hover{background:rgba(255,255,255,.26)}
  .dw-shbtn:active{transform:scale(.92)}
  .dw-tools{flex:none;display:flex;align-items:center;gap:8px}
  .dw-word-lbl{font-size:11.5px;color:var(--muted);font-weight:800;flex:none}
  .dw-word{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-family:'Fredoka',sans-serif;font-weight:700;font-size:20px;color:var(--accent-2)}
  .dw-word-ic{flex:none;font-size:20px;line-height:1;margin-right:-4px}
  .dw-tool{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:2px;
    border:1px solid var(--panel-line);border-radius:11px;padding:6px 12px;
    min-width:38px;min-height:38px;
    background:rgba(255,255,255,.08);color:var(--text);font-family:'Nunito',sans-serif;
    font-weight:800;font-size:13px;cursor:pointer;transition:.15s;
    -webkit-tap-highlight-color:transparent}
  .dw-tool:hover{background:rgba(255,255,255,.16)}
  .dw-tool:active{transform:scale(.92)}
  .dw-sep{flex:none;width:1px;height:20px;background:var(--panel-line);opacity:.8}
  .dw-sw{width:32px;min-height:30px;flex:none;padding:0;border:none;background:none;cursor:pointer;
    display:grid;place-items:center;border-radius:999px;
    -webkit-tap-highlight-color:transparent;transition:background .12s,box-shadow .12s}
  .dw-sw::before{content:"";width:26px;height:26px;border-radius:50%;
    background:var(--dw-sw,#8b8b8b);border:2px solid rgba(255,255,255,.55);
    box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .12s,border-color .12s}
  .dw-sw:active::before{transform:scale(.86)}
  .dw-sw.on{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent)}
  .dw-sw.on::before{border-color:rgba(255,255,255,.95)}
  .dw-tools{position:relative}
  .dw-pen{position:relative;align-self:stretch}
  .dw-pen::after{content:"▾";position:absolute;right:0;bottom:1px;font-size:9px;line-height:1;
    color:var(--muted);pointer-events:none}
  .dw-pen.open::after{color:var(--accent)}
  .dw-pal{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:6;
    display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:14px;
    border:1px solid rgba(255,255,255,.16);background:rgba(30,26,48,.97);
    box-shadow:0 10px 30px rgba(0,0,0,.42)}
  .dw-pal-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px}
  .dw-pal-w{border-top:1px solid rgba(255,255,255,.16);padding-top:6px}
  .dw-pc{flex:1 1 38px;max-width:44px;height:44px;padding:0;border:none;background:none;cursor:pointer;
    display:grid;place-items:center;border-radius:12px;
    -webkit-tap-highlight-color:transparent;transition:background .12s,box-shadow .12s}
  .dw-pc::before{content:"";width:30px;height:30px;border-radius:50%;
    background:var(--dw-sw,#8b8b8b);border:2px solid rgba(255,255,255,.55);
    box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .12s,border-color .12s}
  .dw-pc:active::before{transform:scale(.88)}
  .dw-pc.on{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent)}
  .dw-pc.on::before{border-color:rgba(255,255,255,.95)}
  .dw-pw{flex:1 1 44px;max-width:64px;height:44px;padding:0;border:none;background:none;cursor:pointer;
    display:grid;place-items:center;border-radius:12px;
    -webkit-tap-highlight-color:transparent;transition:background .12s,box-shadow .12s}
  .dw-pw::before{content:"";width:var(--dw-pwsz,10px);height:var(--dw-pwsz,10px);border-radius:50%;
    background:#fff;opacity:.86;transition:transform .12s}
  .dw-pw:active::before{transform:scale(.88)}
  .dw-pw.on{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px var(--accent)}
  .dw-pw.on::before{opacity:1}
  .dw-guide{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;
    font-size:var(--dw-gsz,180px);line-height:1;opacity:.13;filter:grayscale(1);
    -webkit-user-select:none;user-select:none}
  .dw-tool.on{border-color:var(--accent);background:var(--accent);color:#2a1136;
    box-shadow:0 2px 10px rgba(0,0,0,.28)}
  .dw-tool.on:hover{background:var(--accent)}
  .dw-tool:disabled{opacity:.35;cursor:default;pointer-events:none}
  .dw-ink.erasing{cursor:cell}
  .dw-say{flex:none;height:74px;overflow-y:auto;overscroll-behavior:contain;
    display:flex;flex-direction:column;gap:3px;padding:6px 9px;
    background:var(--panel);border:1px solid var(--panel-line);border-radius:12px}
  .dw-say-row{display:flex;align-items:center;gap:6px;font-size:12.5px;line-height:1.35}
  .dw-say-row:first-child{margin-top:auto}
  .dw-say-n{font-weight:800;color:var(--muted);flex:none;max-width:6.5em;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dw-say-n.me{color:var(--accent)}
  .dw-say-t{color:var(--text);min-width:0;word-break:break-all}
  .dw-say-hit{font-weight:800;color:#5fe08a}
  .dw-say-sys{color:var(--muted);font-style:italic}
  .dw-input{flex:none;display:flex;gap:8px}
  .dw-guess{flex:1;min-width:0;border-radius:12px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.10);color:var(--text);
    font-family:'Nunito',sans-serif;font-weight:700;font-size:16px;padding:10px 13px}
  .dw-guess::placeholder{color:var(--muted);font-weight:600}
  .dw-guess:focus{outline:none;border-color:var(--accent)}
  .dw-guess:disabled{opacity:.55}
  .dw-send{flex:none;padding:10px 18px}
  .dw-send:disabled{opacity:.45}
  .dw-input.cool .dw-guess{border-color:var(--daub)}
  .dw-gv{flex:none;min-width:56px;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.08);color:var(--text);
    font-weight:800;font-size:13px;border-radius:12px;padding:10px 8px;cursor:pointer;
    white-space:nowrap;-webkit-tap-highlight-color:transparent}
  .dw-gv.armed{background:var(--daub);border-color:var(--daub);color:#fff}
  .dw-gv:active{transform:scale(.94)}
  .dw-banner{position:absolute;left:0;right:0;top:46px;z-index:3;pointer-events:none;
    display:flex;align-items:center;justify-content:center;gap:8px;
    padding:8px 14px;opacity:0;
    background:linear-gradient(90deg,rgba(255,138,61,0),rgba(255,138,61,.96) 18%,
               rgba(233,64,120,.96) 82%,rgba(233,64,120,0));
    box-shadow:0 6px 22px rgba(0,0,0,.35)}
  .dw-banner.hidden{display:none}
  .dw-banner.go{animation:dw-bn 2.4s cubic-bezier(.16,1,.3,1) forwards}
  .dw-bn-i{font-size:19px;line-height:1;flex:none}
  .dw-bn-n{font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;color:#fff;
    max-width:8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dw-bn-r{font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;color:rgba(255,255,255,.92);
    white-space:nowrap}
  @keyframes dw-bn{
    0%{opacity:0;transform:translateX(-14%) scale(.96)}
    12%{opacity:1;transform:translateX(0) scale(1)}
    78%{opacity:1;transform:translateX(0) scale(1)}
    100%{opacity:0;transform:translateX(14%) scale(.96)}
  }
  .dw-flash{position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:14px;
    background:#fff;opacity:0}
  .dw-flash.hidden{display:none}
  .dw-flash.go{animation:dw-flash .76s ease-out forwards}
  @keyframes dw-flash{0%{opacity:0}8%{opacity:.92}100%{opacity:0}}
  .dw-tool.armed{background:var(--daub);border-color:var(--daub);color:#fff;
    animation:dw-arm .9s ease-in-out infinite}
  .dw-tool.armed:hover{background:var(--daub)}
  @keyframes dw-arm{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}50%{box-shadow:0 0 0 4px rgba(255,255,255,.22)}}
  .dw-input{position:relative}
  .dw-input.near .dw-guess{border-color:#ff8a3d;
    box-shadow:0 0 0 2px rgba(255,138,61,.35),0 0 18px rgba(255,90,40,.45);
    animation:dw-near 1.1s ease-in-out infinite}
  .dw-input.near::before{content:"🔥 好接近了";position:absolute;left:10px;top:-9px;z-index:2;
    padding:2px 9px;border-radius:999px;pointer-events:none;
    background:linear-gradient(135deg,#ff8a3d,#e0413a);color:#fff;
    font-family:'Nunito',sans-serif;font-weight:800;font-size:11px;line-height:1.5;
    box-shadow:0 3px 10px rgba(224,65,58,.45);
    animation:dw-nearpop .32s cubic-bezier(.16,1,.3,1)}
  @keyframes dw-near{
    0%,100%{box-shadow:0 0 0 2px rgba(255,138,61,.30),0 0 14px rgba(255,90,40,.32)}
    50%{box-shadow:0 0 0 2px rgba(255,138,61,.48),0 0 24px rgba(255,90,40,.60)}
  }
  @keyframes dw-nearpop{0%{opacity:0;transform:translateY(5px) scale(.86)}100%{opacity:1;transform:none}}
  .dw-cd.bomb{animation:dw-bomb .9s ease-in-out infinite}
  .dw-cd.bomb::after{content:"";position:absolute;top:-3px;right:-1px;width:6px;height:6px;
    border-radius:50%;background:#ffd54a;box-shadow:0 0 8px 3px rgba(255,180,40,.85);
    animation:dw-fuse .38s linear infinite}
  .dw-stage.dw-hot::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    border-radius:14px;box-shadow:inset 0 0 34px 10px rgba(224,65,58,.50);
    animation:dw-alert 1.05s ease-in-out infinite}
  @keyframes dw-bomb{0%,100%{transform:scale(1)}50%{transform:scale(1.13)}}
  @keyframes dw-fuse{0%{opacity:.55;transform:scale(.75)}50%{opacity:1;transform:scale(1.25)}100%{opacity:.55;transform:scale(.75)}}
  @keyframes dw-alert{0%,100%{opacity:.45}50%{opacity:1}}
  .dw-picks{perspective:640px}
  .dw-over.pick .dw-pickbtn{position:relative;animation:dw-flip .52s cubic-bezier(.16,1,.3,1) backwards}
  .dw-over.pick .dw-pickbtn:nth-child(2){animation-delay:.09s}
  .dw-over.pick .dw-pickbtn:nth-child(3){animation-delay:.18s}
  @keyframes dw-flip{
    0%{opacity:0;transform:rotateY(-82deg) translateZ(-30px)}
    100%{opacity:1;transform:none}
  }
  .dw-over.pick .dw-pickbtn.on::after{content:"已鎖定";position:absolute;right:-6px;top:-9px;
    padding:3px 9px;border-radius:7px;pointer-events:none;
    border:2px solid rgba(200,32,32,.85);color:#c82020;background:rgba(255,255,255,.92);
    font-family:'Nunito',sans-serif;font-weight:800;font-size:11.5px;line-height:1.2;
    transform:rotate(-11deg);animation:dw-stamp .34s cubic-bezier(.2,1.5,.4,1)}
  @keyframes dw-stamp{0%{opacity:0;transform:rotate(-11deg) scale(2.1)}100%{opacity:1;transform:rotate(-11deg) scale(1)}}
  .dw-over.wait .dw-ov-card{animation:dw-breath 2.1s ease-in-out infinite}
  @keyframes dw-breath{0%,100%{transform:scale(1)}50%{transform:scale(1.028)}}
  .dw-over.show .dw-ov-card{background:#fffdf7;border-color:rgba(0,0,0,.10);
    padding:14px 16px 20px;transform:rotate(-1.1deg);
    box-shadow:0 14px 34px rgba(0,0,0,.42);
    animation:dw-polaroid .46s cubic-bezier(.16,1,.3,1)}
  .dw-over.show .dw-ov-s{color:#7a6650}
  .dw-over.show .dw-ov-w{color:#20242c;-webkit-text-fill-color:#20242c}
  .dw-over.show .dw-sh-row{color:#7a6650}
  .dw-over.show .dw-sh-row.me{color:#20242c}
  .dw-over.show .dw-sh-p{color:#c2410c}
  @keyframes dw-polaroid{
    0%{opacity:0;transform:rotate(-1.1deg) scale(1.14) translateY(-6px)}
    100%{opacity:1;transform:rotate(-1.1deg) scale(1)}
  }
  .dw-luvs{position:absolute;top:8px;left:8px;z-index:2;display:flex;gap:5px}
  .dw-luv{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;
    cursor:pointer;font-size:17px;border:1px solid var(--panel-line);
    background:rgba(255,255,255,.16);color:var(--text);transition:.15s;
    animation:dw-luvin .34s cubic-bezier(.2,1.5,.4,1) backwards}
  .dw-luv:nth-child(2){animation-delay:.06s}
  .dw-luv:nth-child(3){animation-delay:.12s}
  .dw-luv:hover{background:rgba(255,255,255,.30)}
  .dw-luv:active{transform:scale(.88)}
  .dw-luv.sent{background:var(--accent);transform:scale(1.06);
    box-shadow:0 2px 12px rgba(0,0,0,.32);animation:none}
  @keyframes dw-luvin{0%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
  .dw-say-row{animation:dw-sayin .26s ease-out}
  @keyframes dw-sayin{0%{opacity:0;transform:translateX(-7px)}100%{opacity:1;transform:none}}
  .dw-say-hit{padding:1px 7px;border-radius:999px;
    background:linear-gradient(135deg,rgba(95,224,138,.20),rgba(95,224,138,.06));
    box-shadow:inset 0 0 0 1px rgba(95,224,138,.35)}
  .dw-pop-l{position:absolute;left:0;right:0;bottom:7px;z-index:2;pointer-events:none;
    display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
    gap:4px;padding:0 10px}
  .dw-pop{max-width:100%;display:flex;align-items:center;gap:6px;
    padding:4px 11px;border-radius:999px;
    background:rgba(26,28,38,.84);box-shadow:0 3px 12px rgba(0,0,0,.30);
    font-size:13.5px;line-height:1.35;
    animation:dw-popin .3s cubic-bezier(.16,1,.3,1)}
  .dw-pop-n{font-weight:800;color:rgba(255,255,255,.66);flex:none;
    max-width:5.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dw-pop-t{font-weight:800;color:#fff;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dw-pop.me .dw-pop-n{color:#ffd166}
  .dw-pop.hit{background:rgba(18,142,84,.94);box-shadow:0 3px 14px rgba(0,0,0,.34)}
  .dw-pop.sys{background:rgba(38,44,68,.92)}
  .dw-pop.sys .dw-pop-t{color:rgba(255,255,255,.94)}
  .dw-pop.out{animation:dw-popout .38s ease-in forwards}
  @keyframes dw-popin{0%{opacity:0;transform:translateY(10px) scale(.94)}100%{opacity:1;transform:none}}
  @keyframes dw-popout{0%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px) scale(.97)}}
  @media (prefers-reduced-motion:reduce){
    .dw-banner.go,.dw-flash.go,.dw-cd.bomb,.dw-cd.bomb::after,.dw-stage.dw-hot::after,
    .dw-over.pick .dw-pickbtn,.dw-over.pick .dw-pickbtn.on::after,.dw-over.wait .dw-ov-card,
    .dw-over.show .dw-ov-card,.dw-luv,.dw-say-row,.dw-tool.armed,
    .dw-input.near .dw-guess,.dw-input.near::before,.dw-len.pop,
    .dw-pop,.dw-pop.out{animation:none}
    .dw-banner.go{opacity:1}
  }
  .dw-win{padding:30px 22px}
  .dw-win p{margin:8px 0 14px}
  .dw-win.lose .word{background:none;color:#ff8f8f;-webkit-text-fill-color:#ff8f8f}
  .dw-win.draw .word{background:none;color:var(--muted);-webkit-text-fill-color:var(--muted)}
  .dw-win.win{border-color:var(--accent);box-shadow:0 0 26px rgba(0,0,0,.25),0 0 0 1px var(--accent)}
  .dw-stats{display:flex;flex-direction:column;gap:4px;margin:6px 0 14px;text-align:left}
  .dw-st-h{font-size:11.5px;font-weight:800;color:var(--muted);text-align:center;margin-bottom:2px}
  .dw-st-row{display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:10px;
    background:rgba(255,255,255,.06)}
  .dw-st-row.me{background:rgba(255,255,255,.14)}
  .dw-st-k{width:22px;text-align:center;font-weight:800;font-size:13px;color:var(--muted);flex:none}
  .dw-st-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-weight:800;font-size:14px;color:var(--text)}
  .dw-st-p{font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;color:var(--accent);flex:none}
  .dw-st-p em{font-style:normal;font-size:11px;color:var(--muted);margin-left:2px}
  .dw-awards{display:flex;flex-direction:column;gap:3px;margin:6px 0 10px;text-align:left}
  .dw-aw-row{display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:9px;
    background:rgba(255,255,255,.05);font-size:12.5px}
  .dw-aw-row.me{background:rgba(255,255,255,.13)}
  .dw-aw-ic{flex:none;font-size:14px;line-height:1}
  .dw-aw-t{flex:none;font-weight:800;color:var(--accent-2)}
  .dw-aw-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-weight:800;color:var(--text)}
  .dw-aw-v{flex:none;color:var(--muted);font-weight:700}
  .dw-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  @media (max-width:600px){
    .dw-word-lbl{display:none}
    .dw-clr-t{display:none}
    .dw-tools{gap:4px}
    .dw-sw{width:38px}
    .dw-sw::before{width:26px;height:26px}
    .dw-tool{padding:0;width:36px;height:36px;display:inline-flex;align-items:center;
      justify-content:center;font-size:18px}
    .dw-word{font-size:17px}
    .dw-word-ic{font-size:17px;margin:0 -5px 0 -4px}
  }
  @media (max-width:430px){
    .dw-len-l{display:none}
    .dw-len.msk .dw-hcat-t{display:none}
    .dw-len.msk .dw-hc{width:11px}
    .dw-fin-t{display:none}
  }
  @media (max-height:700px){
    .dw-play{gap:6px}
    .dw-say{height:58px;padding:5px 8px}
    .dw-guess{font-size:15px;padding:8px 11px}
    .dw-send{padding:8px 15px}
    .dw-word{font-size:17px}
    .dw-cd{width:30px;height:30px;font-size:13px}
    .dw-zoombtn{width:30px;height:30px;font-size:13px}
  }
  body.dw-big .topbar{display:none}
  body.dw-big .dw-say{height:30px;padding:4px 9px}
  body.dw-big .dw-play{gap:6px}
  body.dw-big .dw-room{padding:5px 10px}
  body.dw-big .dw-room .mp-leave-btn,
  body.dw-big .dw-room-title,
  body.dw-big .dw-room .mp-goal,
  body.dw-big .dw-room .mp-subrow,
  body.dw-big .dw-room-foot{display:none}
  body.dw-big .dw-room-top{justify-content:flex-end}
  .dw-mini{display:none}
  body.dw-big .dw-mini{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0;
    overflow:hidden;white-space:nowrap;
    -webkit-mask-image:linear-gradient(to right,#000 88%,transparent);
    mask-image:linear-gradient(to right,#000 88%,transparent)}
  .dw-mi{flex:none;display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:9px;
    background:rgba(255,255,255,.07);font-size:11px;font-weight:800;color:var(--muted);line-height:1.5}
  .dw-mi.me{background:rgba(255,255,255,.16);color:var(--text)}
  .dw-mi-n{max-width:52px;overflow:hidden;text-overflow:ellipsis}
  .dw-mi b{font-family:'Fredoka',sans-serif;font-size:12px;font-weight:700;color:var(--accent-2)}
  .hu-ver{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;
    padding:3px 5px;margin:0 -3px;-webkit-tap-highlight-color:transparent}
  .hu-ver:active{opacity:.5}
  :root.boot-wait button{opacity:.45;pointer-events:none}
  :root.boot-wait body::after,
  :root.boot-wait::after{
    position:fixed;left:50%;transform:translateX(-50%);
    max-width:82vw;padding:9px 16px;border-radius:999px;
    background:rgba(0,0,0,.72);color:#fff;font-size:13px;font-weight:700;
    letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    z-index:9999;pointer-events:none;opacity:0
  }
  :root.boot-wait body::after{
    content:"⏳ 載入中…";bottom:20px;
    animation:bootShow .25s 1.5s forwards,bootHide .25s 10s forwards
  }
  :root.boot-wait::after{
    content:"載入很慢…請確認網路,或重新整理這一頁";bottom:20px;
    animation:bootShow .25s 10s forwards
  }
  @keyframes bootShow{from{opacity:0}to{opacity:1}}
  @keyframes bootHide{from{opacity:1}to{opacity:0}}
  :root{
    --fc-c0:#ef3b52; --fc-c1:#f89a12; --fc-c2:#3a86ff; --fc-c3:#18a95f;
    --fc-s0:#ffc6ce; --fc-s1:#ffdba6; --fc-s2:#c8dcff; --fc-s3:#b4e8c9;
    --fc-l0:#ff9fae; --fc-l1:#ffc76d; --fc-l2:#9dc4ff; --fc-l3:#7ddcaa;
    --fc-felt:#fff5e3;
    --fc-cellbg:#fffdf7;
    --fc-line:#d8bf94;
    --fc-goalbg:#fffaef;
    --fc-ink:#4a3a22;
    --fc-tw:min(96vw,560px);
  }
  .fc-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
            line-height:1.05;letter-spacing:.5px;
            background:linear-gradient(135deg,var(--accent),var(--accent-2));
            -webkit-background-clip:text;background-clip:text;color:transparent}
  .fc-home{min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .fc-home > *{flex:none}
  .fc-home > .fc-pick{flex:0 1 auto;min-height:0}
  .fc-pick{display:flex;flex-direction:column;min-height:0}
  .fc-pick > *{flex:none}
  .fc-howto{margin-top:18px;padding:14px 14px 12px;border-radius:14px;
            background:rgba(255,255,255,.05);border:1px solid var(--panel-line);
            text-align:left;font-size:13px;line-height:1.62;color:var(--text);
            flex:0 1 auto;min-height:150px;overflow-y:auto;overscroll-behavior:contain;
            box-shadow:inset 0 -14px 12px -12px rgba(0,0,0,.30)}
  .fc-howto-h{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:15.5px;
              color:var(--accent-2);margin-bottom:6px}
  .fc-howto-h2{font-weight:800;font-size:12.5px;color:var(--muted);margin:12px 0 6px}
  .fc-howto-goal{margin:0 0 10px}
  .fc-howto-list{margin:0;padding-left:1.35em}
  .fc-howto-list > li{margin-bottom:7px}
  .fc-howto-list > li::marker{color:var(--accent-2);font-weight:800}
  .fc-howto-sub{margin:5px 0 0;padding-left:1.1em;list-style:disc;color:var(--muted);font-size:12.5px}
  .fc-howto-sub li{margin-bottom:3px}
  .fc-howto-foot{margin-top:11px;padding-top:9px;border-top:1px solid var(--panel-line);
                 font-size:12.5px;color:var(--muted)}
  .fc-legend{display:flex;flex-wrap:wrap;gap:7px 14px}
  .fc-legend-i{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
  .fc-legend .fc-cell{width:22px;height:22px;flex:none}
  .fc-legend [data-c="0"]{--c:var(--fc-c0);--cs:var(--fc-s0)}
  .fc-legend [data-c="1"]{--c:var(--fc-c1);--cs:var(--fc-s1)}
  .fc-legend [data-c="2"]{--c:var(--fc-c2);--cs:var(--fc-s2)}
  .fc-legend [data-c="3"]{--c:var(--fc-c3);--cs:var(--fc-s3)}
  .fc-hero{text-align:center;margin:14px 0 4px}
  .fc-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .fc-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .fc-room{padding:9px 12px}
  .fc-room .row{margin-top:0}
  .fc-room-top{flex-wrap:nowrap;gap:8px}
  .fc-room .fc-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
                          font-size:13px}
  .fc-room .fc-room-title b{font-size:15px;color:var(--text)}
  .fc-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .fc-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .fc-room .mp-subrow{margin-top:5px}
  .fc-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .fc-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .fc-play{flex:1 1 auto;min-height:0;width:var(--fc-tw);margin:8px auto 0;
           display:flex;flex-direction:column;align-items:center;gap:8px}
  .fc-stage{flex:1 1 auto;min-height:0;width:100%;position:relative;z-index:0;
            display:flex;align-items:center;justify-content:center;
            overflow:auto;scrollbar-width:none}
  .fc-stage::-webkit-scrollbar{width:0;height:0}
  .fc-acts{flex:none;height:58px;display:flex;align-items:center;justify-content:center;
           gap:12px;width:100%;position:relative}
  .fc-board{position:relative;--fc-cell:22px;flex:none;
            background:
              radial-gradient(rgba(200,170,120,.28) 1.1px,transparent 1.2px)
                0 0 / calc(var(--fc-cell) * .5) calc(var(--fc-cell) * .5),
              radial-gradient(circle at 50% 42%,#fffdf4,var(--fc-felt) 78%);
            border-radius:20px;
            box-shadow:0 10px 26px rgba(60,40,10,.30),
                       inset 0 0 0 3px rgba(255,255,255,.8),
                       inset 0 0 0 5px rgba(216,191,148,.45)}
  .fc-board > *{position:absolute;box-sizing:border-box}
  .fc-board [data-c="0"],.fc-dot[data-c="0"]{--c:var(--fc-c0);--cs:var(--fc-s0);--cl:var(--fc-l0)}
  .fc-board [data-c="1"],.fc-dot[data-c="1"]{--c:var(--fc-c1);--cs:var(--fc-s1);--cl:var(--fc-l1)}
  .fc-board [data-c="2"],.fc-dot[data-c="2"]{--c:var(--fc-c2);--cs:var(--fc-s2);--cl:var(--fc-l2)}
  .fc-board [data-c="3"],.fc-dot[data-c="3"]{--c:var(--fc-c3);--cs:var(--fc-s3);--cl:var(--fc-l3)}
  .fc-cell{border:1px solid var(--fc-line);border-radius:calc(var(--fc-cell,22px) * .26);
           background:var(--fc-cellbg);
           display:flex;align-items:center;justify-content:center}
  .fc-cell.jump,.fc-cell.fly,.fc-cell.start{background:var(--cs);border-color:var(--c);
           box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7)}
  .fc-cell.start{box-shadow:inset 0 0 0 2px var(--c),inset 0 1.5px 0 rgba(255,255,255,.5)}
  .fc-mk{display:block}
  .fc-mk.fly{width:50%;height:50%;background:var(--c);border-radius:26%;
             transform:rotate(45deg);box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
  .fc-mk.start{width:52%;height:52%;border:2.5px solid var(--c);border-radius:50%;
               background:#fff;box-shadow:0 0 0 1.5px rgba(255,255,255,.7)}
  .fc-lane{border:1px solid var(--c);border-radius:calc(var(--fc-cell) * .26);
           background:var(--cl);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.5);
           display:flex;align-items:center;justify-content:center}
  .fc-lane::after{content:"";width:22%;height:22%;border-radius:2px;
                  border-top:calc(var(--fc-cell) * .085) solid rgba(255,255,255,.85);
                  border-right:calc(var(--fc-cell) * .085) solid rgba(255,255,255,.85)}
  .fc-lane[data-c="0"]::after{transform:rotate(135deg)}
  .fc-lane[data-c="1"]::after{transform:rotate(-135deg)}
  .fc-lane[data-c="2"]::after{transform:rotate(-45deg)}
  .fc-lane[data-c="3"]::after{transform:rotate(45deg)}
  .fc-hangar{border-radius:calc(var(--fc-cell) * .62);
             background:radial-gradient(circle at 32% 26%,#fff,var(--fc-cellbg) 72%);
             border:max(2px,calc(var(--fc-cell) * .11)) solid var(--c);
             box-shadow:inset 0 0 0 max(3px,calc(var(--fc-cell) * .15)) var(--cs),
                        0 2px 7px rgba(60,40,10,.16)}
  .fc-hangar.turn{opacity:1;
                  box-shadow:inset 0 0 0 max(3px,calc(var(--fc-cell) * .15)) var(--cs),
                             0 0 0 3px var(--c),0 0 16px rgba(0,0,0,.2);
                  animation:fcHangar 1.6s ease-in-out infinite}
  @keyframes fcHangar{0%,100%{filter:brightness(1)}50%{filter:brightness(1.07)}}
  .fc-hangar.cue{animation:fcHangar 1.6s ease-in-out infinite,fcCue .7s ease-out 2}
  @keyframes fcCue{
    0%{box-shadow:inset 0 0 0 max(3px,calc(var(--fc-cell) * .15)) var(--cs),
                  0 0 0 0 var(--c),0 0 16px rgba(0,0,0,.2)}
    100%{box-shadow:inset 0 0 0 max(3px,calc(var(--fc-cell) * .15)) var(--cs),
                    0 0 0 max(10px,calc(var(--fc-cell) * .6)) transparent,0 0 16px rgba(0,0,0,.2)}}
  .fc-slot{border:0;background:none}
  .fc-slot::after{content:"";position:absolute;inset:11%;border-radius:50%;
                  border:2px dashed var(--c);opacity:.55}
  .fc-goal{border-radius:50%;
           background:conic-gradient(from -63deg,var(--fc-c0) 0 25%,var(--fc-c1) 0 50%,
                                     var(--fc-c2) 0 75%,var(--fc-c3) 0);
           display:flex;align-items:center;justify-content:center;
           box-shadow:0 3px 9px rgba(60,40,10,.3),inset 0 0 0 2px rgba(255,255,255,.9)}
  .fc-goal::before{content:"";position:absolute;inset:21%;border-radius:50%;
                   background:var(--fc-goalbg);
                   box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),0 1px 3px rgba(60,40,10,.28)}
  .fc-goal span{position:relative;font-size:calc(var(--fc-cell) * .85);line-height:1}
  .fc-plane{left:0;top:0;width:var(--fc-cell);height:var(--fc-cell);
            border:0;background:none;padding:0;margin:0;cursor:pointer;
            display:flex;align-items:center;justify-content:center;
            touch-action:manipulation;-webkit-touch-callout:none;
            -webkit-user-select:none;user-select:none;
            z-index:5;transition-property:transform;transition-timing-function:ease-in-out;
            transition-duration:0ms}
  .fc-plane svg{width:92%;height:92%;fill:var(--c);stroke:#fff;stroke-width:1.9;
                paint-order:stroke;stroke-linejoin:round;stroke-linecap:round;
                filter:drop-shadow(0 1px 2px rgba(0,0,0,.42))}
  .fc-pn{position:absolute;font-family:'Fredoka',sans-serif;font-weight:700;color:#fff;
         font-size:calc(var(--fc-cell) * .38);line-height:1;pointer-events:none;
         transform:translateY(calc(var(--fc-cell) * .05));
         text-shadow:0 1px 1.5px rgba(0,0,0,.7),0 0 2px rgba(0,0,0,.45)}
  .fc-plane.mine{z-index:6}
  .fc-plane.can{z-index:8;animation:fcPulse 1.15s ease-in-out infinite}
  .fc-plane.home{opacity:.55}
  @keyframes fcPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(255,255,255,0))}
                     50%{filter:drop-shadow(0 0 6px rgba(255,255,255,.95))}}
  .fc-plane.can.eat{animation:fcHunt .8s ease-in-out infinite}
  @keyframes fcHunt{
    0%,100%{filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
    50%{filter:drop-shadow(0 0 7px rgba(255,120,40,.98)) drop-shadow(0 0 13px rgba(255,55,40,.8))}}
  .fc-plane.hop svg{animation:fcHop .26s cubic-bezier(.3,.7,.4,1) both}
  @keyframes fcHop{
    0%{transform:scale(1) translateY(0);filter:drop-shadow(0 1px 2px rgba(0,0,0,.42))}
    45%{transform:scale(1.22) translateY(-24%);filter:drop-shadow(0 7px 5px rgba(0,0,0,.32))}
    100%{transform:scale(1) translateY(0);filter:drop-shadow(0 1px 2px rgba(0,0,0,.42))}}
  .fc-plane.flying{z-index:9}
  .fc-plane.flying svg{animation:fcSoar .52s cubic-bezier(.4,.05,.4,1) both}
  @keyframes fcSoar{
    0%{transform:scale(1.1) rotate(-6deg) translateY(0);filter:drop-shadow(0 1px 2px rgba(0,0,0,.42))}
    26%{transform:scale(1.35) rotate(-12deg) translateY(-26%);
        filter:drop-shadow(0 11px 7px rgba(0,0,0,.3)) drop-shadow(0 0 6px rgba(255,255,255,.75))}
    74%{transform:scale(1.35) rotate(-12deg) translateY(-26%);
        filter:drop-shadow(0 11px 7px rgba(0,0,0,.3)) drop-shadow(0 0 6px rgba(255,255,255,.75))}
    100%{transform:scale(1.12) rotate(-4deg) translateY(0);filter:drop-shadow(0 2px 3px rgba(0,0,0,.42))}}
  .fc-plane.eaten{z-index:12}
  .fc-plane.eject,.fc-plane.plop{z-index:11}
  .fc-plane.eaten svg{animation:fcHit .3s cubic-bezier(.2,.9,.3,1) both}
  @keyframes fcHit{
    0%{transform:scale(1) rotate(0);filter:brightness(1)}
    14%{transform:scale(1.46) rotate(-16deg);
        filter:brightness(1.9) drop-shadow(0 0 9px #fff) drop-shadow(0 0 16px rgba(255,214,107,.9))}
    38%{transform:scale(1.17) rotate(13deg);
        filter:brightness(1.6) drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px rgba(255,214,107,.7))}
    66%{transform:scale(1.3) rotate(-8deg);filter:brightness(1.4) drop-shadow(0 0 5px #fff)}
    100%{transform:scale(1.19) rotate(5deg);filter:brightness(1.25) drop-shadow(0 0 4px #fff)}}
  .fc-plane.eject{transition-timing-function:cubic-bezier(.3,.85,.25,1)}
  .fc-plane.eject svg{animation:fcEject .7s cubic-bezier(.3,.5,.4,1) both}
  @keyframes fcEject{
    0%{transform:scale(1.19) rotate(5deg) translateY(0);filter:brightness(1.25) drop-shadow(0 0 4px #fff)}
    35%{transform:scale(.78) rotate(280deg) translateY(-34%);
        filter:brightness(1.1) drop-shadow(0 9px 6px rgba(0,0,0,.3))}
    100%{transform:scale(.9) rotate(720deg) translateY(0);filter:brightness(1)}}
  .fc-plane.plop svg{animation:fcPlop .26s cubic-bezier(.2,1.5,.4,1) both}
  @keyframes fcPlop{
    0%{transform:scale(.9)}
    40%{transform:scale(1.3,.74)}
    72%{transform:scale(.93,1.08)}
    100%{transform:scale(1)}}
  .fc-plane.stomp{z-index:11}
  .fc-plane.stomp svg{animation:fcStomp .3s cubic-bezier(.2,1.3,.4,1) both}
  @keyframes fcStomp{
    0%{transform:scale(1)}
    22%{transform:scale(1.34,.76)}
    55%{transform:scale(.94,1.12)}
    100%{transform:scale(1)}}
  .fc-fx{left:0;top:0;width:100%;height:100%;overflow:hidden;border-radius:20px;
         pointer-events:none;z-index:4}
  .fc-boom{position:absolute;width:0;height:0}
  .fc-boom > i{position:absolute;left:0;top:0;display:block}
  .fc-flash{width:calc(var(--fc-cell) * 3.2);height:calc(var(--fc-cell) * 3.2);
            margin:calc(var(--fc-cell) * -1.6) 0 0 calc(var(--fc-cell) * -1.6);border-radius:50%;
            background:radial-gradient(circle,rgba(255,255,255,.98) 0 26%,rgba(255,201,71,.72) 46%,
                                       rgba(255,140,40,.34) 62%,rgba(255,140,40,0) 76%);
            animation:fcFlash .4s ease-out both}
  @keyframes fcFlash{0%{transform:scale(.22);opacity:1}55%{opacity:.85}100%{transform:scale(1);opacity:0}}
  .fc-ring{width:var(--fc-cell);height:var(--fc-cell);
           margin:calc(var(--fc-cell) * -.5) 0 0 calc(var(--fc-cell) * -.5);border-radius:50%;
           border:calc(var(--fc-cell) * .2) solid rgba(255,255,255,.98);
           box-shadow:0 0 calc(var(--fc-cell) * .22) rgba(255,170,40,.9);
           animation:fcRing .55s cubic-bezier(.12,.72,.28,1) both}
  @keyframes fcRing{0%{transform:scale(.2);opacity:1}70%{opacity:.7}100%{transform:scale(3.4);opacity:0}}
  .fc-spark{width:calc(var(--fc-cell) * .17);height:calc(var(--fc-cell) * .62);
            margin:calc(var(--fc-cell) * -.31) 0 0 calc(var(--fc-cell) * -.085);border-radius:99px;
            background:linear-gradient(#fff 18%,#ffb020 62%,rgba(255,120,20,0));
            animation:fcSpark .55s cubic-bezier(.14,.74,.28,1) both}
  @keyframes fcSpark{
    0%{transform:rotate(var(--a,0deg)) translateY(calc(var(--fc-cell) * -.15)) scaleY(.35);opacity:0}
    12%{opacity:1}
    72%{opacity:.9}
    100%{transform:rotate(var(--a,0deg)) translateY(calc(var(--fc-cell) * -1.75)) scaleY(1.3);opacity:0}}
  .fc-puff,.fc-dust,.fc-cheer{position:absolute;width:0;height:0}
  .fc-puff > i,.fc-dust > i,.fc-cheer > i{position:absolute;left:0;top:0;display:block}
  .fc-puff > i{width:calc(var(--fc-cell) * .34);height:calc(var(--fc-cell) * .34);
               margin:calc(var(--fc-cell) * -.17) 0 0 calc(var(--fc-cell) * -.17);border-radius:50%;
               background:radial-gradient(circle,rgba(255,255,255,.95) 0 38%,
                          rgba(255,255,255,.4) 68%,rgba(255,255,255,0) 100%);
               animation:fcPuff .6s ease-out var(--d,0ms) both}
  @keyframes fcPuff{
    0%{transform:rotate(var(--a,0deg)) translateY(0) scale(.4);opacity:.95}
    100%{transform:rotate(var(--a,0deg)) translateY(calc(var(--fc-cell) * -.95)) scale(1.55);opacity:0}}
  .fc-dust > i{width:calc(var(--fc-cell) * .7);height:calc(var(--fc-cell) * .7);
               margin:calc(var(--fc-cell) * -.35) 0 0 calc(var(--fc-cell) * -.35);border-radius:50%;
               border:calc(var(--fc-cell) * .08) solid rgba(120,95,55,.45);
               animation:fcDust .48s ease-out both}
  .fc-dust > i + i{animation-delay:.1s}
  @keyframes fcDust{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.9);opacity:0}}
  .fc-cheer > i{width:calc(var(--fc-cell) * .2);height:calc(var(--fc-cell) * .34);
                margin:calc(var(--fc-cell) * -.17) 0 0 calc(var(--fc-cell) * -.1);border-radius:99px;
                background:var(--c);box-shadow:0 0 calc(var(--fc-cell) * .16) rgba(255,255,255,.85);
                animation:fcCheer .82s cubic-bezier(.15,.7,.3,1) var(--d,0ms) both}
  @keyframes fcCheer{
    0%{transform:rotate(var(--a,0deg)) translateY(0) scale(.5);opacity:0}
    18%{opacity:1}
    100%{transform:rotate(var(--a,0deg)) translateY(calc(var(--fc-cell) * var(--r,1.4) * -1)) scale(1);opacity:0}}
  .fc-jet{position:absolute;height:calc(var(--fc-cell) * .34);
          margin-top:calc(var(--fc-cell) * -.17);transform-origin:0 50%}
  .fc-jet > i{position:absolute;left:0;top:0;width:100%;height:100%;display:block;
              border-radius:99px;transform-origin:0 50%;
              background:linear-gradient(90deg,rgba(255,255,255,0) 0,var(--c) 46%,#fff 97%);
              animation:fcJet .52s linear both}
  @keyframes fcJet{
    0%{transform:scaleX(0) scaleY(.45);opacity:.95}
    70%{opacity:.75}
    100%{transform:scaleX(1) scaleY(1);opacity:0}}
  .fc-pv{left:0;top:0;width:100%;height:100%;overflow:hidden;border-radius:20px;
         pointer-events:none;z-index:10}
  .fc-pv > *{position:absolute}
  .fc-pv-dot{width:calc(var(--fc-cell) * .26);height:calc(var(--fc-cell) * .26);
             margin:calc(var(--fc-cell) * -.13) 0 0 calc(var(--fc-cell) * -.13);border-radius:50%;
             background:var(--c);box-shadow:0 0 0 1.5px rgba(255,255,255,.9);
             animation:fcPvIn .16s ease-out both}
  @keyframes fcPvIn{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:.9}}
  .fc-pv-line{height:calc(var(--fc-cell) * .16);margin-top:calc(var(--fc-cell) * -.08);
              transform-origin:0 50%;opacity:.8;border-radius:99px;
              background:repeating-linear-gradient(90deg,var(--c) 0 42%,transparent 42% 100%);
              background-size:calc(var(--fc-cell) * .44) 100%}
  .fc-pv-t{width:calc(var(--fc-cell) * .94);height:calc(var(--fc-cell) * .94);
           margin:calc(var(--fc-cell) * -.47) 0 0 calc(var(--fc-cell) * -.47);border-radius:50%;
           border:calc(var(--fc-cell) * .1) solid var(--c);
           box-shadow:0 0 0 1.5px rgba(255,255,255,.85),inset 0 0 0 1.5px rgba(255,255,255,.85);
           animation:fcPvT .9s ease-in-out infinite}
  @keyframes fcPvT{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
  .fc-pv-t.hit{width:calc(var(--fc-cell) * 1.3);height:calc(var(--fc-cell) * 1.3);
               margin:calc(var(--fc-cell) * -.65) 0 0 calc(var(--fc-cell) * -.65);
               border-color:#ff2d2d;
               box-shadow:0 0 0 1.5px rgba(255,255,255,.9),
                          0 0 calc(var(--fc-cell) * .32) rgba(255,45,45,.85);
               animation:fcPvHit .52s ease-in-out infinite}
  @keyframes fcPvHit{0%,100%{transform:scale(1)}50%{transform:scale(1.11)}}
  .fc-pv-t.hit::before,.fc-pv-t.hit::after{content:"";position:absolute;background:#ff2d2d;
               box-shadow:0 0 0 1.5px rgba(255,255,255,.75);border-radius:99px}
  .fc-pv-t.hit::before{left:50%;top:-37%;width:calc(var(--fc-cell) * .1);height:174%;
                       margin-left:calc(var(--fc-cell) * -.05)}
  .fc-pv-t.hit::after{top:50%;left:-37%;height:calc(var(--fc-cell) * .1);width:174%;
                      margin-top:calc(var(--fc-cell) * -.05)}
  .fc-pv-t.goal{border-color:#ffb300;
                box-shadow:0 0 0 1.5px rgba(255,255,255,.9),
                           0 0 calc(var(--fc-cell) * .34) rgba(255,190,40,.9)}
  .fc-board.fc-quake{animation:fcQuake .42s cubic-bezier(.2,.7,.3,1)}
  @keyframes fcQuake{
    0%{transform:translate(0,0) scale(1)}
    8%{transform:translate(1.8%,-1.2%) scale(.955)}
    20%{transform:translate(-1.5%,1%) scale(.962)}
    32%{transform:translate(1%,.8%) scale(.975)}
    46%{transform:translate(-.6%,-.5%) scale(.985)}
    60%{transform:translate(.25%,.2%) scale(.994)}
    100%{transform:translate(0,0) scale(1)}}
  @media (prefers-reduced-motion:reduce){
    .fc-board.fc-quake{animation:none}
    .fc-spark{display:none}
    .fc-flash,.fc-ring{animation-duration:.2s}
    .fc-cheer,.fc-puff,.fc-dust,.fc-jet{display:none}
    .fc-hangar.cue{animation:none}
  }
  .fc-die{--fc-d:58px;width:var(--fc-d);height:var(--fc-d);flex:none;position:relative;
          border:0;background:none;padding:0;cursor:pointer;border-radius:18px;
          perspective:calc(var(--fc-d) * 3.4);
          filter:drop-shadow(0 3px 6px rgba(60,40,10,.34));
          transition:transform .14s,box-shadow .14s,filter .14s}
  .fc-cube{position:absolute;inset:0;transform-style:preserve-3d;
           transform:translateZ(calc(var(--fc-d) / -2));
           transition:transform .13s linear}
  .fc-face{position:absolute;inset:0;box-sizing:border-box;backface-visibility:hidden;
           border-radius:18px;border:2px solid var(--fc-line);
           background:linear-gradient(155deg,#fffdf6,#f6e6c6);
           box-shadow:inset 0 1px 0 rgba(255,255,255,.9),
                      inset 0 0 calc(var(--fc-d) * .22) rgba(150,120,60,.2);
           padding:8px;display:grid;grid-template-columns:repeat(3,1fr);
           grid-template-rows:repeat(3,1fr);gap:2px}
  .fc-face[data-f="1"]{transform:translateZ(calc(var(--fc-d) / 2))}
  .fc-face[data-f="6"]{transform:rotateY(180deg) translateZ(calc(var(--fc-d) / 2))}
  .fc-face[data-f="3"]{transform:rotateY(90deg) translateZ(calc(var(--fc-d) / 2))}
  .fc-face[data-f="4"]{transform:rotateY(-90deg) translateZ(calc(var(--fc-d) / 2))}
  .fc-face[data-f="5"]{transform:rotateX(90deg) translateZ(calc(var(--fc-d) / 2))}
  .fc-face[data-f="2"]{transform:rotateX(-90deg) translateZ(calc(var(--fc-d) / 2))}
  .fc-pip{border-radius:50%;background:transparent}
  .fc-pip.on{background:var(--fc-ink);box-shadow:inset 0 -1px 0 rgba(255,255,255,.25)}
  .fc-die[data-v="0"] .fc-pip.on{background:transparent;box-shadow:none}
  .fc-die::before,.fc-die::after{content:"";position:absolute;inset:0;border-radius:18px;
                                 pointer-events:none}
  .fc-die.live{box-shadow:0 3px 10px rgba(60,40,10,.3),0 0 0 3px var(--accent);
               animation:fcDieCall 1.5s ease-in-out infinite}
  .fc-die.idle{filter:saturate(.5) opacity(.62) drop-shadow(0 2px 4px rgba(60,40,10,.28));cursor:default}
  .fc-die.rolling{animation:fcDieRoll .12s linear infinite}
  .fc-die.pop{animation:fcDiePop .28s ease-out}
  .fc-die.land .fc-cube{transition:transform .34s cubic-bezier(.2,1.5,.4,1)}
  .fc-die.six::after{animation:fcSix .9s ease-out}
  @keyframes fcSix{
    0%{box-shadow:0 0 0 0 rgba(255,196,60,.95),0 0 0 0 rgba(255,150,30,.75)}
    45%{box-shadow:0 0 0 9px rgba(255,196,60,.4),0 0 24px 7px rgba(255,150,30,.5)}
    100%{box-shadow:0 0 0 20px rgba(255,196,60,0),0 0 28px 9px rgba(255,150,30,0)}}
  .fc-die.callme::before{animation:fcCall .55s ease-out 2}
  @keyframes fcCall{
    0%{box-shadow:0 0 0 0 var(--accent)}
    100%{box-shadow:0 0 0 14px transparent}}
  @keyframes fcDieCall{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  @keyframes fcDieRoll{0%{transform:translateY(0) scale(1.03)}50%{transform:translateY(-8%) scale(.98)}
                       100%{transform:translateY(0) scale(1.03)}}
  @keyframes fcDiePop{0%{transform:scale(1.28)}60%{transform:scale(.95)}100%{transform:scale(1)}}
  .fc-hint{flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--muted);
           line-height:1.35;text-align:left;max-height:2.7em;overflow:hidden}
  .fc-fire{display:inline-block;font-size:11.5px;font-weight:800;color:#ff7a18;
           background:rgba(255,150,30,.16);border-radius:8px;padding:1px 5px;white-space:nowrap;
           animation:fcFire .9s ease-in-out infinite}
  @keyframes fcFire{0%,100%{filter:brightness(1)}50%{filter:brightness(1.22)}}
  .fc-cdwrap{display:flex;align-items:center;justify-content:center;flex:none}
  .fc-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .fc-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .fc-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .fc-cdbg{stroke:rgba(255,255,255,.16)}
  .fc-cdfg{stroke:var(--accent-2);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,30s) linear var(--cd-delay,0s) forwards}
  .fc-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .fc-cdn.fc-beat{animation:m16beat .34s ease-out}
  .fc-cd.fc-hot .fc-cdfg{stroke:var(--daub)}
  .fc-cd.fc-hot .fc-cdn{color:var(--daub)}
  .fc-cd.fc-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .fc-cd.fc-hot{animation:none}
    .fc-cdn.fc-beat{animation:none}
  }
  .fc-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--c);
          box-shadow:0 0 0 1.5px rgba(255,255,255,.85);flex:none}
  .fc-ct{display:inline-flex;align-items:center;font-size:11px;font-weight:800;
         color:var(--muted);background:rgba(0,0,0,.06);border-radius:8px;padding:1px 5px}
  .fc-result{margin:2px 0 12px}
  .fc-rank{width:100%;border-collapse:collapse;font-size:13px}
  .fc-rank th{font-size:11px;color:var(--muted);font-weight:800;padding:3px 4px;
              border-bottom:1px solid rgba(0,0,0,.10)}
  .fc-rank td{padding:5px 4px;border-bottom:1px solid rgba(0,0,0,.06);text-align:center}
  .fc-rank td:nth-child(2){text-align:left;display:flex;align-items:center;gap:5px}
  .fc-rank tr.me{background:rgba(0,0,0,.05);font-weight:800}
  .fc-rank tr.top td{color:var(--accent-2)}
  .fc-plus{color:var(--accent-2)}
  .fc-rank-foot{margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
  .fc-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .fc-react-row{display:none}
  body.fc-mp .fc-room,body.fc-solo .fc-room{width:min(92vw,560px)}
  body.fc-mp .topbar,body.fc-solo .topbar{width:min(92vw,560px)}
  @media (max-height:620px){
    .fc-home{overflow-y:auto;overscroll-behavior:contain}
    .fc-home > .fc-pick{flex:none}
    .fc-howto{min-height:0;overflow:visible;box-shadow:none}
    .fc-hero{margin:6px 0 2px}
    .fc-art{width:66px;height:66px}
    .fc-play{gap:5px;margin-top:4px}
    .fc-room{padding:6px 10px}
    .fc-room .mp-subrow,.fc-room-foot{margin-top:3px}
    .fc-acts{height:48px}
    .fc-die{--fc-d:48px;border-radius:15px}
    .fc-face{padding:6px;border-radius:15px}
    .fc-cd{width:30px;height:30px}
    .fc-cdn{font-size:12.5px}
    .fc-hint{font-size:12px}
  }
  @media (orientation:landscape) and (max-height:560px){
    .fc-play{flex-direction:row;align-items:center;gap:10px}
    .fc-acts{flex:none;width:150px;min-height:0;height:100%;flex-direction:column;
             justify-content:center;gap:10px;padding-top:0}
    .fc-hint{flex:none;text-align:center;font-size:12px}
  }
  :root{
    --tq-c0:#e8384f; --tq-c1:#f5821f; --tq-c2:#d9a400;
    --tq-c3:#1ea55c; --tq-c4:#2f7ff0; --tq-c5:#9a5bd6;
    --tq-s0:#ffd6dc; --tq-s1:#ffe2c2; --tq-s2:#f7ecb4;
    --tq-s3:#c3ead2; --tq-s4:#cddfff; --tq-s5:#e6d5f8;
    --tq-d0:#b01228; --tq-d1:#a04a00; --tq-d2:#7d5a00;
    --tq-d3:#0b6b38; --tq-d4:#1a4bab; --tq-d5:#5e2c96;
    --tq-felt:#fff6e6;
    --tq-hole:#e5cfa2;
    --tq-line:#d8bf94;
    --tq-ink:#4a3a22;
    --tq-tw:min(96vw,560px);
    --tq-wood-1:#8d6440; --tq-wood-2:#7d5330; --tq-wood-3:#63401f; --tq-wood-4:#2f1c0a;
    --tq-gold-1:#ffeab4; --tq-gold-2:#d8a63c;
    --tq-pan-1:#fffaee;
    --tq-pan-2:#f0d9ae;
    --tq-grid:rgba(126,88,40,.30);
  }
  .tq-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
            line-height:1.05;letter-spacing:.5px;
            background:linear-gradient(135deg,var(--accent),var(--accent-2));
            -webkit-background-clip:text;background-clip:text;color:transparent}
  .tq-home{min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .tq-home > *{flex:none}
  .tq-home > .tq-pick{flex:0 1 auto;min-height:0}
  .tq-pick{display:flex;flex-direction:column;min-height:0}
  .tq-pick > *{flex:none}
  .tq-howto{margin-top:18px;padding:14px 14px 12px;border-radius:14px;
            background:rgba(255,255,255,.05);border:1px solid var(--panel-line);
            text-align:left;font-size:13px;line-height:1.62;color:var(--text);
            flex:0 1 auto;min-height:150px;overflow-y:auto;overscroll-behavior:contain;
            box-shadow:inset 0 -14px 12px -12px rgba(0,0,0,.30)}
  .tq-howto-h{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:15.5px;
              color:var(--accent-2);margin-bottom:6px}
  .tq-howto-h2{font-weight:800;font-size:12.5px;color:var(--muted);margin:12px 0 6px}
  .tq-howto-goal{margin:0 0 10px}
  .tq-howto-list{margin:0;padding-left:1.35em}
  .tq-howto-list > li{margin-bottom:7px}
  .tq-howto-list > li::marker{color:var(--accent-2);font-weight:800}
  .tq-howto-sub{margin:5px 0 0;padding-left:1.1em;list-style:disc;color:var(--muted);font-size:12.5px}
  .tq-howto-sub li{margin-bottom:3px}
  .tq-howto-foot{margin-top:11px;padding-top:9px;border-top:1px solid var(--panel-line);
                 font-size:12.5px;color:var(--muted)}
  .tq-legend{display:flex;flex-wrap:wrap;gap:7px 14px}
  .tq-legend-i{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
  .tq-legend .tq-hole{position:static;width:20px;height:20px;flex:none}
  .tq-legend [data-c="0"]{--c:var(--tq-c0);--cs:var(--tq-s0)}
  .tq-legend [data-c="1"]{--c:var(--tq-c1);--cs:var(--tq-s1)}
  .tq-legend [data-c="2"]{--c:var(--tq-c2);--cs:var(--tq-s2)}
  .tq-legend [data-c="3"]{--c:var(--tq-c3);--cs:var(--tq-s3)}
  .tq-legend [data-c="4"]{--c:var(--tq-c4);--cs:var(--tq-s4)}
  .tq-legend [data-c="5"]{--c:var(--tq-c5);--cs:var(--tq-s5)}
  .tq-legend [data-g="0"]{--g:var(--tq-c0)}
  .tq-hero{text-align:center;margin:14px 0 4px}
  .tq-art{width:96px;height:96px;display:block;margin:0 auto 8px}
  .tq-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
  .tq-room{padding:9px 12px}
  .tq-room .row{margin-top:0}
  .tq-room-top{flex-wrap:nowrap;gap:8px}
  .tq-room .tq-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
                          font-size:13px}
  .tq-room .tq-room-title b{font-size:15px;color:var(--text)}
  .tq-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .tq-room .mp-act-btn{width:34px;height:34px;font-size:18px}
  .tq-room .mp-subrow{margin-top:5px}
  .tq-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
  .tq-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
  .tq-play{flex:1 1 auto;min-height:0;width:var(--tq-tw);margin:8px auto 0;
           display:flex;flex-direction:column;align-items:center;gap:6px}
  .tq-stage{flex:1 1 auto;min-height:0;width:100%;position:relative;z-index:0;
            display:flex;align-items:center;justify-content:center;
            overflow:auto;scrollbar-width:none;touch-action:none}
  .tq-stage::-webkit-scrollbar{width:0;height:0}
  .tq-zoom{position:absolute;right:6px;bottom:6px;z-index:3;display:flex;gap:6px}
  .tq-zoom button{width:36px;height:36px;border:1px solid var(--panel-line);border-radius:12px;
    background:rgba(0,0,0,.28);color:var(--text);font-family:'Fredoka',sans-serif;font-weight:700;
    font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(6px)}
  .tq-zoom button:active{transform:scale(.9)}
  .tq-zoom button:disabled{opacity:.35;cursor:default}
  :root[data-theme="bubblegum"] .tq-zoom button{background:rgba(255,255,255,.55)}
  @media (max-height:560px){
    .tq-zoom button{width:32px;height:32px;font-size:15px}
  }
  .tq-acts{flex:none;height:44px;display:flex;align-items:center;justify-content:center;
           gap:12px;width:100%;position:relative}
  .tq-board{position:relative;--tq-cell:22px;flex:none;transform-origin:50% 50%}
  .tq-board > *{position:absolute;box-sizing:border-box}
  .tq-tray{left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;
           filter:drop-shadow(0 9px 16px rgba(45,24,0,.46))}
  .tq-tray-wood{fill:url(#tqWoodG);stroke:var(--tq-wood-4);stroke-width:.10;
                stroke-linejoin:round}
  .tq-tray-shade{fill:url(#tqShadeG);stroke:none}
  .tq-tray-gold{fill:none;stroke:var(--tq-gold-2);stroke-width:.15;stroke-linejoin:round}
  .tq-tray-gold2{fill:none;stroke:var(--tq-gold-1);stroke-width:.05;stroke-linejoin:round;opacity:.7}
  .tq-tray-home{stroke:none;fill:var(--cs);opacity:.6}
  .tq-tray-lip{fill:var(--tq-wood-4);stroke:var(--tq-wood-4);stroke-linejoin:round;opacity:.55}
  .tq-tray-pan{fill:url(#tqPanG);stroke:var(--tq-pan-2);stroke-linejoin:round}
  .tq-tray-grid{fill:none;stroke:var(--tq-grid);stroke-width:.045;stroke-linecap:round}
  .tq-board [data-c="0"],.tq-dot[data-c="0"]{--c:var(--tq-c0);--cs:var(--tq-s0);--cd:var(--tq-d0)}
  .tq-board [data-c="1"],.tq-dot[data-c="1"]{--c:var(--tq-c1);--cs:var(--tq-s1);--cd:var(--tq-d1)}
  .tq-board [data-c="2"],.tq-dot[data-c="2"]{--c:var(--tq-c2);--cs:var(--tq-s2);--cd:var(--tq-d2)}
  .tq-board [data-c="3"],.tq-dot[data-c="3"]{--c:var(--tq-c3);--cs:var(--tq-s3);--cd:var(--tq-d3)}
  .tq-board [data-c="4"],.tq-dot[data-c="4"]{--c:var(--tq-c4);--cs:var(--tq-s4);--cd:var(--tq-d4)}
  .tq-board [data-c="5"],.tq-dot[data-c="5"]{--c:var(--tq-c5);--cs:var(--tq-s5);--cd:var(--tq-d5)}
  .tq-board [data-g="0"]{--g:var(--tq-c0)}
  .tq-board [data-g="1"]{--g:var(--tq-c1)}
  .tq-board [data-g="2"]{--g:var(--tq-c2)}
  .tq-board [data-g="3"]{--g:var(--tq-c3)}
  .tq-board [data-g="4"]{--g:var(--tq-c4)}
  .tq-board [data-g="5"]{--g:var(--tq-c5)}
  .tq-hole{appearance:none;-webkit-appearance:none;padding:0;margin:0;cursor:pointer;
           border:0;border-radius:50%;
           background:var(--cs,var(--tq-hole));
           box-shadow:inset 0 1.5px 2.5px rgba(96,64,20,.30),inset 0 -1px 1px rgba(255,255,255,.6),
                      0 .5px 0 rgba(255,255,255,.5)}
  .tq-hole.goal{outline:2px dashed var(--g,var(--accent));outline-offset:1px}
  .tq-hole.spot{background:#fff;border-color:var(--accent);
                box-shadow:0 0 0 2px var(--accent),0 0 10px rgba(255,255,255,.55);
                animation:tqSpot 1.25s ease-in-out infinite}
  .tq-hole.far{border-color:var(--accent-2);
               box-shadow:0 0 0 3px var(--accent-2),0 0 14px rgba(255,255,255,.7)}
  .tq-hole.far[data-best]{background:linear-gradient(180deg,#ffe694,#ffc93c);
               box-shadow:0 0 0 3px var(--accent-2),0 0 16px rgba(255,214,94,.95)}
  @keyframes tqSpot{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
  .tq-hole.far::after{content:attr(data-j);position:absolute;left:50%;bottom:100%;
    transform:translate(-50%,22%);pointer-events:none;white-space:nowrap;
    font:800 calc(var(--tq-cell) * .30)/1 'Fredoka','Nunito',sans-serif;
    padding:calc(var(--tq-cell) * .05) calc(var(--tq-cell) * .12);border-radius:99px;
    background:linear-gradient(180deg,#ffe694,#ffc93c);color:#5a3d02;
    box-shadow:0 1px 2px rgba(58,38,6,.42)}
  .tq-hole.rip::before{content:"";position:absolute;left:50%;top:50%;
    width:100%;height:100%;border-radius:50%;pointer-events:none;
    border:calc(var(--tq-cell) * .085) solid var(--rip,var(--accent));
    animation:tqRip .6s ease-out forwards}
  @keyframes tqRip{
    0%{transform:translate(-50%,-50%) scale(.62);opacity:.9}
    100%{transform:translate(-50%,-50%) scale(2.7);opacity:0}}
  .tq-hole[data-rip="0"]{--rip:var(--tq-c0)}
  .tq-hole[data-rip="1"]{--rip:var(--tq-c1)}
  .tq-hole[data-rip="2"]{--rip:var(--tq-c2)}
  .tq-hole[data-rip="3"]{--rip:var(--tq-c3)}
  .tq-hole[data-rip="4"]{--rip:var(--tq-c4)}
  .tq-hole[data-rip="5"]{--rip:var(--tq-c5)}
  .tq-fx{left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}
  .tq-arc{fill:none;stroke:var(--accent-2);stroke-width:.08;stroke-linecap:round;
          stroke-dasharray:.26 .2;opacity:.7;animation:tqArc 1.15s linear infinite}
  @keyframes tqArc{to{stroke-dashoffset:-.46}}
  .tq-arc.tq-arc-b{stroke:#ffc93c;stroke-width:.105;opacity:1;
                   stroke-dasharray:none;animation:none}
  .tq-arcdot{fill:none;stroke:rgba(58,42,18,.8);stroke-width:.075;
             stroke-dasharray:.15 .12;opacity:.95}
  .tq-tr{fill:none;stroke:#ffd75e;stroke-width:.135;stroke-linecap:round;
         stroke-dasharray:1;animation:tqTrail var(--tq-trd,900ms) linear forwards}
  @keyframes tqTrail{
    0%{stroke-dashoffset:1;opacity:.95}
    72%{opacity:.88}
    100%{stroke-dashoffset:0;opacity:0}}
  .tq-board[data-won="0"] .tq-hole[data-c="0"],
  .tq-board[data-won="1"] .tq-hole[data-c="1"],
  .tq-board[data-won="2"] .tq-hole[data-c="2"],
  .tq-board[data-won="3"] .tq-hole[data-c="3"],
  .tq-board[data-won="4"] .tq-hole[data-c="4"],
  .tq-board[data-won="5"] .tq-hole[data-c="5"]{
    background:#ffe9a8;
    box-shadow:inset 0 1.5px 2.5px rgba(96,64,20,.30),0 0 0 1.5px #ffc93c,
               0 0 7px 1px rgba(255,201,60,.62)}
  .tq-board[data-won="0"] .tq-hole[data-c="0"],
  .tq-board[data-won="1"] .tq-hole[data-c="1"],
  .tq-board[data-won="2"] .tq-hole[data-c="2"],
  .tq-board[data-won="3"] .tq-hole[data-c="3"],
  .tq-board[data-won="4"] .tq-hole[data-c="4"],
  .tq-board[data-won="5"] .tq-hole[data-c="5"]{animation:tqWake 1.25s ease-out var(--tq-wond,0ms) both}
  @keyframes tqWake{
    0%{box-shadow:inset 0 1.5px 2.5px rgba(96,64,20,.30);background:var(--cs,var(--tq-hole))}
    34%{box-shadow:inset 0 1.5px 2.5px rgba(96,64,20,.30),0 0 0 2.4px #fff2bd,
                   0 0 16px 5px rgba(255,201,60,.95);background:#fffbe8}
    100%{box-shadow:inset 0 1.5px 2.5px rgba(96,64,20,.30),0 0 0 1.5px #ffc93c,
                    0 0 7px 1px rgba(255,201,60,.62);background:#ffe9a8}}
  .tq-board[data-won="0"] .tq-tray-home[data-c="0"],
  .tq-board[data-won="1"] .tq-tray-home[data-c="1"],
  .tq-board[data-won="2"] .tq-tray-home[data-c="2"],
  .tq-board[data-won="3"] .tq-tray-home[data-c="3"],
  .tq-board[data-won="4"] .tq-tray-home[data-c="4"],
  .tq-board[data-won="5"] .tq-tray-home[data-c="5"]{
    fill:#ffd75e;opacity:.8;animation:tqWakePan 1.25s ease-out var(--tq-wond,0ms) both}
  @keyframes tqWakePan{
    0%{opacity:.6}
    34%{opacity:1}
    100%{opacity:.8}}
  .tq-pc{left:0;top:0;border-radius:50%;pointer-events:auto;cursor:pointer;z-index:5}
  .tq-ball{position:absolute;inset:0;border-radius:50%;pointer-events:none;
           background:
             radial-gradient(ellipse 17% 12% at 30% 18%,rgba(255,255,255,.98),rgba(255,255,255,.72) 48%,rgba(255,255,255,0) 100%),
             radial-gradient(circle at 34% 37%,#33260f 0 8%,rgba(51,38,15,0) 8.9%),
             radial-gradient(circle at 66% 37%,#33260f 0 8%,rgba(51,38,15,0) 8.9%),
             radial-gradient(circle at 50% 66%,#fffdf5 0 34%,rgba(255,255,255,.32) 36%,rgba(255,255,255,0) 39%),
             radial-gradient(ellipse 44% 28% at 50% 93%,rgba(255,255,255,.30),rgba(255,255,255,0) 74%),
             radial-gradient(ellipse 50% 50% at 33% 26%,rgba(255,255,255,.44),rgba(255,255,255,.05) 30%,
                             rgba(255,255,255,0) 46%,rgba(0,0,0,.03) 66%,rgba(0,0,0,.30) 100%);
           background-color:var(--c);
           box-shadow:0 3px 5px -1px rgba(58,38,6,.44),0 0 0 1.4px rgba(255,255,255,.9)}
  .tq-cap{position:absolute;inset:0;pointer-events:none}
  .tq-cap::before,.tq-cap::after{content:"";position:absolute;display:none;background:var(--c);
    filter:brightness(.66) saturate(1.18) drop-shadow(0 0 .5px rgba(255,255,255,.85))}
  .tq-pc[data-c="0"] .tq-cap::before,.tq-pc[data-c="0"] .tq-cap::after{display:block;
    top:2%;width:44%;height:34%}
  .tq-pc[data-c="0"] .tq-cap::before{left:0;
    clip-path:polygon(0% 52%,10% 16%,28% 36%,44% 6%,62% 30%,82% 12%,100% 44%,100% 100%,0% 100%)}
  .tq-pc[data-c="0"] .tq-cap::after{right:0;
    clip-path:polygon(100% 52%,90% 16%,72% 36%,56% 6%,38% 30%,18% 12%,0% 44%,0% 100%,100% 100%)}
  .tq-pc[data-c="1"] .tq-cap::before{display:block;left:14%;top:-13%;width:64%;height:46%;
    clip-path:polygon(0% 100%,8% 52%,22% 66%,26% 26%,44% 44%,54% 6%,68% 32%,84% 18%,100% 62%,92% 100%)}
  .tq-pc[data-c="2"] .tq-cap::before,.tq-pc[data-c="2"] .tq-cap::after{display:block;
    top:-1%;width:31%;height:37%}
  .tq-pc[data-c="2"] .tq-cap::before{left:7%;clip-path:polygon(30% 0%,100% 100%,0% 88%)}
  .tq-pc[data-c="2"] .tq-cap::after{right:7%;clip-path:polygon(70% 0%,100% 88%,0% 100%)}
  .tq-pc[data-c="3"] .tq-cap::before,.tq-pc[data-c="3"] .tq-cap::after{display:block;
    top:0;width:34%;height:36%}
  .tq-pc[data-c="3"] .tq-cap::before{left:1%;
    clip-path:polygon(62% 6%,84% 20%,46% 58%,30% 100%,14% 88%,34% 46%,20% 34%)}
  .tq-pc[data-c="3"] .tq-cap::after{right:1%;
    clip-path:polygon(38% 6%,16% 20%,54% 58%,70% 100%,86% 88%,66% 46%,80% 34%)}
  .tq-pc[data-c="4"] .tq-cap::before,.tq-pc[data-c="4"] .tq-cap::after{display:block;
    top:3%;width:34%;height:34%;border-radius:50%}
  .tq-pc[data-c="4"] .tq-cap::before{left:2%}
  .tq-pc[data-c="4"] .tq-cap::after{right:2%}
  .tq-pc[data-c="5"] .tq-cap::before{display:block;left:40.5%;top:-12%;width:19%;height:45%;
    clip-path:polygon(50% 0%,100% 100%,0% 100%)}
  .tq-pn{position:absolute;left:0;right:0;top:66%;transform:translateY(-50%);text-align:center;
         font-family:'Fredoka',sans-serif;font-weight:800;color:var(--cd,#4a3a22);
         font-size:calc(var(--tq-cell) * .28);line-height:1;pointer-events:none;
         text-shadow:0 .5px 0 rgba(255,255,255,.9)}
  .tq-pc.mine{z-index:6}
  .tq-pc::after{content:"";position:absolute;inset:-1px;border-radius:50%;pointer-events:none;
                box-shadow:0 0 0 1.5px rgba(255,255,255,.95),0 0 0 2.6px rgba(74,58,34,.5);
                opacity:0;transition:opacity .2s linear}
  .tq-board[data-turn="0"] .tq-pc[data-c="0"]::after,
  .tq-board[data-turn="1"] .tq-pc[data-c="1"]::after,
  .tq-board[data-turn="2"] .tq-pc[data-c="2"]::after,
  .tq-board[data-turn="3"] .tq-pc[data-c="3"]::after,
  .tq-board[data-turn="4"] .tq-pc[data-c="4"]::after,
  .tq-board[data-turn="5"] .tq-pc[data-c="5"]::after{opacity:1;animation:tqTurn 2.1s ease-in-out infinite}
  @keyframes tqTurn{0%,100%{opacity:.45}50%{opacity:1}}
  .tq-pc.on{z-index:9;box-shadow:0 3px 6px rgba(58,38,6,.5),
                                0 0 0 2.4px #fff,0 0 12px 3px var(--accent);
            animation:tqPick 1.1s ease-in-out infinite}
  @keyframes tqPick{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}
  .tq-pc.wait{opacity:.55;animation:tqWait .9s ease-in-out infinite}
  @keyframes tqWait{0%,100%{opacity:.55}50%{opacity:.85}}
  .tq-pc.home{box-shadow:0 3px 5px -1px rgba(58,38,6,.46),
                         0 0 0 1.6px #fff,0 0 0 3.4px #ffc93c,0 0 8px 1px rgba(255,186,50,.55)}
  .tq-pc.fly{z-index:10;
             filter:drop-shadow(0 calc(4px + var(--tq-lf,0) * 8px)
                                  calc(5px + var(--tq-lf,0) * 9px) rgba(0,0,0,.42))}
  .tq-pc.fly .tq-ball{box-shadow:0 0 0 1.4px rgba(255,255,255,.9)}
  .tq-hint{flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--muted);
           line-height:1.35;text-align:left}
  .tq-cdwrap{display:flex;align-items:center;justify-content:center;flex:none}
  .tq-cd{position:relative;flex:none;width:34px;height:34px;display:grid;place-items:center}
  .tq-cd svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .tq-cd circle{fill:none;stroke-width:4;stroke-linecap:round}
  .tq-cdbg{stroke:rgba(255,255,255,.16)}
  .tq-cdfg{stroke:var(--accent-2);stroke-dasharray:107;stroke-dashoffset:0;
    animation:m16cd var(--cd-dur,40s) linear var(--cd-delay,0s) forwards}
  .tq-cdn{position:relative;font:800 14px/1 'Fredoka','Nunito',sans-serif;color:var(--text)}
  .tq-cdn.tq-beat{animation:m16beat .34s ease-out}
  .tq-cd.tq-hot .tq-cdfg{stroke:var(--daub)}
  .tq-cd.tq-hot .tq-cdn{color:var(--daub)}
  .tq-cd.tq-hot{animation:m16cdhot .9s ease-in-out infinite}
  @media (prefers-reduced-motion:reduce){
    .tq-cd.tq-hot{animation:none}
    .tq-cdn.tq-beat{animation:none}
    .tq-hole.spot{animation:none}
    .tq-pc.on{animation:none}
    .tq-board[data-turn] .tq-pc::after{animation:none}
    .tq-arc{animation:none}
    .tq-hole.rip::before{animation:none;display:none}
    .tq-ct.tq-last{animation:none}
    .tq-tr{display:none}
    .tq-board[data-won] .tq-hole,.tq-board[data-won] .tq-tray-home{animation:none}
  }
  .tq-dot{display:inline-block;width:11px;height:11px;border-radius:50%;
          background:
            radial-gradient(ellipse 30% 22% at 32% 24%,rgba(255,255,255,.96),rgba(255,255,255,0) 72%),
            radial-gradient(ellipse 50% 50% at 34% 27%,rgba(255,255,255,.42),rgba(255,255,255,0) 48%,rgba(0,0,0,.34) 100%);
          background-color:var(--c);
          box-shadow:0 0 0 1.5px rgba(255,255,255,.85);flex:none}
  .tq-ct{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;
         color:var(--muted);background:rgba(0,0,0,.06);border-radius:8px;padding:1px 5px}
  .tq-ct-ic{width:8px;height:8px;border-radius:50%;border:2px solid currentColor;box-sizing:border-box}
  .tq-ct.tq-last{color:#c8890c;background:rgba(255,201,60,.22);
                 animation:tqLast 1.5s ease-in-out infinite}
  @keyframes tqLast{0%,100%{opacity:1}50%{opacity:.55}}
  .tq-jn{color:var(--accent-2);white-space:nowrap}
  .tq-result{margin:2px 0 12px}
  .tq-rank{width:100%;border-collapse:collapse;font-size:13px}
  .tq-rank th{font-size:11px;color:var(--muted);font-weight:800;padding:3px 4px;
              border-bottom:1px solid rgba(0,0,0,.10)}
  .tq-rank td{padding:5px 4px;border-bottom:1px solid rgba(0,0,0,.06);text-align:center}
  .tq-rank td:nth-child(2){text-align:left;display:flex;align-items:center;gap:5px}
  .tq-rank tr.me{background:rgba(0,0,0,.05);font-weight:800}
  .tq-rank tr.top td{color:var(--accent-2)}
  .tq-plus{color:var(--accent-2)}
  .tq-rank-foot{margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
  .tq-react-row{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
  body.solo-on .tq-react-row{display:none}
  body.tq-mp .tq-room,body.tq-solo .tq-room{width:min(92vw,560px)}
  body.tq-mp .topbar,body.tq-solo .topbar{width:min(92vw,560px)}
  body.tq-big{--tq-tw:min(100vw,700px)}
  body.tq-big .tq-play{margin-top:2px}
  @media (max-height:620px){
    .tq-home{overflow-y:auto;overscroll-behavior:contain}
    .tq-home > .tq-pick{flex:none}
    .tq-howto{min-height:0;overflow:visible;box-shadow:none}
    .tq-hero{margin:6px 0 2px}
    .tq-art{width:66px;height:66px}
    .tq-play{gap:4px;margin-top:4px}
    .tq-room{padding:6px 10px}
    .tq-room .mp-subrow,.tq-room-foot{margin-top:3px}
    .tq-acts{height:38px}
    .tq-cd{width:30px;height:30px}
    .tq-cdn{font-size:12.5px}
    .tq-hint{font-size:12px;max-height:2.6em}
  }
  @media (orientation:landscape) and (max-height:560px){
    .tq-play{flex-direction:row;align-items:center;gap:10px}
    .tq-acts{flex:none;width:150px;min-height:0;height:100%;flex-direction:column;
             justify-content:center;gap:10px}
    .tq-hint{flex:none;text-align:center;font-size:12px;max-height:none}
  }
  .qr-open{flex:none;display:inline-flex;align-items:center;gap:5px;
    padding:3px 9px;border-radius:999px;cursor:pointer;
    border:1px solid var(--panel-line);background:rgba(255,255,255,.06);
    color:var(--text);font-family:inherit;font-size:12px;line-height:1.5;
    transition:background .15s,transform .1s}
  .qr-open:active{transform:scale(.94)}
  .qr-open:hover{background:rgba(255,255,255,.12)}
  .qr-ico{width:14px;height:14px;flex:none}
  .qr-ico-ring{fill:none;stroke:currentColor;stroke-width:2.2}
  .qr-ico-dot{fill:currentColor}
  body.is-big .qr-open-t{display:none}
  body.is-big .qr-open{padding:3px 7px}
  .qr-card{max-width:330px}
  .qr-room{text-align:center;font-size:13px;opacity:.78;margin-bottom:12px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .qr-canvas{display:block;margin:0 auto;background:#fff;
    padding:8px;border-radius:12px;image-rendering:pixelated;
    box-shadow:0 6px 18px -8px rgba(0,0,0,.55)}
  .qr-tip{text-align:center;font-size:12px;opacity:.7;margin-top:12px;line-height:1.6}
  .qr-acts{display:flex;gap:10px;margin-top:16px}
  .qr-btn{flex:1;min-width:0}
  .set-row .fb-open{flex:0 0 auto;min-width:0;width:auto;margin-top:0;
    padding:9px 16px;font-size:14px;border-radius:12px;white-space:nowrap}
  .fb-card{max-width:none;width:min(92vw,420px)}
  .fb-seg{margin-bottom:12px}
  .fb-ta{display:block;width:100%;min-height:104px;resize:vertical;
    background:rgba(255,255,255,.12);border:1px solid var(--panel-line);
    border-radius:12px;padding:11px 14px;color:var(--text);
    font-family:'Nunito';font-weight:700;font-size:16px;line-height:1.6;outline:none}
  .fb-ta::placeholder{color:var(--muted);font-weight:700}
  .fb-ta:focus{border-color:var(--accent)}
  .fb-count{text-align:right;font-size:11.5px;font-weight:800;color:var(--muted);
    margin:5px 2px 10px}
  .fb-count.warn{color:var(--accent)}
  .fb-contact{width:100%;font-size:16px}
  .fb-diag-t{display:flex;align-items:center;gap:8px;width:100%;margin-top:12px;
    padding:9px 12px;border:1px dashed var(--panel-line);border-radius:12px;
    background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;
    font-family:'Nunito';font-weight:700;font-size:12px;text-align:left;
    transition:background .15s}
  .fb-diag-t:hover{background:rgba(255,255,255,.09)}
  .fb-diag-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fb-diag-lbl b{font-weight:800}
  .fb-caret{flex:none;font-size:14px;line-height:1}
  .fb-diag{margin:8px 0 0;padding:10px 12px;border-radius:12px;
    background:rgba(0,0,0,.16);border:1px solid var(--panel-line);
    color:var(--text);font-family:ui-monospace,Menlo,Consolas,monospace;
    font-size:11px;line-height:1.7;white-space:pre-wrap;word-break:break-word;
    max-height:34vh;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .fb-acts{display:flex;gap:10px;margin-top:16px}
  .fb-acts .fb-btn{flex:1;min-width:0;width:auto;margin-top:0}
  .fb-acts .fb-btn:disabled{opacity:.55;cursor:default}
  @media (min-width:700px) and (min-height:640px){
    .scroll-area,.panel,.mp-panel,.board-wrap,.actions,.status,
    .room-tabs,.primary-bar,.solo-head{width:min(92vw,680px)}
    .topbar{width:min(92vw,680px)}
    #fillRow{width:min(92vw,680px)}
    .gmk-stage{width:min(92vw,680px)}
    .sdk-play,.cy-play{width:min(92vw,680px)}
    .grid{--board:min(92vw,680px,max(160px,var(--boardpx,680px)))}
    .sdk-stage{height:min(100%,92vw,640px)}
    .mj-play{width:min(96vw,880px)}
    :root{--sv-tw:min(96vw,780px)}
    body.sv-mp .sv-room,body.sv-solo .sv-room{width:min(96vw,780px)}
    body.sv-mp .topbar,body.sv-solo .topbar{width:min(96vw,780px)}
    :root{--b2-tw:min(96vw,780px)}
    body.b2-mp .b2-room,body.b2-solo .b2-room{width:min(96vw,780px)}
    body.b2-mp .topbar,body.b2-solo .topbar{width:min(96vw,780px)}
    :root{--bj-tw:min(96vw,860px)}
    body.bj-mp .bj-room,body.bj-solo .bj-room{width:min(96vw,860px)}
    body.bj-mp .topbar,body.bj-solo .topbar{width:min(96vw,860px)}
    .un-play{width:min(96vw,860px)}
    body.un-mp .un-room,body.un-solo .un-room{width:min(96vw,860px)}
    body.un-mp .topbar,body.un-solo .topbar{width:min(96vw,860px)}
    .dc-play{width:min(96vw,880px)}
    body.dc-on .dc-room{width:min(96vw,880px)}
    body.dc-on .topbar{width:min(96vw,880px)}
    .dw-play{width:min(96vw,900px)}
    body:has(.dw-play:not(.hidden)) .dw-room,
    body:has(.dw-play:not(.hidden)) .topbar{width:min(96vw,900px)}
    :root{--fc-tw:min(96vw,700px)}
    body.fc-mp .fc-room,body.fc-solo .fc-room{width:min(96vw,700px)}
    body.fc-mp .topbar,body.fc-solo .topbar{width:min(96vw,700px)}
    :root{--tq-tw:min(96vw,700px)}
    body.tq-mp .tq-room,body.tq-solo .tq-room{width:min(96vw,700px)}
    body.tq-mp .topbar,body.tq-solo .topbar{width:min(96vw,700px)}
    .gc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  }
  @media (min-width:700px) and (min-height:720px){
    :root{--sv-cw:clamp(27px,7.6vw,52px)}
    :root{--b2-cw:clamp(27px,7.6vw,52px)}
    :root{--bj-cw:clamp(44px,12.5vw,74px)}
    .un-play{--un-cw:clamp(44px,12.5vw,70px)}
    .gc-art{width:58px;height:58px}
    .gc-name{font-size:17px}
  }
body.is-big .topbar{display:none}
body.is-big :is(.un-room,.b2-room,.bj-room,.dc-room,.gmk-room,.sdk-room,.mj-room,.sv-room,.fc-room,.tq-room,.cy-room,.blk-room,.bub-room,.lf-room){
  display:flex;align-items:center;gap:8px;padding-top:6px;padding-bottom:6px}
body.is-big :is(.un-room,.b2-room,.bj-room,.dc-room,.gmk-room,.sdk-room,.mj-room,.sv-room,.fc-room,.tq-room,.cy-room,.blk-room,.bub-room,.lf-room) > .row{
  flex:none;order:3;margin-top:0}
body.is-big .mp-subrow{order:2;flex:none;margin-top:0;font-size:10px;max-width:6em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.is-big :is(.un-room-foot,.b2-room-foot,.bj-room-foot,.dc-room-foot,.gmk-room-foot,.sdk-room-foot,.mj-room-foot,.sv-room-foot,.fc-room-foot,.tq-room-foot,.cy-room-foot,.blk-room-foot,.bub-room-foot,.lf-room-foot){
  order:1;flex:1 1 0;min-width:0;margin-top:0}
body.is-big .mp-leave-btn{display:none}
body.is-big .mp-goal{display:none}
body.is-big :is(.un-room-title,.b2-room-title,.bj-room-title,.dc-room-title,.gmk-room-title,.sdk-room-title,.mj-room-title,.sv-room-title,.fc-room-title,.tq-room-title,.cy-room-title,.blk-room-title,.bub-room-title,.lf-room-title){
  display:none}
body.is-big .tools-docked{display:none}
body.is-big .row:has(> .tools-docked){padding-right:0}
body.is-big .row:has(> .tools-docked .tk-btn){padding-right:0}
body.is-big .mp-chip{padding:2px 6px;gap:4px;font-size:11px}
body.is-big .you-badge{display:none}
body.is-big .mp-players{
  -webkit-mask-image:linear-gradient(to right,#000 90%,transparent);
  mask-image:linear-gradient(to right,#000 90%,transparent)}
.gmk-bigbtn,.sdk-bigbtn,.mj-bigbtn,.sv-bigbtn,.cy-bigbtn,
.un-bigbtn,.b2-bigbtn,.bj-bigbtn,.dc-bigbtn,.fc-bigbtn,.tq-bigbtn{font-family:'Nunito',sans-serif;font-weight:800}
.gmk-bigbtn.on,.sdk-bigbtn.on,.mj-bigbtn.on,.sv-bigbtn.on,.cy-bigbtn.on,
.un-bigbtn.on,.b2-bigbtn.on,.bj-bigbtn.on,.dc-bigbtn.on,.fc-bigbtn.on,.tq-bigbtn.on{
  border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,.16)}
body.is-big :is(.gmk-solobar,.sdk-solobar,.mj-solobar,.cy-solobar){padding-top:6px;padding-bottom:6px}
body.is-big :is(.gmk-lvtag,.sdk-lvtag,.mj-lvtag,.cy-lvtag){display:none}
body.is-big .gmk-rec,
body.is-big .sdk-timer,
body.is-big .mj-timer,
body.is-big .cy-timer{margin-left:auto}
:root{
  --blk-tw:560px;
  --blk-key:54px;
  --blk-bar:78px;
  --blk-glass:rgba(10,12,26,.34);
  --blk-line:rgba(255,255,255,.12);
  --blk-grid:rgba(255,255,255,.055);
}
:root[data-theme="bubblegum"]{ --blk-glass:rgba(48,14,38,.20); --blk-line:rgba(120,50,100,.22);
                               --blk-grid:rgba(96,40,84,.13); }
:root[data-theme="meadow"]{ --blk-glass:rgba(10,26,14,.32); }
:root[data-theme="arcade"]{ --blk-glass:rgba(0,0,0,.46); --blk-line:rgba(255,230,0,.22);
                            --blk-grid:rgba(255,230,0,.08); }
.blk-bigbtn{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:15px}
.blk-bigbtn.on{background:var(--accent);color:#fff}
.blk-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
           line-height:1.05;letter-spacing:.5px;
           background:linear-gradient(135deg,var(--accent),var(--accent-2));
           -webkit-background-clip:text;background-clip:text;color:transparent}
.blk-home{display:flex;flex-direction:column}
.blk-pick{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.blk-hero{text-align:center;margin:14px 0 4px}
.blk-art{width:96px;height:96px;display:block;margin:0 auto 8px}
.blk-cart{}
.blk-tag{font-family:'Fredoka','Nunito',sans-serif;font-weight:600;font-size:14.5px;color:var(--text)}
.blk-intro{margin-top:14px;flex:0 1 auto;min-height:120px;overflow-y:auto;overscroll-behavior:contain;
           -webkit-mask-image:linear-gradient(#000 calc(100% - 14px),rgba(0,0,0,.35));
           mask-image:linear-gradient(#000 calc(100% - 14px),rgba(0,0,0,.35))}
.blk-howto{padding:14px 14px 12px;border-radius:14px;
           background:rgba(255,255,255,.05);border:1px solid var(--panel-line);
           text-align:left;font-size:13px;line-height:1.62;color:var(--text)}
.blk-warn{display:inline-block;margin-top:4px;color:var(--accent-2);font-weight:800}
.blk-atk{margin:7px 0 8px;padding:6px 4px 5px;border-radius:12px;
         background:rgba(0,0,0,.16);border:1px solid var(--panel-line)}
.blk-atk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.blk-atk-it{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}
.blk-atk-it svg{flex:none}
.blk-atk-it span{font-size:10.5px;font-weight:700;line-height:1.3;color:var(--text);
                 opacity:.86;text-align:center;white-space:nowrap}
.blk-atk-it b{font-weight:800;opacity:1;color:var(--muted)}
.blk-atk-hot b{color:#ffd93d}
.blk-atk-lit{fill:var(--accent)}
.blk-atk-dim{fill:rgba(255,255,255,.11)}
.blk-atk-garb{fill:#8b8fa8}
.field-sub{font-size:11px;font-weight:600;opacity:.85;margin-left:4px}
.blk-demo{display:flex;align-items:center;justify-content:center;gap:10px;
          margin:2px 0 6px;padding:8px 10px;border-radius:12px;
          background:rgba(0,0,0,.20);border:1px solid var(--panel-line)}
.blk-demo-cv{display:block;border-radius:4px;background:rgba(0,0,0,.30);
             box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.blk-demo-mid{min-width:62px;text-align:center;font-size:10.5px;font-weight:800;
              color:var(--text);opacity:.45;transition:opacity .12s linear,color .12s linear}
.blk-demo-fire{opacity:1;color:#ff5d6c}
.blk-demo-cap{margin:0 0 10px;font-size:11.5px;line-height:1.5;opacity:.8;text-align:center}
.blk-demo-cap b{font-weight:800;color:var(--accent);opacity:1}
.blk-fnote{margin-top:6px;font-size:12px;line-height:1.5;color:var(--text);opacity:.82;
           text-align:left}
.blk-fnote b{opacity:1;font-weight:800;color:var(--accent)}
.blk-setup-summary{margin:6px 0 12px;padding:9px 12px;border-radius:12px;
  background:rgba(255,255,255,.07);color:var(--text);font-size:13px;font-weight:800;text-align:center}
.blk-setup-help,.blk-setup-more{border:1px solid var(--panel-line);border-radius:14px;
  margin:10px 0;background:rgba(255,255,255,.035)}
.blk-setup-help > summary,.blk-setup-more > summary{cursor:pointer;padding:12px 14px;
  color:var(--text);font-size:14px;font-weight:800;list-style:none}
.blk-setup-help > summary::-webkit-details-marker,.blk-setup-more > summary::-webkit-details-marker{display:none}
.blk-setup-help > summary::after,.blk-setup-more > summary::after{content:"⌄";float:right;color:var(--accent)}
.blk-setup-help[open] > summary::after,.blk-setup-more[open] > summary::after{transform:rotate(180deg)}
.blk-setup-more > summary span{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-top:2px}
.blk-setup-help .blk-demo,.blk-setup-help .blk-demo-cap,.blk-setup-help .hint{margin-left:10px;margin-right:10px}
.blk-setup-help .hint{margin-bottom:10px}
.blk-setup-more > .field{margin:0 12px 12px}
.blk-setup-more .blk-fnote{display:none}
.blk-setup-more .field:focus-within > .blk-fnote,.blk-setup-more .field:hover > .blk-fnote{display:block}
.blk-score-actions{border-top:1px solid var(--panel-line);padding-top:12px;text-align:center}
.blk-page #setVeil .set-card{background-color:var(--bg1);
  background-image:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,0) 48%),
    linear-gradient(0deg,var(--panel),var(--panel)),linear-gradient(180deg,var(--bg1),var(--bg2))}
.blk-page #setVeil:has(#swBgm[aria-checked="false"]) #bgmTrackRow,
.blk-page #setVeil:has(#swBgm[aria-checked="false"]) #bgmVolRow{display:none}
.blk-voice-group > summary{cursor:pointer;list-style:none;padding-bottom:11px}
.blk-voice-group > summary::-webkit-details-marker{display:none}
.blk-voice-group > summary::after{content:"⌄";float:right;color:var(--accent)}
.blk-voice-group[open] > summary::after{transform:rotate(180deg)}
.blk-voice-group > summary span{font-family:'Nunito',sans-serif;font-size:11px;
  letter-spacing:0;color:var(--muted);font-weight:700;margin-left:6px}
.blk-custom-lineup{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.blk-custom-item{display:flex;align-items:center;gap:8px;justify-content:space-between}
.blk-custom-lbl{font-size:12.5px;font-weight:700;color:var(--text);white-space:nowrap;min-width:58px;opacity:.9}
.blk-custom-item .seg{flex:1;min-width:0}
.blk-custom-item .seg button{font-size:12px;padding:6px 2px}
.blk-gest{margin-top:10px;padding:10px 12px 11px;border-radius:14px;
          background:rgba(255,255,255,.05);border:1px solid var(--panel-line);text-align:left}
.blk-gest-head{font-size:12px;font-weight:700;color:var(--text);opacity:.88;
               line-height:1.45;margin-bottom:9px}
.blk-gest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 6px}
.blk-gest-it{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.blk-gest-it svg{color:var(--accent-2);flex:none}
.blk-gest-it span{font-size:10.5px;font-weight:700;color:var(--text);opacity:.72;line-height:1.25}
.blk-gest-it b{display:block;font-size:12px;font-weight:800;opacity:1}
.blk-gest-kb{margin-top:10px;font-size:11px;color:var(--text);opacity:.7;line-height:1.55}
.blk-helpbtn{font-family:'Fredoka','Nunito',sans-serif;font-weight:700}
.blk-room{padding:9px 12px}
.blk-room .row{margin-top:0}
.blk-room-top{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.blk-room .blk-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blk-room .blk-room-title b{font-size:15px;color:var(--text)}
.blk-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
.blk-room .mp-act-btn{width:34px;height:34px;font-size:18px}
.blk-room .mp-subrow{margin-top:5px}
.blk-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
.blk-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
.blk-room .mp-goal{color:var(--text);font-size:12px;font-weight:700}
.blk-play{flex:1 1 auto;min-height:0;width:100%;max-width:var(--blk-tw);margin:6px auto 0;
          display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;
          touch-action:none;
          user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.blk-stage{flex:1 1 auto;min-height:0;width:100%;position:relative;
           display:flex;align-items:center;justify-content:center;
           overflow:hidden}
body.blk-rush .blk-stage{animation:blk-rush-pulse 1.1s ease-in-out infinite}
@keyframes blk-rush-pulse{
  0%,100%{box-shadow:inset 0 0 0 2px rgba(255,93,108,.30),inset 0 0 26px rgba(255,93,108,.14)}
  50%    {box-shadow:inset 0 0 0 2px rgba(255,93,108,.72),inset 0 0 30px rgba(255,93,108,.34)}
}
body.blk-rush #blkStatTime{color:#ff5d6c}
@media (prefers-reduced-motion:reduce){
  body.blk-rush .blk-stage{animation:none;box-shadow:inset 0 0 0 2px rgba(255,93,108,.55)}
}
.blk-foes{position:absolute;right:0;top:0;bottom:0;width:78px;z-index:2;
          display:flex;flex-direction:column;gap:8px;
          align-items:center;justify-content:center;pointer-events:none}
.blk-foes-over{bottom:auto;justify-content:flex-start;padding-top:2px}
.blk-foes-over .blk-foe{background:rgba(12,10,22,.42);
                        -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.blk-foe{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;
         padding:3px;border-radius:10px;box-shadow:inset 0 0 0 1.5px transparent;
         transition:box-shadow .15s linear,opacity .2s linear;cursor:pointer;
         pointer-events:auto}
.blk-foe-cv{display:block;border-radius:5px;background:rgba(0,0,0,.30);
            box-shadow:inset 0 0 0 1px var(--blk-line)}
.blk-foe-name{font-size:10.5px;font-weight:800;color:var(--text);max-width:100%;
              overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}
.blk-foe-target{box-shadow:inset 0 0 0 2.5px var(--accent-2)}
.blk-foe-target .blk-foe-name{color:var(--accent-2);font-weight:900}
.blk-foe-target::after{content:"🎯";position:absolute;right:-2px;top:-4px;font-size:13px;
                       line-height:1;pointer-events:none;
                       text-shadow:0 1px 3px rgba(0,0,0,.6)}
.blk-foe:focus-visible{outline:none;box-shadow:inset 0 0 0 2.5px var(--accent-1, #ffd93d)}
.blk-foe-target:focus-visible{box-shadow:inset 0 0 0 2.5px var(--accent-2), inset 0 0 0 4.5px var(--accent-1, #ffd93d)}
.blk-foe-away{opacity:.42}
.blk-foe-lag{opacity:.72}
.blk-foe.blk-foe-peek{opacity:.18;pointer-events:none}
.blk-foe-danger{animation:blk-foe-pulse .68s ease-in-out infinite}
@keyframes blk-foe-pulse{
  0%,100%{box-shadow:inset 0 0 0 2.5px rgba(255,93,108,.55)}
  50%    {box-shadow:inset 0 0 0 2.5px rgba(255,93,108,1)}
}
@media (prefers-reduced-motion:reduce){
  .blk-foe-danger{animation:none;box-shadow:inset 0 0 0 2.5px rgba(255,93,108,.9)}
}
.blk-fx{position:absolute;left:0;top:0;pointer-events:none;z-index:3}
.blk-cast{position:absolute;left:0;right:0;top:15%;z-index:4;pointer-events:none;
          display:flex;flex-direction:column;align-items:center;gap:5px;padding:0 12px}
.blk-cast-it{max-width:100%;padding:5px 13px;border-radius:999px;text-align:center;
             font-weight:800;font-size:13px;line-height:1.35;color:#fff;
             background:rgba(12,10,22,.78);box-shadow:0 3px 14px rgba(0,0,0,.4);
             -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
             animation:blk-cast-in .22s ease-out both}
@keyframes blk-cast-in{from{opacity:0;transform:translateY(7px) scale(.94)}
                         to{opacity:1;transform:none}}
.blk-cast-ko{font-size:17px;font-family:'Fredoka','Nunito',sans-serif;
             padding:7px 17px;color:#ffd93d;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.blk-cast-streak{font-size:18px;font-family:'Fredoka','Nunito',sans-serif;
                 padding:7px 18px;color:#0c0a16;background:#ffd93d;
                 box-shadow:0 4px 20px rgba(255,217,61,.45)}
.blk-cast-warn{color:#ff9aa4}
body.blk-spec .blk-wrap,
body.blk-spec .blk-pad,
body.blk-spec .blk-hud{display:none}
body.blk-spec .blk-foes{position:static;width:auto!important;flex:1 1 auto;align-self:stretch;
                        flex-direction:row;flex-wrap:wrap;align-items:center;
                        justify-content:center;pointer-events:auto}
body.blk-spec .blk-foe-cv{width:auto;height:auto}
body.blk-spec .blk-foe{cursor:default;pointer-events:none}
.blk-hud{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;
         width:100%;height:46px}
.blk-stats{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:14px}
.blk-mini{flex:none;display:block}
.blk-stat{display:flex;flex-direction:column;align-items:center;line-height:1.12;min-width:50px}
.blk-stat span{font-size:10px;font-weight:700;letter-spacing:.10em;color:var(--text);opacity:.72}
.blk-stat b{font-family:'Fredoka','Nunito',sans-serif;font-size:19px;color:var(--text)}
.blk-stat-tgt{max-width:88px;min-width:0}
.blk-stat-tgt b{font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;
                white-space:nowrap;display:block}
.blk-stat-lock b{color:var(--accent-2)}
.blk-goal{margin-left:6px;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;
          background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px var(--blk-line);
          color:var(--text);white-space:nowrap}
.blk-wrap{flex:none;display:flex;align-items:stretch;justify-content:center;gap:8px}
.blk-gauge{position:relative;width:10px;flex:none;border-radius:6px;
           background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--blk-line);
           opacity:0;transition:opacity .25s ease}
.blk-gauge-num{position:absolute;bottom:100%;left:50%;transform:translate(-50%,-3px);
               font-family:'Fredoka','Nunito',sans-serif;font-size:11px;font-weight:800;
               line-height:1;color:#ff9f43;text-shadow:0 1px 3px rgba(0,0,0,.7);
               pointer-events:none;white-space:nowrap}
.blk-gauge-hot .blk-gauge-num{color:#ff5d6c;font-size:12px}
.blk-gauge-on{opacity:1}
.blk-gauge-fill{position:absolute;left:0;right:0;bottom:0;height:100%;border-radius:5px;
                transform-origin:bottom;transform:scaleY(0);
                background:linear-gradient(180deg,#ff9f43,#ff5d6c);
                transition:transform .12s linear}
.blk-gauge-hot .blk-gauge-fill{background:linear-gradient(180deg,#ff5d6c,#ff2d55);
                               animation:blk-pulse .62s ease-in-out infinite}
@keyframes blk-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.blk-main{display:block;border-radius:14px;background:var(--blk-glass);
          -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
          box-shadow:inset 0 0 0 1px var(--blk-line),0 12px 30px rgba(0,0,0,.34);
          touch-action:none}
.blk-paused{position:absolute;left:0;right:0;top:34%;text-align:center;pointer-events:none;
            font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:26px;
            color:var(--text);text-shadow:0 2px 12px rgba(0,0,0,.65)}
.blk-pad{flex:none;width:100%;height:var(--blk-bar);padding:2px 4px 0;
         display:flex;align-items:flex-start;justify-content:space-between;
         pointer-events:none;z-index:2}
.blk-pad-l,.blk-pad-r{display:flex;flex-direction:row;align-items:center;
                      gap:14px;pointer-events:auto}
.blk-pad-r{gap:28px}
body.blk-swap .blk-pad-r{flex-direction:row-reverse}
.blk-pad-row{display:flex;align-items:center;gap:14px}
body.blk-side .blk-pad{position:absolute;inset:0;height:auto;padding:0;display:block}
body.blk-side .blk-pad-l,
body.blk-side .blk-pad-r{position:absolute;bottom:8px}
body.blk-side .blk-pad-l{left:4px}
body.blk-side .blk-pad-r{right:4px}
.blk-key{position:relative;width:var(--blk-key);height:var(--blk-key);border:0;border-radius:50%;
         background:radial-gradient(120% 120% at 50% 16%,
                    rgba(255,255,255,.22), rgba(122,132,163,.20) 58%, rgba(26,28,44,.26));
         box-shadow:inset 0 1.5px 0 rgba(255,255,255,.34),
                    inset 0 -3px 7px rgba(0,0,0,.30),
                    0 0 0 1px rgba(255,255,255,.16),
                    0 3px 10px rgba(0,0,0,.30);
         -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
         color:var(--text);font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:21px;
         text-shadow:0 1px 3px rgba(0,0,0,.5);
         display:grid;place-items:center;cursor:pointer;
         user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;
         touch-action:none;
         transition:transform .09s ease-out,box-shadow .12s linear,background .12s linear}
.blk-key svg{display:block;pointer-events:none;
             filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.blk-key-drop{width:calc(var(--blk-key) * 1.5);height:var(--blk-key);
              border-radius:calc(var(--blk-key) / 2);font-size:16px;
              background:radial-gradient(120% 120% at 50% 16%,
                         rgba(255,236,170,.34), rgba(255,159,67,.26) 60%, rgba(120,60,10,.24))}
.blk-key.blk-on{transform:scale(.90);
                background:radial-gradient(120% 120% at 50% 16%,
                           rgba(255,255,255,.52), rgba(255,255,255,.26) 62%, rgba(255,255,255,.14));
                box-shadow:inset 0 1.5px 0 rgba(255,255,255,.5),
                           0 0 0 2.5px rgba(255,255,255,.30),
                           0 0 18px 2px var(--accent-2),
                           0 2px 8px rgba(0,0,0,.30)}
.blk-key.blk-soft{transform:scale(.95);
                  background:radial-gradient(120% 120% at 50% 16%,
                             rgba(190,250,255,.50), rgba(47,214,228,.30) 62%, rgba(10,70,90,.24));
                  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.5),
                             0 0 0 2.5px rgba(47,214,228,.85),
                             0 0 20px 3px rgba(47,214,228,.75),
                             0 2px 8px rgba(0,0,0,.30)}
.blk-result{display:flex;flex-direction:column;gap:5px;margin:10px 0 4px}
.blk-rrow{display:flex;justify-content:space-between;align-items:center;
          font-size:13.5px;color:var(--text);padding:6px 11px;border-radius:10px;
          background:rgba(255,255,255,.07)}
.blk-rrow b{font-family:'Fredoka','Nunito',sans-serif;font-size:15px}
.blk-fresh{margin-top:8px;text-align:center;font-family:'Fredoka','Nunito',sans-serif;
           font-weight:700;font-size:16px;color:var(--accent-2)}
.blk-react-row{display:flex;justify-content:center;gap:8px;margin:10px 0 2px;flex-wrap:wrap}
body.solo-on .blk-react-row{display:none}
@media (min-width:700px),(orientation:landscape){
  :root{ --blk-tw:min(96vw, 880px); --blk-key:64px; --blk-bar:88px; }
  .blk-key{background:rgba(125,135,165,.34)}
  .blk-hud{height:50px}
}
@media (max-height:480px){
  .blk-hud{height:34px}
  .blk-room{padding:4px 10px}
  .blk-room .icon-btn{width:30px;height:30px;font-size:14px}
  .blk-play{margin-top:2px;gap:3px}
}
@media (max-height:620px){
  .blk-home{overflow-y:auto;overscroll-behavior:contain}
  .blk-home > .blk-pick{flex:none}
  .blk-intro{min-height:0;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .blk-hero{margin:6px 0 2px}
  .blk-art{transform:scale(.76);transform-origin:center top;margin-bottom:0}
  .blk-play{gap:4px;margin-top:4px}
  .blk-room{padding:6px 10px}
  .blk-hud{gap:6px;height:42px}
  .blk-foes{gap:6px}
  :root{ --blk-key:44px; --blk-bar:66px; }
  .blk-key{font-size:18px}
}
:root{
  --bub-tw:560px;
  --bub-glass:rgba(10,12,26,.34);
  --bub-line:rgba(255,255,255,.12);
  --bub-grid:rgba(255,255,255,.22);
  --bub-ceil:rgba(255,255,255,.08);
  --bub-ceil-edge:rgba(255,255,255,.26);
  --bub-gun:rgba(255,255,255,.46);
  --bub-guide:rgba(255,255,255,.55);
}
:root[data-theme="bubblegum"]{ --bub-glass:rgba(48,14,38,.20); --bub-line:rgba(120,50,100,.22);
                               --bub-grid:rgba(96,40,84,.34);
                               --bub-ceil:rgba(96,40,84,.16); --bub-ceil-edge:rgba(96,40,84,.42);
                               --bub-gun:rgba(96,40,84,.50); --bub-guide:rgba(96,40,84,.55); }
:root[data-theme="meadow"]{ --bub-glass:rgba(10,26,14,.32); }
:root[data-theme="arcade"]{ --bub-glass:rgba(0,0,0,.46); --bub-line:rgba(255,230,0,.22);
                            --bub-grid:rgba(255,230,0,.30);
                            --bub-ceil:rgba(255,230,0,.10); --bub-ceil-edge:rgba(255,230,0,.40); }
.bub-bigbtn{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:15px}
.bub-bigbtn.on{background:var(--accent);color:#fff}
.bub-helpbtn{font-family:'Fredoka','Nunito',sans-serif;font-weight:700}
.bub-brand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(21px,6.4vw,30px);
           line-height:1.05;letter-spacing:.5px;
           background:linear-gradient(135deg,var(--accent),var(--accent-2));
           -webkit-background-clip:text;background-clip:text;color:transparent}
.bub-home{display:flex;flex-direction:column}
.bub-pick{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.bub-hero{text-align:center;margin:14px 0 4px}
.bub-art{width:96px;height:96px;display:block;margin:0 auto 8px}
.bub-cart{}
.lf-brand{font-size:22px;font-weight:800;white-space:nowrap}
.lf-home{padding:22px}
.lf-intro{text-align:center;margin:10px 0 22px}
.lf-art{width:96px;height:96px;object-fit:contain;display:block;margin:0 auto 8px}
.lf-eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--accent)}
.lf-intro h1{font-size:34px;margin:8px 0}
.lf-intro p{font-size:14px;line-height:1.8;margin:8px 0;color:var(--text)}
.lf-practice{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}
.lf-practice label{font-size:13px;font-weight:800;flex:1}
.lf-practice select{background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:10px;padding:10px;min-height:44px}
.lf-practice .btn{flex-basis:100%}
.lf-guide{font-size:13px;line-height:1.8;border-top:1px solid var(--accent);padding-top:12px}
.lf-guide summary{cursor:pointer;font-weight:800;min-height:38px}
.lf-credit{text-align:center;font-size:11px;margin-top:20px;opacity:.75}
.lf-room{padding:12px 14px}
.lf-room-top{display:flex;align-items:center;gap:8px}
.lf-room-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-room-foot{margin-top:8px}
.lf-bigbtn{font-size:15px;font-weight:800}
.lf-bigbtn.on{background:var(--accent);color:var(--bg)}
.lf-play{margin:0 auto 20px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:22px;background:var(--panel);box-sizing:border-box}
.lf-hud{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;margin-bottom:12px}
.lf-hud b{font-size:14px}
.lf-stage{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;height:300px}
.lf-building{display:flex;border:2px solid #52748a;border-radius:16px;overflow:hidden;background:#142d43;color:#e8f5f7}
.lf-floorlist{display:grid;grid-template-rows:repeat(9,minmax(0,1fr));flex:1;min-width:0}
.lf-floor{display:flex;align-items:center;gap:6px;padding:0 9px;border-bottom:1px solid #365167;transition:background .2s}
.lf-floor b{font-size:17px;min-width:23px}
.lf-floor span{font-size:9px;color:#f6cd69;flex:1}
.lf-floor i{display:none;color:#f6cd69;font-style:normal}
.lf-floor.lf-blocked{background:#5e4826}
.lf-floor.lf-blocked i{display:block}
.lf-shaft{position:relative;width:58px;background:repeating-linear-gradient(0deg,#0b1c2e 0,#0b1c2e 30px,#193448 31px);border-left:2px solid #52748a}
.lf-car{position:absolute;left:3px;right:3px;bottom:0;height:11.1%;background:#7dddd0;border-radius:6px;border:2px solid #c3fff1;transition:bottom 130ms linear;box-sizing:border-box;box-shadow:0 0 16px #7dddd044}
.lf-car-sign{position:absolute;left:0;right:0;top:0;font-size:9px;text-align:center;line-height:11px;color:#132d43;font-weight:900}
.lf-doors{position:absolute;left:4px;right:4px;bottom:2px;top:12px;display:flex;gap:2px}
.lf-doors i{background:#305975;flex:1;border-radius:1px}
.lf-side{min-width:0;display:flex;flex-direction:column;gap:8px}
.lf-scores{display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.lf-player{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 4px;padding:5px 7px;border-radius:9px;background:color-mix(in srgb,var(--text) 7%,transparent);font-size:11px}
.lf-player span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-player small{grid-column:1/-1;font-size:9px;opacity:.8}
.lf-player.lf-you{outline:1px solid var(--accent)}
.lf-result{font-size:12px;line-height:1.6;min-height:36px;margin:10px 0}
.lf-targets{display:flex;gap:10px}
.lf-ticket{flex:1;display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px dashed var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,transparent)}
.lf-ticket small{font-size:11px;font-weight:800}
.lf-ticket b{font-size:24px}
.lf-ticket b span{font-size:10px;margin-left:3px}
.lf-hint{font-size:12px;line-height:1.6;margin:12px 0 8px}
.lf-picker{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;margin-bottom:9px}
.lf-picker>span{grid-column:1/-1;font-size:11px;font-weight:800;margin-bottom:3px}
.lf-floorbtn{border:1px solid color-mix(in srgb,var(--text) 25%,transparent);background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:800;padding:8px 0;border-radius:8px;min-height:40px;cursor:pointer}
.lf-floorbtn.on,.lf-move.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:inset 0 0 0 1px var(--accent)}
.lf-cards{display:flex;gap:10px}
.lf-move{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px;background:transparent;border:2px solid color-mix(in srgb,var(--text) 20%,transparent);border-radius:14px;color:var(--text);cursor:pointer;min-height:76px}
.lf-move b{font-size:28px;line-height:1.2}
.lf-move small{font-size:10px}
.lf-submit{width:100%;margin-top:10px;min-height:46px}
.lf-rank{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid color-mix(in srgb,var(--text) 12%,transparent);font-size:14px}
body.lf-solo .scroll-area{display:none}
@media(max-width:380px){.lf-stage{gap:7px;height:278px}.lf-floor{padding:0 5px;gap:3px}.lf-floor span{font-size:8px}.lf-player{padding:5px;font-size:10px}.lf-hud{font-size:10px}}
@media(prefers-reduced-motion:reduce){.lf-car{transition:none}}
.bub-tag{font-family:'Fredoka','Nunito',sans-serif;font-weight:600;font-size:14.5px;color:var(--text)}
.bub-intro{margin-top:14px;flex:0 1 auto;min-height:120px;overflow-y:auto;overscroll-behavior:contain;
           -webkit-mask-image:linear-gradient(#000 calc(100% - 14px),rgba(0,0,0,.35));
           mask-image:linear-gradient(#000 calc(100% - 14px),rgba(0,0,0,.35))}
.bub-howto{padding:14px 14px 12px;border-radius:14px;
           background:rgba(255,255,255,.05);border:1px solid var(--panel-line);
           text-align:left;font-size:13px;line-height:1.62;color:var(--text)}
.bub-atk{margin:7px 0 8px;padding:6px 4px 5px;border-radius:12px;
         background:rgba(0,0,0,.16);border:1px solid var(--panel-line)}
.bub-atk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.bub-atk-it{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}
.bub-atk-it svg{flex:none}
.bub-atk-it span{font-size:10.5px;font-weight:700;line-height:1.3;color:var(--text);
                 opacity:.86;text-align:center;white-space:nowrap}
.bub-atk-it b{font-weight:800;opacity:1;color:var(--muted)}
.bub-atk-hot b{color:#ffd93d}
.bub-atk-lit{fill:var(--accent)}
.bub-atk-dim{fill:rgba(255,255,255,.11)}
.bub-gest{margin-top:10px;padding:10px 12px 11px;border-radius:14px;
          background:rgba(255,255,255,.05);border:1px solid var(--panel-line);text-align:left}
.bub-gest-head{font-size:12px;font-weight:700;color:var(--text);opacity:.88;
               line-height:1.45;margin-bottom:9px}
.bub-gest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 4px}
.bub-gest-it{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.bub-gest-it svg{color:var(--accent-2);flex:none}
.bub-gest-it span{font-size:10.5px;font-weight:700;color:var(--text);opacity:.72;line-height:1.25}
.bub-gest-it b{display:block;font-size:11.5px;font-weight:800;opacity:1}
.bub-gest-kb{margin-top:10px;font-size:11px;color:var(--text);opacity:.7;line-height:1.55}
.bub-demo{display:flex;align-items:center;justify-content:center;gap:10px;
          margin:2px 0 6px;padding:8px 10px;border-radius:12px;
          background:rgba(0,0,0,.20);border:1px solid var(--panel-line)}
.bub-demo-cv{display:block;border-radius:4px;background:rgba(0,0,0,.30);
             box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.bub-demo-mid{min-width:62px;text-align:center;font-size:10.5px;font-weight:800;
              color:var(--text);opacity:.45;transition:opacity .12s linear,color .12s linear}
.bub-demo-fire{opacity:1;color:#ff5d6c}
.bub-demo-cap{margin:0 0 10px;font-size:11.5px;line-height:1.5;opacity:.8;text-align:center}
.bub-demo-cap b{font-weight:800;color:var(--accent);opacity:1}
.bub-fnote{margin-top:6px;font-size:12px;line-height:1.5;color:var(--text);opacity:.82;text-align:left}
.bub-fnote b{opacity:1;font-weight:800;color:var(--accent)}
.bub-setup-summary{margin:6px 0 12px;padding:9px 12px;border-radius:12px;
  background:rgba(255,255,255,.07);color:var(--text);font-size:13px;font-weight:800;text-align:center}
.bub-setup-help,.bub-setup-more,.bub-solo-more{border:1px solid var(--panel-line);border-radius:14px;
   margin:10px 0;background:rgba(255,255,255,.035)}
.bub-setup-help > summary,.bub-setup-more > summary,.bub-solo-more > summary{cursor:pointer;padding:12px 14px;
   color:var(--text);font-size:14px;font-weight:800;list-style:none}
.bub-setup-help > summary::-webkit-details-marker,.bub-setup-more > summary::-webkit-details-marker,.bub-solo-more > summary::-webkit-details-marker{display:none}
.bub-setup-help > summary::after,.bub-setup-more > summary::after,.bub-solo-more > summary::after{content:"⌄";float:right;color:var(--accent)}
.bub-setup-help[open] > summary::after,.bub-setup-more[open] > summary::after,.bub-solo-more[open] > summary::after{transform:rotate(180deg)}
.bub-setup-more > summary span,.bub-solo-more > summary span{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-top:2px}
.bub-setup-help .bub-demo,.bub-setup-help .bub-demo-cap,.bub-setup-help .hint{margin-left:10px;margin-right:10px}
.bub-setup-help .hint{margin-bottom:10px}
.bub-setup-more > .field,.bub-solo-more > .field{margin:0 12px 12px}
.bub-score-actions{border-top:1px solid var(--panel-line);padding-top:12px;text-align:center}
.bub-page #setVeil .set-card{background-color:var(--bg1);
  background-image:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,0) 48%),
    linear-gradient(0deg,var(--panel),var(--panel)),linear-gradient(180deg,var(--bg1),var(--bg2))}
.bub-page #setVeil:has(#swBgm[aria-checked="false"]) #bgmTrackRow,
.bub-page #setVeil:has(#swBgm[aria-checked="false"]) #bgmVolRow{display:none}
.bub-voice-group > summary{cursor:pointer;list-style:none;padding-bottom:11px}
.bub-voice-group > summary::-webkit-details-marker{display:none}
.bub-voice-group > summary::after{content:"⌄";float:right;color:var(--accent)}
.bub-voice-group[open] > summary::after{transform:rotate(180deg)}
.bub-voice-group > summary span{font-family:'Nunito',sans-serif;font-size:11px;
  letter-spacing:0;color:var(--muted);font-weight:700;margin-left:6px}
.bub-custom-lineup{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.bub-custom-item{display:flex;align-items:center;gap:8px;justify-content:space-between}
.bub-custom-lbl{font-size:12.5px;font-weight:700;color:var(--text);white-space:nowrap;min-width:58px;opacity:.9}
.bub-custom-item .seg{flex:1;min-width:0}
.bub-custom-item .seg button{font-size:12px;padding:6px 2px}
.bub-room{padding:9px 12px}
.bub-room .row{margin-top:0}
.bub-room-top{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.bub-room .bub-room-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bub-room .bub-room-title b{font-size:15px;color:var(--text)}
.bub-room .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
.bub-room .mp-act-btn{width:34px;height:34px;font-size:18px}
.bub-room .mp-subrow{margin-top:5px}
.bub-room-foot{display:flex;align-items:center;gap:8px;margin-top:6px}
.bub-room-foot .mp-players{flex:1;min-width:0;margin-top:0}
.bub-room .mp-goal{color:var(--text);font-size:12px;font-weight:700}
.bub-goal{margin-left:6px;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;
          background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px var(--bub-line);
          color:var(--text);white-space:nowrap}
.bub-play{flex:1 1 auto;min-height:0;width:100%;max-width:var(--bub-tw);margin:6px auto 0;
          display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;
          touch-action:none;cursor:crosshair;
          user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.bub-stage{flex:1 1 auto;min-height:0;width:100%;position:relative;
           display:flex;align-items:center;justify-content:center;
           overflow:hidden}
body.bub-rush .bub-stage{animation:bub-rush-pulse 1.1s ease-in-out infinite}
@keyframes bub-rush-pulse{
  0%,100%{box-shadow:inset 0 0 0 2px rgba(255,93,108,.30),inset 0 0 26px rgba(255,93,108,.14)}
  50%    {box-shadow:inset 0 0 0 2px rgba(255,93,108,.72),inset 0 0 30px rgba(255,93,108,.34)}
}
body.bub-rush #bubStatTime{color:#ff5d6c}
@media (prefers-reduced-motion:reduce){
  body.bub-rush .bub-stage{animation:none;box-shadow:inset 0 0 0 2px rgba(255,93,108,.55)}
}
.bub-foes{position:absolute;right:0;top:0;bottom:0;width:78px;z-index:2;
          display:flex;flex-direction:column;gap:8px;
          align-items:center;justify-content:center;pointer-events:none}
.bub-foes-top{left:0;right:0;bottom:auto;width:auto;flex-direction:row;gap:10px;
              align-items:flex-end;justify-content:center}
.bub-foes-over{bottom:auto;justify-content:flex-start;padding-top:2px}
.bub-foes-over .bub-foe{background:rgba(12,10,22,.42);
                        -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.bub-foe{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;
         padding:3px;border-radius:10px;box-shadow:inset 0 0 0 1.5px transparent;
         transition:box-shadow .15s linear,opacity .2s linear;cursor:pointer;
         pointer-events:auto}
.bub-foe-cv{display:block;border-radius:5px;background:rgba(0,0,0,.30);
            box-shadow:inset 0 0 0 1px var(--bub-line)}
.bub-foe-name{font-size:10.5px;font-weight:800;color:var(--text);max-width:100%;
              overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}
.bub-foe-target{box-shadow:inset 0 0 0 2.5px var(--accent-2)}
.bub-foe-target .bub-foe-name{color:var(--accent-2);font-weight:900}
.bub-foe-target::after{content:"🎯";position:absolute;right:-2px;top:-4px;font-size:13px;
                       line-height:1;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.bub-foe:focus-visible{outline:none;box-shadow:inset 0 0 0 2.5px var(--accent-1, #ffd93d)}
.bub-foe-away{opacity:.42}
.bub-foe-lag{opacity:.72}
.bub-foe-danger{animation:bub-foe-pulse .68s ease-in-out infinite}
@keyframes bub-foe-pulse{
  0%,100%{box-shadow:inset 0 0 0 2.5px rgba(255,93,108,.55)}
  50%    {box-shadow:inset 0 0 0 2.5px rgba(255,93,108,1)}
}
@media (prefers-reduced-motion:reduce){
  .bub-foe-danger{animation:none;box-shadow:inset 0 0 0 2.5px rgba(255,93,108,.9)}
}
.bub-fx{position:absolute;left:0;top:0;pointer-events:none;z-index:3}
.bub-cast{position:absolute;left:0;right:0;top:15%;z-index:4;pointer-events:none;
          display:flex;flex-direction:column;align-items:center;gap:5px;padding:0 12px}
.bub-cast-it{max-width:100%;padding:5px 13px;border-radius:999px;text-align:center;
             font-weight:800;font-size:13px;line-height:1.35;color:#fff;
             background:rgba(12,10,22,.78);box-shadow:0 3px 14px rgba(0,0,0,.4);
             -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
             animation:bub-cast-in .22s ease-out both}
@keyframes bub-cast-in{from{opacity:0;transform:translateY(7px) scale(.94)}
                         to{opacity:1;transform:none}}
.bub-cast-ko{font-size:17px;font-family:'Fredoka','Nunito',sans-serif;
             padding:7px 17px;color:#ffd93d;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.bub-cast-streak{font-size:18px;font-family:'Fredoka','Nunito',sans-serif;
                 padding:7px 18px;color:#0c0a16;background:#ffd93d;
                 box-shadow:0 4px 20px rgba(255,217,61,.45)}
.bub-cast-warn{color:#ff9aa4}
body.bub-spec .bub-wrap,
body.bub-spec .bub-hud{display:none}
body.bub-spec .bub-play{cursor:default}
body.bub-spec .bub-foes{position:static;width:auto!important;flex:1 1 auto;align-self:stretch;
                        flex-direction:row;flex-wrap:wrap;align-items:center;
                        justify-content:center;pointer-events:auto}
body.bub-spec .bub-foe-cv{width:auto;height:auto}
body.bub-spec .bub-foe{cursor:default;pointer-events:none}
.bub-hud{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;
         width:100%;height:40px}
.bub-stats{flex:0 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;
           gap:0;padding:4px 4px;border-radius:999px;
           background:var(--bub-glass);box-shadow:inset 0 0 0 1px var(--bub-line);
           -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.bub-stat{display:flex;flex-direction:row;align-items:baseline;gap:5px;line-height:1;
          padding:3px 11px;min-width:0;white-space:nowrap}
.bub-stat + .bub-stat{box-shadow:-1px 0 0 0 var(--bub-line)}
.bub-stat span{font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--text);opacity:.7}
.bub-stat b{font-family:'Fredoka','Nunito',sans-serif;font-size:17px;color:var(--text)}
.bub-stat-press{display:none}
.bub-stat-tgt{max-width:120px;min-width:0}
.bub-stat-tgt b{font-size:13.5px;max-width:78px;overflow:hidden;text-overflow:ellipsis;
                white-space:nowrap;display:block}
.bub-stat-lock b{color:var(--accent-2)}
.bub-wrap{flex:none;display:flex;align-items:stretch;justify-content:center}
.bub-main{display:block;border-radius:14px;background:var(--bub-glass);
          -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
          box-shadow:inset 0 0 0 1px var(--bub-line),0 12px 30px rgba(0,0,0,.34);
          touch-action:none}
.bub-paused{position:absolute;left:0;right:0;top:34%;text-align:center;pointer-events:none;
            font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:26px;
            color:var(--text);text-shadow:0 2px 12px rgba(0,0,0,.65)}
.bub-result{display:flex;flex-direction:column;gap:5px;margin:10px 0 4px}
.bub-rrow{display:flex;justify-content:space-between;align-items:center;
          font-size:13.5px;color:var(--text);padding:6px 11px;border-radius:10px;
          background:rgba(255,255,255,.07)}
.bub-rrow b{font-family:'Fredoka','Nunito',sans-serif;font-size:15px}
.bub-fresh{margin-top:8px;text-align:center;font-family:'Fredoka','Nunito',sans-serif;
           font-weight:700;font-size:16px;color:var(--accent-2)}
.bub-react-row{display:flex;justify-content:center;gap:8px;margin:10px 0 2px;flex-wrap:wrap}
body.solo-on .bub-react-row{display:none}
@media (min-width:700px),(orientation:landscape){
  :root{ --bub-tw:min(96vw, 880px); }
  .bub-hud{height:46px}
}
@media (max-height:620px){
  .bub-home{overflow-y:auto;overscroll-behavior:contain}
  .bub-home > .bub-pick{flex:none}
  .bub-intro{min-height:0;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .bub-hero{margin:6px 0 2px}
  .bub-art{transform:scale(.76);transform-origin:center top;margin-bottom:0}
  .bub-play{gap:4px;margin-top:4px}
  .bub-room{padding:6px 10px}
  .bub-hud{gap:6px;height:34px}
  .bub-stats{padding:2px 3px}
  .bub-foes{gap:6px}
}
@media (max-height:480px){
  .bub-hud{height:30px}
  .bub-stat{padding:2px 8px}
  .bub-stat b{font-size:15px}
  .bub-room{padding:4px 10px}
  .bub-room .icon-btn{width:30px;height:30px;font-size:14px}
  .bub-play{margin-top:2px;gap:3px}
}
.lf-cart{}
body.lf-page{--bg:#081421;--panel:#122638;--text:#eef8fb;--muted:#a0b4c5;background:radial-gradient(ellipse at 85% 0,#18435099,transparent 52%),radial-gradient(ellipse at 0 65%,#24304788,transparent 65%),#081421;color:var(--text);min-height:100dvh}
body.lf-page .topbar{border-bottom:1px solid #ffffff0d;margin-bottom:12px}
body.lf-page:before{background:radial-gradient(ellipse at 85% 0,#18435066,transparent 52%),radial-gradient(ellipse at 0 70%,#26374b55,transparent 65%);opacity:1}
.lf-home .home-back{color:#a4c3cf;text-decoration:none;font-size:11px;letter-spacing:.5px;display:inline-block;padding:7px 0}
body.lf-page .panel{background:linear-gradient(135deg,#172e40d9,#0f2234e8);border:1px solid #8fb9ce24;box-shadow:0 16px 36px #020a1533}
body.lf-page .btn.primary{background:linear-gradient(120deg,#a9eed6,#71cfc4);color:#082e2e;border:1px solid #c3fff077;box-shadow:0 5px 0 #3c8e86,0 8px 24px #77ddca17;font-weight:900;transition:transform .18s,box-shadow .18s}
body.lf-page .btn.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #3c8e86}
body.lf-page .btn.ghost{background:#ffffff05;color:#d5e7ee;border:1px solid #91b6c23b}
body.lf-page .icon-btn{background:#ffffff06;border-color:#90b4c333;border-radius:13px}
.lf-brand{font-size:20px;letter-spacing:.5px}
.lf-home{padding:22px 24px 20px;overflow:hidden}
.lf-intro{margin:15px 0 20px}
.lf-eyebrow{font-size:9px;color:#8ce0cd;letter-spacing:3px}
.lf-intro h1{font-size:39px;letter-spacing:2px;line-height:1.15;margin:12px 0}
.lf-title-dot{color:#91e2cc}
.lf-intro p{color:#a8c2cf;font-size:13px}
.lf-cover{height:218px;position:relative;display:flex;justify-content:center;align-items:center;margin:15px -5px 8px;perspective:700px}
.lf-orbit{position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid #91e2cc16;background:radial-gradient(circle,#74cbb61c,transparent 65%);box-shadow:0 0 0 22px #82d9c606,0 0 0 44px #82d9c603}
.lf-cover-tower{width:113px;height:179px;border:1px solid #96b9c45c;border-radius:18px 18px 9px 9px;background:linear-gradient(125deg,#53737f,#203e50 48%,#132a3b);transform:rotate(-8deg);box-shadow:12px 18px 0 #06122155,0 20px 32px #020e2277;position:relative;padding:16px 13px;box-sizing:border-box;animation:lf-cover-float 6s ease-in-out infinite}
.lf-cover-tower:before{content:"";position:absolute;inset:-8px 8px auto;height:5px;border:1px solid #98ccd07d;background:#41616d;border-radius:3px}
.lf-cover-display{font-size:19px;letter-spacing:3px;background:#071b25;border:1px solid #82c9c84b;border-radius:5px;color:#9ae7cd;line-height:28px;text-align:center;text-shadow:0 0 12px #99edbb66}
.lf-cover-doors{display:flex;height:102px;margin-top:10px;gap:3px;padding:4px;background:#0b2331;border:1px solid #95b9c35b}
.lf-cover-doors i{flex:1;background:linear-gradient(95deg,#44717a,#5c8790 22%,#355d6b 90%);border:1px solid #b3d0ce44}
.lf-cover-number{position:absolute;bottom:7px;left:0;right:0;font-size:7px;letter-spacing:4px;color:#a8c6ca}
.lf-cover-ticket{position:absolute;left:8%;top:48px;width:65px;padding:14px 8px;border-radius:10px;background:linear-gradient(135deg,#f6d99c,#e4b76b);color:#332b23;transform:rotate(-17deg);box-shadow:0 14px 25px #06152166;font-size:7px;letter-spacing:1.5px;text-align:left}
.lf-cover-ticket b{display:block;font-size:32px;line-height:1.15;margin-top:8px}
.lf-cover-ticket-two{left:auto;right:4%;top:116px;background:linear-gradient(135deg,#b2e5da,#6fbdad);transform:rotate(14deg);color:#12372f}
.lf-cover .lf-art{position:absolute;width:96px;height:96px;right:-22px;top:-6px;opacity:.18;filter:grayscale(1);transform:rotate(16deg)}
.lf-cover-meta{display:flex;justify-content:center;align-items:center;gap:12px;font-size:10px;color:#afc6d3;letter-spacing:1px}
.lf-cover-meta i{width:3px;height:3px;border-radius:50%;background:#75c7b8}
.lf-practice{margin-top:24px}
.lf-practice label{font-size:12px;color:#b7cdd7}
.lf-practice select{border-color:#7b9fa34d;background:#102435;font-size:12px}
.lf-guide{border-color:#85b4be26;color:#afc4d0;font-size:12px}
.lf-credit{font-size:9px;letter-spacing:1px;color:#8da8b6}
.lf-room{padding:9px 12px;border-radius:16px}
.lf-room-title{font-size:12px;color:#b6d1da}
.lf-play{background:linear-gradient(145deg,#152c3ee8,#0f2133ee);border-color:#8fc0c929;border-radius:24px;padding:16px;box-shadow:0 20px 40px #020e2233}
.lf-hud b{font-size:12px;letter-spacing:.4px}
.lf-hud>span{font-size:10px;color:#9ebdca}
.lf-progress{display:flex;gap:5px;margin:0 0 17px}
.lf-progress i{height:3px;background:#42606b66;border-radius:3px;flex:1}
.lf-progress i.done{background:#5fae9e}
.lf-progress i.current{background:#a0ecd4;box-shadow:0 0 8px #91e2cc44}
.lf-stage{height:320px;position:relative;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px}
.lf-building{border:1px solid #779dae5c;border-radius:14px;background:linear-gradient(110deg,#1d3b4f,#102a3c);box-shadow:inset 0 0 20px #08182377,0 10px 20px #030c2122;padding:6px}
.lf-floorlist{border:1px solid transparent;border-radius:8px;overflow:hidden}
.lf-floor{padding:0 8px;border-bottom:1px solid #80afbf13;position:relative;transition:background .2s,box-shadow .2s}
.lf-floor:after{content:"";position:absolute;left:55%;right:7px;top:12px;height:5px;background:repeating-linear-gradient(90deg,#92c6c719 0 7px,transparent 7px 13px)}
.lf-floor b{font-size:15px;font-weight:900;color:#a1bfce}
.lf-floor span{font-size:8px;color:#f6d599}
.lf-floor.lf-blocked{background:repeating-linear-gradient(135deg,#94734b25 0 7px,#58442425 7px 14px);border-left:2px solid #dfb67f}
.lf-floor.lf-blocked i{font-size:10px;color:#eac78d}
.lf-floor.lf-active{background:#8dd8c41f;box-shadow:inset 3px 0 #9ee6d3}
.lf-floor.lf-active b{color:#c4fceb}
.lf-shaft{width:54px;margin-left:4px;border:1px solid #789aad44;border-radius:7px;background:#081b2a;box-shadow:inset 0 0 12px #020b1644;overflow:hidden}
.lf-shaft:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to bottom,transparent calc(100% - 1px),#36516780 0);background-size:100% calc(100% / 9);pointer-events:none}
.lf-shaft:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#8cb4b624}
.lf-car{height:calc(100% / 9);left:3px;right:3px;border:1px solid #a5e4d4;border-radius:5px;background:#72b9ac;box-shadow:0 0 18px #8ee9cf39;transition:bottom var(--lf-step,420ms) linear;overflow:hidden;z-index:1}
.lf-car-sign{font-size:8px;line-height:10px;background:#102c32;color:#acf4d5;z-index:2}
.lf-cabin{position:absolute;inset:11px 3px 1px;background:linear-gradient(#f1d8a0,#a1b2a7);display:flex;justify-content:center;align-items:flex-end}
.lf-person{width:8px;height:11px;background:#1d4357;border-radius:4px 4px 0 0;position:relative}
.lf-person:before{content:"";position:absolute;width:5px;height:5px;background:#1d4357;border-radius:50%;top:-6px;left:1px}
.lf-doors{top:11px;left:2px;right:2px;bottom:1px;gap:1px;overflow:hidden}
.lf-doors i{background:linear-gradient(100deg,#56857f,#b0c7b2 18%,#729f93);transition:transform .55s cubic-bezier(.2,.8,.2,1);border:1px solid #50796e55}
.lf-car.lf-open .lf-doors i:first-child{transform:translateX(-100%)}
.lf-car.lf-open .lf-doors i:last-child{transform:translateX(100%)}
.lf-player{position:relative;grid-template-columns:21px minmax(0,1fr) auto;gap:1px 5px;background:#9cc2d508;border:1px solid #9cc2d50c;padding:7px;font-size:10px;min-height:35px;box-sizing:border-box;border-radius:11px;transition:border-color .2s}
.lf-player small{grid-column:2/-1;font-size:8px;color:#adc4d0}
.lf-player b{font-size:15px;font-weight:900;color:#e1f3ef}
.lf-player b em{font-size:7px;font-style:normal;margin-left:2px;opacity:.6}
.lf-avatar{grid-row:1/3;align-self:center;width:21px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:9px;font-weight:800;font-style:normal;background:linear-gradient(135deg,#335a6a,#233f53);color:#c4e5e7}
.lf-player.lf-you{outline:none;border-color:#81d5bc5c;background:#76c6ad11}
.lf-you .lf-avatar{background:linear-gradient(135deg,#a8e8c9,#71b5a3);color:#133d35}
.lf-reveal-card{grid-column:1;grid-row:1/3;align-self:center;display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:34px;padding:3px;border:1px solid #f8e5c066;box-sizing:border-box;background:linear-gradient(140deg,#edd4a8,#c7a574);border-radius:6px;color:#2a302f;text-align:center;font-size:15px;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 3px 7px #0004;animation:lf-card-flip .55s both;animation-delay:var(--lf-delay)}
.lf-result{font-size:10px;line-height:1.65;color:#a9c2ce;min-height:28px;padding:9px 0 5px;margin:0}
.lf-section-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;letter-spacing:.5px;color:#d2e6ec;margin:8px 0}
.lf-section-label span{font-size:7px;letter-spacing:1.5px;color:#86a5b5;font-weight:500}
.lf-targets{gap:9px}
.lf-ticket{position:relative;border:1px solid #b2c8c23c;border-radius:11px;overflow:hidden;padding:10px 12px;background:linear-gradient(130deg,#cfe4d8,#9bbcb1);color:#173b37;box-shadow:0 4px 0 #5e84796b;min-width:0}
.lf-ticket:nth-child(2){background:linear-gradient(130deg,#ecddbb,#d1b586);color:#443626;border-color:#dfc59a55;box-shadow:0 4px 0 #8d744c66}
.lf-ticket div{display:flex;flex-direction:column;gap:6px}
.lf-ticket small{font-size:5px;letter-spacing:1px;opacity:.75}
.lf-ticket div span{font-size:10px;font-weight:900}
.lf-ticket b{font-size:30px;line-height:1;letter-spacing:-1px}
.lf-ticket b span{font-size:8px;letter-spacing:0}
.lf-ticket i{position:absolute;left:52%;top:0;bottom:0;border-left:1px dashed #1c514a26}
.lf-hint{font-size:11px;color:#b4ccd8;margin:16px 0 9px}
.lf-floorbtn{font-size:11px;border-color:#7698ad2e;border-radius:7px;background:#7b9dad06;min-height:36px;padding:7px 0;transition:transform .16s,background .16s}
.lf-floorbtn.on{background:#a3dec625;border-color:#8cdec6;color:#c6f7e8;box-shadow:inset 0 0 0 1px #8cdec630;transform:translateY(-2px)}
.lf-picker>span{font-size:9px;color:#88a9bc;margin-bottom:2px}
.lf-cards{gap:12px;padding:2px 5px 9px;perspective:600px}
.lf-move{position:relative;min-height:110px;border:1px solid #4f768985;border-radius:12px;background:linear-gradient(150deg,#325168,#203c53 70%);box-shadow:0 5px 0 #102331,0 8px 18px #040e2133;transform:rotate(-3deg);padding-top:21px;transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,box-shadow .22s}
.lf-move:nth-child(2){transform:rotate(0)}
.lf-move:nth-child(3){transform:rotate(3deg)}
.lf-move b{font-size:34px;font-weight:900;color:#d4e7e8}
.lf-move small{font-size:8px;letter-spacing:1px;color:#a7c3cf;margin-top:7px}
.lf-move.on{transform:translateY(-5px) rotate(0);border-color:#9ce3c8;background:linear-gradient(150deg,#385c68,#28534f);box-shadow:0 5px 0 #163c37,0 0 24px #8fdacb14,inset 0 0 0 1px #a1ebc522}
.lf-card-corner{position:absolute;left:9px;top:8px;font-size:10px;color:#a7c6ce;font-weight:800}
.lf-card-mark{position:absolute;right:8px;bottom:7px;color:#89b4ba;font-size:13px}
.lf-submit{margin-top:9px;font-size:13px;letter-spacing:.5px;border-radius:12px}
.lf-arrival{position:absolute;z-index:3;left:50%;top:50%;width:min(84%,360px);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 20px;border:1px solid #b2e6daaa;border-radius:20px;background:linear-gradient(135deg,#24485af7,#102c32f7);box-shadow:0 18px 48px #030d2299,0 0 28px #9ae7d328,inset 0 1px #d4fff533;backdrop-filter:blur(16px);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.9);overflow:hidden}
.lf-arrival.lf-pop{animation:lf-arrive .48s cubic-bezier(.2,.8,.2,1) both}
.lf-arrival-head{display:flex;align-items:center;gap:7px}
.lf-arrival-head i{font-size:20px;color:#b0f5dd;font-style:normal;line-height:1}
.lf-arrival-head svg{width:20px;height:24px;display:block}
.lf-arrival small{font-size:11px;color:#a8edda;letter-spacing:2px;font-weight:800}
.lf-arrival-main{display:flex;align-items:center;justify-content:center;gap:24px;width:100%}
.lf-arrival b{font-size:52px;color:#e3f8ec;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 20px #a5f5db40}
.lf-arrival b span{font-size:13px;margin-left:5px}
.lf-arrival strong{font-size:15px;color:#bdd3da;white-space:nowrap}
.lf-arrival strong span{font-size:13px;margin-left:3px}
.lf-arrival em{font-size:12px;color:#cae0d9;font-style:normal;text-align:center}
.lf-arrival{max-height:calc(100% - 8px);overflow-y:auto;overscroll-behavior:contain}
.lf-arrival.lf-pop{pointer-events:auto}
.lf-award-title{font-size:11px;font-weight:800;color:#a8edda}
.lf-awards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%;flex:none}
.lf-award{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;padding:6px;border-radius:8px;background:#a8edda16;border:1px solid #a8edda33;font-size:11px}
.lf-award-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e3f8ec}
.lf-award-points{flex:none;font-weight:900;color:#b9f5da}
.lf-award-you{border-color:#b9f5da;background:#a8edda25}
.lf-player.lf-scored{border-color:#a8edda99;background:#a8edda20}
.lf-player.lf-scored small{color:#b9f5da;opacity:1;font-weight:800}
@media(max-height:600px){.lf-arrival{padding:10px 12px;gap:5px}.lf-arrival-main b{font-size:38px}.lf-award{padding:4px}}
.lf-arrival[data-outcome="hit"]{border-color:#c4ffe5;background:linear-gradient(135deg,#285b50f7,#102f34f7);box-shadow:0 18px 48px #030d2299,0 0 36px #9ae7d34d,inset 0 1px #d4fff555}
.lf-arrival[data-outcome="hit"] strong{font-size:30px;color:#c4ffe5}
.lf-arrival[data-outcome="blocked"]{border-color:#f2c581aa;background:linear-gradient(135deg,#4d4033f7,#172c38f7)}
.lf-arrival[data-outcome="blocked"] small,.lf-arrival[data-outcome="blocked"] strong{color:#f2cf97}
.lf-arrival-line{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#d8e7aa,#88e4ce);transform-origin:left;animation:lf-result-time var(--lf-result-ms,1800ms) linear both}
.lf-next-note{min-height:40px;display:flex;align-items:center;justify-content:center;color:#a7c7ce;font-size:12px;letter-spacing:.5px;text-align:center}
.lf-sparkles{position:absolute;left:50%;top:50%;pointer-events:none;z-index:4}
.lf-sparkles i{position:absolute;width:5px;height:5px;border-radius:1px;background:#e8d0a0;animation:lf-spark .85s both;animation-delay:var(--lf-spark-delay)}
.lf-ranking{margin:15px 0;text-align:left}
@keyframes lf-cover-float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-7px) rotate(-6deg)}}
@keyframes lf-card-flip{0%{transform:rotateY(90deg) translateY(-6px);opacity:0}60%{transform:rotateY(-12deg);opacity:1}100%{transform:rotateY(0)}}
@keyframes lf-arrive{0%{opacity:0;transform:translate(-50%,calc(-50% + 14px)) scale(.9)}65%{opacity:1;transform:translate(-50%,calc(-50% - 2px)) scale(1.02)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes lf-result-time{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes lf-spark{0%{opacity:1;transform:rotate(var(--lf-angle)) translateX(0) scale(0)}30%{opacity:1}100%{opacity:0;transform:rotate(var(--lf-angle)) translateX(var(--lf-distance)) scale(.6)}}
@media(max-width:380px){.lf-home{padding:18px}.lf-play{padding:13px}.lf-stage{height:296px;gap:9px}.lf-floor b{font-size:14px}.lf-player{padding:6px 5px;grid-template-columns:19px minmax(0,1fr) auto;gap:1px 3px;font-size:9px}.lf-ticket{padding:9px}.lf-ticket small{font-size:4px}.lf-move{min-height:100px}.lf-cover-ticket{left:4%}}
@media(prefers-reduced-motion:reduce){.lf-cover-tower,.lf-reveal-card,.lf-arrival.lf-pop,.lf-sparkles i,.lf-arrival-line{animation:none}.lf-arrival.lf-pop{opacity:1;transform:translate(-50%,-50%)}.lf-car,.lf-doors i,.lf-move,.lf-floorbtn{transition:none}}
body.lf-page:is(.lf-solo,.lf-mp){min-height:0;padding:8px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:8px}
body.lf-page:is(.lf-solo,.lf-mp) .topbar{display:none}
body.lf-mp .mp-subrow{display:none}
body.lf-mp .lf-room-foot{display:flex;min-width:0;margin-top:4px}
.lf-room-foot .mp-players.oneline{flex:1;min-width:0;margin-top:0;padding:3px 4px;gap:6px}
.lf-room-foot .mp-players.oneline .mp-chip{flex:none;font-size:11px;padding:4px 8px;gap:5px}
.lf-room{flex:none;padding:5px 10px;margin:0}
.lf-room .icon-btn{width:36px;height:36px;border-radius:10px}
.lf-play{flex:1 1 0;min-height:0;max-height:760px;display:flex;flex-direction:column;margin:0;padding:10px;gap:8px;overflow:hidden;border-radius:18px}
.lf-view{flex:1 1 0;min-height:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.lf-hud{flex:none;margin:0}
.lf-progress{flex:none;margin:0}
.lf-stage{flex:1 0 230px;height:auto;min-height:230px;gap:10px}
.lf-building{min-height:0;padding:4px;border-radius:10px}
.lf-side{min-height:0;gap:6px}
.lf-scores{flex:1;min-height:0;overflow:hidden;gap:6px}
.lf-self{flex:none}
.lf-self:empty{display:none}
.lf-roster{position:relative;flex:1;min-height:0;overflow:hidden}
.lf-opponents{height:100%;min-height:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8fcbbb55 transparent;-webkit-overflow-scrolling:touch}
.lf-opponents:focus-visible{outline:1px solid #9ee6d3;outline-offset:-1px;border-radius:9px}
.lf-roster.lf-more:after{content:"↓ 更多玩家";position:absolute;left:0;right:0;bottom:0;padding:12px 0 3px;text-align:center;font-size:9px;color:#b6d8df;background:linear-gradient(transparent,#112b3dec 55%);pointer-events:none}
.lf-opponents .lf-player{flex:none}
.lf-floor{min-height:0;line-height:1}
.lf-player{grid-template-columns:32px minmax(0,1fr) auto;padding:5px 6px;min-height:36px}
.lf-avatar{justify-self:center}
.lf-result{flex:none;min-height:0;margin:0;padding:0;font-size:10px;line-height:1.4}
.lf-action{flex:none;border-top:1px solid #85b4be26;padding-top:8px}
.lf-targets{flex:none;flex-direction:column;gap:7px;margin-top:4px}
.lf-targets:empty{display:none}
.lf-ticket{padding:7px 9px;min-height:43px;border-radius:9px;box-shadow:none}
.lf-ticket small{display:none}
.lf-ticket div{gap:0}
.lf-ticket div span{font-size:10px}
.lf-ticket b{font-size:24px}
.lf-hint{font-size:10px;line-height:1.4;margin:6px 0}
.lf-picker{gap:3px;margin:0 0 5px}
.lf-picker>span{line-height:1;margin:0;font-size:9px}
.lf-floorbtn{min-height:36px;padding:6px 0}
.lf-submit{margin-top:5px;min-height:42px;padding:9px 8px;font-size:12px}
.lf-cards{gap:10px;padding:0 4px 5px}
.lf-move{min-height:76px;padding:17px 6px 9px}
.lf-move b{font-size:29px}
.lf-move small{margin-top:3px}
.lf-card-corner{top:5px;left:7px}
.lf-cone-art{display:block;width:21px;height:24px;flex:none}
.lf-cone-marker{display:none;position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:1;width:23px;height:calc(100% - 2px);max-height:26px}
.lf-floor.lf-blocked .lf-cone-marker{display:block}
.lf-cone-marker .lf-cone-art{width:100%;height:100%}
.lf-floor.lf-blocked:after{display:none}
.lf-floor.lf-blocked{box-shadow:inset 0 0 12px #e69c4818}
.lf-car.lf-travelling{box-shadow:0 0 22px #8ee9cf66,inset 0 0 8px #e3fff44d}
.win-card.lf-win{width:min(92vw,440px);max-width:440px;padding:20px 18px;max-height:calc(100dvh - 28px);box-sizing:border-box}
.win-card.lf-win .word{font-size:clamp(26px,7vw,34px);line-height:1.25;margin:0 0 8px;white-space:normal;overflow-wrap:anywhere}
.lf-win>p{font-size:12px;line-height:1.4;margin:0 0 12px}
.lf-win .lf-ranking{margin:0 0 12px}
.lf-score-caption{font-size:11px;font-weight:800;color:#adc9ce;text-align:left;margin:0 0 5px}
.lf-bot-scores-hidden{display:none!important}
.lf-score-caption:has(+.win-scores.hidden){display:none}
.lf-rank{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;padding:7px 8px;font-size:12px;align-items:center;min-height:30px;box-sizing:border-box}
.lf-rank-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-rank-place{font-weight:900;opacity:.8}
.lf-rank.lf-rank-lead{background:#8fdbbc17;color:#a6ebce;border-radius:9px}
.lf-rank.lf-rank-you{box-shadow:inset 0 0 0 1px #9ee6d36b;border-radius:9px}
.lf-win .win-scores{margin:0 0 12px}
.lf-win .win-scores .ws-row{padding:7px 9px;font-size:12px;min-height:32px;gap:6px}
.lf-react-row{display:flex;justify-content:center;align-items:center;gap:7px;margin:0 0 12px;flex-wrap:nowrap}
.lf-react-row .gmk-react{flex:none;width:38px;height:38px;font-size:24px}
body.lf-solo .lf-react-row{display:none}
.lf-win .actions{gap:8px;margin-top:0;flex-wrap:wrap}
.lf-win .actions .btn{flex:1;min-width:0;padding:10px 8px;font-size:14px;min-height:42px}
.lf-win .peek-link{font-size:12px;margin-top:10px}
@media(max-width:380px){.lf-stage{gap:7px}.lf-play{padding:8px}.lf-player{grid-template-columns:30px minmax(0,1fr) auto;min-height:32px;padding:4px 5px}.lf-reveal-card{width:30px;min-width:30px;font-size:14px}.lf-avatar{height:21px}.lf-ticket{padding:6px 8px}.lf-room .icon-btn,.lf-room .mp-act-btn{width:32px;height:32px}.lf-room .tools-docked,.lf-room .mp-actions,.lf-room-top{gap:4px}body.lf-mp:not(.is-big) .lf-room .row:has(> .tools-docked .tk-btn.on){padding-right:140px}}
@media(max-height:480px) and (min-width:600px){.lf-play{flex-direction:row;gap:12px}.lf-action{width:46%;border-top:0;border-left:1px solid #85b4be26;padding:0 0 0 10px;align-self:center}.lf-view{height:100%}.lf-stage{flex-basis:230px}.lf-result{font-size:9px}}
body.lf-page{--lf-shell-width:min(92vw,520px)}
body.lf-page > :is(.topbar,.panel,.scroll-area,.primary-bar,.lf-play){width:var(--lf-shell-width);max-width:none}
.lf-scroll > .panel{width:100%;max-width:none}
body.lf-page .primary-bar > :is(.actions,.status){width:100%;max-width:none}
@media(min-width:700px) and (min-height:640px){body.lf-page{--lf-shell-width:min(95vw,620px)}}
body.lf-page :is(.btn,.lf-floorbtn,.seg button){position:relative}
.lf-tap-wave{position:absolute;inset:0;border:2px solid #c7ffe8;border-radius:inherit;pointer-events:none;z-index:2;opacity:0}
.lf-floorbtn.on{background:#b1f1d73b;border-color:#c7ffe8;box-shadow:inset 0 0 0 1px #c7ffe8,0 0 14px #8fdacb30}
.lf-floorbtn.on:after{content:"";position:absolute;right:3px;top:3px;width:4px;height:4px;border-radius:50%;background:#d5fff0}
.lf-move.on{border-color:#d0fff0;box-shadow:0 5px 0 #163c37,0 0 22px #8fdacb40,inset 0 0 0 1px #a1ebc566}
.lf-move.on:after{content:"✓";position:absolute;right:7px;top:6px;width:19px;height:19px;line-height:19px;border-radius:50%;font-size:12px;font-weight:900;color:#163c37;background:#b7f4d9}
.lf-reveal-card.lf-landed{animation:none}
.lf-floor.lf-reach{box-shadow:inset 0 0 0 100px rgb(158 230 211 / var(--lf-reach,0))}
.lf-floor.lf-reach.lf-active{box-shadow:inset 3px 0 #9ee6d3,inset 0 0 0 100px rgb(158 230 211 / var(--lf-reach,0))}
.lf-floor.lf-reach.lf-blocked{box-shadow:inset 0 0 12px #e69c4818,inset 0 0 0 100px rgb(158 230 211 / var(--lf-reach,0))}
.lf-floor.lf-reach:after{content:attr(data-odds);display:block;background:none;left:auto;right:32px;top:50%;height:auto;transform:translateY(-50%);font-size:9px;font-weight:800;line-height:1;color:#d5fff0;font-variant-numeric:tabular-nums}
.lf-floor.lf-reach:not(.lf-blocked):after{right:8px}
.lf-floorbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.lf-floorbtn small{font-size:7px;font-weight:800;color:#f6d599;margin-top:1px;letter-spacing:0}
.lf-floorbtn-cone{border-style:dashed;border-color:#dfb67f88;color:#eac78d}
.lf-floorbtn-cone:before{content:"";position:absolute;left:3px;top:3px;width:7px;height:7px;background:#f18d40;clip-path:polygon(50% 0,100% 100%,0 100%)}
.lf-controls.lf-sending{opacity:.72}
.lf-controls.lf-sending .lf-submit{cursor:progress}
.lf-hud>.lf-clock-urgent{color:#ffb27a;font-weight:900;animation:lf-clock-pulse 1s ease-in-out infinite}
@keyframes lf-clock-pulse{50%{transform:scale(1.14)}}
.lf-logbtn{flex:none;min-height:30px;padding:3px 11px;border:1px solid #8fcbbb55;border-radius:999px;background:#9ee6d312;color:#c4fceb;font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.lf-logbtn:disabled{opacity:.35;cursor:default}
.lf-logbtn[aria-expanded="true"]{background:#9ee6d333;border-color:#c7ffe8}
.lf-log{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;padding:10px;box-sizing:border-box;border:1px solid #b2e6daaa;border-radius:14px;background:linear-gradient(135deg,#1d3d50,#102a36);box-shadow:0 14px 36px #030d2299;cursor:pointer}
.lf-log-head{flex:none;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.lf-log-head b{font-size:13px;color:#e3f8ec}
.lf-log-head span{font-size:9px;color:#88a9bc}
.lf-log-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.lf-log-table{border-collapse:collapse;width:100%;font-size:11px;font-variant-numeric:tabular-nums;color:#d2e6ec}
.lf-log-table :is(th,td){padding:5px 3px;text-align:center;border-bottom:1px solid #85b4be1f;white-space:nowrap}
.lf-log-table thead th{font-size:9px;color:#88a9bc;font-weight:700}
.lf-log-table thead th:first-child{text-align:left}
.lf-log-table th[scope="row"]{position:sticky;left:0;z-index:1;text-align:left;max-width:4.6em;overflow:hidden;text-overflow:ellipsis;font-weight:800;background:#17364a}
.lf-log-floor td{color:#f6d599;font-weight:900}
.lf-log-table .lf-log-blocked{color:#eac78d;text-decoration:line-through}
.lf-log-table .lf-log-hit{color:#b9f5da;font-weight:900}
.lf-log-hit sup{font-size:7px;margin-left:1px}
.lf-log-you th{color:#a6ebce}
@media(prefers-reduced-motion:reduce){.lf-hud>.lf-clock-urgent{animation:none}}
.lf-progress.lf-progress-long{gap:2px}
.lf-action{display:flex;flex-direction:column}
.lf-controls:has(>.lf-next-note){flex:1 1 auto;display:flex;align-items:center;justify-content:center}
.lf-result{min-height:2.8em}
.lf-dir{--lf-dir-c:#8ff0c8}
.lf-dir[data-dir="down"]{--lf-dir-c:#ffc27a}
.lf-hud>.lf-dir{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 7px;border:1px solid var(--lf-dir-c);border-radius:999px;background:color-mix(in srgb,var(--lf-dir-c) 15%,transparent);color:var(--lf-dir-c);font-size:12px;font-weight:900;letter-spacing:.5px;white-space:nowrap;transition:color .2s,border-color .2s,background .2s}
.lf-hud>b{white-space:nowrap}
.lf-hud>.lf-dir{min-width:0}
.lf-dir>span{overflow:hidden;text-overflow:ellipsis}
.lf-lantern{flex:none;display:flex;flex-direction:column;gap:2px}
.lf-hud .lf-lantern b{display:block;width:10px;height:7px;background:currentColor;opacity:.22;clip-path:polygon(50% 0,100% 100%,0 100%)}
.lf-hud .lf-lantern .lf-lantern-down{clip-path:polygon(0 0,100% 0,50% 100%)}
.lf-dir[data-dir="up"] .lf-lantern-up,.lf-dir[data-dir="down"] .lf-lantern-down{opacity:1}
.lf-dir.lf-moving[data-dir="up"] .lf-lantern-up,.lf-dir.lf-moving[data-dir="down"] .lf-lantern-down{animation:lf-lantern-blink .5s ease-in-out infinite alternate}
@keyframes lf-lantern-blink{to{opacity:.45}}
.lf-stage{--lf-dir-c:#8ff0c8}
.lf-stage[data-dir="down"]{--lf-dir-c:#ffc27a}
.lf-flow{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.3;background:var(--lf-dir-c);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='18'%3E%3Cpath d='M5 12l6-6 6 6' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50% 0/22px 18px repeat-y;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='18'%3E%3Cpath d='M5 12l6-6 6 6' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50% 0/22px 18px repeat-y;animation:lf-flow 2.4s linear infinite;transition:opacity .2s}
.lf-stage[data-dir="down"] .lf-flow{transform:scaleY(-1)}
.lf-stage.lf-moving .lf-flow{opacity:.6;animation-duration:.6s}
@keyframes lf-flow{to{-webkit-mask-position:50% -18px;mask-position:50% -18px}}
.lf-stage[data-dir] .lf-car-sign::before{content:"▲ ";color:var(--lf-dir-c)}
.lf-stage[data-dir="down"] .lf-car-sign::before{content:"▼ "}
@media(prefers-reduced-motion:reduce){.lf-flow,.lf-dir .lf-lantern b{animation:none!important}}
