:root{--ink:#080f1c;--panel:#0d1728;--cyan:#54e4d1;--pink:#f76194;--cream:#f7e9c8;--gold:#e9ba5f;--muted:#80939e;--tile:50px}*{box-sizing:border-box}body{margin:0;background:#071019;color:var(--cream);font-family:'Noto Sans SC',sans-serif;min-height:100vh;background-image:radial-gradient(ellipse at 50% 0,#18324766,transparent 65%),linear-gradient(90deg,transparent 49.8%,#72a4b309 50%,transparent 50.2%);background-size:auto,80px 80px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.33}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button{touch-action:manipulation}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:30;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#00000009 4px);opacity:.55}.cabinet{max-width:1260px;margin:auto;padding:0 32px}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #33414c}.brand{display:flex;align-items:center;gap:13px;font-family:'Noto Serif JP',serif;font-weight:900;font-size:27px;letter-spacing:5px}.brand-icon{display:flex;align-items:center;justify-content:center;width:47px;height:47px;border:1px solid var(--pink);font-size:29px;transform:rotate(-5deg);color:var(--pink);box-shadow:3px 3px 0 #763248}.brand small{display:block;font:9px monospace;letter-spacing:2.1px;color:#a6bac3;margin-top:6px}.marquee{font:11px monospace;letter-spacing:4px;color:#a8bdc1;display:flex;align-items:center;gap:18px}.marquee i{height:4px;width:4px;background:var(--pink);box-shadow:0 0 12px var(--pink)}nav{display:flex;gap:10px}.icon-button{width:34px;height:34px;border:1px solid #3b4d5b;background:none;font:20px monospace;border-radius:3px}.icon-button:hover{border-color:var(--cyan);color:var(--cyan)}.game-layout{display:grid;grid-template-columns:58px minmax(0,1fr) 58px;gap:24px}.rail,.right-rail{padding-top:62px;display:flex;align-items:center;flex-direction:column}.rail-word{writing-mode:vertical-rl;font-family:'Noto Serif JP',serif;font-size:34px;letter-spacing:14px;color:var(--pink);text-shadow:0 0 30px #ff4b8350}.rail-tag{writing-mode:vertical-rl;border:1px solid #a44969;color:#bd6881;font-size:10px;letter-spacing:6px;padding:12px 7px;margin-top:23px}.coin-mark{margin-top:auto;padding-bottom:76px;color:var(--gold);text-align:center;font-size:30px}.coin-mark small{display:block;font:8px monospace;letter-spacing:1px;white-space:nowrap;color:#b8a37b}.right-rail span{font-family:'Noto Serif JP',serif;font-size:35px;color:#2b5b61;border-bottom:1px solid #24434c;padding:9px 0}.right-rail div{font-size:12px;line-height:2;letter-spacing:3px;margin-top:54px;color:#a77987}.game{min-width:0}.opponent-row{display:flex;align-items:center;gap:14px;height:104px}.avatar{width:59px;height:65px;overflow:hidden;border:2px solid #bb5779;box-shadow:4px 4px 0 #4a273e}.avatar svg{width:100%;height:100%;object-fit:cover}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--pink)}.wind{display:inline-grid;place-items:center;border:1px solid #738d91;color:var(--cream);width:23px;height:23px;font-family:'Noto Serif JP',serif;font-size:13px;margin-left:5px}.player-info h2{margin:4px 0;font-size:16px;letter-spacing:2px}.player-info p{margin:0;font-size:10px;color:#92a6af;min-height:15px}.score{margin-left:auto;text-align:right}.score small{display:block;font:9px monospace;letter-spacing:2px;color:var(--muted)}.score strong{font:32px monospace;letter-spacing:-1px;color:#f28eac}.table-wrap{background:#172735;padding:10px;border:1px solid #465865;box-shadow:0 7px 0 #030a0f,0 8px 0 #263442;position:relative}.felt{height:432px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#17615c 0,#124746 52%,#0c3237 100%);border:1px solid #3c8078;display:flex;flex-direction:column;align-items:center}.felt:before{content:'';position:absolute;inset:0;opacity:.22;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ffffff' filter='url(%23n)' opacity='.2' d='M0 0h100v100H0z'/%3E%3C/svg%3E")}.felt-border{position:absolute;inset:14px;border:1px solid #70c6b229;pointer-events:none}.opponent-tiles{height:56px;display:flex;align-items:flex-start;justify-content:center;gap:2px;padding-top:6px;z-index:1}.tile-back{width:27px;height:37px;background:linear-gradient(90deg,#dbb071,#f0cb90 45%,#ddb37b);border:1px solid #191e20;border-radius:2px;box-shadow:0 4px 0 #a5794e;position:relative}.tile-back:after{content:'';position:absolute;inset:5px;border:1px solid #b78c56;border-radius:2px}.river-zone{width:min(76%,590px);height:106px;position:relative;z-index:1;flex-shrink:0}.river-label{font:7px monospace;letter-spacing:2px;color:#9ad0bb70;text-align:center;margin:4px 0}.river{display:flex;justify-content:center;align-content:flex-start;gap:3px;flex-wrap:wrap;max-width:490px;margin:auto;min-height:67px}.river .tile{--tile:25px;min-width:25px;width:25px;height:34px;border-radius:2px;border-bottom-width:3px;box-shadow:0 2px 0 #6d7055;flex-shrink:0;cursor:default;padding:0}.river .tile svg{height:100%;width:100%}.river .tile.called{opacity:.28}.river .tile.riichi-discard{transform:rotate(90deg);margin:0 4px}.river .tile.last-discard{outline:2px solid var(--gold);outline-offset:2px}.table-center{display:flex;align-items:center;justify-content:center;gap:34px;z-index:1;height:126px;flex-shrink:0;width:100%}.round-sign{width:78px;height:88px;border:1px solid #7fae8d5e;background:#102e32aa;text-align:center;padding:7px;box-shadow:3px 3px 0 #102b29}.round-sign small{display:block;font-size:12px;letter-spacing:2px;color:#f0d8a4}.round-sign strong{display:block;font:32px monospace;line-height:37px;color:#e7ddae}.round-sign span{font-size:8px;letter-spacing:3px;color:#9ab8ad}.center-word{font:900 47px 'Noto Serif JP',serif;letter-spacing:10px;color:#91c6a43c;text-shadow:1px 2px 1px #062c2566}.center-word small{display:block;text-align:center;font:7px monospace;letter-spacing:4px;margin-top:4px;color:#a3c7a965}.dora-block{min-width:78px;text-align:center}.dora-block>small{font-size:9px;color:#a3c8b3;letter-spacing:1px}.dora-block>div{display:flex;justify-content:center;gap:2px;margin:5px 0}.dora-block .tile{--tile:25px;width:25px;height:34px;padding:0;cursor:default;border-bottom-width:3px}.dora-block>span{font:9px monospace;color:#c6bea1}.player-river-zone{padding-top:7px}.melds{position:absolute;display:flex;gap:8px;z-index:3}.meld-group{display:flex;gap:1px}.melds .tile{width:22px;height:30px;padding:0;border-bottom-width:2px;cursor:default;border-radius:2px}.ai-melds{right:19px;top:21px;max-width:145px;flex-wrap:wrap;justify-content:flex-end}.player-melds{right:20px;bottom:15px}.table-corner{position:absolute;color:#79b49390;font-size:13px}.tl{left:23px;top:23px}.tr{right:23px;top:23px}.bl{left:23px;bottom:23px}.br{right:23px;bottom:23px}.you-row{height:67px;display:flex;gap:12px;align-items:center}.you-tag{font:11px monospace;display:flex;align-items:center;gap:9px;letter-spacing:2px}.you-tag .wind{margin:0;border-color:var(--cyan);color:var(--cyan)}#status{font-size:11px;color:#acc5c5;margin:auto 0}.your-score{margin-left:auto;display:flex;align-items:baseline;gap:12px}.your-score span{font:8px monospace;color:var(--muted);letter-spacing:1px}.your-score strong{font:29px monospace;color:var(--cyan)}.hand-wrap{min-height:88px;display:flex;align-items:flex-end;justify-content:center;padding:5px 0 2px}.hand{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%;min-height:78px}.tile{display:inline-flex;position:relative;align-items:center;justify-content:center;background:linear-gradient(100deg,#fff6dd,#eddfc0);border:1px solid #d5c9a8;border-bottom:5px solid #baaf89;border-radius:4px;width:var(--tile);height:calc(var(--tile)*1.38);padding:3px;box-shadow:0 4px 0 #898e77,0 5px 8px #0005;transition:transform .16s,box-shadow .16s;flex-shrink:0;color:#163c3a}.tile svg{width:100%;height:100%;overflow:visible}.hand .tile{width:calc((100% - 74px)/14);max-width:55px;min-width:0;height:auto;aspect-ratio:0.72;position:relative;cursor:pointer}.hand .tile:disabled{opacity:.68}.hand .tile:hover:not(:disabled){transform:translateY(-8px);box-shadow:0 4px 0 #a6bca1,0 5px 13px #36cbbc77}.hand .tile.selected{transform:translateY(-13px);outline:2px solid var(--cyan);outline-offset:2px;box-shadow:0 4px 0 #b3c4a3,0 6px 22px #36cbbc66}.hand .tile.drawn{margin-left:9px}.hand .tile.valid-riichi:before{content:'';position:absolute;top:-8px;width:5px;height:5px;border-radius:50%;background:var(--pink);box-shadow:0 0 7px var(--pink)}.tile kbd{position:absolute;bottom:-23px;font:9px monospace;color:#7f98a2;left:50%;transform:translateX(-50%);padding:0;background:none;border:0}.tile.selected kbd{color:var(--cyan)}.action-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:82px;margin-top:13px;padding-top:10px}.hand-insight{font-size:10px;line-height:1.8;color:#819da7;max-width:43%}.hand-insight b{color:var(--gold);font-weight:500}.insight-tiles{display:inline-flex;gap:4px;margin-left:5px;color:#d6ccb0}.actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.action{border:1px solid #465666;border-radius:3px;padding:9px 13px;background:#112333;font-size:12px;letter-spacing:1px;white-space:nowrap}.action small{font:9px monospace;color:#8da1af;margin-left:7px}.action:hover:not(:disabled){background:#1a3845;border-color:var(--cyan)}.action.primary{color:#071b22;background:var(--cyan);border-color:var(--cyan);font-weight:700;box-shadow:0 3px 0 #278b80}.action.primary small{color:#1a5b56}.action.riichi{border-color:var(--pink);color:var(--pink)}.action.win{background:var(--gold);border-color:var(--gold);color:#142e31;font-weight:900;animation:buttonGlow 1s alternate infinite}.keyboard-help{display:flex;align-items:center;justify-content:space-between;padding:10px 0 22px;gap:15px;font-size:9px;color:#677f8d;line-height:1.8}kbd{font:9px monospace;border:1px solid #344552;padding:2px 4px;border-radius:2px;color:#8fa8b4}.cabinet-bottom{border-top:1px solid #24333f;display:flex;justify-content:space-between;color:#55727d;font:8px monospace;letter-spacing:2px;padding:15px 0 19px}.riichi-badge{font-size:9px;background:var(--pink);color:#291a31;padding:3px 5px;margin-left:5px;letter-spacing:1px}.flash{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:10;opacity:0;background:linear-gradient(90deg,transparent,#041c22dd 30%,#041c22dd 70%,transparent)}.flash.active{animation:callFlash 1.2s both}.flash strong{font:900 92px 'Noto Serif JP',serif;color:var(--cream);text-shadow:5px 5px 0 #8b3557,-2px -2px 0 #f76194;transform:skew(-7deg)}.flash small{font:12px monospace;letter-spacing:12px;color:var(--pink);margin-left:12px}.particles{position:absolute;inset:0;z-index:11;pointer-events:none}.particle{position:absolute;width:6px;height:14px;background:var(--gold);animation:fall 2.8s ease-in forwards}.modal-backdrop{position:fixed;inset:0;background:#020812cb;backdrop-filter:blur(7px);z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.modal{position:relative;background:#0d1b2a;border:1px solid #566c79;box-shadow:10px 10px 0 #030b10,0 0 90px #57d9c311;width:620px;max-width:100%;padding:38px;color:var(--cream)}.start-screen{width:510px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#422642,#101b2a 70%);border:1px solid #d77494;padding:25px 38px;box-shadow:9px 9px 0 #221d35,10px 10px 0 #704154}.start-screen:before,.start-screen:after{content:'';position:absolute;width:200px;height:420px;border:1px solid #cd698429;transform:rotate(34deg);top:35px;left:-92px;pointer-events:none}.start-screen:after{left:auto;right:-102px}.start-top,.start-foot{display:flex;justify-content:space-between;font:8px monospace;letter-spacing:2px;color:#ad829b;position:relative;z-index:1}.start-kanji{font:900 95px 'Noto Serif JP',serif;color:#9e386248;position:absolute;top:52px;right:26px;writing-mode:vertical-rl;letter-spacing:2px}.start-kanji span{font-size:57px;letter-spacing:15px;margin-top:20px}.start-overline{font:12px 'Noto Serif JP',serif;letter-spacing:4px;margin:42px 0 15px;color:#b9c4c9}.start-screen h1{font:900 91px 'Noto Serif JP',serif;letter-spacing:10px;margin:0;color:#ffe8bb;text-shadow:5px 5px 0 #9c476a,7px 7px 0 #101824;position:relative}.start-screen h1 span{display:block;font:11px monospace;letter-spacing:9px;color:#f393b2;text-shadow:none;margin-top:7px}.start-tiles{display:flex;justify-content:center;gap:8px;margin:30px 0 25px;transform:rotate(-5deg)}.start-tiles .tile{--tile:48px;box-shadow:0 5px 0 #979d7c,5px 9px 0 #07101c;pointer-events:none}.start-tiles .tile:nth-child(2){transform:translateY(-5px)}.start-tiles .tile:nth-child(3){transform:translateY(-10px)}.start-copy{font-size:11px;color:#a6b4bb;line-height:2;letter-spacing:1px}.start-button{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--pink);color:#1e1526;border:0;border-bottom:4px solid #a53d64;padding:16px 19px;font-size:17px;font-weight:900;letter-spacing:2px;margin-top:24px;box-shadow:0 0 20px #f7619424}.start-button span{font:9px monospace;letter-spacing:1px}.start-button:hover{background:#ff8aaf}.text-button{border:0;background:none;font-size:10px;letter-spacing:1px;color:#aebfc5;padding:17px}.text-button:hover{color:var(--cyan)}.start-foot{border-top:1px solid #68516260;padding-top:16px;font-size:7px;letter-spacing:1px;color:#82929c}.close-button{position:absolute;right:15px;top:12px;border:0;background:none;font-size:26px;color:#a3bbc3}.rules-modal h2{font:700 29px 'Noto Sans SC',sans-serif;margin:10px 0 24px}.rules-tabs{display:flex;gap:0;border-bottom:1px solid #354959}.tab{padding:10px 13px;border:0;border-bottom:2px solid transparent;background:none;color:#8a9ca6;font-size:12px}.tab.active{color:var(--cyan);border-color:var(--cyan)}#rules-content{font-size:12px;line-height:1.9;color:#adc0c6;max-height:55vh;overflow:auto;padding-top:15px}#rules-content h3{font-size:14px;color:#ecdfc3;margin:14px 0 7px}#rules-content p{margin:7px 0}#rules-content a{color:var(--cyan);text-decoration:underline}#rules-content ul{padding-left:19px}#rules-content li{padding:3px 0}.practice-card{border:1px solid #3f535f;background:#122b36;display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:16px;margin:12px 0;font-size:12px}.practice-card strong{display:block;color:var(--cream);margin-bottom:5px}.practice-card small{color:#839fa7}.practice-card:hover{border-color:var(--cyan)}.result-modal{text-align:center;background:radial-gradient(ellipse at top,#38304a,#0d1b2a 70%);border-color:#d6ac70;overflow:hidden}.result-eyebrow{font:10px monospace;letter-spacing:4px;color:var(--pink)}.result-modal h2{font:900 75px 'Noto Serif JP',serif;color:#ffe6a5;margin:10px 0 25px;text-shadow:4px 4px 0 #915366;letter-spacing:12px}.result-hand{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:27px}.result-hand .tile{--tile:30px;width:30px;height:42px;border-bottom-width:3px;padding:1px;cursor:default}.result-yaku-row{display:flex;justify-content:space-between;border-bottom:1px solid #53627240;padding:7px 15px;font-size:12px}.result-yaku-row span:last-child{color:var(--gold);font-family:monospace}.result-total{font:32px monospace;color:var(--cyan);margin:20px 0 10px}.result-total small{display:block;font:10px 'Noto Sans SC',sans-serif;color:#a0adb7;margin-top:8px}.result-modal #result-note{font-size:11px;color:#a6b5bf;line-height:1.9}.result-modal .start-button{justify-content:center;font-size:14px}.confirm-modal{width:420px}.confirm-modal h2{font-size:23px}.confirm-modal p{font-size:13px;color:#93aab4}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.reduced-motion *{animation:none!important;transition:none!important}@keyframes callFlash{0%{opacity:0;transform:scale(1.35)}15%,65%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.94)}}@keyframes fall{0%{transform:translateY(-30px) rotate(0);opacity:1}100%{transform:translateY(490px) rotate(560deg);opacity:0}}@keyframes buttonGlow{to{box-shadow:0 0 15px #e9ba5f80}}@media(min-height:900px){.cabinet{padding-top:14px}.felt{height:465px}.table-center{height:154px}.hand-wrap{padding-top:12px}.opponent-row{height:112px}}@media(max-width:1000px){.cabinet{padding:0 20px}.game-layout{grid-template-columns:30px minmax(0,1fr) 30px;gap:15px}.rail-word{font-size:26px}.right-rail span{font-size:27px}.felt{height:410px}.table-center{height:110px}.keyboard-help{font-size:8px}.hand .tile{border-bottom-width:4px}.action{padding:8px 10px}}@media(max-width:760px){.cabinet{padding:0 13px}.topbar{height:74px}.brand{font-size:22px}.brand-icon{width:37px;height:37px;font-size:24px}.brand small{font-size:7px;letter-spacing:1.5px}.marquee{display:none}.game-layout{display:block}.rail,.right-rail{display:none}.opponent-row{height:85px}.avatar{width:47px;height:54px}.player-info h2{font-size:14px}.score strong{font-size:27px}.felt{height:415px}.table-wrap{padding:7px}.table-center{gap:28px;height:115px}.river-zone{width:84%}.river{gap:3px;max-width:440px}.river .tile{min-width:23px;width:23px;height:32px}.hand{gap:3px}.hand .tile{width:calc((100% - 51px)/14);max-width:52px;padding:2px}.hand .tile.drawn{margin-left:6px}.you-row{height:61px;gap:8px}.your-score{gap:4px;display:block;text-align:right}.your-score span{display:block;font-size:7px}.your-score strong{font-size:25px}#status{font-size:10px;line-height:1.6}.action-bar{min-height:91px;margin-top:7px}.hand-insight{font-size:9px;max-width:39%}.actions{gap:5px}.action{font-size:11px;padding:9px}.action small{display:none}.keyboard-help{display:none}.cabinet-bottom{font-size:7px;letter-spacing:1px}.cabinet-bottom span:nth-child(2){display:none}.hand-wrap{min-height:83px}.start-screen{max-width:470px}}@media(max-width:480px){.cabinet{padding:0 9px}.topbar{height:66px}nav{gap:7px}.icon-button{width:31px;height:31px}.brand{gap:10px}.brand small{font-size:6px}.opponent-row{height:81px}.player-info h2{font-size:12px}.felt{height:392px}.table-center{height:107px;gap:20px}.center-word{font-size:34px;letter-spacing:7px}.center-word small{font-size:6px;letter-spacing:2px}.round-sign{width:64px;height:79px;padding:5px}.round-sign strong{font-size:27px;line-height:32px}.dora-block{min-width:62px}.dora-block .tile{width:23px;height:32px}.opponent-tiles{height:54px;gap:1px}.tile-back{width:21px;height:30px}.river-zone{width:85%;height:105px}.river{max-width:330px;gap:3px}.river .tile{min-width:20px;width:20px;height:28px;border-bottom-width:2px}.river-label{font-size:6px}.hand .tile{border-bottom-width:3px;border-radius:3px;padding:1px}.hand{gap:2px}.hand .tile{width:calc((100% - 34px)/14)}.tile kbd{font-size:7px;bottom:-20px}.hand-wrap{min-height:72px}.you-tag{font-size:10px;gap:5px}.you-tag .wind{width:20px;height:22px}.your-score strong{font-size:22px}#status{max-width:170px}.hand-insight{max-width:37%}.actions{max-width:63%}.action{font-size:10px;padding:8px}.modal{padding:26px 22px}.start-screen{padding:23px 28px}.start-screen h1{font-size:78px}.start-overline{font-size:10px;margin-top:36px}.start-kanji{font-size:70px}.start-button{font-size:15px}.start-button span{font-size:8px}.start-tiles{margin:26px 0 22px}.result-modal h2{font-size:57px}.result-hand{gap:2px}.result-hand .tile{width:22px;height:32px}.table-corner{display:none}.ai-melds{top:43px;right:9px}.player-melds{right:9px;bottom:10px}.melds .tile{width:17px;height:24px}.flash strong{font-size:74px}.rules-tabs .tab{padding:9px;font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(max-width:480px){.felt{height:432px}.river-zone{height:125px}}

/* FluffyStuff Regular glyphs are layered over the original Front.svg face/bevel; keep game layout and states. */
.tile,.hand .tile,.river .tile,.dora-block .tile,.melds .tile,.result-hand .tile{padding:0;border:0;background:transparent}
.tile-art{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.tile-back{background:transparent;border:0;box-shadow:0 3px 0 #9b2935;overflow:hidden;border-radius:3px;flex-shrink:0}
.tile-back:after{display:none}.tile-back.compact{width:22px;height:30px}
@media(max-width:480px){.tile-back.compact{width:17px;height:24px}}

.tile>.tile-art{position:relative}

/* Online rooms retain the original cabinet and tile artwork. */
.online-start-button{margin-top:12px;background:var(--cyan);border-bottom-color:#2d8d85;box-shadow:0 0 20px #54e4d118}.online-start-button:hover{background:#89f3dd}
.start-screen,.room-modal{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}.start-screen .text-button{min-height:44px}.room-modal{width:520px}.room-modal h2{font-size:30px;margin:12px 0}.room-modal>p{font-size:13px;line-height:1.8;color:#a2b9c2}.room-field{display:block;font-size:12px;color:#bac9cb;margin:18px 0 10px}.room-field input,.room-invite input{display:block;width:100%;min-width:0;border:1px solid #48616e;background:#071622;color:var(--cream);border-radius:3px;padding:12px;font:16px sans-serif;margin-top:8px;outline-offset:3px}.room-field input:focus-visible,.room-invite input:focus-visible,.speed-control select:focus-visible{outline:2px solid var(--cyan)}.room-modal .start-button{margin-top:19px}.room-divider{display:flex;align-items:center;gap:12px;font-size:10px;color:#718e9b;margin:24px 0 4px}.room-divider:before,.room-divider:after{content:'';height:1px;background:#304554;flex:1}.room-join-button{width:100%;min-height:46px;border-color:#54e4d185;color:var(--cyan)}.room-modal-status{min-height:23px;color:var(--gold)!important;font-size:12px!important;margin-bottom:12px}.room-privacy{display:block;color:#79939f;font-size:10px;line-height:1.8}.room-modal .close-button{min-width:44px;min-height:44px;top:7px;right:7px}#room-resume{margin-top:16px}#room-resume .action{width:100%;min-height:44px}
.online-panel{margin:20px 82px 0;border:1px solid #315864;border-top:2px solid var(--cyan);background:linear-gradient(110deg,#0d2630,#101c2b);padding:16px 18px;box-shadow:0 4px 0 #030c16}.room-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-topline>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.room-topline strong{font:700 13px monospace;letter-spacing:1px}.room-topline .text-button{padding:9px 0 9px 9px;min-height:40px;font-size:11px}.room-dot{width:7px;height:7px;flex-shrink:0;background:var(--cyan);box-shadow:0 0 10px #54e4d155;border-radius:50%}.room-dot.disconnected{background:var(--gold);box-shadow:none}#room-connection{color:#83a7ad;font:10px monospace}.room-error{padding:12px;margin:9px 0;color:#ffd58f;border:1px solid #9f753a;background:#3c302a;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.room-seats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.room-seat{display:flex;flex-direction:column;gap:6px;border:1px solid #344653;background:#0c1723;padding:12px;min-width:0}.room-seat.is-you{border-color:#3d7f7d}.room-seat>span{font:9px monospace;color:#849da5;letter-spacing:1px}.room-seat strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}.room-seat small{font-size:10px;color:#9bb4b8}.room-seat.is-you>span{color:var(--cyan)}.room-lobby-actions{display:flex;gap:9px;align-items:center;margin-top:12px;flex-wrap:wrap}.room-lobby-actions:empty{display:none}.room-lobby-actions>span{font-size:10px;color:#92aab3}.online-panel .action,.online-mode .actions .action{min-height:44px}.room-invite{border-top:1px solid #2b4552;margin-top:14px;padding-top:14px}.room-invite>label{font-size:11px;color:#b5c9cb}.room-invite>div{display:flex;gap:8px;margin-top:8px}.room-invite input{font:11px monospace;margin:0;padding:9px}.room-invite small{display:block;font-size:10px;line-height:1.7;color:#78939f;margin-top:9px}.room-invite .action{flex-shrink:0}.bot-toolbar{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #2b4552}.bot-control{display:flex;flex-direction:column;gap:7px}.bot-control .eyebrow{font-size:8px;color:#81aeb1;letter-spacing:1px}.bot-toolbar .action{font-size:11px;padding:8px 11px}.speed-control{display:flex;flex-direction:column;gap:7px;font-size:9px;color:#8eabb1;flex:1;min-width:124px;margin-left:auto}.speed-control select{border:1px solid #465b68;border-radius:3px;background:#0d2130;color:var(--cream);font:11px sans-serif;min-height:44px;padding:8px;max-width:100%}.room-help{font-size:10px;color:#8caaaf;line-height:1.8;margin:12px 0 0}.online-mode .opponent-row{height:92px}
.room-debug{border:1px solid #34505c;background:#0b1926;margin:2px 0 24px;font-size:11px}.room-debug>summary{cursor:pointer;min-height:49px;line-height:1.8;padding:15px;color:var(--cyan);letter-spacing:1px}.room-debug>summary>span{font-size:9px;color:#7d9da6;margin-left:10px;letter-spacing:0}.debug-intro{padding:0 16px 14px;color:#89a3ad;font-size:11px;line-height:1.8}.debug-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:14px;padding:0 16px}.debug-columns section{min-width:0;background:#0b1520;border:1px solid #2a3e4b;padding:13px}.room-debug h3{font-size:11px;font-weight:500;color:#d8ccae;margin:0 0 12px}.debug-decision{display:flex;flex-direction:column;gap:8px;padding:0 0 10px}.debug-decision>span{font:9px monospace;color:#71949e}.debug-decision strong{font-size:15px;font-weight:600;color:var(--cyan)}.debug-reason{font-size:11px;color:#a6bdc4;line-height:1.7;overflow-wrap:anywhere}.debug-formula{font:10px monospace;color:#99a797;line-height:1.7;overflow-wrap:anywhere}.debug-empty,.candidate-note{color:#748f9c;font-size:10px;line-height:1.8}.candidate-scroll{overflow-x:auto;margin:12px 0}.candidate-grid{display:grid;grid-template-columns:1.1fr .7fr .7fr 1fr 1fr;gap:5px;padding:7px 4px;border-bottom:1px solid #263a454f;text-align:right;font:10px monospace;color:#8aa5af;min-width:245px}.candidate-grid>span:first-child{text-align:left}.candidate-grid.candidate-head{color:#b5c3c2;font-size:9px}.candidate-grid.chosen{color:var(--cyan);background:#3eb7aa12}.raw-trace{margin-top:14px}.raw-trace summary{color:#829ba5;font-size:10px;cursor:pointer;padding:7px 0}.raw-trace pre{font:10px monospace;line-height:1.6;color:#91aaa6;max-height:280px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #29434d;padding:9px}.debug-history-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 0}.debug-history-head h3{margin:0}.debug-history-head .text-button{padding:10px 0;min-height:44px;color:#9fb6be;font-size:10px}#debug-history{list-style:none;margin:0 16px 16px;padding:0;max-height:230px;overflow:auto}#debug-history li{display:grid;grid-template-columns:75px minmax(0,1fr) auto;gap:8px;border-top:1px solid #263e493d;padding:9px 0;font-size:10px;color:#819fa7}#debug-history strong{font-weight:400;color:#b7c3bd}#debug-history time{font:9px monospace;color:#64848f}#debug-copy-status{padding:0 16px;color:var(--cyan);font-size:10px}.meld-gap{width:8px}
@media(max-width:1000px){.online-panel{margin-left:45px;margin-right:45px}}
@media(max-width:760px){.online-panel{margin:14px 0 0;padding:13px}.debug-columns{grid-template-columns:1fr}.room-debug{margin-top:16px}.online-mode .action-bar{align-items:flex-start}.online-mode .actions{padding-bottom:10px}.room-topline>div{gap:7px}.room-topline strong{font-size:11px}}
@media(max-width:480px){.room-modal{padding:28px 22px}.room-topline{align-items:flex-start}.room-topline>div{max-width:70%}#room-connection{flex-basis:100%;margin-left:14px;font-size:9px}.room-topline .text-button{padding-top:0}.room-seats{gap:7px}.room-seat{padding:10px}.room-seat strong{font-size:12px}.bot-toolbar{gap:7px}.bot-control{flex-basis:100%}.bot-control .action{width:100%}.bot-toolbar>.action{flex:1}.speed-control{flex-basis:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:3px}.speed-control select{width:70%;font-size:12px}.online-mode #status{max-width:155px}.online-mode .actions{max-width:66%}.online-mode .actions .action{font-size:10px;padding:8px 10px}.room-debug>summary>span{font-size:8px;margin-left:4px}.debug-columns{padding:0 10px;gap:10px}.debug-columns section{padding:10px}.room-invite>div{flex-wrap:wrap}.room-invite input{min-height:42px;flex-basis:100%;font-size:10px}.room-invite .action{width:100%}.start-screen .start-overline{margin-top:22px}.start-screen .start-tiles{margin:20px 0 16px}.start-screen .start-copy{margin-bottom:12px}.start-screen .start-button{padding:13px 15px;margin-top:14px}.start-screen .online-start-button{margin-top:10px}.start-screen h1{font-size:68px}.start-screen .text-button{padding:13px}.start-screen .start-foot{padding-top:12px}.room-modal>p{font-size:12px}}
.room-online-link{display:block;text-align:center;padding:14px;color:var(--cyan);margin:10px 0 16px;line-height:1.5}
