:root{--bg:#111715;--panel:#1a211d;--panel-light:#202822;--line:#30392f;--text:#eeeede;--muted:#909b8d;--green:#c1e5a2;--green-dark:#213a29;--gold:#d8c18b;--peach:#d0aa8e;--danger:#d49b87;--sidebar:226px;--radius:20px;color-scheme:dark;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.38}button,a,input,select,summary{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green)}input:focus,select:focus{outline:0;border-color:#99b985;box-shadow:0 0 0 3px #badfa512}a{color:inherit;text-decoration:none}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.04em}svg.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button .icon{transition:transform .2s}button:hover:not(:disabled)>.icon:last-child{transform:translateX(2px)}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);border-right:1px solid #283027;padding:37px 24px 24px;display:flex;flex-direction:column;background:#131a16;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:700;line-height:1.2;letter-spacing:1px}.brand-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--green);color:#253824;box-shadow:0 2px 15px #bedf9320}.brand-icon .icon{width:28px;height:28px;stroke-width:1.7}.brand small{font-size:9px;display:block;font-weight:500;letter-spacing:3px;margin-top:6px}.sidebar-caption{font-size:10px;letter-spacing:2px;color:#76836f;margin:48px 13px 13px}.sidebar nav{display:flex;flex-direction:column;gap:9px}.nav-item{display:flex;align-items:center;width:100%;gap:12px;border-radius:10px;padding:13px 12px;color:#8e9a89;font-size:13px;white-space:nowrap}.nav-item.active{background:#2b3626;color:var(--green)}.nav-item.active i{width:5px;height:5px;border-radius:50%;background:var(--green);margin-left:auto}.nav-item:hover{background:#202a20}.nav-badge{font-size:10px;border:1px solid #48513b;border-radius:4px;color:#b3b68c;line-height:16px;width:18px;margin-left:auto;text-align:center}.sidebar-bottom{margin-top:auto;padding-top:75px}.sidebar-note{padding:18px 13px;border:1px solid #343e2c;border-radius:14px;background:linear-gradient(135deg,#273022,#1b221b)}.mini-star{display:block;color:var(--green);font-size:27px;line-height:1;margin:2px 0 13px}.sidebar-note strong{font-size:12px;font-weight:500}.sidebar-note p{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.7}.sound-switch{display:flex;align-items:center;gap:10px;width:100%;font-size:12px;color:var(--muted);padding:25px 2px 16px}.toggle{margin-left:auto;width:29px;height:17px;border-radius:12px;background:#3a4237;padding:3px;display:flex;align-items:center}.toggle i{height:11px;width:11px;border-radius:50%;background:#89957b;transition:transform .2s}.toggle.on{background:#3b5330}.toggle.on i{background:var(--green);transform:translateX(12px)}.sidebar-foot{display:block;font-size:10px;color:#64705f;letter-spacing:.6px;padding:10px 2px}.workspace{width:calc(100% - var(--sidebar));margin-left:var(--sidebar);display:flex;flex-direction:column;min-height:100vh}.topbar{height:87px;border-bottom:1px solid #252d23;display:flex;align-items:center;justify-content:space-between;padding:0 44px;flex-shrink:0}.breadcrumb{font-size:12px;color:#8d9987;letter-spacing:.5px}.breadcrumb span{color:#55614e;margin:0 13px}.breadcrumb strong{font-weight:400;color:#c1c7b8}.topbar-right{display:flex;align-items:center;gap:25px}.connection{font-size:11px;display:flex;align-items:center;gap:8px;color:#94a38b;white-space:nowrap}.status-dot{width:6px;height:6px;display:inline-block;background:#bada91;border-radius:50%;box-shadow:0 0 9px #bada9126;flex-shrink:0}.connection.offline .status-dot{background:var(--danger)}.connection.connecting .status-dot{background:var(--gold);animation:pulse 1s infinite}.avatar{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;flex-shrink:0;border-radius:50%;font-size:14px;font-weight:500;background:#3f4b35;color:#e1e6cc;border:1px solid #687452}.avatar-1{background:#61503d;color:#e6d2a4;border-color:#7a694d}.avatar-2{background:#3f5551;color:#c7dbce;border-color:#63766b}.avatar-3{background:#584547;color:#e1c6c3;border-color:#745e61}.avatar-4{background:#494c61;color:#cacbe0;border-color:#626578}.avatar-5{background:#5b5637;color:#e5dcad;border-color:#7b754a}.avatar.small{width:32px;height:32px;font-size:12px}.mobile-sound{display:none}.home-main{padding:40px 44px 18px;max-width:1580px;width:100%;margin:0 auto}.eyebrow{font-size:9px;letter-spacing:2.4px;color:#9cae8d;font-weight:500;display:inline-block}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}.page-heading h1{font-size:32px;line-height:1.6;margin:4px 0 3px}.page-heading p{font-size:12px;color:var(--muted);letter-spacing:1px}.date-badge{color:#b5bca4;border:1px solid #3c4534;background:#222a20;padding:7px 12px;border-radius:20px;font-size:11px;display:flex;gap:8px;align-items:center}.date-badge .icon{width:14px;height:14px}.home-grid{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(310px,1fr);gap:23px}.hero-card{position:relative;overflow:hidden;border-radius:var(--radius);min-height:529px;border:1px solid #4b6241;background:radial-gradient(ellipse at 84% 73%,#355239 0,transparent 56%),linear-gradient(140deg,#263e2b,#1d3224 65%,#2d4328)}.hero-noise{pointer-events:none;position:absolute;inset:0;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-copy{position:relative;z-index:2;padding:42px 36px;pointer-events:none}.hero-copy button{pointer-events:auto}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #51614c;color:#c6d5b4;border-radius:20px;font-size:10px;padding:5px 10px;white-space:nowrap}.hero-pill{background:#41533655;font-size:10px;letter-spacing:.7px;border-color:#71836055}.hero-pill i{width:5px;height:5px;background:var(--green);border-radius:50%}.hero-copy h2{font-size:clamp(29px,3vw,43px);line-height:1.5;letter-spacing:1px;margin:30px 0 17px;color:#eeeeda}.hero-copy h2 span{color:var(--green)}.hero-copy p{font-size:12px;color:#b0bea3;letter-spacing:.6px;line-height:2}.hero-cta{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-top:30px;background:var(--green);color:#243823;border-radius:9px;padding:12px 17px;font-size:12px;font-weight:600;box-shadow:0 4px 20px #0a170522;transition:background .2s,transform .2s}.hero-cta:hover{background:#d0ecb9;transform:translateY(-2px)}.hero-cta .icon{width:18px;height:18px}.hero-avatars{display:flex;align-items:center;margin-top:37px;white-space:nowrap}.hero-avatars .avatar{width:26px;height:26px;font-size:9px;border:2px solid #2c432b;margin-right:-7px}.hero-avatars>span:last-child{font-size:9px;color:#a7b79b;margin-left:18px;letter-spacing:.5px}.art-scene{position:absolute;right:-68px;width:78%;top:62px;bottom:23px;pointer-events:none}.cup-art{width:100%;height:100%;overflow:visible}.art-caption{position:absolute;bottom:18px;left:39%;font-size:7px;letter-spacing:2.5px;color:#b6c39c;opacity:.65}.hero-corner{position:absolute;bottom:23px;right:23px;color:#a5b795;font-size:9px;letter-spacing:3px}.entry-card{padding:27px 27px 20px;border-radius:var(--radius);background:linear-gradient(140deg,#232b23,#1b221b);border:1px solid #3b4433;box-shadow:0 4px 30px #00000010}.entry-heading h2{font-size:20px;letter-spacing:.3px;margin:6px 0 22px}.entry-heading .eyebrow{font-size:8px}.tabs{display:flex;background:#151c16;border-radius:9px;padding:4px;margin-bottom:23px;gap:3px}.tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 5px;font-size:11px;color:#98a18d;border-radius:6px}.tabs button.selected{background:#35432d;color:#d5e8b7;box-shadow:0 2px 8px #0002}.tabs .icon{width:15px;height:15px}form label{display:flex;justify-content:space-between;color:#c5c9b8;font-size:11px;margin-bottom:8px;align-items:center}form label span{font-size:9px;color:#78856f}input,select{width:100%;background:#171f18;border:1px solid #3e4836;border-radius:8px;color:#dbe1cd;padding:11px 13px;font-size:12px;min-width:0;transition:border-color .2s}input::placeholder{color:#718069}input{margin-bottom:17px}select{cursor:pointer;padding-right:24px;height:40px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:0 0 16px}.room-options{font-size:10px;color:#8e9b82;margin:0 0 15px}.room-options summary{display:flex;gap:8px;align-items:center;cursor:pointer;list-style:none;font-size:10px}.room-options summary::-webkit-details-marker{display:none}.room-options summary span{font-size:9px;color:#717e67;margin-left:auto}.room-options summary .icon{width:12px;height:12px}.room-options[open] summary{margin-bottom:14px}.room-options[open] summary .icon{transform:rotate(90deg)}.room-options>select{margin-bottom:14px}.checkbox-row{justify-content:flex-start;gap:8px;margin-top:10px!important;font-size:10px!important;line-height:1.7}.checkbox-row input{width:14px;height:14px;margin:0;accent-color:var(--green)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;padding:11px 16px;font-size:12px;font-weight:500;min-height:42px;transition:background .2s,border-color .2s,transform .2s}.button.primary{background:var(--green);color:#263d25;border:1px solid var(--green);font-weight:600}.button.primary:hover:not(:disabled){background:#d0ecb9;border-color:#d0ecb9;box-shadow:0 4px 20px #bedd9112}.button.secondary{border:1px solid #4b5843;background:#263122;color:#c8d4b8}.button.secondary:hover:not(:disabled){background:#33402a}.entry-submit{width:100%;justify-content:space-between;margin-top:3px}.entry-hint{font-size:9px;color:#829274;text-align:center;margin-top:13px;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.entry-hint .icon{width:12px;height:12px}.code-input{font-size:19px;letter-spacing:5px;text-transform:uppercase;height:52px}.code-input::placeholder{font-size:12px;letter-spacing:2px}.join-note{display:flex;gap:12px;border:1px dashed #49553c;border-radius:10px;padding:20px 14px;margin:2px 0 22px;background:#25302070}.join-note>.icon{color:#b8d197;margin-top:2px}.join-note strong{font-size:10px;font-weight:400;color:#b5c1a5}.join-note p{font-size:10px;color:#8c9c7e;margin-top:9px;line-height:1.9}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:31px 0 17px}.section-heading h2{font-size:18px;letter-spacing:.6px}.text-button{font-size:10px;color:#bac8a8;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:5px 0}.text-button .icon{width:15px;height:15px}.text-button:hover{color:var(--green)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.feature-card{display:flex;position:relative;padding:23px 17px;gap:12px;border:1px solid #333d2d;border-radius:14px;background:#1b221b;transition:transform .2s,border-color .2s}.feature-card:hover{transform:translateY(-3px);border-color:#62744a}.feature-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;border:1px solid #4a623c;background:#2a3b24;color:#bad896;flex-shrink:0}.feature-icon .icon{width:21px;height:21px}.feature-icon.gold{color:#d0bd88;background:#3b3524;border-color:#595036}.feature-icon.peach{color:#ccaa8f;background:#3c2e25;border-color:#584134}.feature-card h3{font-size:13px;letter-spacing:.3px;margin:1px 0 8px}.feature-card p{font-size:10px;color:#8d9a82;line-height:1.9}.feature-number{position:absolute;right:11px;top:9px;font-size:8px;color:#546249}.bottom-banner{margin-top:23px;border:1px solid #323d2b;border-radius:12px;padding:17px 20px;display:flex;align-items:center;gap:14px;background:linear-gradient(95deg,#222c1d,#1a221b)}.bottom-banner>span{color:var(--green);font-size:24px}.bottom-banner p{font-size:12px;color:#9eac8e;letter-spacing:.8px}.bottom-banner strong{font-weight:400;color:#dae2c7}.bottom-banner .text-button{margin-left:auto}.main-footer{margin-top:auto;padding:22px 44px 25px;display:flex;justify-content:space-between;gap:12px;color:#66725d;font-size:9px;letter-spacing:.7px}.main-footer i{font-style:normal;color:#899775;margin:0 10px}
/* The dice use a CSS grid so every face stays crisp at any display size. */
.die{display:inline-grid;position:relative;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:8px;gap:3px;height:47px;width:47px;background:linear-gradient(145deg,#f5f0d9,#dadbc0);border:1px solid #ecebd18a;border-radius:10px;box-shadow:0 3px 0 #949e7f,0 6px 13px #0004;flex-shrink:0;vertical-align:middle;color:#43503b}.pip{background:#334a35;border-radius:50%;width:100%;height:100%;display:block;box-shadow:inset 0 1px 2px #0003}.face-1 .pip{background:#b36f53;width:150%;height:150%;align-self:center;justify-self:center}.p1{grid-area:1/1}.p3{grid-area:1/3}.p4{grid-area:2/1}.p5{grid-area:2/2}.p6{grid-area:2/3}.p7{grid-area:3/1}.p9{grid-area:3/3}.face-0{background:#26342a;border:1px solid #40543b;box-shadow:0 3px 0 #17251a,0 6px 12px #0002}.unknown{grid-area:1/1/4/4;display:grid;place-items:center;color:#758667;font-size:24px;font-family:Georgia,serif}.die.matched{outline:2px solid #bbdc91;outline-offset:2px;box-shadow:0 3px 0 #749654,0 0 17px #a3ce6715}
/* Room */
.room-main{padding:33px 35px 17px;max-width:1700px;width:100%;margin:0 auto}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.room-heading h1{font-size:27px;display:flex;align-items:center;gap:14px;margin:6px 0 6px;line-height:1.5;overflow-wrap:anywhere}.room-heading p{font-size:10px;color:#8d9b80;letter-spacing:.6px}.room-phase{font-size:10px;font-weight:400;letter-spacing:.3px;border:1px solid #49593d;border-radius:20px;padding:3px 9px;color:#baccab;white-space:nowrap;flex-shrink:0}.room-heading-actions{display:flex;gap:10px;align-items:center}.room-code{display:flex;align-items:center;gap:9px;background:#202a1f;border:1px solid #3c4833;border-radius:9px;padding:9px 11px;white-space:nowrap}.room-code span{font-size:9px;color:#909c83}.room-code strong{font-size:14px;letter-spacing:2px;font-weight:500;color:#dce6c8}.room-code .icon{width:14px;height:14px;color:#9da98e}.invite{border:1px solid #47583b;background:#2b3923;color:#c4d7aa;white-space:nowrap}.invite .icon{width:16px;height:16px}.icon-button{width:32px;height:32px;padding:5px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#9faa91;flex-shrink:0}.icon-button:hover{background:#34412c}.leave-button{border:1px solid #414935;height:40px;width:40px}.table-layout{display:grid;grid-template-columns:218px minmax(310px,1fr) 286px;gap:19px;align-items:start}.panel{border:1px solid #35412d;border-radius:14px;background:linear-gradient(145deg,#222b21,#1a221b);overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 16px;border-bottom:1px solid #35402d;gap:8px}.panel-heading h2{font-size:12px;letter-spacing:.2px;white-space:nowrap}.panel-heading h2 span{font-size:9px;color:#8b9a7d;letter-spacing:1px;margin-left:6px;font-weight:400}.panel-heading>.icon{width:15px;height:15px;color:#8e9f7c}.player-list{padding:10px}.player-row{position:relative;display:flex;align-items:center;gap:9px;padding:12px 4px;border-bottom:1px solid #313c29;min-height:68px}.player-row:last-child{border-bottom:0}.player-row .avatar{width:33px;height:33px;font-size:12px}.player-row.current{background:#354829;border:1px solid #62774c;border-radius:9px;padding:11px 5px;margin:4px -2px}.player-row.offline{opacity:.58}.player-info{min-width:0;flex:1}.player-info strong{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;flex-wrap:wrap;overflow-wrap:anywhere}.player-info strong small{font-size:8px;color:#8b9c79;font-weight:400;white-space:nowrap}.host-crown{width:12px!important;height:12px!important;color:#d3bc80}.player-info>span{display:block;font-size:9px;color:#8d9e7d;margin-top:2px}.score-chip{font-size:13px;color:#aebb8f;display:flex;align-items:baseline;gap:2px}.score-chip small{font-size:8px}.kick-button{position:absolute;right:0;top:2px;width:18px;height:18px;padding:2px;opacity:0;color:#baaa94}.kick-button .icon{width:12px;height:12px}.player-row:hover .kick-button,.kick-button:focus-visible{opacity:1}.players-footer{border-top:1px solid #313e28;padding:13px 14px;font-size:9px;color:#a5b18f;display:flex;gap:6px;align-items:center}.players-footer .status-dot{width:4px;height:4px}.players-footer>span:last-child{font-size:8px;color:#748564;margin-left:auto}.reset-button{width:100%;padding:10px;font-size:9px;color:#a29178;border-top:1px solid #313e28}.game-column{display:flex;flex-direction:column;gap:17px;min-width:0}.felt-table{position:relative;overflow:hidden;min-height:432px;border:1px solid #5b7150;border-radius:21px;background:radial-gradient(ellipse at 50% 60%,#365835 0,#24412b 65%,#223b29);box-shadow:inset 0 0 0 7px #273d29,inset 0 0 0 8px #53704844,0 12px 28px #0001;display:flex;flex-direction:column}.felt-table:after{position:absolute;inset:0;pointer-events:none;content:"";background-image:radial-gradient(#abbc7a17 .7px,transparent .7px);background-size:4px 4px;opacity:.45}.table-topline,.table-bottomline{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;margin:25px 23px 0;font-size:8px;letter-spacing:2px;color:#a0b18c}.table-topline{padding-bottom:14px;border-bottom:1px solid #a0b18c22}.table-bottomline{margin:0 23px 20px;font-size:8px;letter-spacing:.5px;padding-top:10px;border-top:1px solid #a0b18c22}.table-bottomline>span{display:flex;gap:5px;align-items:center}.table-bottomline .icon{width:11px;height:11px}.table-rules{color:#aebd9e;font-size:8px;letter-spacing:.5px;display:flex;align-items:center;gap:4px}.table-rings{position:absolute;left:50%;top:50%;height:320px;width:320px;transform:translate(-50%,-50%);border:1px solid #89a56e14;border-radius:50%;box-shadow:0 0 0 23px #86a76b04,0 0 0 24px #86a76b08}.table-center{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px 17px;min-height:305px}.table-cup{width:65px;height:65px;background:#97b57916;border:1px solid #91a67944;border-radius:17px;display:grid;place-items:center;transform:rotate(-9deg);margin-bottom:19px}.table-cup .icon{width:38px;height:38px;stroke-width:1.2;color:#d1dfb0}.table-kicker{font-size:10px;letter-spacing:1.5px;color:#b1c59b;margin-bottom:12px}.table-center h2{font-size:27px;font-weight:500;color:#eff0d7;letter-spacing:1px;margin-bottom:10px}.table-center p{font-size:10px;line-height:1.9;color:#b4c29f}.table-center>.button{margin-top:19px;padding:11px 19px;font-size:11px}.empty-dice{display:flex;gap:12px;position:absolute;right:-13px;bottom:2px;opacity:.15;pointer-events:none;transform:rotate(-15deg)}.empty-dice .die{width:32px;height:32px;padding:6px;gap:2px}.waiting-pill{font-size:10px;border:1px solid #7b936052;background:#75945312;color:#c0d1a6;padding:9px 16px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;margin-top:16px}.roll-progress{display:flex;gap:7px;margin:20px 0 13px;flex-wrap:wrap;justify-content:center}.roll-progress>span{width:25px;height:25px;border:1px solid #839b6833;background:#6c8b5315;border-radius:50%;display:grid;place-items:center;color:#7a9463}.roll-progress .icon{width:13px;height:13px}.roll-progress .done{background:#bdde93;color:#304328;border-color:#bdde93}.table-footnote{font-size:9px;letter-spacing:.5px;color:#9fb48c;margin-top:17px;line-height:1.8}.big-bid{display:flex;align-items:center;justify-content:center;gap:15px;margin:0 0 15px}.big-bid>span{font-size:82px;font-weight:400;letter-spacing:-5px;color:#eef0d5;line-height:1.2;font-family:Georgia,serif}.big-bid small{font-size:15px;color:#bdcda9;margin-top:30px}.table-die{width:74px;height:74px;padding:12px;gap:5px;border-radius:15px;margin-left:10px;transform:rotate(8deg);box-shadow:0 5px 0 #99a280,0 10px 20px #0004}.bid-type{color:#d8e4bf;border:1px solid #728f5566;font-size:10px;padding:5px 13px;border-radius:20px;background:#76944c22;letter-spacing:.7px}.bid-type.dry{color:#e0d8ad;border-color:#a8985366;background:#b5a36722}.turn-indicator{display:flex;align-items:center;gap:7px;font-size:11px;margin-top:23px;color:#c7dcb0}.pulse-dot{width:6px;height:6px;background:#c6e2a4;border-radius:50%;animation:pulse 2s infinite}.hand-panel{padding:19px 20px 20px}.hand-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.hand-title h2{font-size:12px;display:flex;align-items:center;gap:6px;letter-spacing:.2px}.hand-title h2 .icon{width:13px;height:13px;color:#7e946c}.hand-title p{font-size:9px;color:#8f9f81;margin-top:5px;line-height:1.8}.hand-title .pill{font-size:8px;padding:3px 8px}.gold-pill{border-color:#867a47;color:#c9bd8c;background:#49452933}.hand-content{display:flex;align-items:center;gap:15px;justify-content:space-between;margin-top:21px}.dice-hand{display:flex;gap:13px;perspective:600px}.hand-die{height:49px;width:49px;padding:8px;gap:3px}.private-label{font-size:8px;color:#718462;display:flex;align-items:center;gap:4px;white-space:nowrap}.private-label .icon{width:11px;height:11px}.roll-button{font-size:10px;padding:9px 14px;min-height:36px;white-space:nowrap}.roll-button .icon{width:15px;height:15px}.shaking .die{animation:shake .17s infinite linear}.shaking .die:nth-child(2n){animation-direction:reverse}.shaking .die:nth-child(3){animation-delay:.06s}.action-column{display:flex;flex-direction:column;gap:17px;min-width:0}.timer{display:flex;align-items:center;gap:4px;color:#aabd90;font-size:10px}.timer .icon{width:13px;height:13px}.timer b{font-weight:400;font-variant-numeric:tabular-nums}.timer.urgent{color:#e7b293}.bid-controls{padding:17px}.control-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#c1ccb0;margin-bottom:10px}.control-label>span{font-size:8px;color:#82976f}.quantity-stepper{display:flex;align-items:center;border:1px solid #4b5a3e;background:#172519;border-radius:9px;height:57px;gap:4px;padding:7px;margin-bottom:20px}.quantity-stepper input{height:40px;margin:0;background:transparent;border:0;box-shadow:none;padding:0;text-align:center;font-size:30px;font-family:Georgia,serif;-moz-appearance:textfield;width:80px;flex:1;color:#dfebc6}.quantity-stepper input::-webkit-inner-spin-button,.quantity-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quantity-stepper>span{font-size:11px;color:#8fa276;margin-right:8px}.quantity-stepper>.icon-button{background:#314129;border:1px solid #4b603d;color:#c8dfa7;width:29px;height:29px;border-radius:6px}.quantity-stepper>.icon-button .icon{width:15px;height:15px}.face-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:20px}.face-choice{padding:5px 2px 7px;border-radius:7px;border:1px solid transparent;display:flex;justify-content:center;align-items:center}.face-choice.selected{background:#5a704036;border-color:#a2bc77}.face-choice .die{width:29px;height:29px;padding:5px;gap:1.5px;border-radius:5px;box-shadow:0 2px 0 #8c9a74,0 4px 7px #0003}.mode-picker{display:flex;padding:3px;background:#172318;border:1px solid #3e5132;border-radius:8px;gap:4px}.mode-picker button{flex:1;display:flex;justify-content:center;align-items:center;gap:7px;padding:7px 5px;font-size:11px;color:#8ca277;border-radius:5px}.mode-picker small{font-size:8px;color:#86a270}.mode-picker button.selected{background:#3d5130;color:#d7e8b9}.mode-picker button.selected small{color:#b3c393}.mode-picker button:nth-child(2).selected{background:#5a5130;color:#e2d4a0}.bid-hint{font-size:8px;color:#889e72;margin:10px 0 17px;min-height:26px;line-height:1.8}.submit-bid{width:100%;font-size:11px;min-height:41px}.submit-bid .icon{width:17px;height:17px}.challenge-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.open-button{background:#333f2c;border:1px solid #64744b;color:#d7dfc2;font-size:17px;padding:8px;min-height:40px}.chop-button{background:#49372a;border:1px solid #8e6845;color:#e0bc91;font-size:17px;padding:8px;min-height:40px}.challenge-controls small{font-size:9px;opacity:.7}.chop-button:hover:not(:disabled){background:#634830}.open-button:hover:not(:disabled){background:#445534}.challenge-hint{font-size:8px;text-align:center;color:#768b60;margin-top:10px}.aside-illustration{padding:33px 18px;text-align:center;min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center}.aside-illustration>.icon{width:37px;height:37px;color:#a6ba89;stroke-width:1.1;margin-bottom:19px}.aside-illustration h3{font-size:17px;color:#d7e0bf;letter-spacing:.5px;margin-bottom:12px}.aside-illustration p{font-size:10px;color:#93a580;line-height:2}.aside-illustration>.button{margin-top:23px;font-size:10px;width:100%}.aside-illustration>.text-button{font-size:9px;margin-top:11px}.rule-tip{border:1px dashed #4f633d;padding:10px;font-size:8px;color:#99b17e;margin-top:24px;border-radius:6px;display:flex;align-items:center;gap:7px;line-height:1.8}.rule-tip .icon{width:13px;height:13px}.history-panel .panel-heading{padding:15px 16px}.live-badge{font-size:7px;letter-spacing:1px;color:#a4b58b;display:flex;align-items:center;gap:5px}.live-badge i{width:4px;height:4px;border-radius:50%;background:#9fba79}.history-list{max-height:255px;overflow-y:auto;padding:10px 15px;scrollbar-width:thin;scrollbar-color:#4a5a36 transparent}.history-item{display:flex;gap:9px;margin:0;padding:10px 0;border-bottom:1px solid #34442a}.history-item:last-child{border-bottom:0}.history-marker{width:20px;height:20px;display:grid;place-items:center;background:#2b3b23;border-radius:6px;flex-shrink:0;margin-top:1px;color:#8ca873}.history-marker .icon{width:11px;height:11px}.history-item p{font-size:9px;color:#adbba0;line-height:1.8;overflow-wrap:anywhere}.history-item time{font-size:7px;color:#6f875b;letter-spacing:.7px}.history-result .history-marker{background:#4b4129;color:#cbb67f}.history-bid p{color:#c4d4ae}.room-help{font-size:9px;color:#778a68;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:24px;text-align:center}.room-help .icon{width:13px;height:13px}.result-seal{width:53px;height:53px;display:grid;place-items:center;border:1px solid #b3bd8066;border-radius:50%;background:#97b77720;color:#d3d7a5;margin-bottom:17px}.result-seal .icon{height:27px;width:27px}.result-center h2{font-size:25px;overflow-wrap:anywhere}.result-center h2 span{color:#e0c48e}.table-outline{background:#acc18414;border:1px solid #9baf7655;color:#d4e2b7;font-size:10px!important}
/* Dialogs and feedback */
#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);display:flex;align-items:center;gap:9px;padding:12px 20px;border:1px solid #779652;background:#2a3f24;color:#e1ebcb;box-shadow:0 8px 35px #0007;border-radius:10px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:12px;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#493329;border-color:#9b7054;color:#f1d3b7}#toast .icon{width:15px;height:15px}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#091109cc;backdrop-filter:blur(9px);padding:25px;display:flex;align-items:center;justify-content:center}.modal{position:relative;width:100%;max-width:620px;max-height:calc(100dvh - 50px);overflow-y:auto;padding:32px;background:linear-gradient(140deg,#273320,#19251c);border:1px solid #617a48;border-radius:21px;box-shadow:0 20px 90px #0005;animation:modal-in .25s ease-out;scrollbar-width:thin;scrollbar-color:#536b3e transparent;outline:0}.modal-close{position:absolute;top:17px;right:17px}.modal h2{font-size:25px;line-height:1.6;letter-spacing:.5px;margin:7px 0 6px}.modal-intro{font-size:10px;color:#98ad86;margin-bottom:23px;line-height:1.9}.rules-modal{max-width:730px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.rules-grid article{padding:16px;border:1px solid #4c613b;border-radius:11px;background:#81945708}.rules-grid article>span{font-size:8px;letter-spacing:1px;color:#9dba78}.rules-grid h3{font-size:14px;letter-spacing:.4px;margin:6px 0}.rules-grid p{font-size:10px;line-height:1.9;color:#a9ba94}.rules-subheading{font-size:14px;letter-spacing:.5px;margin:24px 0 9px}.rules-explanation{font-size:11px;color:#adbf99;line-height:1.9}.rules-table{border-collapse:collapse;width:100%;font-size:10px;text-align:left}.rules-table th{font-weight:400;color:#d0deb9;background:#35482a}.rules-table td{color:#a5ba8c}.rules-table th,.rules-table td{padding:8px 10px;border-bottom:1px solid #3a502d}.rules-table-wrap{border:1px solid #4e6639;border-radius:8px;overflow:hidden}.rules-note{font-size:9px;color:#93a97c;line-height:1.9;margin-top:11px}.rules-extra{margin-top:20px;font-size:11px;color:#bccea4}.rules-extra summary{cursor:pointer;letter-spacing:.5px}.rules-extra p{font-size:10px;line-height:1.9;color:#95ad7e;margin-top:10px}.rules-done{margin-top:24px;width:100%}.result-modal{max-width:670px}.result-modal-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:22px}.result-stamp{width:58px;height:58px;border:1px solid #8a9b61;color:#d3d8a8;border-radius:50%;background:#a3b87b13;display:grid;place-items:center;margin:0 0 17px}.result-stamp .icon{width:30px;height:30px;stroke-width:1.4}.result-modal-header h2{font-size:29px;overflow-wrap:anywhere}.result-modal-header h2>span{color:var(--gold)}.result-modal-header p{font-size:11px;color:#a4ba8e}.result-summary{display:flex;align-items:center;justify-content:space-between;border:1px solid #5f7447;border-radius:12px;padding:16px 24px;background:#32462966;margin-bottom:21px;gap:10px}.result-summary>div{display:flex;flex-direction:column;gap:4px}.result-summary span{font-size:10px;color:#93ad7e}.result-summary strong{font-size:30px;font-weight:500;line-height:1.3;color:#d6dfc1}.result-summary strong.accent{color:#cce8ab}.result-summary small{font-size:11px;font-weight:400;white-space:nowrap}.result-summary>.icon{color:#88a666;opacity:.6;width:18px;height:18px}.reveal-list{display:flex;flex-direction:column;gap:3px}.reveal-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #3d532e}.reveal-row:last-child{border-bottom:0}.reveal-name{width:80px;min-width:0;flex-shrink:0}.reveal-name strong{display:block;font-size:11px;font-weight:500;overflow-wrap:anywhere;color:#d2dfbd}.reveal-name small{font-size:8px;color:#93ad7a}.reveal-name span{font-size:8px;color:#8ea571}.reveal-dice{display:flex;gap:11px;flex:1;justify-content:center;padding:3px 0}.small-die{width:36px;height:36px;padding:6px;gap:2px;border-radius:7px;box-shadow:0 2px 0 #8f9e76,0 5px 9px #0003}.reveal-count{min-width:50px;text-align:right;display:flex;flex-direction:column;gap:2px}.reveal-count strong{font-size:24px;font-weight:400;color:#c9dea7;font-family:Georgia,serif}.reveal-count span{font-size:8px;color:#8fa97b;white-space:nowrap}.result-legend{display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;color:#8ba275;margin:18px 0 24px}.result-legend i{width:8px;height:8px;background:#bfdc92;border-radius:2px;flex-shrink:0}.result-actions{display:flex;gap:11px;align-items:center}.result-actions>.button{flex:1}.result-actions>.waiting-pill{margin:0;flex:1;min-height:42px;padding:8px;font-size:9px}.confirm-modal{max-width:430px;padding:32px}.confirm-copy{font-size:12px;color:#aabd95;line-height:2;margin:16px 0 25px}.confirm-actions{display:flex;gap:12px}.confirm-actions>.button{flex:1}.button.danger{border:1px solid #a68355;color:#f1d2ac;background:#624a32}.button.danger:hover:not(:disabled){background:#7a5838}.share-input{margin:15px 0 23px;font-size:12px}.share-input+.button{width:100%}
@keyframes shake{0%,100%{transform:translate(0,0) rotate(-7deg)}25%{transform:translate(1px,-9px) rotate(12deg)}75%{transform:translate(-2px,5px) rotate(-16deg)}}@keyframes pulse{0%,100%{opacity:.9}50%{opacity:.35}}@keyframes modal-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cup-shake{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg) translateY(-3px)}}.animated-cup{animation:cup-shake .6s ease-in-out infinite}.floating-die{animation:art-float 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes art-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
/* Laptop and tablet */
@media(min-width:1700px){.hero-card{min-height:555px}.hero-copy h2{font-size:48px}.art-scene{right:-25px;width:66%;top:40px}.hero-copy{padding:48px}.entry-card{padding:32px}.entry-heading h2{font-size:23px}.feature-card{padding:27px}.home-grid{grid-template-columns:minmax(0,1.8fr) minmax(330px,1fr)}}
@media(max-width:1390px){:root{--sidebar:198px}.sidebar{padding:32px 20px 20px}.topbar{padding:0 30px;height:78px}.home-main{padding:31px 30px 18px}.hero-copy{padding:33px 27px}.hero-copy h2{font-size:34px}.hero-card{min-height:509px}.hero-avatars{margin-top:37px}.art-scene{width:86%;right:-98px;top:82px;bottom:2px}.entry-card{padding:24px 22px 18px}.entry-heading h2{font-size:19px}.home-grid{gap:19px;grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr)}.feature-card{gap:10px;padding:21px 13px}.feature-icon{width:33px;height:33px;border-radius:9px}.feature-card h3{font-size:12px}.feature-card p{font-size:9px}.main-footer{padding-left:30px;padding-right:30px}.room-main{padding:28px 25px 17px}.table-layout{grid-template-columns:190px minmax(300px,1fr) 259px;gap:14px}.hand-die{width:42px;height:42px;padding:7px;gap:2px}.dice-hand{gap:10px}.hand-panel{padding:17px 16px}.private-label{display:none}.bid-controls{padding:15px}.face-choice .die{width:27px;height:27px;padding:4.5px}.face-picker{gap:3px}.room-heading-actions{gap:8px}.room-code{padding:8px}.room-code span{display:none}.room-heading h1{font-size:25px}.room-phase{font-size:9px}.room-heading p{font-size:9px}.panel-heading{padding:17px 14px}.player-row{gap:7px}.player-row .avatar{width:29px;height:29px;font-size:10px}.player-info strong{font-size:10px}.players-footer{padding:12px 11px}.players-footer>span:last-child{font-size:7px}}
@media(max-width:1200px){:root{--sidebar:180px}.sidebar{padding-left:16px;padding-right:16px}.brand{font-size:23px;gap:9px}.brand-icon{width:38px;height:38px}.brand small{font-size:8px;letter-spacing:2px}.nav-item{font-size:12px;padding:12px 10px}.sidebar-note{padding:16px 10px}.sidebar-note p{font-size:9px}.home-main{padding:28px 25px 16px}.home-grid{grid-template-columns:minmax(0,1.4fr) 310px;gap:17px}.hero-card{min-height:515px}.hero-copy h2{font-size:29px}.hero-copy{padding:31px 24px}.art-scene{width:108%;right:-124px;top:151px;bottom:-3px}.hero-avatars{position:absolute;top:422px;left:25px;margin:0}.hero-copy p{font-size:11px}.hero-copy h2{margin-top:26px}.hero-cta{margin-top:21px}.hero-avatars>span:last-child{font-size:8px}.hero-corner{display:none}.art-caption{display:none}.feature-grid{gap:11px}.feature-card{flex-direction:column;padding:17px;gap:13px}.feature-card p br{display:none}.feature-card p{font-size:10px}.table-layout{grid-template-columns:170px minmax(280px,1fr) 243px;gap:12px}.room-main{padding:25px 20px 15px}.room-code strong{font-size:12px;letter-spacing:1px}.invite{font-size:10px;padding:9px 11px;min-height:38px}.room-heading h1{display:block;font-size:23px}.room-phase{display:inline-block;margin-left:7px;vertical-align:middle}.hand-title{flex-direction:column;gap:6px}.hand-title .pill{display:none}.hand-die{width:38px;height:38px;padding:6px}.dice-hand{gap:9px}.hand-content{gap:9px}.roll-button{padding:7px 9px;font-size:9px}.hand-panel{padding:15px 13px}.player-list{padding:8px}.players-footer>span:last-child{display:none}.panel-heading h2{font-size:11px}.player-info strong{gap:3px}.score-chip{font-size:11px}.player-info>span{font-size:8px}.panel-heading{padding:16px 12px}.bid-controls{padding:13px}.table-center h2{font-size:24px}.table-kicker{font-size:9px}.big-bid>span{font-size:72px}.table-die{width:65px;height:65px;padding:10px;gap:4px}.table-footnote{font-size:8px}.felt-table{min-height:415px}.hand-title p{font-size:8px}.face-picker{gap:2px}.face-choice .die{width:25px;height:25px;padding:4px;gap:1px}.mode-picker small{font-size:7px}.mode-picker button{gap:5px}.submit-bid{font-size:10px}.challenge-hint{font-size:7px}}
@media(max-width:1080px){:root{--sidebar:76px}.sidebar{padding:26px 12px}.brand>span:last-child,.sidebar-caption,.nav-item>span,.nav-item>i,.sidebar-note,.sidebar-foot,.sound-switch>span{display:none}.brand{justify-content:center}.brand-icon{width:39px;height:39px}.sidebar nav{margin-top:38px;gap:15px}.nav-item{justify-content:center;padding:13px}.nav-item .icon{width:21px;height:21px}.sidebar-bottom{padding-top:20px}.sound-switch{justify-content:center;padding:12px}.sound-switch .icon{width:21px;height:21px}.topbar{height:72px;padding:0 28px}.home-main{padding:30px 28px 16px}.home-grid{grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr)}.hero-copy h2{font-size:34px}.hero-copy{padding:33px 30px}.art-scene{right:-120px;width:100%;top:119px}.hero-card{min-height:523px}.hero-avatars{left:30px;top:450px}.hero-cta{margin-top:25px}.table-layout{grid-template-columns:177px minmax(290px,1fr) 246px}.room-main{padding:25px 20px}.room-heading-actions{gap:6px}.room-heading{gap:12px}}
@media(max-width:940px){.table-layout{grid-template-columns:minmax(330px,1fr) 260px}.players-panel{grid-column:1/-1}.player-list{display:flex;overflow-x:auto;padding:7px 10px;gap:11px;scrollbar-width:thin}.player-row{min-width:145px;border-bottom:0;flex-shrink:0;padding:8px 6px;min-height:55px}.player-row.current{margin:0;min-height:55px;padding:7px 6px}.players-panel .panel-heading{padding:13px 15px}.players-panel .players-footer{display:none}.players-panel .reset-button{display:block;font-size:8px;padding:7px}.player-info strong{font-size:11px}.player-row .avatar{width:31px;height:31px}.felt-table{min-height:417px}.hand-die{width:45px;height:45px;padding:7px;gap:2px}.hand-content{gap:15px}.dice-hand{gap:12px}.hand-panel{padding:17px}.roll-button{font-size:10px;padding:8px 12px}.hand-title p{font-size:9px}.bid-controls{padding:15px}.face-picker{gap:4px}.face-choice .die{width:27px;height:27px;padding:4px;gap:1.5px}.hand-title{flex-direction:row}.room-heading h1{font-size:23px}.room-phase{display:none}.home-grid{grid-template-columns:minmax(0,1fr) 300px}.hero-copy h2{font-size:29px}.hero-copy{padding:31px 24px}.hero-pill{font-size:8px}.hero-card{min-height:525px}.art-scene{right:-90px;top:155px;width:118%}.hero-copy p{font-size:10px}.hero-avatars{left:23px}.hero-avatars>span:last-child{max-width:112px;white-space:normal;line-height:1.8;margin-left:14px}.entry-card{padding:25px 20px 18px}.page-heading h1{font-size:29px}.date-badge{font-size:10px;padding:7px 9px}.home-main{padding:29px 24px 16px}.topbar{padding:0 24px}.main-footer{padding:20px 24px}.feature-card{padding:16px}.feature-card h3{font-size:12px}.feature-card p{font-size:9px}.bottom-banner{padding:16px;font-size:10px}.bottom-banner p{font-size:11px}}
/* Small tablet / mobile */
@media(max-width:760px){:root{--sidebar:0px}.sidebar{display:none}.workspace{width:100%;margin:0}.topbar{height:65px;padding:0 22px}.breadcrumb{font-size:11px}.breadcrumb span{margin:0 9px}.topbar-right{gap:14px}.topbar-right .avatar{display:none}.mobile-sound{display:flex;width:28px;height:28px}.connection{font-size:9px;gap:5px}.topbar-right{gap:10px}.home-main{padding:28px 22px 13px}.home-grid{grid-template-columns:1fr 1fr;gap:16px}.hero-copy{padding:29px 23px}.hero-copy h2{font-size:29px}.hero-card{min-height:522px}.art-scene{right:-89px;width:122%;top:173px;bottom:-4px}.hero-avatars{top:457px}.entry-card{padding:25px 19px 18px}.entry-heading h2{font-size:18px}.feature-grid{gap:12px}.feature-card p br{display:none}.page-heading{margin-bottom:24px}.eyebrow{font-size:8px;letter-spacing:2px}.page-heading h1{font-size:29px}.main-footer{padding:20px 22px;font-size:8px;letter-spacing:.3px}.main-footer i{margin:0 5px}.room-main{padding:24px 19px 13px}.table-layout{grid-template-columns:minmax(310px,1fr) 245px;gap:13px}.room-heading h1{font-size:22px}.room-heading p{font-size:8px}.room-heading-actions .invite{font-size:0;padding:9px;width:36px}.room-heading-actions .invite .icon{width:16px;height:16px}.room-code{padding:8px}.room-code strong{font-size:12px}.leave-button{height:36px;width:33px;border:0}.hand-die{width:40px;height:40px;padding:6px}.dice-hand{gap:9px}.hand-panel{padding:16px 13px}.roll-button{padding:8px 10px;font-size:9px}.room-help{font-size:8px}.bid-controls{padding:13px}.face-picker{gap:2px}.face-choice .die{width:26px;height:26px;padding:4px}.felt-table{min-height:410px}.hand-title p{font-size:8px}.room-heading{margin-bottom:20px}}
@media(max-width:620px){.topbar{height:61px;padding:0 19px}.breadcrumb strong{font-size:10px}.topbar .breadcrumb>span{margin:0 8px}.home-main{padding:25px 19px 12px}.page-heading{margin-bottom:23px;align-items:flex-start}.page-heading h1{font-size:29px;margin-top:5px}.page-heading p{font-size:11px;letter-spacing:.2px}.date-badge{font-size:8px;padding:6px 9px;margin-top:32px;gap:5px}.date-badge .icon{height:12px;width:12px}.home-grid{grid-template-columns:1fr;gap:18px}.hero-card{min-height:372px}.hero-copy{padding:28px 27px}.hero-copy h2{font-size:31px;margin:22px 0 12px;line-height:1.45;letter-spacing:.7px}.hero-copy p{font-size:10px;line-height:1.9}.hero-cta{margin-top:21px;padding:10px 15px;font-size:11px;gap:22px}.hero-pill{font-size:8px;padding:4px 9px}.hero-avatars{position:static;margin-top:24px}.hero-avatars>span:last-child{max-width:none;white-space:nowrap;font-size:8px}.hero-avatars .avatar{width:23px;height:23px;font-size:8px}.art-scene{width:80%;top:36px;bottom:11px;right:-63px}.hero-corner{display:none}.entry-card{padding:25px;border-radius:17px}.entry-heading h2{font-size:21px;margin-bottom:20px}.entry-heading .eyebrow{font-size:8px}.tabs{margin-bottom:21px}.tabs button{font-size:12px;padding:10px}form label{font-size:12px}form label span{font-size:10px}input{font-size:13px;padding:12px 13px;margin-bottom:20px}select{font-size:12px;height:42px}.field-row{gap:14px;margin-bottom:18px}.entry-submit{font-size:13px;min-height:45px}.entry-hint{font-size:9px;margin-top:15px}.room-options summary{font-size:10px}.room-options summary span{font-size:9px}.section-heading{margin:29px 0 16px}.section-heading h2{font-size:19px}.text-button{font-size:9px}.feature-grid{grid-template-columns:1fr;gap:11px}.feature-card{flex-direction:row;padding:20px;gap:17px;border-radius:13px}.feature-icon{width:39px;height:39px;border-radius:11px}.feature-card h3{font-size:14px;margin-bottom:6px}.feature-card p{font-size:11px;line-height:1.8}.feature-card p br{display:initial}.feature-number{font-size:9px;right:14px;top:14px}.bottom-banner{padding:15px 14px;gap:10px}.bottom-banner p{font-size:10px;letter-spacing:.2px}.bottom-banner .text-button{font-size:9px;gap:5px}.bottom-banner>span{font-size:20px}.bottom-banner .text-button .icon{height:13px;width:13px}.main-footer{padding:18px 19px;flex-direction:column;align-items:center;gap:6px;font-size:8px}.room-main{padding:21px 16px 12px}.room-heading{align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:16px}.room-heading h1{font-size:25px;margin:5px 0 4px;line-height:1.5}.room-heading .eyebrow{font-size:7px}.room-heading>div:first-child{flex:1;min-width:200px}.room-heading p{font-size:9px;line-height:1.9}.room-heading-actions{flex:1;min-width:100%;justify-content:flex-start;margin-top:2px;gap:10px}.room-heading-actions .invite{font-size:10px;width:auto;padding:8px 13px;height:36px;min-height:36px;margin-left:auto}.room-code{padding:8px 11px;gap:8px}.room-code span{display:inline;font-size:9px}.room-code strong{font-size:13px;letter-spacing:2px}.room-code .icon{width:12px;height:12px}.leave-button{width:30px;height:33px}.leave-button .icon{width:17px;height:17px}.table-layout{grid-template-columns:1fr;gap:14px}.players-panel{grid-column:auto;border-radius:12px}.players-panel .panel-heading{padding:12px 14px}.players-panel .panel-heading h2{font-size:11px}.player-list{padding:8px 9px;gap:8px}.player-row{min-width:130px;min-height:52px;padding:7px 5px}.player-row.current{min-height:52px;padding:6px 5px}.player-info strong{font-size:10px}.player-info>span{font-size:8px}.player-row .avatar{width:29px;height:29px;font-size:10px}.score-chip{font-size:12px}.game-column{gap:14px}.felt-table{min-height:351px;border-radius:17px;box-shadow:inset 0 0 0 5px #273d29,inset 0 0 0 6px #53704844}.table-topline{margin:20px 22px 0;padding-bottom:10px;font-size:7px;letter-spacing:1.5px}.table-bottomline{margin:0 22px 17px;padding-top:9px;font-size:7px}.table-rings{width:270px;height:270px}.table-center{min-height:270px;padding:17px 18px}.table-center h2{font-size:26px;letter-spacing:.5px}.table-kicker{font-size:9px;letter-spacing:1px;margin-bottom:12px}.table-cup{width:54px;height:54px;border-radius:14px;margin-bottom:14px}.table-cup .icon{width:33px;height:33px}.table-center p{font-size:10px}.table-center>.button{margin-top:17px;font-size:11px;padding:9px 18px;min-height:38px}.table-footnote{margin-top:14px;font-size:8px}.table-die{height:65px;width:65px;padding:10px;gap:4px}.big-bid{margin-bottom:15px}.big-bid>span{font-size:75px}.bid-type{font-size:9px}.turn-indicator{font-size:10px;margin-top:21px}.bidding-center{min-height:271px}.hand-panel{padding:17px 18px 19px;border-radius:12px}.hand-title h2{font-size:12px}.hand-title p{font-size:9px}.hand-title .pill{display:inline-flex;font-size:7px}.hand-content{margin-top:20px;gap:12px}.dice-hand{gap:10px}.hand-die{width:42px;height:42px;padding:7px;gap:2px}.roll-button{font-size:10px;padding:8px 13px;min-height:36px;gap:6px}.roll-button .icon{width:13px;height:13px}.action-column{gap:14px}.bid-panel .panel-heading{padding:16px 18px}.bid-panel .panel-heading h2{font-size:13px}.bid-controls{padding:19px 20px}.control-label{font-size:11px;margin-bottom:10px}.control-label span{font-size:9px}.quantity-stepper{height:59px;padding:8px;margin-bottom:23px}.quantity-stepper input{font-size:32px}.quantity-stepper>.icon-button{width:34px;height:34px}.quantity-stepper .icon{width:17px;height:17px}.face-picker{gap:7px;margin-bottom:23px}.face-choice{padding:7px 3px 9px;border-radius:8px}.face-choice .die{height:35px;width:35px;padding:6px;gap:1.5px;border-radius:7px}.mode-picker{padding:4px}.mode-picker button{font-size:12px;padding:9px;gap:9px}.mode-picker small{font-size:9px}.bid-hint{font-size:9px;margin:12px 0 14px;min-height:18px}.submit-bid{font-size:12px;min-height:45px}.challenge-controls{gap:12px;margin-top:13px}.challenge-controls .button{min-height:43px;font-size:19px}.challenge-controls small{font-size:10px}.challenge-hint{font-size:9px;margin-top:12px}.history-panel .panel-heading{padding:15px 18px}.history-panel .panel-heading h2{font-size:12px}.history-list{max-height:220px;padding:10px 18px}.history-item p{font-size:10px}.history-item time{font-size:8px}.history-marker{width:24px;height:24px}.history-marker .icon{width:12px;height:12px}.aside-illustration{min-height:235px;padding:29px 22px}.aside-illustration h3{font-size:20px}.aside-illustration p{font-size:11px}.aside-illustration>.button{font-size:12px}.rule-tip{font-size:9px;padding:10px 14px}.room-help{font-size:8px;align-items:flex-start;line-height:1.9;margin-top:19px;gap:6px}.room-help .icon{margin-top:2px;flex-shrink:0}.modal-backdrop{padding:14px}.modal{padding:25px 21px;border-radius:17px;max-height:calc(100dvh - 28px)}.modal-close{top:12px;right:12px}.modal h2{font-size:22px}.modal .eyebrow{font-size:7px;letter-spacing:1.7px}.rules-grid{gap:10px}.rules-grid article{padding:13px}.rules-grid h3{font-size:12px}.rules-grid p{font-size:10px}.modal-intro{font-size:10px;margin-bottom:18px}.rules-subheading{font-size:13px}.rules-explanation{font-size:10px}.rules-table{font-size:9px}.rules-table th,.rules-table td{padding:8px}.rules-note{font-size:9px}.rules-extra summary{font-size:10px}.rules-extra p{font-size:10px}.result-modal-header h2{font-size:25px}.result-summary{padding:14px 16px;margin-bottom:15px}.result-summary strong{font-size:27px}.result-summary small{font-size:9px}.reveal-row{gap:7px;padding:14px 0}.reveal-row .avatar{width:24px;height:24px;font-size:9px}.reveal-name{width:52px}.reveal-name strong{font-size:10px}.reveal-name span{font-size:7px}.reveal-dice{gap:6px}.small-die{height:28px;width:28px;padding:4.5px;gap:1.5px;border-radius:5px}.reveal-count{min-width:39px}.reveal-count strong{font-size:21px}.reveal-count span{font-size:7px}.result-legend{font-size:8px;gap:6px;line-height:1.8}.result-actions>.button{font-size:11px;padding:10px}.confirm-copy{font-size:11px}.confirm-actions .button{font-size:11px}}
@media(max-width:380px){.home-main{padding:24px 15px 10px}.topbar{padding:0 15px}.breadcrumb{font-size:10px}.topbar .breadcrumb strong{font-size:9px}.topbar-right{gap:5px}.connection{font-size:8px}.date-badge{display:none}.hero-copy{padding:28px 22px}.hero-copy h2{font-size:29px}.hero-avatars>span:last-child{font-size:7px}.art-scene{right:-63px;width:87%;top:45px;bottom:7px}.entry-card{padding:23px 20px}.feature-card{padding:19px 16px;gap:13px}.feature-card p{font-size:10px}.bottom-banner .text-button{font-size:8px}.bottom-banner p{font-size:9px}.bottom-banner{gap:8px;padding:14px 12px}.bottom-banner .text-button .icon{display:none}.room-main{padding:20px 12px 10px}.room-heading h1{font-size:23px}.room-code{padding:8px}.room-code strong{font-size:12px}.room-code span{font-size:8px}.room-heading-actions{gap:7px}.room-heading-actions .invite{font-size:9px;padding:7px 10px}.hand-panel{padding:16px 14px 18px}.dice-hand{gap:8px}.hand-die{height:37px;width:37px;padding:6px;gap:1.5px}.roll-button{padding:7px 10px;font-size:9px}.hand-title .pill{font-size:6px;padding:3px 5px}.bid-controls{padding:18px 16px}.face-picker{gap:5px}.face-choice .die{width:32px;height:32px;padding:5px;gap:1.5px}.modal{padding:25px 16px}.rules-grid{grid-template-columns:1fr}.reveal-row{gap:5px}.reveal-name{width:46px}.reveal-row .avatar{display:none}.reveal-dice{gap:5px}.small-die{width:27px;height:27px;padding:4px;gap:1.5px}.reveal-count{min-width:36px}.result-summary{padding:12px}.result-summary strong{font-size:25px}.result-summary small{font-size:8px}.result-summary span{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:620px){#entry-form input,#entry-form select{font-size:16px}#entry-form .code-input{font-size:19px}.mobile-sound{height:38px;width:38px}.kick-button{opacity:.65;width:22px;height:22px}.modal-close{height:36px;width:36px}}
/* Keep five dice and the roll action within a narrow phone screen. */
@media(max-width:620px){.hand-content.has-roll .hand-die{width:38px;height:38px;padding:6px;gap:2px}.hand-content.has-roll .dice-hand{gap:9px}.roll-button{padding-left:11px;padding-right:11px}}
@media(max-width:380px){.hand-content.has-roll .hand-die{width:37px;height:37px;padding:6px;gap:1.5px}.hand-content.has-roll .dice-hand{gap:8px}.roll-button{padding-left:10px;padding-right:10px}}
@media(max-width:360px){.hand-content{flex-wrap:wrap;justify-content:center}.roll-button{width:100%;margin-top:6px}.face-choice .die{width:28px;height:28px;padding:4.5px}.face-picker{gap:3px}.entry-hint{white-space:normal;font-size:8px}.room-options summary span{font-size:8px}}

/* Private straight decisions stay with the player's sealed hand. */
.straight-choice{margin-top:20px;padding:16px;border:1px solid #7d8c53;border-radius:11px;background:linear-gradient(115deg,#3b4527,#283622)}
.straight-choice-copy{display:flex;gap:10px;align-items:flex-start}.straight-choice-copy>.icon{color:var(--gold);width:18px;height:18px;margin-top:2px}.straight-choice-copy strong{font-size:13px;font-weight:500;color:#e0e7c3}.straight-choice-copy p{font-size:10px;color:#aeba94;line-height:1.9;margin-top:6px}.straight-choice-actions{display:flex;gap:10px;margin-top:15px}.straight-choice-actions .button{flex:1;font-size:11px;min-height:40px;padding:9px 10px}.straight-choice-actions .icon{width:15px;height:15px}.straight-choice-note{font-size:9px;color:#93a57e;margin-top:10px;text-align:center}
@media(max-width:620px){.straight-choice{padding:15px 13px}.straight-choice-actions{gap:8px}.straight-choice-actions .button{font-size:10px;min-height:43px}.straight-choice-copy p{font-size:10px}.straight-choice-note{font-size:8px}}
@media(max-width:380px){.straight-choice-actions{flex-direction:column}.straight-choice-actions .button{font-size:11px}}

/* Per-round drinking settings and authoritative response / punishment stages. */
.drink-settings { margin: 20px 0 0; padding: 16px; border: 1px solid #405137; border-radius: 14px; background: #202b22; }
.drink-settings label { margin-top: 0 !important; }
.drink-settings > select { margin-top: 8px; }
.drink-preview { font-size: 12px; line-height: 1.7; color: var(--green); margin: 10px 0 0; font-weight: 600; }
.drink-note { color: var(--muted); font-size: 12px; line-height: 1.8; margin: 12px 0 0; }
.stage-aside { padding: 24px; }
.stage-aside h3 { font-size: 21px; line-height: 1.5; margin: 10px 0; }
.stage-aside > p { line-height: 1.8; font-size: 13px; color: var(--muted); }
.stage-actions { display: grid; gap: 10px; margin-top: 20px; }
.stage-actions .button { width: 100%; min-height: 48px; white-space: normal; text-align: center; }
.stage-aside > .waiting-pill { display: block; margin: 16px 0; white-space: normal; line-height: 1.8; }
.aside-drink-amount { color: var(--green); font-size: 30px; font-weight: 800; margin: 18px 0; }
.stage-icon { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; margin: 18px auto; color: var(--green); background: #293a2b; }
.stage-icon .icon { width: 30px; height: 30px; }
.chop-modal, .punishment-modal { text-align: center; }
.chop-modal h2, .punishment-modal h2 { font-size: 29px; margin-top: 0; }
.chop-modal .waiting-pill, .punishment-modal .waiting-pill { display: block; white-space: normal; line-height: 1.8; margin-top: 20px; }
.drink-formula { display: grid; grid-template-columns: 1fr 1fr; background: #222e23; border: 1px solid #3b4e34; border-radius: 14px; padding: 18px 12px; gap: 16px; margin: 20px 0; }
.drink-formula > span { color: var(--muted); font-size: 12px; }
.drink-formula strong { display: block; color: var(--green); font-size: 20px; margin-top: 8px; }
.punishment-amount { display: flex; justify-content: center; align-items: baseline; gap: 12px; margin: 24px 0 8px; color: var(--green); }
.punishment-amount strong { font-size: 74px; letter-spacing: -4px; line-height: 1.1; }
.punishment-amount > span { font-size: 20px; }
.formula-caption { color: var(--muted); font-size: 13px; margin: 12px 0 24px; }
.table-drink-options { display: flex; justify-content: center; gap: 12px; margin: 12px 0 0; }
.table-drink-options > span { background: #ffffff10; border: 1px solid #ffffff25; border-radius: 12px; padding: 12px 18px; font-size: 12px; color: #d6e6d9; }
.table-drink-options b { display: block; font-size: 18px; margin-top: 6px; color: #f2d890; }
.response-center h2 { font-size: 30px; }
.response-center h2 > span, .phase-punishment h2 > span { color: #f2d890; }
.timer[hidden] { display: none; }
.result-drink { text-align: center; margin-top: 8px; }
@media (max-width: 600px) {
  .drink-settings { padding: 13px; }
  .drink-settings label { display: block; }
  .drink-settings label > span { display: block; margin-top: 4px; }
  .stage-aside { padding: 20px; }
  .table-drink-options > span { padding: 10px 14px; }
  .response-center h2 { font-size: 25px; }
  .chop-modal h2, .punishment-modal h2 { font-size: 24px; }
  .punishment-amount strong { font-size: 64px; }
  .drink-formula { padding: 16px 8px; gap: 10px; }
  .drink-formula strong { font-size: 18px; }
}
.leopard-setting-note { font-size: 12px; color: var(--muted); line-height: 1.8; margin-top: 12px; }

/* TRTC consent-first voice bar + one persistent punishment camera viewport. */
.media-bar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:17px 20px; margin:0 0 20px; }
.media-bar strong { font-size:14px; color:var(--cream); }
.media-bar p { font-size:11px; color:var(--muted); margin:6px 0 0; line-height:1.7; }
.media-buttons { display:flex; flex-wrap:wrap; gap:8px; flex-shrink:0; }
.media-buttons .button { min-height:38px; padding:8px 14px; font-size:11px; }
.felt-table.phase-punishment { min-height:600px; }
.table-center.video-center { padding:45px 24px 44px; width:100%; position:relative; z-index:2; min-height:540px; }
.video-heading { text-align:left; width:100%; margin-bottom:17px; }
.video-heading h2 { font-size:26px; margin:7px 0 0; }
.punishment-video-box { width:100%; aspect-ratio:4/3; position:relative; overflow:hidden; border:1px solid #567263; border-radius:16px; background:#0b1511; box-shadow:0 18px 38px #0004; }
.punishment-video-view, .rtc-video-player { width:100%; height:100%; }
.punishment-video-view { position:absolute; inset:0; }
.rtc-video-player video { object-fit:contain; }
.video-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px; text-align:center; pointer-events:none; background:radial-gradient(ellipse at 50% 25%,#274637,#0b1511 80%); }
.camera-mark { font-size:38px; color:#8cbc9c; opacity:.6; margin-bottom:15px; }
.video-placeholder strong { font-size:17px; color:#dfeada; }
.table-center .video-placeholder p { max-width:270px; color:#b8ccbd; margin:10px 0 0; font-size:11px; line-height:1.9; }
.video-live-badge { display:none; position:absolute; top:13px; left:13px; background:#143d2ad9; border:1px solid #90b49a66; border-radius:20px; padding:5px 10px; font-size:9px; color:#def0e1; }
.playing .video-placeholder { display:none; }
.playing .video-live-badge { display:block; }
.camera-controls { width:100%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px; margin-top:14px; }
.camera-controls .button { min-height:38px; padding:8px 15px; font-size:11px; }
.camera-controls span { font-size:9px; color:#a4c1ad; }
.table-center .video-drink-formula { color:#d3e0c9; font-size:11px; margin:16px 0 12px; }
.video-center .stage-actions { width:100%; justify-content:center; margin-top:0; }
.video-center .stage-actions .button { min-height:40px; font-size:11px; padding:10px 16px; }
.video-center > .text-button { font-size:10px; margin-top:13px; }
@media(max-width:1100px) { .media-bar { flex-wrap:wrap; } }
@media(max-width:640px) {
  .media-bar { padding:14px; gap:12px; margin-bottom:14px; border-radius:12px; }
  .media-bar strong { font-size:12px; } .media-bar p { font-size:10px; }
  .media-buttons { gap:6px; width:100%; } .media-buttons .button { font-size:10px; padding:8px 12px; }
  .felt-table.phase-punishment { min-height:550px; }
  .table-center.video-center { padding:43px 16px 40px; min-height:520px; }
  .video-heading h2 { font-size:23px; } .punishment-video-box { border-radius:12px; }
  .video-placeholder strong { font-size:14px; } .camera-controls span { width:100%; text-align:center; }
}

/* 1.5.3 compact layout: one task per screen, details stay optional. */
.compact-app .workspace { width:100%; margin-left:0; }
.compact-app .topbar { height:68px; padding:0 max(20px,calc((100vw - 1100px)/2)); gap:16px; }
.compact-app .brand { font-size:22px; gap:9px; white-space:nowrap; }
.compact-app .brand-icon { width:34px; height:34px; border-radius:10px; }
.compact-app .brand-icon .icon { width:22px; height:22px; }
.compact-app .topbar-right { gap:18px; }
.compact-app .topbar-right .text-button { font-size:12px; }
.compact-app .connection { font-size:11px; }
.compact-app .main-footer { max-width:1100px; width:100%; margin:0 auto; padding:18px 24px; font-size:11px; gap:12px; }
.compact-app .compact-home { max-width:520px; width:100%; margin:0 auto; padding:42px 20px 26px; }
.compact-welcome { margin:0 0 25px; text-align:center; }
.compact-welcome h1 { font-size:30px; letter-spacing:-1px; margin:0; }
.compact-welcome p { font-size:13px; color:var(--muted); margin:12px 0 0; }
.compact-app .entry-card { padding:25px; border-radius:20px; }
.compact-app .tabs { margin:0 0 23px; }
.compact-app .tabs button { min-height:44px; font-size:14px; }
.compact-app #entry-form label { font-size:13px; margin:16px 0 9px; }
.compact-app #entry-form input, .compact-app #entry-form select { font-size:15px; min-height:46px; }
.compact-app .drink-settings { padding:0; border:0; background:none; margin:18px 0; }
.compact-app .drink-preview { font-size:12px; line-height:1.7; margin:10px 0 0; }
.compact-app .entry-submit { font-size:14px; min-height:48px; margin-top:18px; }
.compact-app .entry-hint { font-size:11px; line-height:1.7; margin-top:15px; }
.compact-app .room-options { font-size:12px; margin:0; padding-top:12px; border-top:1px solid var(--line); }
.compact-app .room-options summary { gap:8px; min-height:32px; }
.compact-app .room-options summary > span { font-size:11px; }
.compact-app .room-main { max-width:1100px; width:100%; margin:0 auto; padding:25px 24px 12px; }
.compact-app .room-heading { margin-bottom:16px; align-items:center; }
.compact-app .room-heading h1 { display:flex; flex-wrap:wrap; align-items:center; gap:9px; font-size:24px; margin:0; }
.compact-app .room-phase { margin:0; font-size:11px; }
.compact-app .room-heading p { font-size:12px; margin:9px 0 0; }
.compact-app .room-heading-actions { gap:8px; }
.compact-app .room-code { padding:8px 12px; min-height:44px; }
.compact-app .room-code > span { display:none; }
.compact-app .room-code strong { font-size:14px; letter-spacing:2px; }
.compact-app .invite { min-height:44px; font-size:12px; padding:9px 13px; }
.compact-app .media-bar { padding:12px 15px; margin:0 0 12px; gap:12px; box-shadow:none; }
.compact-app .media-bar strong { font-size:12px; }
.compact-app .media-bar p { font-size:11px; max-width:620px; overflow-wrap:anywhere; }
.compact-app .media-buttons .button { min-height:42px; font-size:12px; padding:8px 14px; }
.compact-app .compact-players { margin-bottom:14px; padding:5px; box-shadow:none; }
.compact-app .compact-players > .panel-heading, .compact-app .compact-players > .players-footer { display:none; }
.compact-app .compact-players .player-list { display:flex; gap:5px; padding:0; overflow-x:auto; }
.compact-app .compact-players .player-row { flex:0 0 auto; padding:8px 11px; margin:0; border:0; border-radius:10px; gap:8px; }
.compact-app .compact-players .avatar { width:32px; height:32px; font-size:14px; }
.compact-app .compact-players .player-info strong { font-size:12px; }
.compact-app .compact-players .player-info > span { font-size:10px; margin-top:4px; }
.compact-app .compact-players .reset-button { font-size:11px; margin:8px 12px 4px; }
.compact-app .table-layout { grid-template-columns:minmax(0,1fr) 320px; gap:16px; }
.compact-app .game-column, .compact-app .action-column { gap:12px; }
.compact-app .felt-table { min-height:310px; box-shadow:none; }
.compact-app .table-center { min-height:250px; padding:18px 20px; }
.compact-app .table-center h2 { font-size:25px; }
.compact-app .table-center p { font-size:12px; line-height:1.8; }
.compact-app .table-rings { opacity:.45; }
.compact-app .big-bid > span { font-size:76px; }
.compact-app .table-die { width:62px; height:62px; }
.compact-app .table-footnote { font-size:10px; }
.compact-app .table-topline, .compact-app .table-bottomline { font-size:10px; padding:15px 19px; }
.compact-app .hand-panel { padding:16px 18px; }
.compact-app .hand-title { flex-direction:row; }
.compact-app .hand-title h2 { font-size:13px; }
.compact-app .hand-title p { font-size:11px; line-height:1.65; }
.compact-app .hand-content { margin-top:15px; gap:12px; }
.compact-app .dice-hand { gap:10px; }
.compact-app .hand-die { width:44px; height:44px; padding:7px; }
.compact-app .roll-button { min-height:44px; padding:10px 16px; font-size:13px; }
.compact-app .private-label { font-size:10px; }
.compact-app .panel-heading { padding:16px; }
.compact-app .panel-heading h2 { font-size:13px; }
.compact-app .bid-controls { padding:16px; }
.compact-app .control-label { font-size:12px; }
.compact-app .control-label > span { font-size:11px; }
.compact-app .quantity-stepper { min-height:48px; }
.compact-app .face-picker { gap:4px; }
.compact-app .face-choice { min-height:44px; padding:8px 3px; }
.compact-app .face-choice .die { width:32px; height:32px; padding:5px; }
.compact-app .mode-picker button { min-height:45px; font-size:14px; }
.compact-app .mode-picker small { font-size:10px; }
.compact-app .bid-hint { min-height:30px; font-size:11px; line-height:1.65; }
.compact-app .submit-bid { font-size:14px; min-height:46px; }
.compact-app .challenge-controls .button { min-height:44px; font-size:16px; }
.compact-app .challenge-hint { font-size:10px; }
.compact-app .history-panel > summary { cursor:pointer; min-height:47px; list-style:none; }
.compact-app .history-panel > summary > span { font-size:11px; color:var(--muted); }
.compact-app .history-panel[open] > summary > span { font-size:0; }
.compact-app .history-panel[open] > summary > span::after { content:'收起'; font-size:11px; }
.compact-app .history-panel > summary::-webkit-details-marker { display:none; }
.compact-app .history-list { max-height:270px; }
.compact-app .history-item p { font-size:12px; }
.compact-app .room-main:not([data-phase='bidding']) .bid-panel { display:none; }
.compact-app .room-main:not([data-phase='bidding']) .table-layout { grid-template-columns:minmax(0,1fr); }
.compact-app .room-main[data-phase='punishment'] .hand-panel, .compact-app .room-main[data-phase='result'] .hand-panel { display:none; }
.compact-app .felt-table.phase-punishment { min-height:0; }
.compact-app .table-center.video-center { min-height:0; padding:22px; max-width:780px; align-self:center; }
.compact-app .punishment-video-box { aspect-ratio:16/10; }
.compact-app .video-heading h2 { font-size:25px; }
.compact-app .camera-controls .button, .compact-app .stage-actions .button { min-height:44px; font-size:12px; }
.compact-app .video-drink-formula { margin:12px 0; }
.compact-app .result-center > .button { margin-top:12px; }
@media(max-width:680px) {
  .compact-app .topbar { height:60px; padding:0 16px; }
  .compact-app .brand { font-size:19px; }
  .compact-app .topbar-right { gap:9px; }
  .compact-app .connection { font-size:10px; }
  .compact-app .topbar-right .text-button { font-size:11px; }
  .compact-app .compact-home { padding:27px 16px 20px; }
  .compact-welcome h1 { font-size:26px; }
  .compact-app .entry-card { padding:20px; }
  .compact-app .room-main { padding:18px 14px 10px; }
  .compact-app .room-heading { gap:12px; flex-wrap:wrap; }
  .compact-app .room-heading h1 { font-size:21px; }
  .compact-app .room-heading-actions { width:100%; justify-content:space-between; }
  .compact-app .room-heading p { font-size:11px; }
  .compact-app .media-bar { padding:11px 12px; flex-wrap:wrap; gap:9px; }
  .compact-app .media-buttons { width:auto; gap:7px; }
  .compact-app .media-buttons .button { font-size:12px; min-height:42px; }
  .compact-app .table-layout { grid-template-columns:minmax(0,1fr); gap:12px; }
  .compact-app .felt-table { min-height:250px; border-radius:17px; }
  .compact-app .table-center { min-height:200px; padding:14px; }
  .compact-app .table-center h2 { font-size:23px; }
  .compact-app .table-topline, .compact-app .table-bottomline { padding:11px 15px; }
  .compact-app .big-bid > span { font-size:65px; }
  .compact-app .hand-panel { padding:14px; }
  .compact-app .hand-title p { font-size:10px; }
  .compact-app .hand-content { flex-wrap:wrap; justify-content:center; }
  .compact-app .hand-content.has-roll .roll-button { width:100%; }
  .compact-app .hand-die { width:43px; height:43px; }
  .compact-app .bid-controls { padding:15px; }
  .compact-app .face-choice .die { width:35px; height:35px; }
  .compact-app .table-center.video-center { padding:17px 14px; }
  .compact-app .punishment-video-box { aspect-ratio:4/3; }
  .compact-app .camera-controls span { width:100%; }
  .compact-app .main-footer { padding:15px; flex-wrap:wrap; justify-content:center; font-size:10px; text-align:center; }
}
.compact-app .brand > span:last-child { display:block; }
.compact-app .room-phase { display:inline-flex; }
.compact-app .room-main[data-phase='lobby'] .hand-panel { display:none; }
.compact-app .waiting-bid { padding:20px 16px; font-size:13px; color:var(--muted); }
.compact-app .waiting-bid > .button { width:100%; margin-top:14px; min-height:44px; }
@media(max-width:680px) {
  .compact-app .felt-table.phase-bidding { min-height:0; }
  .compact-app .felt-table.phase-bidding .table-topline { padding:10px 14px; }
  .compact-app .table-center.bidding-center { min-height:0; padding:8px 14px 17px; }
  .compact-app .bidding-center .table-cup, .compact-app .bidding-center .table-footnote,
  .compact-app .felt-table.phase-bidding .table-bottomline { display:none; }
  .compact-app .bidding-center h2 { margin:12px 0 7px; font-size:22px; }
  .compact-app .bidding-center .table-kicker { font-size:10px; margin:0; }
  .compact-app .bidding-center .turn-indicator { margin-top:11px; font-size:11px; }
  .compact-app .bidding-center .big-bid { margin:8px 0; }
  .compact-app .bidding-center .big-bid > span { font-size:52px; }
  .compact-app .bidding-center .table-die { width:45px; height:45px; padding:7px; }
  .compact-app .room-main[data-phase='bidding'] .hand-title p { display:none; }
  .compact-app .room-main[data-phase='bidding'] .hand-content { margin-top:11px; }
  .compact-app .control-label { margin:10px 0 8px; }
}
.compact-app .felt-table.phase-punishment > .table-topline,
.compact-app .felt-table.phase-punishment > .table-bottomline { display:none; }

/* 1.6: conventional white dice, red 1/4, dark 2/3/5/6. */
.die { background:#faf9f2; border-color:#d6d2c8; color:#1e2425; }
.die .pip { background:#1d2428; }
.die.face-1 .pip, .die.face-4 .pip { background:#c83b32; }
.die .unknown { color:#a3a6a1; }
.die.matched { outline-color:#a3ca80; }
.compact-app .top-room-tools { display:flex; align-items:center; gap:7px; }
.compact-app .top-room-tools .room-code { min-height:38px; padding:6px 10px; }
.compact-app .top-room-tools .invite { min-height:38px; padding:6px 11px; font-size:12px; }
.compact-app .topbar-right { gap:12px; }
.compact-app .room-bottom { margin-top:16px; display:flex; flex-direction:column; gap:12px; }
.compact-app .room-bottom .media-bar { margin:0; }
.compact-app .room-bottom .history-panel { width:100%; }
.compact-app .direction-tag { color:#bfcbad; font-size:12px; white-space:nowrap; border:1px solid #536144; border-radius:18px; padding:7px 10px; }
.your-turn-banner { display:flex; align-items:center; gap:14px; background:#d4eb91; color:#182416; border:2px solid #e9f6b5; border-radius:15px; padding:15px 18px; margin-bottom:14px; box-shadow:0 5px 22px #c3df6320; }
.your-turn-banner > .icon { width:27px; height:27px; }
.your-turn-banner > div { display:flex; flex-direction:column; gap:5px; flex:1; min-width:0; }
.your-turn-banner strong { font-size:20px; }
.your-turn-banner > div > span { font-size:12px; overflow-wrap:anywhere; }
.your-turn-time { font-size:25px; font-weight:700; font-variant-numeric:tabular-nums; }
.your-turn-time::after { content:' 秒'; font-size:11px; font-weight:400; }
.new-turn { animation:turn-arrive .65s ease-out 3; }
@keyframes turn-arrive { 0%,100%{box-shadow:0 5px 22px #c3df6320} 45%{box-shadow:0 0 0 4px #d2e98b44,0 8px 30px #c3df6340} }
.compact-app [data-my-turn='true'] .bid-panel { border:2px solid #cce38c; }
.compact-app .return-bid { width:100%; min-height:44px; font-size:12px; margin:11px 0 0; background:#314d3e; border:1px solid #89b39a; color:#def0da; justify-content:center; white-space:normal; }
.compact-app .decline-button { border:1px solid #f1c394; background:#4a3826; color:#ffe0b8; }
.compact-app .response-center .stage-actions { flex-wrap:wrap; margin-top:16px; }
@media(max-width:680px) {
  .compact-app.in-room .topbar { height:auto; min-height:60px; padding:9px 12px; flex-wrap:wrap; gap:7px; }
  .compact-app.in-room .topbar .brand > span:last-child { display:none; }
  .compact-app.in-room .topbar .brand-icon { width:30px; height:30px; }
  .compact-app.in-room .topbar-right { gap:7px; flex:1; justify-content:flex-end; flex-wrap:wrap; }
  .compact-app .top-room-tools { gap:5px; }
  .compact-app .top-room-tools .room-code { min-height:34px; padding:5px 7px; }
  .compact-app .top-room-tools .room-code strong { font-size:12px; letter-spacing:1px; }
  .compact-app .top-room-tools .room-code .icon { width:12px; height:12px; }
  .compact-app .top-room-tools .invite { min-height:34px; padding:6px 7px; }
  .compact-app .top-room-tools .invite > span { display:none; }
  .compact-app.in-room .topbar .text-button { font-size:10px; }
  .compact-app.in-room .topbar .icon-button { width:28px; height:30px; }
  .compact-app.in-room .topbar .icon-button .icon { width:17px; height:17px; }
  .compact-app .room-heading { flex-wrap:nowrap; align-items:flex-start; }
  .compact-app .direction-tag { font-size:10px; padding:6px 8px; margin-top:2px; }
  .your-turn-banner { padding:12px 13px; gap:10px; margin-bottom:12px; }
  .your-turn-banner strong { font-size:18px; }
  .your-turn-banner > div > span { font-size:11px; }
  .your-turn-banner > .icon { width:23px; height:23px; }
  .your-turn-time { font-size:23px; }
  .compact-app .response-center .stage-actions { width:100%; }
  .compact-app .response-center .stage-actions .button { flex:1 1 100%; min-height:45px; }
}
@media(prefers-reduced-motion:reduce) { .new-turn { animation:none; } }
/* Allow wrapped mobile header contents to shrink without widening the page. */
.compact-app .workspace { min-width:0; }
.compact-app .topbar-right { min-width:0; }
.compact-app .room-bottom, .compact-app .game-column, .compact-app .action-column { min-width:0; }
@media(max-width:680px) {
  .compact-app .topbar-right .text-button { white-space:normal; }
  .compact-app .room-heading > div { min-width:0; }
  .your-turn-banner strong { font-size:clamp(14px,4.5vw,18px); }
}
