.invite-control{max-width:260px;color:inherit}.invite-control p,.invite-control label{margin:4px 0;font-size:12px;line-height:1.35;display:block}.invite-control input{color:#17231e;background:#fff;border:1px solid #aaa;border-radius:4px;width:100%;font-size:12px;display:block}.confirm-overlay{z-index:200;pointer-events:auto;background:#000b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);width:min(100%,440px);max-height:calc(100dvh - 32px);color:var(--text);background:#10231e;border-radius:12px;padding:20px;overflow:auto;box-shadow:0 12px 40px #0008}.confirm-dialog p{margin:0 0 20px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-actions button{border:1px solid var(--line);font:inherit;cursor:pointer;border-radius:7px;padding:9px 20px;font-weight:700}.confirm-cancel{color:var(--text);background:#ffffff0d}.confirm-accept{background:var(--button);color:var(--button-text)}.confirm-actions button:disabled{opacity:.5;cursor:default}.multiplayer{padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.multiplayer-content{max-width:1000px;margin:auto}.multiplayer-header,.room-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.multiplayer-header h1{font-size:clamp(24px,4vw,38px)}.multiplayer-eyebrow{color:var(--accent);letter-spacing:.15em;margin:0 0 4px;font-size:12px;font-weight:700}.lobby-grid{grid-template-columns:1.3fr 1fr;gap:12px;display:grid}.lobby-grid.guest-lobby{grid-template-columns:1fr}.room-panel{border:1px solid var(--line);background:#0003;border-radius:12px;padding:16px}.room-panel h2{color:var(--accent);margin:0 0 12px;font-size:18px}.room-fields{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.room-fields label,.room-join label{color:var(--muted);gap:5px;font-size:13px;display:grid}.room-fields select,.room-join input{width:100%;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;background:#10231e;border-radius:6px;padding:8px}.room-button{border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:9px 16px;font-weight:700}.room-button.main{background:var(--button);color:var(--button-text);border-color:var(--button)}.room-button.quiet{color:var(--text);background:#ffffff0d}.room-button:disabled,.room-listing:disabled{opacity:.5;cursor:default}.room-join>div{gap:8px;margin-top:6px;display:flex}.room-join input{letter-spacing:.18em;font-size:18px}.room-join button{white-space:nowrap;flex:none}.room-list{margin-top:12px}.room-list-heading{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.room-list-group h3{margin:10px 0;font-size:14px}.room-list-group>p{color:var(--muted);font-size:13px}.room-listing{text-align:left;border:1px solid var(--line);width:100%;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:7px;grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:12px;margin-bottom:6px;padding:10px;display:grid}.room-listing strong{color:var(--accent);letter-spacing:.1em}.room-listing span{font-size:13px}.room-code-label{margin:0;font-size:16px}.room-code-label strong{color:var(--accent);letter-spacing:.14em;font-size:clamp(28px,5vw,42px)}.room-details{color:var(--muted);margin:4px 0 0;font-size:13px}.room-message{color:var(--accent);margin:8px 0;font-size:14px}.room-table{isolation:isolate;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 12px;padding:12px;display:grid;position:relative}.room-table:before{content:"";z-index:-1;border:1px solid var(--line);border-radius:50%;position:absolute;inset:18% 8%;box-shadow:inset 0 0 0 8px #ffffff08}.room-seat{border:1px solid var(--line);text-align:center;background:#10231ef2;border-radius:10px;min-width:0;overflow:hidden}.room-seat.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.room-seat-main{width:100%;min-height:95px;color:var(--text);cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;padding:8px 4px;display:grid}.room-seat-main:disabled{cursor:default;opacity:1}.room-seat-main strong{overflow-wrap:anywhere;max-width:100%;font-size:14px;line-height:1.2}.room-seat-main small{color:var(--muted);font-size:12px}.room-avatar{color:var(--accent);font-size:24px;line-height:1}.room-remove{color:var(--accent);border:0;border-top:1px solid var(--line);cursor:pointer;background:0 0;width:100%;padding:5px}.room-start{text-align:center;margin:12px 0 0}@media (width<=600px){.lobby-grid{grid-template-columns:1fr}.room-listing{grid-template-columns:auto 1fr auto}.room-listing span:nth-child(3){grid-area:2/2}.room-listing span:last-child{grid-area:1/3/3}}@media (height<=480px){.multiplayer{padding-top:10px;padding-bottom:12px}.room-top{margin-bottom:6px}.room-table{gap:12px;padding:6px}.room-seat-main{min-height:76px;padding:5px}.room-avatar{font-size:20px}.room-start{margin-top:6px}}.picker-page{min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left))}.picker-content{width:min(100%,800px);margin:0 auto}.picker-content .brand{margin-bottom:26px}.picker-content .eyebrow{margin-bottom:8px}.picker-content h1{font-size:clamp(30px,5vw,48px)}.picker-intro,.picker-status{color:var(--muted);margin:10px 0 20px}.picker-players{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;display:grid}.picker-player{border:1px solid var(--line);min-width:0;min-height:82px;color:var(--text);text-align:left;cursor:pointer;background:#ffffff0d;border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.picker-player:hover,.picker-avatar-grid button:hover{border-color:var(--accent);background:#ffffff1a}.picker-player-avatar{background:#0003;border-radius:50%;flex:none;place-items:center;width:50px;height:50px;font-size:30px;display:grid}.picker-player-info{overflow-wrap:anywhere;gap:5px;min-width:0;display:grid}.picker-player-info strong{font-size:17px}.picker-player-info span{color:var(--muted);font-size:13px}.picker-arrow{color:var(--accent);margin-left:auto}.picker-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.picker-actions button{border:1px solid var(--line);cursor:pointer;border-radius:8px;min-width:120px;min-height:44px;padding:10px 16px;font-weight:700}.picker-primary{background:var(--button);color:var(--button-text)}.picker-primary span{margin-left:18px}.picker-secondary{color:var(--text);background:#ffffff0d}.picker-actions button:disabled{opacity:.5;cursor:default}.picker-name{gap:7px;max-width:360px;font-weight:700;display:grid}.picker-name input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--text);font:inherit;background:#0004;border-radius:8px;padding:8px 12px}.picker-name input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.picker-avatars{border:0;margin:18px 0 0;padding:0}.picker-avatars legend{margin-bottom:8px;font-weight:700}.picker-avatar-grid{grid-template-columns:repeat(6,minmax(0,54px));gap:8px;display:grid}.picker-avatar-grid button{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:9px;font-size:25px}.picker-avatar-grid button[aria-pressed=true]{border:2px solid var(--accent);background:#ffffff26}.picker-error{color:var(--accent)}@media (height<=480px){.picker-page{padding-top:12px;padding-bottom:12px}.picker-content .brand{margin-bottom:10px}.picker-content h1{font-size:28px}.picker-intro{margin:6px 0 12px}.picker-actions{margin-top:12px}.picker-avatars{margin-top:10px}}.guest-start-content{gap:22px;display:grid}.guest-start-intro h1{margin:0 0 12px}.guest-start-intro p{margin:0 0 10px;line-height:1.4}.guest-start-intro .guest-start-error{border:1px solid var(--accent);border-radius:8px;margin:0 0 12px;padding:8px 10px;font-weight:700}.guest-start-form{min-width:0}.guest-start-submit{width:100%;max-width:360px;margin-top:18px}.guest-start-submit:disabled{opacity:.5;cursor:default}@media (width>=600px) and (orientation:landscape){.guest-start-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px}.guest-start-form{padding-top:4px}.guest-start .picker-avatar-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-width:306px}}@media (height<=480px) and (width>=600px) and (orientation:landscape){.guest-start-intro h1{margin-bottom:8px}.guest-start-intro p{margin-bottom:8px;font-size:14px}.guest-start-intro .guest-start-error{margin-bottom:8px;padding:6px 8px}.guest-start .picker-avatars legend{margin-bottom:5px}.guest-start .picker-avatar-grid button{font-size:22px}.guest-start-submit{margin-top:12px}}:root{font-synthesis:none;text-rendering:optimizelegibility;font-family:-apple-system,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.app{--table:radial-gradient(ellipse at 70% 45%, #235e4a 0%, #123f34 48%, #0a2924 100%);--text:#fff8e8;--muted:#bfd0c5;--accent:#eacb86;--button:#eacb86;--button-text:#17372d;--card-back:#9b4337;--line:#ffffff30;background:var(--table);min-height:100dvh;color:var(--text)}.app[data-theme=wood]{--table:repeating-linear-gradient(96deg, #0000000a 0 2px, transparent 2px 46px), radial-gradient(ellipse at 70% 45%, #845e3e, #493323 72%, #302218);--text:#fff4df;--muted:#dac5a8;--accent:#f0c784;--button:#f0c784;--button-text:#3b291b;--card-back:#634029}.app[data-theme=night]{--table:radial-gradient(ellipse at 70% 45%, #354662, #1b2840 58%, #111b2b);--text:#f5f7ff;--muted:#bdc9db;--accent:#b9d7ef;--button:#b9d7ef;--button-text:#1b2b43;--card-back:#475f93}.app[data-theme=festive]{--table:radial-gradient(ellipse at 70% 45%, #9a3b39, #642327 58%, #3d161d);--text:#fff6e8;--muted:#f0c6b9;--accent:#f4cf83;--button:#f4cf83;--button-text:#5a2021;--card-back:#a93b38}.app[data-theme=class-115b]{--table:radial-gradient(ellipse at 70% 45%, #36342f, #191a1a 58%, #0d0e0e);--text:#fff8e8;--muted:#c9c2b3;--accent:#dfbb6b;--button:#dfbb6b;--button-text:#211c12;--card-back:#8b6b2f}.home{max-width:1440px;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(36px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(36px, env(safe-area-inset-left));flex-direction:column;margin:auto;display:flex}.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{color:var(--accent);letter-spacing:.2em;white-space:nowrap;font-size:11px;font-weight:700}.brand span{vertical-align:middle;margin-right:6px;font-size:19px}.theme-picker{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.theme-picker select{color:var(--text);border:1px solid var(--line);background:#00000035;border-radius:8px;max-width:165px;padding:8px 28px 8px 10px}.theme-picker option{color:#1a1a1a;background:#fff}.content{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:24px;width:min(100%,1080px);margin:auto;display:grid}.welcome{padding:15px 0}.eyebrow{color:var(--accent);letter-spacing:.25em;margin:0 0 12px;font-size:10px;font-weight:700}.eyebrow span{margin-right:5px;font-size:15px}h1{letter-spacing:.1em;margin:0;font-size:clamp(38px,5.5vw,70px);line-height:1.12}.subtitle{color:var(--muted);letter-spacing:.12em;margin:12px 0 25px;font-size:clamp(15px,1.7vw,20px)}.actions{flex-wrap:wrap;gap:10px;display:flex}.action{border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:8px;min-width:160px;min-height:50px;padding:12px 18px;font-weight:700}.action span{float:right;margin-left:22px}.primary{background:var(--button);color:var(--button-text);border-color:var(--button)}.secondary{color:var(--text);background:#ffffff0d}.action:hover{filter:brightness(1.12)}.notice{color:var(--accent);min-height:1.4em;margin:10px 0 0;font-size:13px}.table-art{flex-direction:column;justify-content:center;align-items:center;display:flex}.table-ring{aspect-ratio:1.75;border:1px solid var(--line);border-radius:50%;width:min(100%,430px);position:relative;box-shadow:inset 0 0 0 8px #ffffff08,0 0 0 9px #0000000d}.table-ring:before{content:"";border:1px solid #ffffff1c;border-radius:50%;position:absolute;inset:15px}.card{color:#1a2824;background:#fff9eb;border-radius:8px;width:27%;height:68%;padding:8px 10px;font-family:Georgia,serif;position:absolute;top:15%;box-shadow:0 12px 24px #0005}.card span{font-size:clamp(16px,2.5vw,25px);font-weight:700;line-height:.8}.card small{margin-top:3px;font-size:.65em;display:block}.card b{font-size:clamp(32px,5vw,58px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-left{left:23%;transform:rotate(-13deg)}.card-right{color:#a83b37;left:49%;transform:rotate(11deg)}.chip{aspect-ratio:1;background:var(--card-back);color:#fff;border:4px dashed #fff9;border-radius:50%;place-items:center;width:45px;display:grid;position:absolute;box-shadow:0 4px 8px #0005}.chip-one{bottom:8%;left:11%;transform:rotate(15deg)}.chip-two{top:13%;right:11%;transform:rotate(-15deg)}.suits{color:var(--accent);opacity:.7;letter-spacing:.55em;margin-top:20px;font-size:14px}.suits span{opacity:.7}footer{text-align:center;color:var(--muted);letter-spacing:.08em;font-size:12px}.rotate-hint{z-index:1000;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));text-align:center;background:var(--table);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rotate-icon{width:100px;color:var(--accent)}.rotate-hint p{margin:20px 0 8px;font-size:22px;font-weight:700}.rotate-hint span{color:var(--muted);font-size:14px}@media (height<=480px){.home{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(10px, env(safe-area-inset-bottom))}.subtitle{margin:8px 0 15px}.eyebrow{margin-bottom:6px}.welcome{padding:8px 0}.suits{margin-top:10px}}@media (width<=600px){.home{padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right))}.content{text-align:center;grid-template-columns:1fr}.actions{justify-content:center}.table-art{display:none}}.cards-overview-content{width:min(100%,1440px);padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));margin:auto}.cards-overview-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;display:flex}.cards-overview-header h1{font-size:clamp(30px,4vw,48px)}.cards-overview-eyebrow{color:var(--accent);letter-spacing:.2em;margin:0 0 8px;font-size:12px;font-weight:700}.cards-overview-intro,.cards-overview-size-key{color:var(--muted);font-size:14px}.cards-overview-intro{margin:10px 0 0}.cards-overview-size-key{margin:30px 0 0}.cards-overview-controls{flex-wrap:wrap;gap:12px;display:flex}.cards-overview-controls label{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.cards-overview-controls select{color:var(--text);border:1px solid var(--line);background:#00000045;border-radius:8px;padding:8px}.cards-overview-controls option{color:#1a1a1a;background:#fff}.cards-overview-section{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.cards-overview-section h2{color:var(--accent);margin:0 0 16px;font-size:18px}.cards-overview-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:24px 12px;display:grid}.cards-overview-card,.cards-overview-assets figure{margin:0}.cards-overview-sizes{align-items:end;gap:8px;display:flex}.cards-overview-svg{flex:none;height:auto;display:block}.cards-overview-small{width:40px}.cards-overview-large{width:80px}.cards-overview-chip{width:64px}.cards-overview-card figcaption,.cards-overview-assets figcaption{color:var(--muted);white-space:nowrap;margin-top:8px;font-size:12px}.cards-overview-card figcaption strong{color:var(--text);margin-right:3px}.cards-overview-assets{flex-wrap:wrap;align-items:end;gap:20px;display:flex}@media (width<=350px){.cards-overview-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}}.table-page{height:100dvh;overflow:hidden}.table-safe-area{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.table-surface{width:100%;height:100%;position:relative;overflow:hidden}.table-canvas,.table-canvas canvas{display:block;position:absolute;inset:0}.table-screen-reader{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-actions{flex-direction:column;justify-content:end;gap:5px;display:flex;position:absolute}.table-slider{border:1px solid var(--accent);background:#0006;border-radius:8px;height:14px;position:relative}.table-slider span{background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:48%}.table-action-row{gap:4px;height:34px;display:flex}.table-action-row button{border:1px solid var(--accent);min-width:0;color:var(--text);white-space:nowrap;opacity:1;background:#0009;border-radius:6px;flex:1;padding:0 2px;font-size:clamp(11px,1.5vw,14px);font-weight:700}.table-action-row button:last-child{background:var(--button);color:var(--button-text)}.demo-setup{min-height:100dvh;padding:12px max(24px, env(safe-area-inset-right)) 12px max(24px, env(safe-area-inset-left));place-items:center;display:grid}.demo-setup-box{width:min(760px,100%);max-height:95dvh;overflow:auto}.demo-setup-box h1{margin:0 0 10px;font-size:24px}.setup-fields{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.setup-fields label{gap:4px;font-size:13px;display:grid}.setup-fields select,.setup-buttons button,.demo-result button,.action-bar button{border:1px solid var(--accent);color:var(--text);background:#182a26;border-radius:5px;padding:5px}.setup-buttons{gap:10px;margin-top:10px;display:flex}.setup-buttons button{padding:7px 22px}.live-table-overlay{pointer-events:none;position:absolute;inset:0}.live-actions{pointer-events:auto;width:min(29%,290px);position:absolute;bottom:5px;right:8px}.action-bar{font-size:11px}.action-clock{color:var(--accent);text-align:right}.action-clock.bank{color:#ffbd72}.action-raise input{width:100%;height:14px;margin:0}.action-quick,.action-buttons{gap:3px;display:flex}.action-quick button,.action-buttons button{white-space:nowrap;flex:1;padding:4px 1px;font-size:11px}.demo-draw{color:var(--accent);background:#10231eec;padding:8px;position:absolute;top:40%;left:50%;transform:translate(-50%)}.demo-result{border:1px solid var(--accent);color:var(--text);pointer-events:auto;background:#10231ef2;border-radius:8px;padding:8px 12px;font-size:12px}.live-table-overlay>.demo-result{text-align:center;width:min(430px,76%);max-height:55%;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.demo-result p{margin:5px 0}.demo-modal{pointer-events:auto;background:#000a;place-items:center;display:grid;position:absolute;inset:0}.demo-modal table{border-spacing:18px 2px;text-align:left}.demo-modal h2{margin:0 0 5px}.demo-options{pointer-events:auto;width:min(90px,11%);position:absolute;top:5px;right:5px}.demo-options>button{width:100%}.demo-options-menu{right:max(5px, env(safe-area-inset-right));border:1px solid var(--line);background:#10231ed9;border-radius:7px;gap:4px;padding:4px;display:flex;position:fixed;top:54%}.demo-options-menu button{white-space:nowrap}.demo-options button{border:1px solid var(--accent);color:var(--text);background:#10231ef2;border-radius:5px;padding:4px 7px;font-size:11px}.player-summary button,.player-picker button,.connection-stop button,.rebuy-notice button{cursor:pointer}.player-picker{max-height:90vh;overflow-y:auto}.player-list{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.player-list button{text-align:left;padding:.55rem}.avatar-list{flex-wrap:wrap;gap:.3rem;display:flex}.avatar-list button{padding:.25rem;font-size:1.5rem}.avatar-list button[aria-pressed=true]{outline:3px solid #d8af55}.connection-banner{z-index:100;color:#fff;pointer-events:none;background:#513d16;border-radius:0 0 .5rem .5rem;padding:.4rem 1rem;position:fixed;top:0;left:50%;transform:translate(-50%)}.connection-stop{z-index:101;color:#fff;text-align:center;background:#322c24;border-radius:.5rem;padding:.8rem;position:fixed;top:.5rem;left:50%;transform:translate(-50%)}.live-notice{z-index:30;color:#fff;background:#322c24;border-radius:.5rem;padding:.5rem;position:fixed;top:.5rem;left:50%;transform:translate(-50%)}.rebuy-notice{z-index:30;box-sizing:border-box;color:#fff;pointer-events:auto;background:#322c24;border-radius:.5rem;align-items:center;gap:6px;width:min(220px,32%);padding:6px;font-size:12px;display:flex;position:absolute;bottom:8px;left:8px}.rebuy-notice button{flex:none}.away-banner,.game-notice{z-index:2;border:1px solid var(--accent);max-width:70%;color:var(--text);pointer-events:auto;background:#10231ef2;border-radius:6px;align-items:center;gap:8px;padding:5px 9px;font-size:12px;display:flex;position:absolute;top:6px;left:50%;transform:translate(-50%)}.away-banner button{white-space:nowrap;border:1px solid var(--accent);color:var(--text);background:#182a26;border-radius:4px;padding:4px 8px}
