/* Lakeside v0.5: artwork sets the place; live controls remain semantic HTML. */
:root{--jade:#356e61;--cream:#efe8d6;--gold:#d9b879;--muted:#a4b8ae;--border:#cbb77f2b;color:#eee9db;background:#0c201f;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft Yahei",sans-serif}
body{background:radial-gradient(ellipse at 85% 5%,#23423966,transparent 48%),#0c201f;min-height:100dvh}
.sidebar{width:194px;padding:30px 20px;background:linear-gradient(160deg,#152e2a,#0b1f1d);border-right:1px solid #d1bc8420}
.brand{font-size:17px;letter-spacing:.7px;color:#f0e6ca;gap:9px}.brand-mark{width:36px;height:42px;color:#dac18d;background:#24493e;border:1px solid #b69b6055;border-radius:12px;font-size:29px}.brand small{font-size:6px;letter-spacing:1.3px;color:#9dae99}
.side-label{color:#7e998a;font-size:10px;margin:42px 7px 18px}.nav-item{padding:15px 11px;color:#9fb4a6;font-size:12px;gap:10px;border:1px solid transparent}.nav-item.active{color:#f3dfae;background:linear-gradient(100deg,#5875534a,#294b3733);border-color:#c0a97130}.nav-item:hover{background:#34564755}.nav-item small{color:#baa66f;border-color:#ad976536;font-size:7px}
.side-note{border-color:#cbb77f24;padding:23px 5px;margin-top:40px}.side-note h3{color:#ded8c0;font-family:"Songti SC",serif;font-size:15px}.side-note p{color:#8ca38f}.little-leaf{color:#adac76}.note-tag,.sidebar-bottom{color:#7c9481}.sidebar-bottom small{font-size:7px;line-height:1.7;color:#78917f}
main{margin-left:194px;max-width:1920px;padding:27px 32px 12px}.topbar{margin-bottom:23px}.topbar .eyebrow{display:block;font-size:9px;color:#bda778;letter-spacing:2.2px}.topbar h1{font-size:25px;letter-spacing:2px;color:#f0e7d5;margin-top:9px}.icon-button{color:#d4c69e;background:#ffffff08;border:1px solid #d8c68f27;width:38px;height:38px}.profile-button{color:#c7ccbc}.mini-avatar{background:linear-gradient(140deg,#dbc298,#8b7753);color:#253e34;border:1px solid #e6d2a555;width:36px;height:36px}
.room-toolbar{margin-bottom:14px}.room-toolbar .live-tag{color:#decda7;font-weight:500}.room-id{color:#8fa28f}.plain-button{color:#b5c1ac}.invite-button{background:#264c40;color:#e7d9b5;border:1px solid #ccb7793d;border-radius:8px}.invite-button:hover{background:#346050}
.game-shell{height:clamp(390px,calc(100dvh - 385px),640px);min-height:390px;border-radius:20px;background:#16392f url('/assets/lakeside-evening-v1.webp') center 45%/cover;border:1px solid #bea1644d;box-shadow:0 24px 50px #0005,inset 0 0 0 1px #e7c57e0d}
.scene-shade{background:linear-gradient(180deg,#091b1966,#102c2966 30%,#071e1ccd);z-index:-1}.game-topline{color:#d6d9c6;font-size:10px;top:18px}.scoreboard{background:#0b2423d9;border-color:#d0b3744a;border-radius:9px;padding:10px 14px;box-shadow:0 5px 18px #0003;top:52px}.scoreboard strong{font-size:22px;color:#f1d191}.score-divider{color:#a99467}
.felt-table{inset:116px 98px 45px;border-radius:47%;background:radial-gradient(ellipse at 50% 35%,#347261,#205746 65%,#173f35);border:2px solid #b79a61;box-shadow:0 0 0 5px #332e23,0 0 0 7px #af925680,0 20px 28px #0006,inset 0 0 0 7px #bbcc9820,inset 0 0 55px #051f225e}.felt-table:after{content:"";inset:12px;border:1px dashed #c5d4a927;border-radius:inherit;top:12px;width:auto}.table-crest{position:absolute;inset:29% 0 auto;text-align:center;color:#d5d8ab19;font:60px Georgia,serif}.table-crest span{display:block;font:8px Georgia,serif;letter-spacing:4px;margin-top:1px}
.player{gap:7px}.player.top{top:43px}.player.left,.player.right{top:168px}.player.left{left:14px}.player.right{right:14px}.player.bottom{bottom:49px;left:25px}.avatar{width:52px;height:52px;border-radius:16px;border:2px solid #d7c69a;box-shadow:0 5px 15px #0005,0 0 0 3px #09241c66}.avatar img{border-radius:13px}.player.is-turn .avatar{outline:3px solid #f6d892;outline-offset:5px;box-shadow:0 0 27px #ffdf8180}.seat-tag{font-size:8px;border:1px solid #c4ad76;background:#e4d0a2;color:#244538;border-radius:4px;bottom:-7px;right:-10px}.player-name{font-size:12px;text-shadow:0 2px 4px #000;font-weight:600}.player-meta{font-size:10px;color:#ccd9bd;text-shadow:0 1px 3px #000}.player-info{z-index:1}.mini-deck{height:27px;display:flex;justify-content:center;margin-top:1px}.mini-deck i{width:18px;height:25px;border:1px solid #d1bb82;border-radius:3px;background:#214438 url('/assets/cardback-jade-v1.webp') center/cover;box-shadow:-1px 1px 3px #0004}.mini-deck i+i{margin-left:-8px}.mini-deck i:nth-child(1){transform:rotate(-9deg)}.mini-deck i:nth-child(3){transform:rotate(9deg)}
.seat-play.top{top:142px}.seat-play.bottom{bottom:37px}.seat-play.left,.seat-play.right{top:210px}.seat-play.left{left:132px}.seat-play.right{right:132px}.seat-play-caption{color:#d6e3cd;font-size:10px;text-shadow:0 1px 4px #123}.seat-play.current .seat-play-caption{color:#ffe0a0}.seat-cards .card.small{--cw:46px;height:65px}.seat-cards>.card+.card{margin-left:-24px}.seat-pass{background:#163b2fc2;color:#c2d3b6;border:1px solid #b7bc8330}.center-table{top:153px}.result-title{font-size:30px;text-shadow:0 3px 8px #0007}.center-table:has(.result-title){background:#102d26ed;padding:23px 15px;border:1px solid #c7ac6a70;border-radius:15px;top:115px;box-shadow:0 12px 35px #0005}.result-line{font-size:13px}.center-action{background:linear-gradient(135deg,#ead4a0,#c8a15e);font-size:13px;color:#2a3c2b}.table-status{bottom:12px;color:#c7d2b6}.table-bottom{bottom:13px}.glass-button{background:#102e25bb;color:#dfd7b8;border-color:#c8ba874d}.table-bottom>span{background:#0d2c22c9;border-color:#bba0664d}
.hand-panel{background:linear-gradient(125deg,#1c3931,#142e29);border-color:#bfa9783b;border-radius:16px;padding:13px 18px;margin-top:13px;box-shadow:0 9px 25px #0002}.hand-topline{color:#e6dcc2;font-size:12px}.hand-tools button{color:#b6c4aa}.hand-tools #sort-hand:not(:disabled){background:#386047;color:#ecdfb6}.hand-tools #auto-group:not(:disabled){background:#655835;color:#f3dfae}#hand-count{color:#95ad92}.group-legend{color:#9daf91}.group-legend button{color:#b7c7aa}.group-select{background:#be9b56;color:#192e20}.right .group-select{background:#649777;color:#0c2118}.group-bar{color:#99b093}.group-remove{color:#c4cfb0}.group-remove:hover{background:#664f34;color:#ffe6be}.hand-cluster.left{background:linear-gradient(0deg,#d8b46118,transparent 70%)}.hand-cluster.right{background:linear-gradient(0deg,#8fcc9320,transparent 70%)}
.hand{--cw:63px;--step:33px;min-height:140px;padding-top:25px;padding-bottom:8px;scrollbar-color:#7f936d transparent;gap:13px}.card{background:linear-gradient(135deg,#fffdf3,#eae5d4);color:#1a3534;border:1px solid #d9d5bf;border-radius:7px;box-shadow:-3px 3px 5px #07181455;height:96px}.card:before{content:"";position:absolute;inset:4px;border:1px solid #8a835517;border-radius:3px;pointer-events:none}.card.red{color:#b62f39}.card .corner{font-size:22px;top:5px;left:5px}.card .corner small{font-size:15px}.card .pip{font-size:33px;right:16px;bottom:30px;opacity:.88}.card .corner.reverse{top:auto;left:auto;right:5px;bottom:5px;transform:rotate(180deg);font-size:16px}.card .corner.reverse small{font-size:10px}.card.joker .corner.reverse{font-size:8px}.card.wild{background:linear-gradient(135deg,#fff9df,#ebd394);border-color:#d9b762}.wild-marker{color:#936120;font-size:9px;right:4px;top:6px}.hand .card.selected{transform:translateY(-16px);border-color:#ffe29b;outline:2px solid #e9c975;box-shadow:0 0 0 4px #d3b66f26,0 8px 15px #0004;z-index:3}.hand .card:hover:not(.selected){filter:brightness(1.04)}.card.small .corner.reverse{display:none}.card.small .pip{right:7px;bottom:8px;font-size:22px}.card.small .corner{font-size:18px}.card.small .corner small{font-size:12px}
.turn-banner{background:#244738;border-color:#6c8b5938;color:#dce4c8;min-height:49px;margin-bottom:12px;padding:8px 12px}.turn-banner #turn-detail{color:#b6c6a4;font-size:10px}.turn-banner.mine{background:linear-gradient(100deg,#ead49a,#d6b66b);color:#243522;border-color:#f4dc9e;box-shadow:0 0 20px #ddb66524}.turn-banner.mine #turn-detail{color:#535a37}.turn-clock{font-size:27px}.turn-progress{background:#fff0c1aa;height:3px}.turn-banner.urgent{background:linear-gradient(100deg,#f1c18b,#da9a5d);color:#572c17}.urgent .turn-clock{color:#6a260f}.your-move{border-color:#c5ab62;box-shadow:0 0 0 1px #dabf6c22}.your-move #play{background:linear-gradient(135deg,#f2da9f,#c5a15b);color:#223829;border-color:#ecd49b;box-shadow:0 5px 18px #0003;font-size:15px;min-width:135px}.your-move #play:hover:not(:disabled){background:#f0d294}.your-move #hint{background:#476848;color:#f7e8b9;border-color:#ab995b}.primary{background:linear-gradient(135deg,#dbbe82,#af8d4f);color:#1f382b;font-weight:600;border:1px solid #e5cfa033}.primary:hover:not(:disabled){background:#e4c78c}.secondary{background:#28483a;color:#c9d1b4;border-color:#8a9c673d}.secondary:hover:not(:disabled){background:#375a43}.action-bar{color:#a8b999;background:transparent}.action-bar button{min-height:43px}.page-footer,.page-footer button{color:#829883;font-size:10px}.hand-empty{color:#a0b396}
.is-home .game-shell{height:clamp(480px,70dvh,740px);min-height:480px;background-position:center 45%}.is-home .scene-shade{background:linear-gradient(90deg,#071e1fe8 0%,#112c29b8 35%,#13292820 72%),linear-gradient(0deg,#071d19d4,transparent 42%)}.is-home .felt-table,.is-home #players,.is-home .scoreboard,.is-home .center-table,.is-home .table-bottom,.is-home .table-status{display:none}.is-home .game-topline{top:24px;left:30px;right:30px;font-size:10px}.is-home #round-label{letter-spacing:2px;color:#acbfad}.welcome-panel{left:5%;top:19%;width:52%;text-align:left;background:none;border:0;box-shadow:none;padding:0;border-radius:0}.welcome-kicker{font-size:10px;letter-spacing:4px;color:#d1be8b;display:flex;align-items:center;gap:10px}.welcome-kicker i{width:24px;height:1px;background:#cbb170}.welcome-panel h2{font-size:clamp(34px,3.55vw,60px);line-height:1.43;font-weight:400;letter-spacing:4px;margin:22px 0 19px;color:#f7efd9;text-shadow:0 4px 20px #05251c66}.welcome-panel p{font-size:13px;line-height:2;color:#becab4;margin:0 0 26px;letter-spacing:1px}.welcome-actions{display:flex;gap:20px;align-items:center}.primary.light{background:linear-gradient(115deg,#f2dfac,#ccae70);color:#183c2e;min-width:160px;padding:15px 24px;border-radius:7px;font-size:14px;box-shadow:0 6px 24px #0003}.welcome-join{color:#e5d6ae;font-size:12px;padding:12px 0;border-bottom:1px solid #e0c99466}.welcome-panel small{font-size:10px;letter-spacing:1px;color:#a7b59b;margin-top:20px}.resume-room{text-align:left;margin:14px 0;color:#f2d698}.welcome-deck{display:none;position:absolute;right:12%;bottom:21%;width:122px;height:179px;transform:rotate(8deg);filter:drop-shadow(0 22px 15px #061b1b99)}.is-home .welcome-deck{display:block}.welcome-deck i{position:absolute;inset:0;border-radius:10px;border:2px solid #d2b97f;background:#17382d url('/assets/cardback-jade-v1.webp') center/100% 100%;box-shadow:0 0 0 3px #f0e4c225}.welcome-deck i:nth-child(1){transform:rotate(-23deg) translateX(-47px)}.welcome-deck i:nth-child(2){transform:rotate(-9deg) translateX(-20px)}.welcome-deck span{position:absolute;top:calc(100% + 34px);width:170px;left:-43px;font:10px "Songti SC",serif;letter-spacing:3px;color:#f0dfb2;transform:rotate(-8deg);text-align:center}.scene-caption{display:none;position:absolute;right:30px;bottom:25px;text-align:right;color:#dbccaa}.is-home .scene-caption{display:block}.scene-caption b{font:15px "Songti SC",serif;letter-spacing:3px;font-weight:400}.scene-caption span{display:block;font-size:7px;letter-spacing:2px;color:#a0afa0;margin-top:8px}.club-features{display:none;grid-template-columns:repeat(3,1fr);gap:25px;padding:23px 8px 12px}.is-home .club-features{display:grid}.club-features>div{position:relative;padding-left:33px;border-right:1px solid #b1a27423}.club-features>div:last-child{border:0}.club-features span{position:absolute;left:0;top:4px;color:#b6a576;font:italic 14px Georgia,serif}.club-features h3{font-size:13px;font-weight:500;letter-spacing:1px;margin:3px 0 8px;color:#dcd9bb}.club-features p{font-size:10px;line-height:1.8;margin:0;color:#97aa92}
.lobby-panel{background:#122f28;border:1px solid #b7a16c45;padding:24px}.in-lobby .lobby-heading{background:linear-gradient(90deg,#0c242bea,#14372e80),url('/assets/lakeside-evening-v1.webp') center 46%/cover;min-height:190px;padding:26px 30px;border:1px solid #b4a3673b;border-radius:13px;align-items:center;margin-bottom:22px}.lobby-heading h2{font-size:30px;letter-spacing:3px;color:#efe1bb}.lobby-heading p{font-size:12px;color:#c0c6ab;margin-top:13px}.lobby-heading .eyebrow{color:#c6b37e}.lobby-observers{color:#e0d6af;background:#112d2399;padding:10px;border-radius:20px}.lobby-seats{gap:16px}.lobby-seat{position:relative;background:linear-gradient(145deg,#244b3a,#15372e);border:1px solid #a2b9753d;border-radius:13px;min-height:190px;padding:19px 15px;gap:15px}.lobby-seat.warm{background:linear-gradient(145deg,#4e4c2f,#303d2c);border-color:#b39b534a}.lobby-seat:after{content:"♧";position:absolute;right:13px;top:15px;color:#d3c17c20;font:50px Georgia,serif;pointer-events:none}.lobby-seat.mine{outline:2px solid #d7be7d;outline-offset:2px}.seat-number{color:#bcc6a2;font-size:11px;letter-spacing:1px}.lobby-person{color:#dfd1a3;font-size:31px;min-height:50px;z-index:1}.lobby-person img{width:47px;height:47px;border-radius:13px;border:1px solid #d9be7966}.lobby-person b{font-size:15px;color:#efead6}.ready-status{color:#b7c9a0;font-size:11px}.lobby-seat button,.lobby-seat select{background:#122e25;color:#d9d8b5;border-color:#a5b37d50;min-height:35px;font-size:11px}.lobby-seat .seat-sit{background:#547350;color:#f4e6b4;border-color:#b7c18f4d}.lobby-seat .seat-agent{background:#7c683f;color:#f3dfab}.lobby-actions{margin-top:25px}.lobby-actions>span,.spectator-label{color:#a9bc9d;font-size:11px}.watch-panel{background:#1b3b2e;border-color:#9db56f35}.watch-panel b{color:#dbddba}.watch-panel span{color:#a8bf99}.watch-views button{border-color:#9aaa6845;color:#c6cfa9}.watch-views button.active{background:#67805b;color:#fff1c9}
dialog{color:#e5ddc3;background:linear-gradient(145deg,#203f32,#112d26);border-color:#d5b67565;border-radius:18px;padding:29px;box-shadow:0 28px 100px #0009}dialog::backdrop{background:#061c18ad;backdrop-filter:blur(7px)}dialog h2{color:#f2e3bc;font-size:26px}dialog p,dialog li{color:#b8c6a8;font-size:12px}dialog .fine{color:#97af8a;font-size:11px}dialog h3{color:#e3d6ab}dialog label{color:#d8d9b8}dialog input:not([type=file]),dialog select{background:#0d2a23;color:#e3e2c6;border-color:#9eae7559;min-height:43px}dialog .modal-close{color:#d2c49b}.config{background:#0c251f;color:#c8daba;border-color:#a2aa7345}.current-table-rules{background:#455438}.invite-code{color:#edda9f}.seat-option,.emote-list button{background:#31513b;color:#e0d8b3}.join-seats button{background:#294b36;border-color:#8caa6660;color:#e6deba}.join-seats small{color:#aec196}.history-item{color:#c5d1b3;border-color:#9bb27925}.modal-actions .plain-button{color:#c8b47c}#toast{background:#e6d5a9;color:#193d2e;border-color:#f7e6ba;box-shadow:0 8px 35px #0006;left:calc(50% + 97px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe29b;outline-offset:4px}button:disabled{opacity:.48}
@media(min-width:1550px){main{padding-left:42px;padding-right:42px}.felt-table{left:145px;right:145px}.player.left{left:40px}.player.right{right:40px}.seat-play.left{left:175px}.seat-play.right{right:175px}.welcome-deck{right:15%;width:151px;height:220px}}
@media(max-width:1100px){.sidebar{width:168px;padding:25px 14px}.brand{font-size:15px}.brand-mark{width:32px;flex-shrink:0}.brand small{font-size:5px}.nav-item{font-size:11px;gap:8px}.side-note{padding-left:3px}main{margin-left:168px;padding:23px 20px 10px}.welcome-panel{width:59%}.welcome-actions{gap:13px}.primary.light{min-width:133px}.welcome-join{font-size:11px}.welcome-deck{right:10%;width:102px;height:153px}.felt-table{left:86px;right:86px}.seat-play.left{left:117px}.seat-play.right{right:117px}.player{width:99px}.player.top{left:calc(50% - 49.5px)}.player.left{left:7px}.player.right{right:7px}.seat-cards .card.small{--cw:42px}.turn-banner>div:first-child{flex-direction:row;gap:12px}.club-features{gap:12px}.club-features p{max-width:160px}.lobby-seats{gap:10px}.lobby-seat{padding:16px 10px}#toast{left:calc(50% + 84px)}}
@media(max-width:900px){.sidebar{display:none}main{margin-left:0;padding:19px 19px 10px}.topbar h1{font-size:23px}.game-shell{height:410px;min-height:410px}.is-home .game-shell{height:580px;min-height:480px}.welcome-panel{top:21%;width:58%}.welcome-panel h2{font-size:45px}.welcome-deck{right:12%;width:114px;height:165px}.felt-table{top:122px;bottom:48px}.seat-play.top{top:145px}.seat-play.left,.seat-play.right{top:218px}.player.left,.player.right{top:169px}.seat-play.bottom{bottom:35px}.lobby-heading h2{font-size:27px}.lobby-person b{font-size:13px}.turn-banner>div:first-child{flex-direction:column;align-items:flex-start;gap:4px}#toast{left:50%}}
@media(max-width:600px){main{padding:16px 10px 9px}.topbar{padding:0 4px;margin-bottom:19px}.topbar .eyebrow{font-size:7px;letter-spacing:1.5px;display:block}.topbar h1{font-size:19px;letter-spacing:1px;margin-top:7px}.top-actions{gap:6px}.icon-button{width:32px;height:32px}.mini-avatar{width:30px;height:30px}.room-toolbar{margin:0 5px 12px}.room-toolbar>div{gap:8px}.room-id{max-width:69px;font-size:8px}.invite-button{font-size:10px;padding:8px 6px}.plain-button{font-size:10px}.game-shell{height:376px;min-height:376px;border-radius:15px}.game-topline{top:13px;left:12px;right:12px;font-size:8px}.scoreboard{top:37px;left:11px;padding:7px;gap:6px;font-size:8px}.scoreboard strong{font-size:15px}.scoreboard>div{gap:3px}.felt-table{inset:114px 41px 42px;border-width:1px;box-shadow:0 0 0 3px #332e23,0 0 0 5px #af925680,0 13px 20px #0005,inset 0 0 0 4px #bbcc981a,inset 0 0 35px #051f225e}.table-crest{top:33%;font-size:40px}.table-crest span{font-size:6px;letter-spacing:2px}.player{width:78px;gap:5px}.player.top{top:40px;left:calc(50% - 39px)}.player.left,.player.right{top:142px}.player.left{left:3px}.player.right{right:3px}.avatar{width:41px;height:41px;border-radius:13px;font-size:21px}.avatar img{border-radius:10px}.seat-tag{font-size:7px;bottom:-5px;right:-9px}.player-name{font-size:10px;max-width:89px}.player-meta{font-size:8px;margin-top:3px}.player.bottom{left:12px;bottom:49px;width:109px;gap:6px}.player.bottom .avatar{width:31px;height:31px;border-radius:10px;font-size:17px}.mini-deck{display:none}.seat-play.top{top:122px}.seat-play.left,.seat-play.right{top:228px}.seat-play.left{left:12px}.seat-play.right{right:12px}.seat-play.bottom{left:50%;bottom:22px}.seat-play-caption{font-size:8px}.seat-cards .card.small{--cw:31px;height:46px;border-radius:4px}.seat-cards>.card+.card{margin-left:-19px}.card.small .corner{font-size:13px;left:3px;top:3px}.card.small .corner small{font-size:10px}.card.small .pip{font-size:14px;bottom:5px;right:4px}.card.small .wild-marker{font-size:6px;right:1px}.table-bottom{bottom:12px;left:12px;right:12px}.table-bottom>span{font-size:9px;padding:5px 7px}.glass-button{font-size:9px;padding:6px 8px}.center-table:has(.result-title){top:127px;left:53px;right:53px;padding:20px 9px}.result-title{font-size:21px}.result-line{font-size:11px}.result-actions{gap:9px}.hand-panel{padding:11px 10px 9px;margin-top:11px;border-radius:12px}.hand-topline{font-size:11px}.hand-tools button{font-size:9px;padding:6px}.turn-banner{min-height:49px;margin-bottom:11px;padding:7px 10px}.turn-banner b{font-size:14px}.turn-banner #turn-detail{font-size:9px}.turn-clock{font-size:25px}.hand{--cw:43px;--step:23px;min-height:151px;padding-top:24px;gap:23px 10px}.hand .card{height:66px}.card .corner{font-size:18px;top:4px;left:4px}.hand .card .corner{font-size:18px}.hand .card .corner small{font-size:12px}.hand .card .pip{font-size:19px;bottom:14px;right:6px}.card .corner.reverse{display:none}.hand .card.selected{transform:translateY(-11px);outline-width:2px}.group-legend{font-size:8px;gap:8px;margin-top:9px}.group-bar{top:-14px}.group-select{font-size:9px}.grouped .card.selected{transform:translateY(-9px)}.loose .cluster-cards{gap:15px 0}.action-bar{border-color:#93a9762e;padding-top:9px;margin-top:6px}.action-bar>div{gap:5px}.action-bar button{font-size:11px;padding:11px 5px;min-height:44px}.action-bar #deselect{font-size:10px}.your-move #play{min-width:0;font-size:14px}.action-bar>span{display:none}.is-home .game-shell{height:553px;min-height:553px;background-position:62% center}.is-home .scene-shade{background:linear-gradient(90deg,#071e1fcf,#112c2985 65%,#112c2926),linear-gradient(0deg,#071d19d4,transparent 62%)}.is-home .game-topline{top:20px;left:22px;right:20px;font-size:8px}.is-home .connection{display:none}.welcome-panel{left:24px;right:24px;top:88px;width:auto;padding:0}.welcome-panel h2{font-size:39px;letter-spacing:3px;line-height:1.4;margin:21px 0 18px}.welcome-panel p{font-size:12px;margin-bottom:24px;line-height:2}.welcome-kicker{font-size:9px;letter-spacing:3px}.welcome-actions{gap:16px;align-items:center;flex-wrap:wrap}.primary.light{min-width:137px;padding:14px 22px;font-size:13px}.welcome-join{font-size:11px}.welcome-panel small{font-size:9px;letter-spacing:0;margin-top:20px}.is-home .welcome-deck{right:44px;bottom:35px;width:56px;height:82px;opacity:.88}.welcome-deck i{border-width:1px;border-radius:5px}.welcome-deck i:nth-child(1){transform:rotate(-23deg) translateX(-22px)}.welcome-deck i:nth-child(2){transform:rotate(-9deg) translateX(-10px)}.welcome-deck span{display:none}.is-home .scene-caption{right:auto;left:24px;bottom:32px;text-align:left}.scene-caption b{font-size:13px}.scene-caption span{font-size:6px;letter-spacing:1.5px}.club-features{gap:12px;padding:20px 4px 10px;grid-template-columns:1fr}.club-features>div{padding:3px 0 13px 32px;border-right:0;border-bottom:1px solid #b1a27423}.club-features span{top:5px}.club-features h3{font-size:12px;margin-top:0;margin-bottom:5px}.club-features p{font-size:10px;max-width:none}.is-home .page-footer{justify-content:flex-start}.is-home .page-footer>span{display:block;max-width:100%;font-size:9px}.is-home #history-open{display:none}.lobby-panel{padding:12px}.in-lobby .lobby-heading{min-height:162px;padding:21px 17px;gap:8px;align-items:flex-start}.lobby-heading h2{font-size:23px;letter-spacing:1px}.lobby-heading p{font-size:10px;max-width:230px;line-height:1.8}.lobby-observers{font-size:9px;padding:6px;white-space:nowrap}.lobby-seats{grid-template-columns:repeat(2,1fr);gap:12px}.lobby-seat{padding:16px 11px;min-height:190px;gap:12px}.lobby-person{font-size:28px;min-height:40px}.lobby-person b{font-size:13px}.seat-number,.ready-status{font-size:10px}.lobby-actions{margin-top:20px;gap:15px}.lobby-actions>div{gap:8px;width:100%;justify-content:flex-end}.lobby-actions button{min-height:42px;font-size:11px}.lobby-actions>span{font-size:10px}.watch-panel{padding:12px}.watch-panel b{font-size:12px}.watch-panel span{font-size:9px}dialog{padding:25px 20px;max-height:89dvh;border-radius:16px}dialog h2{font-size:23px}dialog .fine{font-size:10px}dialog .modal-actions{gap:9px}.config{font-size:10px}.page-footer{padding:9px 2px}#toast{font-size:12px;bottom:20px;max-width:91vw}}
@media(min-width:901px) and (max-height:850px){
 body:not(.is-home):not(.in-lobby) main{padding-top:12px}
 body:not(.is-home):not(.in-lobby) .topbar{margin-bottom:13px}
 body:not(.is-home):not(.in-lobby) .topbar .eyebrow{display:none}
 body:not(.is-home):not(.in-lobby) .topbar h1{font-size:20px;margin-top:0}
 body:not(.is-home):not(.in-lobby) .game-shell{height:calc(100dvh - 425px);min-height:290px}
 .hand-panel{padding:10px 17px}.hand{min-height:109px;padding-top:19px;padding-bottom:5px}
 .turn-banner{min-height:42px;padding:6px 10px;margin-bottom:9px}.turn-clock{font-size:24px}
 .group-legend{margin-top:7px}.player.left,.player.right{top:124px}.player.top{top:26px}
 .player .avatar{width:42px;height:42px;font-size:23px}.mini-deck{display:none}.player.bottom{bottom:14px}.player.bottom .avatar{width:38px;height:38px}
 .felt-table{top:97px;bottom:31px}.seat-play.top{top:113px}.seat-play.left,.seat-play.right{top:152px}.seat-play.bottom{bottom:28px}
 .seat-cards .card.small{height:54px;--cw:40px}.seat-cards>.card+.card{margin-left:-20px}.card.small .pip{font-size:18px}
 .center-table:has(.result-title){top:100px;padding-top:18px;padding-bottom:18px}
}
@media(max-width:600px){.action-bar{position:sticky;bottom:0;z-index:6;background:#17382ff5;padding:10px 0 5px;box-shadow:0 -6px 12px #17382f88}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Form feedback must stay in the modal top layer, including small screens. */
#modal-feedback{position:sticky;top:0;z-index:2;margin:10px 0 18px;padding:13px 15px;border:1px solid #e8c184;border-radius:9px;background:#493e29;color:#fff0c9;font-size:13px;line-height:1.75;box-shadow:0 5px 18px #0004;overflow-wrap:anywhere}
#modal-feedback[hidden]{display:none}
/* Agent onboarding is a private, stepwise flow, not a wall of placeholder JSON. */
#agent-workbench h3{margin-top:27px;color:#e9d2a5;font-size:16px}
#agent-workbench p,#agent-workbench small{overflow-wrap:anywhere;line-height:1.8}
.agent-legend{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}
.agent-legend span{padding:5px 9px;background:#28483e;border:1px solid #496253;border-radius:20px;font-size:12px;color:#e8dec7}
.agent-seat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
.agent-seat-grid article{display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px;border:1px solid #67725d;border-radius:12px;background:#243e34}
.agent-seat-grid article>b{color:#c8b891;font-size:12px}.agent-seat-grid strong{font-size:18px;color:#fff5df;overflow-wrap:anywhere}
.agent-seat-grid article>span{min-height:42px;font-size:13px;color:#cce4d6}.agent-seat-grid small{color:#bdc5b6}
.agent-budget{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.agent-budget input{width:100%;min-width:0}
.agent-notice,#agent-live{padding:13px 16px;border-left:3px solid #c9a76b;background:#2c4c40;color:#ecdfc2;border-radius:4px}
.agent-download{display:inline-block;padding:11px 14px;border:1px solid #c6ad78;border-radius:8px;color:#f7dfae;text-decoration:none}
.agent-download:hover{background:#526047}.danger-button{border:1px solid #be7b67;border-radius:8px;padding:11px 14px;background:#553e35;color:#ffe0d1;cursor:pointer}
#agent-workbench code{color:#f8e1b2;overflow-wrap:anywhere}#agent-workbench details{margin:15px 0}#agent-workbench summary{cursor:pointer;color:#dcc69f}
#agent-config-validation{font-size:13px;color:#e8d6ac}#agent-workbench .config{min-height:240px}
#agent-workbench [hidden]{display:none!important}
@media(max-width:600px){.agent-seat-grid{grid-template-columns:1fr}.agent-budget{gap:8px}.agent-budget label{font-size:12px}.agent-budget input{padding:9px}#agent-workbench .modal-actions{display:flex;flex-wrap:wrap;gap:8px}}
