:root{--bg-primary: #E8DEC8;--bg-accent: #C4956A;--card-bg: #F5F0E8;--card-border: #D4C9B0;--text-primary: #2C2416;--text-muted: #8B7355;--accent-red: #8B2020;--dice-shell: #fffdf1;--dice-edge: #29302b;--dice-accent: rgba(168, 50, 45, .46);--dice-pip: #384037;--dice-pip-dark: #1f241f;--dice-joker: #e26858;--dice-joker-dark: #a8322d;--dice-emissive: #1f1a10;--dice-shadow: #3a2a1b;color:var(--text-primary);background:var(--bg-primary);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}body.theme-sumi{--bg-primary: #E8DEC8;--bg-accent: #C4956A;--card-bg: #F5F0E8;--card-border: #D4C9B0;--text-primary: #2C2416;--text-muted: #8B7355;--accent-red: #8B2020}body.theme-arashi{--bg-primary: #2A2926;--bg-accent: #69645C;--card-bg: #36332F;--card-border: #6C665D;--text-primary: #F1EEE6;--text-muted: #C4BDB1;--accent-red: #B8584E;--dice-shell: #E0DCD2;--dice-edge: #2A2926;--dice-accent: rgba(218, 211, 197, .48);--dice-pip: #46423C;--dice-pip-dark: #1E1D1A;--dice-joker: #e56458;--dice-joker-dark: #9e3028;--dice-emissive: #1A1917;--dice-shadow: #1A1917}body.theme-auto-weather{--bg-primary: #E9DDC8;--bg-accent: #A87755;--card-bg: #F5EEE1;--card-border: #D2B98F;--text-primary: #2D261B;--text-muted: #756349;--accent-red: #9B3C30;--dice-shell: #fff8ea;--dice-edge: #3a3327;--dice-accent: rgba(155, 60, 48, .44);--dice-pip: #514937;--dice-pip-dark: #292417;--dice-joker: #d76f5c;--dice-joker-dark: #9b3c30;--dice-emissive: #20180f;--dice-shadow: #40301e}body.theme-auto-weather.auto-weather-dawn{--bg-primary: #F2DECA;--bg-accent: #D69070;--card-bg: #FFF1DF;--card-border: #E0B68F;--text-muted: #856B55;--accent-red: #A64B3D;--dice-shell: #fff1db;--dice-accent: rgba(199, 104, 78, .48);--dice-joker: #e17862;--dice-joker-dark: #a64b3d}body.theme-auto-weather.auto-weather-day{--bg-primary: #EBDCC0;--bg-accent: #9F8A5C;--card-bg: #F8F0DF;--card-border: #D6BE8F}body.theme-auto-weather.auto-weather-cloudy{--bg-primary: #DCD5C8;--bg-accent: #7C8B89;--card-bg: #EEEAE1;--card-border: #B9B5A9;--text-muted: #68706A;--accent-red: #85504B;--dice-shell: #f0ebdf;--dice-edge: #3d463f;--dice-accent: rgba(117, 116, 104, .48)}body.theme-auto-weather.auto-weather-sunset{--bg-primary: #EBC8AD;--bg-accent: #B76355;--card-bg: #FAE2CD;--card-border: #D99978;--text-muted: #7E5A49;--accent-red: #A33F37;--dice-shell: #ffe6cf;--dice-joker: #e06b56;--dice-joker-dark: #9e3a32}body.theme-auto-weather.auto-weather-night{--bg-primary: #141B24;--bg-accent: #384D63;--card-bg: #172433;--card-border: #405268;--text-primary: #EEF3EC;--text-muted: #A8B7B9;--accent-red: #D16A58;--dice-shell: #dfe6df;--dice-edge: #18212b;--dice-accent: rgba(107, 133, 157, .56);--dice-pip: #35475a;--dice-pip-dark: #101923;--dice-joker: #df7660;--dice-joker-dark: #a1483b;--dice-emissive: #091018;--dice-shadow: #071018}body.theme-auto-weather.auto-weather-rain,body.theme-auto-weather.auto-weather-storm{--bg-primary: #202B31;--bg-accent: #496A73;--card-bg: #203039;--card-border: #5C7474;--text-primary: #F0F2E8;--text-muted: #B5C3BC;--accent-red: #D27961;--dice-shell: #e3e5da;--dice-edge: #1c292e;--dice-accent: rgba(119, 152, 154, .58);--dice-pip: #334b50;--dice-pip-dark: #111c20;--dice-joker: #df7d68;--dice-joker-dark: #a24c3f;--dice-emissive: #0b1417;--dice-shadow: #071014}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100svh;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary)}button,input,select{font:inherit}button{min-height:44px;border:1px solid color-mix(in srgb,var(--text-primary) 80%,transparent);border-radius:8px;padding:0 16px;background:var(--accent-red);color:color-mix(in srgb,var(--card-bg) 92%,white);cursor:pointer;box-shadow:0 8px 18px #3e1c1629;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #3e1c162e}button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none}input,select{min-height:44px;width:100%;border:1px solid color-mix(in srgb,var(--card-border) 75%,var(--text-primary));border-radius:8px;background:color-mix(in srgb,var(--card-bg) 88%,transparent);color:var(--text-primary);padding:0 12px}.app-shell{position:relative;min-height:100vh;min-height:100svh;padding:clamp(14px,1.65vw,22px);isolation:isolate}.app-shell>:not(.animated-background):not(.modal-backdrop){position:relative;z-index:10}.animated-background{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100svh;z-index:0;overflow:hidden;pointer-events:none;background:var(--bg-primary);contain:layout paint style}.background-scene{position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;pointer-events:none;transition:opacity 1.2s ease}.background-scene.is-active{z-index:0}.animated-background.is-crossfading .background-scene.is-active{animation:themeSceneFadeIn 1.2s ease both}.background-scene.is-exit-start,.background-scene.is-exiting{z-index:1}.background-scene.is-exiting{opacity:0}.theme-gradient,.generated-background-image,.background-canvas,.sumi-fog,.sumi-moon,.arashi-water,.lightning-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.theme-gradient{z-index:0;opacity:1;transition:opacity .6s ease}.theme-sumi .theme-gradient{background:linear-gradient(180deg,#d4c9b0,#e8dec8)}.theme-arashi .theme-gradient{background:radial-gradient(circle at 72% 14%,rgba(190,181,164,.2),transparent 24%),linear-gradient(180deg,#22211f,#302f2c 56%,#262521)}.theme-auto-weather .theme-gradient{background:radial-gradient(circle at 78% 16%,color-mix(in srgb,var(--bg-accent) 34%,transparent),transparent 22%),linear-gradient(180deg,color-mix(in srgb,var(--bg-primary) 86%,white) 0%,var(--bg-primary) 100%)}.theme-auto-weather.auto-weather-night .theme-gradient,.theme-auto-weather.auto-weather-rain .theme-gradient,.theme-auto-weather.auto-weather-storm .theme-gradient{background:radial-gradient(circle at 76% 13%,color-mix(in srgb,var(--bg-accent) 30%,transparent),transparent 24%),linear-gradient(180deg,color-mix(in srgb,var(--bg-primary) 82%,#05070b) 0%,var(--bg-primary) 100%)}.generated-background-image{z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;filter:brightness(.85);transform:translateZ(0);transition:opacity 1.2s ease;will-change:transform,filter}.generated-background-image.loaded{opacity:1}.theme-auto-weather .generated-background-image.loaded{opacity:.88;filter:saturate(.96) contrast(.98);animation:livingImageDrift 24s ease-in-out infinite alternate}.theme-auto-weather.auto-weather-night .generated-background-image.loaded{opacity:.72;filter:saturate(.82) brightness(.72) contrast(1.04)}.theme-auto-weather.auto-weather-rain .generated-background-image.loaded,.theme-auto-weather.auto-weather-storm .generated-background-image.loaded{opacity:.76;filter:saturate(.78) brightness(.82) contrast(1.02)}.background-canvas{width:100%;height:100%;transform:translateZ(0);opacity:1;transition:opacity .6s ease}.base-canvas{z-index:2}.fx-canvas{z-index:5}.sumi-fog{z-index:3;opacity:.3;transition:opacity .6s ease}.screen-room .sumi-fog{opacity:.5}.screen-game .sumi-fog{opacity:.34}.fog-strip{position:absolute;left:-20%;width:140%;background:linear-gradient(90deg,transparent,rgba(245,240,232,.8),transparent);transform:translateZ(0);animation-name:fogDrift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.fog-strip-1{top:18%;height:72px;animation-duration:35s}.fog-strip-2{top:34%;height:110px;animation-duration:48s;animation-direction:alternate-reverse}.fog-strip-3{top:52%;height:88px;animation-duration:55s}.fog-strip-4{top:70%;height:60px;animation-duration:42s;animation-direction:alternate-reverse}.screen-game .fog-strip-1{animation-duration:50s}.screen-game .fog-strip-2{animation-duration:69s}.screen-game .fog-strip-3{animation-duration:79s}.screen-game .fog-strip-4{animation-duration:60s}.sumi-moon{z-index:4;inset:auto 9vw auto auto;top:7vh;width:180px;height:180px;border-radius:50%;background:var(--bg-accent);opacity:.6;transform:translateZ(0);animation:moonPulse 8s ease-in-out infinite;transition:opacity .6s ease}.screen-room .sumi-moon{width:210px;height:210px}.screen-game .sumi-moon{opacity:.42}.arashi-water{z-index:4;top:75%;background:repeating-linear-gradient(175deg,rgba(235,230,220,.1) 0 2px,transparent 2px 12px),linear-gradient(180deg,#625d5433,#22211fc7);filter:blur(2px);opacity:.64;transform:translateZ(0);animation:waterRipple 3s linear infinite;transition:opacity .6s ease}.screen-game .arashi-water{animation-duration:2.1s}.lightning-flash{z-index:6;background:#fff;opacity:0;transition:opacity 80ms linear}.is-lightning .lightning-flash{animation:lightningFlash .22s linear both}.background-scene.theme-arashi:after,.background-scene.theme-sumi:after,.background-scene.theme-auto-weather:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;pointer-events:none;background:url(/assets/paper-grain.png),radial-gradient(circle at 20% 10%,rgba(255,255,255,.2),transparent 28%);background-size:256px 256px,auto;mix-blend-mode:multiply;opacity:.45}.background-scene.theme-arashi:after{opacity:.18}.background-scene.theme-auto-weather:after{opacity:.34}.background-scene.theme-auto-weather.auto-weather-night:after,.background-scene.theme-auto-weather.auto-weather-rain:after,.background-scene.theme-auto-weather.auto-weather-storm:after{opacity:.2}@keyframes themeSceneFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fogDrift{0%{transform:translate3d(-7%,0,0)}to{transform:translate3d(7%,0,0)}}@keyframes moonPulse{0%,to{transform:scale(1) translateZ(0)}50%{transform:scale(1.03) translateZ(0)}}@keyframes waterRipple{0%{background-position:0 0,0 0}to{background-position:42px 18px,0 0}}@keyframes livingImageDrift{0%{transform:scale(1.018) translate3d(-.35%,-.18%,0)}45%{transform:scale(1.024) translate3d(.18%,.12%,0)}to{transform:scale(1.02) translate3d(.42%,-.08%,0)}}@keyframes lightningFlash{0%{opacity:0}18%{opacity:.12}42%{opacity:.04}66%{opacity:.1}to{opacity:0}}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 auto;width:min(1180px,100%)}.brand{display:flex;align-items:center;justify-content:center;min-height:54px;min-width:106px;border:1px solid color-mix(in srgb,var(--card-border) 80%,transparent);background:color-mix(in srgb,var(--card-bg) 76%,transparent);color:var(--text-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand-kanji{display:block;color:var(--accent-red);font-family:Yu Mincho,Hiragino Mincho ProN,"Noto Serif JP",Georgia,serif;font-size:2.05rem;font-weight:900;line-height:1;letter-spacing:0}.room-pill{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid color-mix(in srgb,var(--card-border) 80%,transparent);border-radius:8px;background:color-mix(in srgb,var(--card-bg) 76%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.observer-count-pill,.room-observer-chip{display:inline-flex;align-items:center;width:fit-content;border:1px solid rgba(31,36,31,.14);border-radius:999px;padding:5px 9px;background:#fff8eaad;color:color-mix(in srgb,var(--text-primary) 70%,var(--text-muted));font-size:.76rem;font-weight:900;line-height:1;white-space:nowrap}.observer-count-pill.compact{padding:4px 8px}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.profile-pill{display:flex;align-items:center;gap:12px;min-height:48px;padding:0;border:0;background:transparent;font-weight:850}.profile-name{max-width:160px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-open-button{min-height:40px;border-color:color-mix(in srgb,var(--card-border) 76%,var(--text-primary) 12%);background:color-mix(in srgb,var(--card-bg) 82%,transparent);box-shadow:0 10px 24px #362b1c1f;padding:0 14px;font-weight:900;cursor:pointer}.profile-open-button:hover,.profile-open-button:focus-visible{border-color:color-mix(in srgb,var(--accent-red) 42%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 70%,var(--bg-accent) 12%);color:var(--accent-red);transform:translateY(-1px);box-shadow:0 14px 30px #362b1c2e}.profile-button,.profile-logout{min-height:36px;padding:0 12px;font-weight:800}.profile-logout{border-color:#7a26226b;background:color-mix(in srgb,var(--card-bg) 60%,transparent);color:var(--accent-red)}.header-demo-button{min-height:48px;border-color:color-mix(in srgb,var(--card-border) 80%,transparent);background:color-mix(in srgb,var(--card-bg) 78%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-weight:800}.toast{position:fixed;top:88px;left:50%;transform:translate(-50%);z-index:20;max-width:min(520px,calc(100vw - 32px));border:1px solid rgba(109,41,36,.35);border-radius:8px;background:#fff4e5;color:#7a2622;padding:12px 16px;box-shadow:0 18px 42px #35261838}.home-grid,.room-layout{width:min(1180px,100%);margin:48px auto 0}.screen-title{max-width:680px;margin-bottom:24px}.home-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;max-width:none}.home-title-row>div{min-width:0}.create-room-button{flex:0 0 auto;min-width:168px}.screen-copy{max-width:560px;margin:10px 0 0;color:var(--text-muted);font-size:clamp(.98rem,1.7vw,1.08rem);font-weight:650}.kicker{display:block;color:var(--accent-red);font-size:.78rem;font-weight:800;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,5.2vw,4.25rem);line-height:.98}h2{margin-bottom:8px;font-size:clamp(1.45rem,3vw,2.25rem);line-height:1.04}p{color:var(--text-muted);line-height:1.5}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}.room-section{display:grid;gap:12px;margin-top:22px}.room-section+.room-section{margin-top:28px}.room-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.room-section-heading h2{margin:0;font-size:clamp(1.25rem,2.3vw,1.7rem)}.room-section-heading span,.empty-room-section{color:var(--text-muted);font-weight:800}.empty-room-section{margin:0;border:1px solid color-mix(in srgb,var(--card-border) 75%,transparent);border-radius:8px;padding:16px;background:color-mix(in srgb,var(--card-bg) 62%,transparent)}.room-card,.players-panel,.table-panel,.join-dialog{border:1px solid color-mix(in srgb,var(--card-border) 82%,transparent);border-radius:8px;background:color-mix(in srgb,var(--card-bg) 86%,transparent);box-shadow:0 22px 70px #362b1c29;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.room-card{position:relative;overflow:hidden;padding:18px;min-height:246px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 24px 64px #4d341d2e,0 8px 22px #a8322d12;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.room-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(135deg,rgba(168,50,45,.08),transparent 38%);opacity:0;transition:opacity .18s ease}.room-card:hover{transform:translateY(-2px);box-shadow:0 30px 72px #4d341d33,0 10px 30px #a8322d1a}.room-card.is-active{border-color:color-mix(in srgb,var(--accent-red) 42%,transparent);background:color-mix(in srgb,var(--card-bg) 90%,var(--accent-red) 10%)}.room-card.is-active:before,.room-card.is-waiting:before{opacity:1}.room-card.is-waiting{border-color:#a3673057;background:color-mix(in srgb,var(--card-bg) 92%,transparent)}.room-card.is-empty{background:color-mix(in srgb,var(--card-bg) 78%,transparent)}.room-card.is-finished{border-color:#27382c42;background:#f4eee0db}.room-card-header{display:flex;gap:12px;align-items:center;position:relative;z-index:1}.room-card-header>div{min-width:0}.room-number{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background:color-mix(in srgb,var(--text-primary) 86%,var(--bg-accent));color:color-mix(in srgb,var(--card-bg) 92%,white);font-weight:800;flex:0 0 auto}.room-card.accent-2 .room-number{background:#744028}.room-card.accent-3 .room-number{background:#5a4a26}.room-card h2{margin-bottom:0;font-size:1.55rem}.room-settings-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.room-settings-line span{border:1px solid rgba(31,36,31,.12);border-radius:999px;padding:4px 8px;background:#fff8ea94;color:var(--text-muted);font-size:.74rem;font-weight:850;line-height:1}.room-card p{margin-bottom:0;color:var(--text-muted);font-size:.94rem;font-weight:650}.room-status{margin-left:auto;border:1px solid rgba(31,36,31,.14);border-radius:999px;padding:5px 9px;background:#fff8eaa3;color:var(--text-primary);font-size:.74rem;font-weight:800;line-height:1;white-space:nowrap}.room-card.is-active .room-status{border-color:#a8322d6b;background:#a8322d1f;color:#7a2622}.room-preview{position:relative;z-index:1}.room-preview{display:flex;align-items:center;min-height:58px;border:1px solid rgba(31,36,31,.12);border-radius:8px;padding:10px 12px;background:#ffffff3d}.room-dice-strip{display:flex;align-items:center;gap:8px}.room-die{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:6px;background:#fff8eac2;box-shadow:0 5px 14px #362b1c1f}.room-die .dice-face.compact{width:25px;height:25px}.room-die.joker{box-shadow:0 5px 14px #a8322d26}.card-actions,.dialog-actions,.side-actions,.action-row{display:flex;gap:10px;flex-wrap:wrap}.card-actions{position:relative;z-index:1}.card-actions button:first-child{flex:1 1 132px}.observe-button{flex:1 1 154px}.secondary{background:color-mix(in srgb,var(--card-bg) 78%,transparent);color:var(--text-primary)}.theme-arashi .brand,.theme-arashi .room-pill,.theme-arashi .header-demo-button,.theme-arashi .room-card,.theme-arashi .players-panel,.theme-arashi .table-panel,.theme-arashi .join-dialog,.theme-arashi .create-room-dialog,.theme-arashi .auth-dialog,.theme-arashi .profile-history-dialog,.theme-arashi .profile-join-card{box-shadow:0 22px 70px #00000042}.theme-arashi .room-card,.theme-arashi .players-panel,.theme-arashi .table-panel,.theme-arashi .join-dialog,.theme-arashi .create-room-dialog,.theme-arashi .auth-dialog,.theme-arashi .profile-history-dialog,.theme-arashi .brand,.theme-arashi .room-pill,.theme-arashi .profile-pill,.theme-arashi .header-demo-button,.theme-arashi .secondary{color:var(--text-primary)}.theme-arashi p,.theme-arashi .screen-copy,.theme-arashi .player-state,.theme-arashi .slot-main small,.theme-arashi .history-player,.theme-arashi .history-heading>span,.theme-arashi .bid-times,.theme-arashi .empty-history-note,.theme-arashi .spectator-dice-head span,.theme-arashi .mobile-drawer>summary small,.theme-arashi .round-evidence-row>span,.theme-arashi .reveal-player-head span{color:var(--text-muted)}.theme-arashi .modal-backdrop{background:#0f0e0d8f}.theme-arashi .profile-backdrop{background:#0f0e0da8}.theme-arashi .profile-history-dialog{background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg) 94%,var(--bg-accent) 6%),var(--card-bg)),radial-gradient(circle at 12% 8%,rgba(180,170,150,.12),transparent 28%)}.theme-arashi .room-preview,.theme-arashi .room-settings-line span,.theme-arashi .empty-room-section,.theme-arashi .room-stats div,.theme-arashi .player-row,.theme-arashi .lobby-slot,.theme-arashi .mobile-room-main,.theme-arashi .mobile-room-view>.players-panel,.theme-arashi .mobile-drawer,.theme-arashi .mobile-lobby-actions,.theme-arashi .turn-banner,.theme-arashi .dice-panel,.theme-arashi .controls-panel,.theme-arashi .history-panel,.theme-arashi .playing-shell>.history-panel,.theme-arashi .reveal-player,.theme-arashi .round-evidence,.theme-arashi .backtest-panel,.theme-arashi .dice-demo-stage,.theme-arashi .dice-demo-result span,.theme-arashi .public-dice-map span,.theme-arashi .spectator-dice-card,.theme-arashi .spectator-die,.theme-arashi .history-panel li,.theme-arashi .empty-history-note,.theme-arashi .bid-face,.theme-arashi .dice-face,.theme-arashi .profile-stat,.theme-arashi .profile-active-room,.theme-arashi .profile-setting-card,.theme-arashi .profile-history-list li,.theme-arashi .profile-empty-history{border-color:color-mix(in srgb,var(--card-border) 82%,transparent);background:color-mix(in srgb,var(--card-bg) 70%,transparent);color:var(--text-primary)}.theme-arashi .turn-banner.lit,.theme-arashi .history-panel li.latest,.theme-arashi .bid-face.joker,.theme-arashi .spectator-die.joker,.theme-arashi .reveal-die.matched{border-color:color-mix(in srgb,var(--accent-red) 52%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 72%,var(--accent-red) 10%);color:var(--text-primary)}.theme-arashi .profile-history-list li.won{border-color:color-mix(in srgb,#6f8f6c 42%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 74%,#6f8f6c 10%)}.theme-arashi input,.theme-arashi select,.theme-arashi .profile-setting-card select{border-color:color-mix(in srgb,var(--card-border) 86%,transparent);background:color-mix(in srgb,var(--card-bg) 88%,#242320);color:var(--text-primary)}.theme-arashi .room-number,.theme-arashi .player-avatar,.theme-arashi .slot-avatar,.theme-arashi .profile-stat-icon,.theme-arashi .history-step,.theme-arashi .mobile-drawer>summary:after,.theme-arashi .profile-history-result,.theme-arashi .joker-note{border-color:color-mix(in srgb,var(--card-border) 72%,transparent);background:color-mix(in srgb,var(--bg-accent) 46%,#242320);color:var(--text-primary)}.theme-arashi .quiet-danger,.theme-arashi .auth-error,.theme-arashi .toast,.theme-arashi .bot-badge,.theme-arashi .bot-remove-button{border-color:color-mix(in srgb,var(--accent-red) 46%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 78%,var(--accent-red) 12%);color:color-mix(in srgb,var(--text-primary) 84%,var(--accent-red))}.theme-arashi .profile-avatar{background:radial-gradient(circle at 34% 26%,rgba(238,232,218,.18),transparent 34%),linear-gradient(145deg,#4c4841,#242320);color:var(--text-primary)}.theme-arashi .spectator-dice-head strong,.theme-arashi .bid-value,.theme-arashi .bid-face,.theme-arashi .slot-main strong,.theme-arashi .profile-history-list li.won .profile-history-result,.theme-arashi .profile-history-list li.abandoned .profile-history-result{color:var(--text-primary)}.theme-auto-weather .brand,.theme-auto-weather .room-pill,.theme-auto-weather .header-demo-button,.theme-auto-weather .room-card,.theme-auto-weather .players-panel,.theme-auto-weather .table-panel,.theme-auto-weather .join-dialog,.theme-auto-weather .profile-join-card{box-shadow:0 20px 58px color-mix(in srgb,var(--bg-primary) 42%,rgba(32,22,12,.34))}.theme-auto-weather .room-card,.theme-auto-weather .players-panel,.theme-auto-weather .table-panel,.theme-auto-weather .join-dialog,.theme-auto-weather .brand,.theme-auto-weather .room-pill,.theme-auto-weather .profile-pill,.theme-auto-weather .header-demo-button,.theme-auto-weather .secondary{color:var(--text-primary)}.theme-auto-weather p,.theme-auto-weather .screen-copy,.theme-auto-weather .player-state,.theme-auto-weather .slot-main small,.theme-auto-weather .history-player,.theme-auto-weather .round-evidence-row>span,.theme-auto-weather .reveal-player-head span{color:var(--text-muted)}.theme-auto-weather .room-preview,.theme-auto-weather .room-settings-line span,.theme-auto-weather .empty-room-section,.theme-auto-weather .room-stats div,.theme-auto-weather .player-row,.theme-auto-weather .lobby-slot,.theme-auto-weather .turn-banner,.theme-auto-weather .dice-panel,.theme-auto-weather .controls-panel,.theme-auto-weather .history-panel,.theme-auto-weather .reveal-player,.theme-auto-weather .round-evidence,.theme-auto-weather .profile-stat,.theme-auto-weather .profile-active-room,.theme-auto-weather .profile-setting-card,.theme-auto-weather .profile-history-list li,.theme-auto-weather .profile-empty-history{border-color:color-mix(in srgb,var(--card-border) 82%,transparent);background:color-mix(in srgb,var(--card-bg) 72%,transparent);color:var(--text-primary)}.theme-auto-weather.auto-weather-night .room-preview,.theme-auto-weather.auto-weather-night .room-settings-line span,.theme-auto-weather.auto-weather-night .empty-room-section,.theme-auto-weather.auto-weather-night .room-stats div,.theme-auto-weather.auto-weather-night .player-row,.theme-auto-weather.auto-weather-night .lobby-slot,.theme-auto-weather.auto-weather-night .turn-banner,.theme-auto-weather.auto-weather-night .dice-panel,.theme-auto-weather.auto-weather-night .controls-panel,.theme-auto-weather.auto-weather-night .history-panel,.theme-auto-weather.auto-weather-night .reveal-player,.theme-auto-weather.auto-weather-night .round-evidence,.theme-auto-weather.auto-weather-night .profile-stat,.theme-auto-weather.auto-weather-night .profile-active-room,.theme-auto-weather.auto-weather-night .profile-setting-card,.theme-auto-weather.auto-weather-night .profile-history-list li,.theme-auto-weather.auto-weather-night .profile-empty-history,.theme-auto-weather.auto-weather-rain .room-preview,.theme-auto-weather.auto-weather-rain .room-settings-line span,.theme-auto-weather.auto-weather-rain .empty-room-section,.theme-auto-weather.auto-weather-rain .room-stats div,.theme-auto-weather.auto-weather-rain .player-row,.theme-auto-weather.auto-weather-rain .lobby-slot,.theme-auto-weather.auto-weather-rain .turn-banner,.theme-auto-weather.auto-weather-rain .dice-panel,.theme-auto-weather.auto-weather-rain .controls-panel,.theme-auto-weather.auto-weather-rain .history-panel,.theme-auto-weather.auto-weather-rain .reveal-player,.theme-auto-weather.auto-weather-rain .round-evidence,.theme-auto-weather.auto-weather-rain .profile-stat,.theme-auto-weather.auto-weather-rain .profile-active-room,.theme-auto-weather.auto-weather-rain .profile-setting-card,.theme-auto-weather.auto-weather-rain .profile-history-list li,.theme-auto-weather.auto-weather-rain .profile-empty-history,.theme-auto-weather.auto-weather-storm .room-preview,.theme-auto-weather.auto-weather-storm .room-settings-line span,.theme-auto-weather.auto-weather-storm .empty-room-section,.theme-auto-weather.auto-weather-storm .room-stats div,.theme-auto-weather.auto-weather-storm .player-row,.theme-auto-weather.auto-weather-storm .lobby-slot,.theme-auto-weather.auto-weather-storm .turn-banner,.theme-auto-weather.auto-weather-storm .dice-panel,.theme-auto-weather.auto-weather-storm .controls-panel,.theme-auto-weather.auto-weather-storm .history-panel,.theme-auto-weather.auto-weather-storm .reveal-player,.theme-auto-weather.auto-weather-storm .round-evidence,.theme-auto-weather.auto-weather-storm .profile-stat,.theme-auto-weather.auto-weather-storm .profile-active-room,.theme-auto-weather.auto-weather-storm .profile-setting-card,.theme-auto-weather.auto-weather-storm .profile-history-list li,.theme-auto-weather.auto-weather-storm .profile-empty-history{background:color-mix(in srgb,var(--card-bg) 78%,rgba(0,0,0,.16))}.theme-auto-weather .profile-setting-card select,.theme-auto-weather .profile-weather-city select{border-color:color-mix(in srgb,var(--card-border) 86%,transparent);background:color-mix(in srgb,var(--card-bg) 88%,transparent);color:var(--text-primary)}.theme-auto-weather .room-number,.theme-auto-weather .player-avatar,.theme-auto-weather .slot-avatar{background:color-mix(in srgb,var(--bg-accent) 54%,var(--card-bg))}.danger{background:#3b2b2a}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:18px;overflow-y:auto;background:#1f1c1661;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.join-dialog{width:min(420px,100%);max-height:calc(100svh - 36px);overflow:auto;padding:22px}.join-dialog input{margin:12px 0 16px}.create-room-dialog{width:min(500px,100%)}.create-room-dialog h2{margin-bottom:16px}.create-room-field{display:grid;gap:7px;margin:12px 0}.create-room-field>span{color:var(--text-muted);font-size:.86rem;font-weight:850}.create-room-field input,.create-room-field select{margin:0}.create-room-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.create-room-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-dialog{width:min(460px,100%)}.auth-dialog p{margin-bottom:16px;font-weight:650}.auth-dialog label{display:block;margin-top:12px;color:var(--text-muted);font-size:.88rem;font-weight:850}.auth-dialog label input{margin:6px 0 0}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.auth-tabs button{min-height:40px}.auth-error{display:block;margin:12px 0 0;padding:10px 12px;border:1px solid rgba(168,50,45,.36);border-radius:8px;background:#a8322d1a;color:var(--accent-red);font-size:.9rem}.profile-join-card{display:grid;gap:4px;margin:12px 0 16px;padding:14px;border:1px solid color-mix(in srgb,var(--card-border) 85%,transparent);border-radius:8px;background:color-mix(in srgb,var(--card-bg) 72%,transparent)}.profile-join-card span,.profile-join-card small{color:var(--text-muted);font-weight:750}.profile-history-dialog{position:relative;width:min(780px,100%);max-height:min(82vh,820px);overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent-red) 58%,var(--text-muted)) color-mix(in srgb,var(--card-bg) 76%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg) 94%,white 6%),var(--card-bg)),radial-gradient(circle at 12% 8%,rgba(196,149,106,.14),transparent 28%);box-shadow:0 32px 88px #1f1c1657}.profile-history-dialog::-webkit-scrollbar{width:14px;height:14px}.profile-history-dialog::-webkit-scrollbar-button{display:none;width:0;height:0}.profile-history-dialog::-webkit-scrollbar-track{border-radius:999px;margin:10px 4px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--card-border) 28%,transparent) 42%,color-mix(in srgb,var(--card-border) 28%,transparent) 58%,transparent)}.profile-history-dialog::-webkit-scrollbar-thumb{min-height:76px;border:4px solid transparent;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-red) 44%,var(--card-bg)),color-mix(in srgb,var(--accent-red) 66%,var(--text-muted))) content-box;box-shadow:inset 0 1px color-mix(in srgb,white 22%,transparent),inset 0 -1px #3514122e}.profile-history-dialog::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-red) 58%,var(--card-bg)),color-mix(in srgb,var(--accent-red) 78%,var(--text-muted))) content-box}.profile-history-dialog::-webkit-scrollbar-corner{background:transparent}.profile-close-button{position:absolute;top:14px;right:14px;z-index:2;display:inline-grid;place-items:center;width:38px;height:38px;min-height:0;border:1px solid color-mix(in srgb,var(--accent-red) 62%,var(--card-border));border-radius:50%;padding:0;background:radial-gradient(circle at 34% 26%,color-mix(in srgb,white 18%,transparent),transparent 34%),color-mix(in srgb,var(--accent-red) 84%,var(--card-bg));color:color-mix(in srgb,var(--card-bg) 94%,white);box-shadow:0 12px 26px color-mix(in srgb,var(--accent-red) 28%,transparent),inset 0 -4px 8px #35141238}.profile-close-button span{display:block;transform:translateY(-1px);font-size:1.45rem;font-weight:850;line-height:1}.profile-close-button:hover,.profile-close-button:focus-visible{border-color:color-mix(in srgb,var(--accent-red) 86%,var(--text-primary));background:radial-gradient(circle at 34% 26%,color-mix(in srgb,white 22%,transparent),transparent 34%),color-mix(in srgb,var(--accent-red) 92%,var(--card-bg));transform:translateY(-1px) scale(1.04);box-shadow:0 16px 32px color-mix(in srgb,var(--accent-red) 34%,transparent),inset 0 -4px 8px #3514123d}.profile-backdrop{background:#16120c94;-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px)}.profile-hero{display:flex;align-items:center;gap:18px;border-bottom:1px solid color-mix(in srgb,var(--card-border) 78%,transparent);padding-right:52px;padding-bottom:18px}.profile-avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:82px;height:82px;border:1px solid color-mix(in srgb,var(--text-primary) 22%,transparent);border-radius:50%;background:radial-gradient(circle at 34% 26%,rgba(255,248,234,.2),transparent 34%),linear-gradient(145deg,#203427,#13251b);color:#fff8ea;font-size:2.25rem;font-weight:950;box-shadow:0 18px 42px #231c1247,inset 0 -10px 18px #0000002e}.profile-identity{min-width:0}.profile-identity h2{margin:2px 0 8px;font-size:clamp(2rem,4vw,3rem);line-height:.95}.profile-rank-badge{display:inline-flex;align-items:center;width:fit-content;border:1px solid color-mix(in srgb,var(--bg-accent) 38%,var(--card-border));border-radius:999px;padding:6px 10px;background:color-mix(in srgb,var(--card-bg) 72%,var(--bg-accent) 16%);color:color-mix(in srgb,var(--text-primary) 74%,var(--text-muted));font-size:.82rem;font-weight:900}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.profile-stat,.profile-active-room,.profile-setting-card,.profile-history-list li,.profile-empty-history{border:1px solid rgba(31,36,31,.12);border-radius:8px;background:#fff8ea9e}.profile-stat{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:2px;padding:12px}.profile-stat-icon{grid-row:span 2;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--bg-accent) 22%,var(--card-bg));color:var(--text-primary);font-size:.92rem;font-weight:950}.profile-stat-label,.profile-active-room span,.profile-history-list small{color:var(--text-muted);font-size:.78rem;font-weight:850}.profile-stat strong{font-size:1.3rem;line-height:1}.profile-stat-games .profile-stat-icon{background:color-mix(in srgb,var(--bg-accent) 28%,var(--card-bg))}.profile-stat-wins .profile-stat-icon{background:color-mix(in srgb,#2f7045 24%,var(--card-bg));color:#2f7045}.profile-stat-rate.active{border-color:color-mix(in srgb,var(--accent-red) 34%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 70%,var(--accent-red) 8%)}.profile-stat-rate.active .profile-stat-icon,.profile-stat-rate.active strong{color:var(--accent-red)}.profile-active-room{display:grid;gap:3px;margin-bottom:14px;padding:12px}.profile-settings-section{margin:16px 0}.profile-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-setting-card{display:grid;gap:9px;margin:0;padding:12px;min-width:0}.profile-setting-card legend,.profile-setting-card>span{color:var(--text-muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.profile-setting-card select{width:100%;min-height:42px;border:1px solid color-mix(in srgb,var(--card-border) 95%,transparent);border-radius:8px;background:color-mix(in srgb,var(--card-bg) 86%,white 14%);color:var(--text-primary);padding:0 10px;font:inherit;font-weight:760}.profile-setting-card small{color:var(--text-muted);font-size:.78rem;font-weight:800}.profile-volume-control{display:grid;gap:8px;border:1px solid color-mix(in srgb,var(--card-border) 64%,transparent);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--card-bg) 70%,transparent)}.profile-volume-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-muted);font-size:.78rem;font-weight:850}.profile-volume-head strong{color:var(--text-primary);font-size:.82rem}.profile-volume-control input[type=range]{width:100%;min-height:28px;padding:0;accent-color:var(--accent-red)}.profile-volume-control input[type=range]:disabled{opacity:.42}.profile-theme-setting-card{grid-column:1 / -1}.profile-preference-card{align-content:start}.profile-theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.profile-theme-card{display:grid;grid-template-columns:minmax(84px,.22fr) minmax(0,1fr);align-items:center;gap:10px;min-height:88px;border:1px solid color-mix(in srgb,var(--card-border) 84%,transparent);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--card-bg) 76%,transparent);color:var(--text-primary);text-align:left;white-space:normal;cursor:pointer}.profile-theme-card:hover,.profile-theme-card:focus-visible{border-color:color-mix(in srgb,var(--accent-red) 42%,var(--card-border));transform:translateY(-1px);box-shadow:0 14px 30px #362b1c24}.profile-theme-card.selected{border-color:color-mix(in srgb,var(--accent-red) 58%,var(--card-border));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-red) 18%,transparent),0 14px 30px #362b1c24}.profile-theme-card strong{font-size:.92rem;line-height:1.1}.theme-thumb{display:block;width:100%;min-height:58px;border-radius:7px;overflow:hidden;border:1px solid rgba(31,36,31,.12);box-shadow:inset 0 -18px 34px #1f1c1624}.theme-card-sumi .theme-thumb{background:radial-gradient(circle at 76% 18%,rgba(196,149,106,.72),transparent 17%),linear-gradient(168deg,transparent 52%,rgba(44,36,22,.24) 53% 61%,transparent 62%),linear-gradient(180deg,#d4c9b0,#e8dec8)}.theme-card-arashi .theme-thumb{background:radial-gradient(circle at 78% 18%,rgba(226,219,205,.28),transparent 10%),linear-gradient(162deg,transparent 46%,#242320 47% 57%,transparent 58%),linear-gradient(180deg,#252421,#3a3732)}.theme-card-weather .theme-thumb{background:radial-gradient(circle at 24% 22%,rgba(246,208,142,.68),transparent 16%),linear-gradient(150deg,rgba(91,116,119,.6),transparent 46%),linear-gradient(180deg,#f2deca,#496a73)}.profile-weather-city{display:grid;grid-template-columns:max-content minmax(220px,360px);align-items:center;gap:10px;margin-top:10px}.profile-weather-city span{color:var(--text-muted);font-size:.8rem;font-weight:800}.profile-history-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.profile-history-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.profile-history-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;padding:12px}.profile-history-list li.won{border-color:#3d754552;background:#f2f8e794}.profile-history-list li.lost{border-color:#a8322d38}.profile-history-list li.abandoned{border-color:#666f7b3d}.profile-history-result{border-radius:999px;padding:5px 9px;background:#fff4e5db;color:var(--accent-red);font-size:.78rem;font-weight:900}.profile-history-list li.won .profile-history-result{color:#2e6a3b}.profile-history-list li.abandoned .profile-history-result{color:var(--text-muted);background:#e8eaeddb}.profile-history-main{display:grid;gap:3px;min-width:0}.profile-history-winner{grid-column:1 / -1;color:var(--text-muted);font-size:.84rem;font-weight:800}.profile-empty-history{margin:0;padding:12px;color:var(--text-muted);font-weight:750}.room-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.room-layout.lobby-layout{grid-template-columns:320px minmax(0,1fr);gap:0;overflow:hidden;border:1px solid rgba(31,36,31,.18);border-radius:8px;background:#fff8eadb;box-shadow:0 24px 70px #4d341d2e,0 8px 26px #a8322d12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.table-mode{grid-template-columns:360px minmax(0,1fr)}.room-layout.playing-layout{width:min(1380px,100%);margin-top:32px;grid-template-columns:minmax(260px,300px) minmax(0,1fr)}.playing-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;min-width:0}.playing-main-panel{min-width:0}.players-panel,.table-panel{padding:18px}.players-panel{min-height:0;display:flex;flex-direction:column;align-self:start}.lobby-layout .players-panel,.lobby-layout .table-panel{border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.lobby-layout .players-panel{align-self:stretch;border-right:1px solid rgba(31,36,31,.14)}.lobby-layout .table-panel{min-height:0;padding:22px}.panel-heading{margin-bottom:14px}.panel-heading:after{content:"";display:block;clear:both}.panel-heading>.observer-count-pill{float:right;margin-top:4px;margin-left:12px}.lobby-layout .panel-heading .kicker,.lobby-state .kicker{font-size:.78rem;line-height:1.1}.players-list{display:grid;gap:8px}.player-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto auto;gap:8px;align-items:center;min-height:54px;border:1px solid rgba(31,36,31,.14);border-radius:8px;padding:8px 10px;background:#ffffff38}.player-row.active{border-color:#a8322dbf;box-shadow:inset 4px 0 #a8322d}.player-row.out{opacity:.5}.player-row.round-loser{border-color:#a8322da6;background:#ffeee79e;box-shadow:inset 4px 0 #a8322d}.player-row.round-winner{border-color:#3d75456b;background:#f2f8e799;box-shadow:inset 4px 0 #3d7545}.player-avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#27382c;color:#fff9ed;font-size:.82rem;font-weight:800}.player-main{min-width:0}.player-name{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden;font-weight:700}.player-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bot-badge{display:inline-grid;place-items:center;flex:0 0 auto;min-width:34px;height:18px;border:1px solid rgba(168,50,45,.28);border-radius:999px;padding:0 7px;background:#a8322d14;color:#8b302d;font-size:.66rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.bot-remove-button{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid rgba(168,50,45,.24);padding:0;background:#fff8ea94;color:#8b302d;font-size:1rem;line-height:1}.bot-remove-button:hover{border-color:#a8322d8a;background:#ffeee7cc}.player-state{display:block;margin-top:2px;color:#5f6a59;font-size:.78rem}.dice-count{border:1px solid rgba(31,36,31,.14);border-radius:999px;padding:4px 7px;background:#fff8ea9e;color:#314032;font-size:.76rem;font-weight:800;line-height:1;white-space:nowrap}.status-dot{width:11px;height:11px;border-radius:50%;background:#9b9b88;box-shadow:0 0 0 3px #9b9b881f}.status-dot.online{background:#3d7545;box-shadow:0 0 0 4px #3d754529}.side-actions{margin-top:16px;padding-top:16px;flex-wrap:nowrap;align-items:stretch}.mobile-room-view{display:grid;gap:12px;width:min(720px,100%);margin:18px auto 0}.mobile-room-main,.mobile-room-view>.players-panel,.mobile-drawer,.mobile-lobby-actions{overflow:hidden;border:1px solid rgba(31,36,31,.16);border-radius:8px;background:#fff8eadb;box-shadow:0 18px 48px #4d341d26;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-lobby-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.mobile-lobby-actions>button{min-width:0;min-height:48px;padding-inline:8px;font-size:clamp(.86rem,4vw,1rem);white-space:nowrap}.mobile-room-view>.players-panel,.mobile-room-main>.game-grid,.mobile-room-main>.reveal-state,.mobile-room-main>.center-state{padding:14px}.mobile-room-view .table-panel,.mobile-room-view .history-panel{min-height:0}.mobile-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 14px;cursor:pointer;list-style:none}.mobile-drawer>summary::-webkit-details-marker{display:none}.mobile-drawer>summary span{color:var(--text-primary);font-size:1rem;font-weight:900}.mobile-drawer>summary small{color:var(--text-muted);font-size:.78rem;font-weight:900;white-space:nowrap}.mobile-drawer>summary:after{content:"+";display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid rgba(31,36,31,.16);border-radius:50%;color:#7a2622;font-weight:900}.mobile-drawer[open]>summary:after{content:"-"}.mobile-drawer-body{border-top:1px solid rgba(31,36,31,.12);padding:12px}.mobile-drawer .players-panel,.mobile-drawer .history-panel{border:0;border-radius:0;padding:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.side-actions>button{flex:1 1 0;min-width:0;white-space:nowrap}.lobby-layout .side-actions{margin-top:auto}.side-actions>.side-join-action{flex:1.8 1 0}.quiet-danger{border-color:#7a26224d;background:#fff8eaa3;color:#7a2622;box-shadow:none}.table-panel{min-height:560px}.lobby-state{min-height:500px;display:grid;gap:16px;align-content:start}.lobby-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:2px}.lobby-hero h2{margin-bottom:0;font-size:clamp(1.8rem,3.8vw,3.1rem)}.lobby-state .state-copy{max-width:620px;margin:8px 0 0;color:#40513f;font-weight:650}.waiting-dots{display:inline-flex;gap:7px;padding-top:12px}.waiting-dots span{width:10px;height:10px;border-radius:50%;background:#a8322d;opacity:.35;animation:waitingPulse 1.2s ease-in-out infinite}.waiting-dots span:nth-child(2){animation-delay:.16s}.waiting-dots span:nth-child(3){animation-delay:.32s}.lobby-ready-strip{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;border:1px solid rgba(168,50,45,.18);border-radius:8px;padding:14px;background:#fff4e5b8}.ready-counter{display:flex;align-items:baseline;gap:8px;color:#7a2622;white-space:nowrap}.ready-counter strong{font-size:clamp(2rem,5vw,3.35rem);line-height:.9}.ready-counter span{color:#3b4739;font-weight:800}.ready-progress{height:12px;overflow:hidden;border:1px solid rgba(31,36,31,.12);border-radius:999px;background:#fff8eac7}.ready-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a8322d,#744028);transition:width .22s ease}.last-game-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);gap:14px;align-items:center;border:1px solid rgba(31,36,31,.14);border-radius:8px;padding:14px;background:#fff8eaa3;box-shadow:inset 4px 0 #a8322d6b}.last-game-result.compact{grid-area:previous;grid-template-columns:1fr;padding:12px 14px}.last-game-copy{display:grid;gap:4px}.last-game-copy h3{margin:0;font-size:clamp(1.05rem,1.8vw,1.35rem)}.last-game-copy p,.last-game-copy small{margin:0;color:var(--text-muted);font-weight:800}.last-game-players{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.last-game-players span{display:grid;gap:2px;min-width:86px;border:1px solid rgba(31,36,31,.12);border-radius:8px;padding:8px 10px;background:#fff8ea9e}.last-game-players span.winner{border-color:#3d75454d;background:#f2f8e794}.last-game-players small{color:var(--text-muted);font-weight:850}.lobby-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.lobby-slot{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:68px;border:1px solid rgba(31,36,31,.13);border-radius:8px;padding:10px;background:#ffffff47;animation:slotAppear .22s ease both}.lobby-slot.ready{border-color:#3d75454d;background:#f2f8e78c}.lobby-slot.empty{border-style:dashed;color:#65705f}.lobby-share-slot{width:100%;text-align:left;font:inherit;cursor:pointer}.lobby-share-slot:hover{border-color:color-mix(in srgb,var(--accent-red) 58%,var(--card-border));background:color-mix(in srgb,var(--card-bg) 88%,var(--bg-accent) 12%);color:var(--text-primary)}.slot-avatar{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#27382c;color:#fff9ed;font-weight:900}.lobby-slot.empty .slot-avatar{border:1px dashed rgba(31,36,31,.22);background:#fff8ea85;color:#69715f}.slot-main{min-width:0}.slot-main strong,.slot-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-main strong{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;color:#1f241f}.slot-main small{margin-top:2px;color:#53604e;font-size:.8rem;font-weight:700}.ready-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff8eab8;color:#a8322d;font-weight:900}.lobby-slot.ready .ready-mark{background:#3d7545;color:#fff9ed}.ready-action{width:fit-content;min-width:180px}.center-state{min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.state-copy{max-width:560px;margin-inline:auto}.game-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"turn" "dice";gap:14px;align-items:start}.game-grid.has-controls{grid-template-areas:"turn" "dice" "controls"}.game-grid.has-previous{grid-template-areas:"turn" "previous" "dice"}.game-grid.has-controls.has-previous{grid-template-areas:"turn" "previous" "dice" "controls"}.turn-banner,.dice-panel,.controls-panel,.history-panel,.reveal-player{border:1px solid rgba(31,36,31,.14);border-radius:8px;background:#ffffff52;padding:16px}.turn-banner{grid-area:turn;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:124px}.turn-banner.lit{border-color:#a8322da6;background:#fff4e594;box-shadow:inset 5px 0 #a8322d,0 14px 42px #a8322d1f}.turn-banner.waiting{border-color:#1f241f1f;box-shadow:inset 5px 0 #27382c42}.turn-copy{min-width:0}.turn-copy h2{margin-bottom:6px;font-size:clamp(1.75rem,3vw,2.55rem)}.turn-copy p{margin-bottom:0}.dice-panel{grid-area:dice;min-height:338px;overflow:hidden;box-shadow:inset 0 -56px 90px #4d341d14}.dice-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.joker-note{border:1px solid rgba(168,50,45,.22);border-radius:999px;padding:5px 9px;background:#fff4e5b8;color:#7a2622;font-size:.78rem;font-weight:900;line-height:1}.dice-stage{width:100%;height:clamp(250px,30vw,350px);margin-top:0;filter:drop-shadow(0 22px 26px rgba(45,34,22,.22))}.dice-stage canvas{display:block;width:100%;height:100%;touch-action:none}.playing-layout .turn-banner{min-height:106px}.playing-layout .dice-panel{min-height:0}.playing-layout .dice-stage{height:clamp(220px,24vw,310px)}.dice-stage-fallback{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.4vw,16px);padding:18px}.fallback-die{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:clamp(54px,7vw,78px);aspect-ratio:1;border:2px solid color-mix(in srgb,var(--dice-edge) 74%,transparent);border-radius:8px;padding:clamp(8px,1vw,12px);background:var(--dice-shell);box-shadow:clamp(4px,.7vw,7px) clamp(4px,.7vw,7px) 0 var(--dice-pip-dark),0 14px 26px #2d22162e,inset 0 -5px 12px #2c241614;transform:translateZ(0)}.fallback-die:nth-child(2n){transform:translateZ(0)}.fallback-die i{width:clamp(6px,.8vw,10px);height:clamp(6px,.8vw,10px);align-self:center;justify-self:center;border-radius:50%;background:var(--dice-pip-dark);opacity:0}.fallback-die i.filled{opacity:1}.fallback-die.joker i.filled{width:clamp(12px,1.4vw,18px);height:clamp(12px,1.4vw,18px);background:var(--dice-joker-dark);box-shadow:0 0 0 3px color-mix(in srgb,var(--dice-joker) 24%,transparent)}.dice-demo{width:min(980px,100%);margin:42px auto 0}.dice-demo-header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.dice-demo-header h1{font-size:clamp(2.2rem,6vw,5.6rem)}.dice-demo-stage{border:1px solid rgba(31,36,31,.16);border-radius:8px;background:#fff8ea94;box-shadow:0 24px 74px #362b1c29;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:18px}.dice-demo-stage .dice-stage{height:clamp(290px,46vw,430px)}.dice-demo-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:14px}.backtest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.backtest-panel{display:grid;align-content:start;gap:10px;min-width:0;border:1px solid color-mix(in srgb,var(--card-border) 82%,transparent);border-radius:8px;padding:12px;background:color-mix(in srgb,var(--card-bg) 72%,transparent);box-shadow:0 14px 34px #362b1c1a}.backtest-segmented,.backtest-weather-grid{display:grid;gap:8px}.backtest-segmented{grid-template-columns:repeat(3,minmax(0,1fr))}.backtest-weather-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backtest-segmented button,.backtest-weather-grid button{min-height:40px;padding-inline:8px;white-space:normal}.backtest-segmented.compact button{min-height:36px}.backtest-field{display:grid;gap:7px}.backtest-field span{color:var(--text-muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.backtest-field input[type=range]{width:100%;min-height:34px;padding:0;accent-color:var(--accent-red)}.dice-count-tabs{display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px}.dice-count-tabs button{padding:0;font-weight:800}.roll-button{min-width:180px}.dice-demo-result{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.dice-demo-result span{display:inline-flex;align-items:center;gap:7px;min-height:48px;border:1px solid rgba(31,36,31,.14);border-radius:8px;padding:6px 10px;background:#fff8eab8;font-weight:800}.public-dice-map{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.public-dice-map span{border:1px solid rgba(31,36,31,.16);border-radius:8px;padding:8px 10px;background:#fff8eab8}.spectator-dice-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:12px}.spectator-dice-card{display:grid;gap:12px;border:1px solid rgba(31,36,31,.13);border-radius:8px;padding:12px;background:#fff8eaa3;box-shadow:0 12px 28px #362b1c1a;animation:diceRefresh .24s ease both}.spectator-dice-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.spectator-dice-head strong{overflow:hidden;color:#1f241f;font-size:1rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.spectator-dice-head span{flex:0 0 auto;border:1px solid rgba(31,36,31,.12);border-radius:999px;padding:4px 8px;background:#fff8eadb;color:#53604e;font-size:.78rem;font-weight:900}.spectator-dice-list{display:flex;flex-wrap:wrap;gap:8px}.spectator-die{display:inline-grid;place-items:center;border:1px solid rgba(31,36,31,.14);border-radius:8px;padding:5px;background:#fffdf1eb;box-shadow:0 7px #1f241f38,0 13px 22px #362b1c24}.spectator-die.joker{border-color:#a8322d57;background:#fff4e5fa}.spectator-die .dice-face.compact{width:34px;height:34px}.controls-panel{grid-area:controls}.controls-panel.lit{border-color:#a8322da6;box-shadow:0 14px 38px #a8322d1f;animation:panelRise .19s ease both}.controls-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.controls-heading h3,.history-panel h3{margin:0;font-size:1.18rem}.bid-builder{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;margin-bottom:14px}.quantity-picker,.face-picker{display:grid;gap:8px;align-content:start}.control-label{color:#53604e;font-size:.82rem;font-weight:800}.quantity-stepper{display:grid;grid-template-columns:58px minmax(76px,1fr) 58px;gap:6px}.quantity-stepper strong,.quantity-stepper input{display:inline-grid;place-items:center;min-height:58px;border:1px solid rgba(168,50,45,.22);border-radius:8px;background:#fff4e5d1;color:#7a2622;font-size:1.72rem}.quantity-stepper input{width:100%;min-width:0;padding:0 8px;font-family:inherit;font-weight:900;line-height:1;text-align:center;outline:none}.quantity-stepper input:focus{border-color:#a8322d9e;box-shadow:0 0 0 3px #a8322d24}.step-button{min-width:58px;padding:0;font-size:1.55rem;font-weight:800}.range-note{width:fit-content;border:1px solid rgba(31,36,31,.12);border-radius:999px;padding:5px 9px;background:#fff8eac2;color:#384637;font-size:.82rem;font-weight:900}.face-grid{display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px}.face-token{display:grid;grid-template-columns:34px auto;align-items:center;justify-content:center;gap:7px;min-height:52px;padding:0 8px;color:#1f241f}.face-token:hover:not(:disabled){border-color:#a8322d59}.face-token span{font-weight:800}.selected-face,.face-token.selected-face{background:#27382c;color:#fff9ed;border-color:#18231b}.theme-arashi .selected-face:not(.face-token){border-color:#e8f4fd3d;background:var(--accent-red);color:#fff7ef}.theme-auto-weather .selected-face:not(.face-token){border-color:color-mix(in srgb,var(--accent-red) 48%,var(--card-border));background:var(--accent-red);color:color-mix(in srgb,var(--card-bg) 92%,white)}.face-token.selected-face{background:#a8322d;border-color:#7a2622;box-shadow:0 12px 28px #a8322d3d,inset 0 0 0 2px #fff8ea61;transform:translateY(-1px)}.face-token.joker-token:not(.selected-face){border-color:#a8322d38;background:#fff4e5c2}.primary-action{flex:1 1 260px;justify-content:center}.home-title-row .create-room-button{flex:0 0 auto}.history-panel{grid-area:history;min-height:338px}.playing-shell>.history-panel{grid-area:auto;position:sticky;top:22px;display:flex;flex-direction:column;max-height:calc(100vh - 44px);min-height:0;background:#fff8eabd;box-shadow:0 22px 58px #362b1c26,inset 4px 0 #a8322d29}@media (min-width: 1181px) and (max-width: 1440px){.playing-shell{grid-template-columns:1fr}.playing-shell>.history-panel{position:static;max-height:none}.game-grid.has-controls{grid-template-columns:minmax(0,1fr) minmax(320px,.58fr);grid-template-areas:"turn turn" "dice controls"}.game-grid.has-controls.has-previous{grid-template-areas:"turn turn" "previous previous" "dice controls"}.game-grid.has-controls .dice-panel,.game-grid.has-controls .controls-panel{align-self:stretch}.game-grid.has-controls .bid-builder{grid-template-columns:1fr}.game-grid.has-controls .face-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-grid.has-controls .action-row>button{flex:1 1 100%}}.history-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.history-heading>span{color:#5f6a59;font-size:.78rem;font-weight:900}.history-panel ol{display:grid;gap:9px;margin:12px 0 0;padding:0;list-style:none;overflow-y:auto;overscroll-behavior:contain}.history-panel li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;border:1px solid rgba(31,36,31,.12);border-radius:8px;padding:10px 11px;background:#fff8ea94}.history-panel li.latest{border-color:#a8322d73;background:#fff4e5db;box-shadow:inset 4px 0 #a8322d}.history-step{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid rgba(31,36,31,.14);border-radius:50%;background:#fff8eac7;color:#7a2622;font-size:.74rem;font-weight:900;line-height:1}.history-entry-main{display:grid;min-width:0;gap:5px}.history-player{overflow:hidden;color:#4e5c4d;font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.bid-value{display:flex;align-items:center;gap:9px;color:#1f241f;font-size:clamp(1.25rem,2.5vw,1.8rem);font-weight:800}.bid-value.compact{gap:6px;justify-content:flex-start;font-size:1.08rem;line-height:1}.bid-quantity{color:#7a2622;font-size:1.12em;line-height:1}.bid-times{color:#5f6a59;font-size:.82em}.bid-face{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(31,36,31,.14);border-radius:999px;padding:3px 8px 3px 4px;background:#fff8eab8;color:#1f241f}.bid-face.joker{border-color:#a8322d4d;background:#fff4e5e6;color:#7a2622}.empty-history-note{margin:12px 0 0;border:1px dashed rgba(31,36,31,.16);border-radius:8px;padding:14px;background:#fff8ea6b;color:#5f6a59;font-weight:850}.dice-face{display:inline-block;width:34px;height:34px;object-fit:contain;vertical-align:middle}.dice-face.compact{width:28px;height:28px}.dice-face.joker{filter:drop-shadow(0 0 6px rgba(168,50,45,.22))}.challenge-action{min-width:168px;background:#3b2b2a}.challenge-action.armed{border-color:#7a2622;background:#a8322d;box-shadow:0 12px 26px #a8322d38,inset 0 -3px #35141238}.reveal-state{display:grid;gap:14px;align-content:start;min-height:500px;animation:panelRise .22s ease both}.round-personal-toast{position:fixed;top:50%;left:50%;z-index:30;display:grid;gap:8px;width:min(420px,calc(100vw - 36px));border:1px solid rgba(31,36,31,.14);border-radius:8px;padding:18px 20px;background:#fff8eaf0;box-shadow:0 24px 70px #2b1f1647;color:#1f241f;pointer-events:none;text-align:center;transform:translate(-50%,-50%);transform-origin:center;animation:personalToastPresence 2.1s cubic-bezier(.18,.82,.28,1) both;will-change:opacity,transform,filter}.round-personal-toast span{color:#53604e;font-size:.86rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.round-personal-toast strong{font-size:clamp(1.35rem,4vw,2rem);line-height:1.12}.round-personal-toast.won{border-color:#3d754557;background:#f4f9ebf5;box-shadow:0 24px 70px #2758323d}.round-personal-toast.won span,.round-personal-toast.won strong{color:#275832}.round-personal-toast.lost{border-color:#a8322d61;background:#ffeee7f5;box-shadow:0 24px 70px #7a262240}.round-personal-toast.lost span,.round-personal-toast.lost strong{color:#7a2622}.round-result-card{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;border:1px solid rgba(168,50,45,.18);border-radius:8px;padding:clamp(14px,2vw,20px);background:#fff8eab8;box-shadow:0 20px 54px #4d341d1f,inset 6px 0 #a8322d}.round-result-card.challenge-won{border-color:#3d75453d;background:#f4f9ebad;box-shadow:0 20px 54px #4d341d1f,inset 6px 0 #3d7545}.round-result-main{display:grid;gap:10px}.round-result-card h2{max-width:820px;margin:0;font-size:clamp(1.65rem,3.2vw,2.65rem);line-height:1.02}.round-result-card p{max-width:640px;margin:0;color:#344234;font-size:clamp(.98rem,1.55vw,1.14rem);font-weight:800}.round-summary-line{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;color:#53604e;font-size:clamp(.92rem,1.45vw,1.08rem);font-weight:900}.round-summary-line .bid-value.compact{font-size:1.02rem}.round-summary-line strong{color:#7a2622;font-size:1.26em;line-height:1}.round-summary-divider{color:#1f241f57}.round-personal-result{display:grid;gap:6px;max-width:100%;margin-top:4px;border:0;border-radius:0;padding:0;background:transparent}.round-personal-result span{color:#53604e;font-size:clamp(1rem,1.75vw,1.24rem);font-weight:900;text-transform:uppercase}.round-personal-result strong{color:#1f241f;font-size:clamp(1.2rem,2.05vw,1.58rem);line-height:1.25}.round-personal-result.lost,.round-personal-result.lost span,.round-personal-result.lost strong{color:#7a2622}.round-personal-result.won,.round-personal-result.won span,.round-personal-result.won strong{color:#275832}.match-winner-line{color:#7a2622!important}.round-evidence{display:grid;gap:10px;align-content:start;padding-top:14px}.round-evidence-row{display:grid;grid-template-columns:minmax(110px,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid rgba(31,36,31,.12);padding:0 0 11px}.round-evidence-row:last-child{border-bottom:0;padding-bottom:0}.round-evidence-row>span{color:#53604e;font-size:.86rem;font-weight:900}.round-evidence-row>strong{color:#7a2622;font-size:clamp(2.2rem,4vw,3.35rem);line-height:.9}.reveal-continue-button:disabled{opacity:.7}.reveal-continue-button{justify-self:center}.reveal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.reveal-player{display:grid;gap:12px;border:1px solid rgba(31,36,31,.12);border-radius:8px;padding:14px;background:#ffffff47}.reveal-player.loser{border-color:#a8322d7a;background:#ffeee79e;box-shadow:inset 5px 0 #a8322dad}.reveal-player.winner{border-color:#3d754547;background:#f2f8e780;box-shadow:inset 5px 0 #3d75456b}.reveal-player-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.reveal-player-head div{display:grid;gap:3px}.reveal-player-head strong{color:#1f241f;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1}.reveal-player-head span{color:#53604e;font-size:.82rem;font-weight:900}.reveal-dice-list,.mini-dice{display:flex;flex-wrap:wrap;gap:10px}.reveal-die{display:inline-grid;place-items:center;width:clamp(62px,6.3vw,70px);height:clamp(62px,6.3vw,70px);border:1px solid rgba(31,36,31,.14);border-radius:8px;background:#fff8ea8c;opacity:.62;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease}.reveal-die .dice-face.compact{width:clamp(44px,4.8vw,52px);height:clamp(44px,4.8vw,52px)}.reveal-die.matched{border-color:#a8322db3;background:#ffece2fa;opacity:1;transform:translateY(-4px) scale(1.04);box-shadow:0 0 0 3px #a8322d1f,0 16px 30px #a8322d38}.reveal-die.matched.joker{border-color:#a8322d99;box-shadow:0 0 0 4px #a8322d24,0 18px 32px #a8322d3d}.mobile-playing-view .game-grid{grid-template-columns:1fr;grid-template-areas:"turn" "dice";gap:10px}.mobile-playing-view .game-grid.has-controls{grid-template-areas:"turn" "dice" "controls"}.mobile-playing-view .turn-banner,.mobile-playing-view .dice-panel,.mobile-playing-view .controls-panel{padding:10px}.mobile-playing-view .turn-banner{min-height:0}.mobile-playing-view .turn-copy h2{margin-bottom:0;font-size:clamp(1.18rem,5.5vw,1.58rem)}.mobile-playing-view .turn-copy p{display:none}.mobile-playing-view .dice-panel{min-height:0}.mobile-playing-view .dice-panel-header{margin-bottom:0}.mobile-playing-view .joker-note{padding:4px 7px;font-size:.72rem}.mobile-playing-view .dice-stage{height:clamp(150px,43vw,190px)}.mobile-playing-view .controls-heading{margin-bottom:8px}.mobile-playing-view .controls-heading h3{font-size:1.06rem}.mobile-playing-view .bid-builder{grid-template-columns:minmax(112px,.42fr) minmax(0,1fr);gap:10px;margin-bottom:10px}.mobile-playing-view .quantity-stepper{grid-template-columns:42px minmax(0,1fr) 42px;gap:4px}.mobile-playing-view .quantity-stepper input,.mobile-playing-view .step-button{min-height:44px;font-size:1.24rem}.mobile-playing-view .step-button{min-width:42px}.mobile-playing-view .range-note{padding:4px 7px;font-size:.72rem}.mobile-playing-view .face-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mobile-playing-view .face-token{grid-template-columns:24px auto;min-height:42px;gap:5px;padding-inline:5px}.mobile-playing-view .face-token .dice-face{width:24px;height:24px}.mobile-playing-view .action-row{gap:8px;flex-wrap:nowrap}.mobile-playing-view .action-row>button{flex:1 1 0;min-width:0;min-height:48px;padding-inline:8px;white-space:normal}.mobile-drawer .history-panel ol{max-height:300px}.mobile-reveal-view .reveal-state,.mobile-gameover-view .reveal-state{min-height:0}.mobile-reveal-view .round-result-card,.mobile-gameover-view .round-result-card{grid-template-columns:1fr;padding:14px}.mobile-reveal-view .round-result-card h2,.mobile-gameover-view .round-result-card h2{font-size:clamp(1.55rem,8vw,2.25rem)}.mobile-reveal-view .round-result-card p,.mobile-gameover-view .round-result-card p{font-size:.94rem}.mobile-reveal-view .round-evidence,.mobile-gameover-view .round-evidence{padding-top:0}.mobile-reveal-view .reveal-continue-button,.mobile-gameover-view .reveal-continue-button{justify-self:stretch;width:100%;min-width:0}.mobile-reveal-view .reveal-grid,.mobile-gameover-view .reveal-grid{grid-template-columns:1fr}.mobile-reveal-view .reveal-player,.mobile-gameover-view .reveal-player{padding:12px}.mobile-reveal-view .reveal-die,.mobile-gameover-view .reveal-die{width:50px;height:50px}.mobile-reveal-view .reveal-die .dice-face.compact,.mobile-gameover-view .reveal-die .dice-face.compact{width:38px;height:38px}@keyframes landscapeDrift{0%{transform:translate3d(-10px,-4px,0) scale(1.015)}to{transform:translate3d(10px,5px,0) scale(1.03)}}@keyframes landscapeTone{0%{filter:saturate(.96) brightness(1)}to{filter:saturate(1.05) brightness(1.015)}}@keyframes waitingPulse{0%,to{opacity:.28;transform:translateY(0)}50%{opacity:.9;transform:translateY(-3px)}}@keyframes slotAppear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes panelRise{0%{opacity:.88;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes personalToastPresence{0%{opacity:0;filter:blur(6px);transform:translate(-50%,calc(-50% + 18px)) scale(.94)}12%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}78%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}to{opacity:0;filter:blur(4px);transform:translate(-50%,calc(-50% - 10px)) scale(.985)}}@keyframes diceRefresh{0%{opacity:.76;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1180px){.room-layout.playing-layout{grid-template-columns:minmax(240px,280px) minmax(0,1fr)}.playing-shell{grid-template-columns:1fr}.playing-shell>.history-panel{position:static;max-height:none}}@media (max-width: 880px){.app-shell{padding:14px}.top-bar{align-items:stretch;flex-direction:column}.top-actions{align-items:stretch;justify-content:stretch}.home-title-row{align-items:stretch;flex-direction:column}.create-room-button{width:100%}.header-demo-button,.room-pill{flex:1 1 auto}.dice-demo-header,.dice-demo-controls,.backtest-grid{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.rooms-grid,.room-layout,.table-mode,.playing-shell,.game-grid,.room-layout.lobby-layout,.room-layout.playing-layout{grid-template-columns:1fr}.room-layout.playing-layout{margin-top:20px}.playing-layout .playing-shell{order:1}.playing-layout .players-panel{order:2}.lobby-layout .players-panel{border-right:0;border-bottom:1px solid rgba(31,36,31,.14)}.lobby-ready-strip,.profile-stats-grid,.profile-settings-grid,.last-game-result,.create-room-grid{grid-template-columns:1fr}.profile-hero{align-items:flex-start}.profile-avatar{width:66px;height:66px;font-size:1.75rem}.profile-theme-options,.profile-weather-city{grid-template-columns:1fr}.last-game-players{justify-content:flex-start}.round-result-card{grid-template-columns:1fr}.round-evidence{padding-top:0}.game-grid{grid-template-areas:"turn" "dice"}.game-grid.has-controls{grid-template-areas:"turn" "dice" "controls"}.playing-shell>.history-panel{position:static;max-height:none}.home-grid,.room-layout{margin-top:28px}.players-panel,.table-panel{min-height:auto}.center-state{min-height:360px}.turn-banner{align-items:stretch;flex-direction:column}.playing-layout .dice-stage{height:clamp(220px,42vw,280px)}.lobby-hero{flex-direction:column}.bid-builder{grid-template-columns:1fr}.face-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.app-shell{padding:10px}.top-bar{gap:8px}.brand{min-height:48px;min-width:86px}.brand-kanji{font-size:1.72rem}.top-actions{gap:8px}.profile-pill{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%}.profile-open-button,.profile-button,.profile-logout,.header-demo-button{min-height:42px}.room-pill{justify-content:space-between;gap:6px;padding:8px 10px}.home-grid,.room-layout{margin-top:18px}.room-card,.players-panel,.table-panel,.join-dialog,.turn-banner,.dice-panel,.controls-panel,.history-panel,.reveal-player{padding:14px}.room-card{min-height:226px}.card-actions,.dialog-actions,.side-actions,.action-row{gap:8px}.side-actions{flex-wrap:wrap}.side-actions>button{flex:1 1 132px}.lobby-layout .table-panel{padding:14px}.lobby-state,.center-state,.reveal-state{min-height:auto}.lobby-slots{grid-template-columns:1fr}.lobby-slot{grid-template-columns:38px minmax(0,1fr) auto;min-height:62px}.slot-avatar{width:38px;height:38px}.playing-layout .turn-banner{min-height:0}.playing-layout .dice-stage{height:clamp(210px,58vw,250px)}.dice-panel-header{align-items:flex-start;flex-direction:column}.quantity-stepper{grid-template-columns:52px minmax(0,1fr) 52px}.quantity-stepper strong,.quantity-stepper input{min-height:52px;font-size:1.55rem}.step-button{min-width:52px}.face-token{grid-template-columns:28px auto;min-height:48px;padding-inline:6px}.face-token .dice-face{width:28px;height:28px}.action-row>button,.primary-action,.challenge-action,.ready-action{width:100%;min-width:0}.profile-history-dialog{max-height:calc(100svh - 20px)}.profile-history-dialog::-webkit-scrollbar{width:10px;height:10px}.profile-history-dialog::-webkit-scrollbar-thumb{border-width:3px;min-height:54px}.profile-hero,.profile-history-heading{flex-direction:column}.profile-history-list li{grid-template-columns:1fr}}@media (max-height: 640px){.modal-backdrop{place-items:start center}}
