:root{--bg:#071b16;--panel:#0a231c;--panel2:#102d24;--felt:#0b4633;--felt-dark:#073321;--cream:#f5eddb;--gold:#d8b472;--gold-light:#f0d39a;--line:#325343;--muted:#afc0af;--red:#b9332a;--ink:#15211d;--card-w:clamp(66px,6.2vw,104px);--card-h:calc(var(--card-w)*1.46);font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.43}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:500}h1{font-size:clamp(38px,4vw,62px);line-height:1.06}h2{font-size:28px}h3{font-size:22px}h4{font-size:16px}p{line-height:1.5}a{color:var(--gold-light)}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #435946;background:#071c17;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:13px;min-width:220px}.brand-mark{font-size:35px;line-height:1;color:var(--gold)}.brand strong{display:block;font:32px/.9 Georgia,serif;color:var(--gold-light);letter-spacing:-.04em}.brand small{display:block;margin-top:5px;font:10px/1.2 Georgia,serif;letter-spacing:.24em;color:#aeb6a7}.site-header nav{display:flex;gap:34px;align-self:stretch;align-items:center;font:17px Georgia,serif}.site-header nav button{border:0;background:none;color:var(--cream);padding:0}.active-nav{color:var(--gold-light);height:100%;display:flex;align-items:center;border-bottom:2px solid var(--gold)}.account{display:flex;align-items:center;gap:10px;min-width:220px;justify-content:flex-end}.avatar{width:38px;height:38px;border:1px solid #9a9a76;background:#203a2f;color:var(--gold-light);border-radius:50%;display:grid;place-items:center;font:20px Georgia,serif;flex:none}.account button{margin-left:10px;border:0;border-left:1px solid var(--line);padding:7px 0 7px 15px;color:var(--muted);background:none;font-size:12px}.account button:hover,.site-header nav button:hover{color:var(--gold-light)}
.app-grid{display:grid;grid-template-columns:minmax(245px,285px) minmax(480px,1fr) minmax(245px,285px);min-height:calc(100vh - 76px)}.rail{padding:30px 22px;background:#092119}.left-rail{border-right:1px solid var(--line)}.right-rail{border-left:1px solid var(--line)}.rail-heading h2{margin-bottom:3px}.rail-heading p{color:var(--muted);font:16px Georgia,serif;margin-bottom:23px}.rail h3{margin:0 0 14px}.rail-divider{height:1px;background:var(--line);margin:24px 0}.muted{color:var(--muted);font-size:14px}.gold-button,.outline-button{border-radius:6px;padding:13px 17px;min-height:44px;transition:background .15s,border-color .15s,transform .15s}.gold-button{border:1px solid #efd099;background:linear-gradient(#e5c88e,#bd9857);color:#142319;font-weight:700}.gold-button:hover:not(:disabled){background:#f1d79f;transform:translateY(-1px)}.gold-button span{float:right}.outline-button{background:rgba(18,51,37,.7);border:1px solid #5f755b;color:var(--cream)}.outline-button:hover:not(:disabled){border-color:var(--gold);background:#1b4130}.full{width:100%}.left-rail>.outline-button{margin-top:10px}.room-list{border:1px solid var(--line);border-radius:7px;overflow:hidden}.room-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 9px;border-bottom:1px solid var(--line)}.room-row:last-child{border-bottom:0}.room-row strong,.room-row small{display:block}.room-row strong{font:15px Georgia,serif}.room-row small{color:var(--muted);font-size:11px;margin-top:3px}.room-row button,.room-meta button{background:#173b2b;color:#e9f0df;border:1px solid #5c765e;border-radius:5px;padding:6px 10px;font-size:12px}.room-row button:hover:not(:disabled),.room-meta button:hover{background:#28583d}.empty-rooms{padding:14px;margin:0}.small-form{margin-top:14px}.small-form label,.auth-panel label{display:block;color:var(--muted);font-size:12px;letter-spacing:.04em}.small-form input,.auth-panel input{display:block;width:100%;margin:8px 0 10px;padding:11px 12px;border:1px solid #476653;background:#071b16;color:var(--cream);border-radius:5px;outline:none}.small-form input:focus,.auth-panel input:focus{border-color:var(--gold)}.small-form input::placeholder,.auth-panel input::placeholder{color:#788d7f}.split-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.split-buttons button{padding:10px 6px}.small-form .full{min-height:39px;padding:9px}
.table-space{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#13543c 0%,#0a412e 54%,#052c21 100%);box-shadow:inset 0 0 0 12px #3d3021,inset 0 0 0 15px #9b7651,inset 0 0 50px 24px #031910}.table-space:before{content:"";position:absolute;inset:16px;border:1px solid rgba(234,194,127,.23);border-radius:22px;pointer-events:none}.lobby-space,.waiting-space{display:grid;place-items:center;text-align:center}.lobby-inner,.waiting-inner{width:min(690px,90%);position:relative;z-index:1}.table-ornament,.waiting-icon{font-size:48px;color:var(--gold);margin-bottom:20px}.lobby-inner h1,.waiting-inner h1{margin-bottom:20px;text-wrap:balance}.lobby-inner p,.waiting-inner p{max-width:520px;margin:0 auto 24px;color:#d1dccb;font:19px/1.5 Georgia,serif}.lobby-choices{display:flex;gap:12px;justify-content:center}.lobby-preview{display:flex;justify-content:center;align-items:center;margin:48px auto 32px;height:175px}.lobby-preview .playing-card{--card-w:90px;--card-h:131px;margin:0 -10px;transform:rotate(-9deg)}.lobby-preview .playing-card:nth-child(2){transform:rotate(2deg) translateY(-18px);z-index:2}.lobby-preview .playing-card:nth-child(3){transform:rotate(12deg)}.lobby-line{font:13px Georgia,serif;color:#b4c6b5}.room-code{display:inline-flex;align-items:center;gap:18px;background:rgba(1,20,12,.35);border:1px solid #63866b;border-radius:7px;padding:15px 18px;margin:12px auto 24px}.room-code small,.room-meta small{font-size:10px;color:#9eae9e;letter-spacing:.13em}.room-code strong{font:29px Georgia,serif;letter-spacing:.12em}.room-code button{padding:7px 10px;background:#1c4933;color:var(--cream);border:1px solid var(--gold);border-radius:4px}.waiting-pulse{color:#cce2ce;font-size:13px}.waiting-pulse span{display:inline-block;width:8px;height:8px;background:#87e89a;border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px #84ec9625;animation:pulse 1.5s infinite}.text-button{display:block;margin:28px auto 0;background:none;border:0;color:var(--gold-light);text-decoration:underline}@keyframes pulse{50%{opacity:.45}}
.table-frame{position:relative;z-index:1;min-height:calc(100vh - 76px);display:grid;grid-template-rows:auto auto minmax(230px,1fr) auto auto auto;justify-items:center;align-items:center;padding:17px 22px 21px}.player-strip{width:min(590px,100%);display:flex;justify-content:space-between;align-items:center;gap:15px}.player-id{display:flex;align-items:center;gap:11px}.player-id strong{font:19px Georgia,serif}.player-id small{display:block;color:#a9c4ad;font:13px Georgia,serif;margin-top:3px}.scorebox{display:flex;border:1px solid #51705a;border-radius:8px;background:#04291c90}.scorebox>span{display:block;min-width:78px;padding:6px 13px;border-left:1px solid #51705a}.scorebox>span:first-child{border-left:0}.scorebox small{display:block;font:12px Georgia,serif;color:#b8c7ae}.scorebox b{font:23px Georgia,serif;color:var(--gold-light)}.scorebox em{font:12px Arial,sans-serif;color:#9bab9d}.opponent-hand{display:flex;justify-content:center;padding-top:12px}.opponent-hand .playing-card{--card-w:clamp(45px,5vw,74px);--card-h:calc(var(--card-w)*1.46);margin:0 2px}.table-middle{width:100%;display:grid;grid-template-columns:minmax(95px,1fr) minmax(190px,2.3fr) minmax(95px,1fr);align-items:center;justify-items:center;gap:12px}.zone-label{display:block;text-align:center;font-size:10px;letter-spacing:.17em;color:#c7d4be;margin-bottom:11px}.talon-zone{text-align:center}.talon-zone .playing-card{--card-w:clamp(56px,5.2vw,82px);--card-h:calc(var(--card-w)*1.46);display:inline-flex}.talon-zone small{display:block;color:#c6d4c4;font:13px Georgia,serif;margin-top:9px}.trick-zone{text-align:center}.trick-cards{display:flex;gap:15px;justify-content:center}.trick-cards .playing-card{--card-w:clamp(70px,6.2vw,100px);--card-h:calc(var(--card-w)*1.46)}.trump-suit,.stock-empty{height:var(--card-h);min-height:100px;font-size:50px;color:var(--gold-light);display:grid;place-items:center}.your-hand{display:flex;justify-content:center;align-items:flex-end;width:100%;padding:12px 0 6px;gap:clamp(3px,1vw,13px)}.your-hand .playing-card{margin:0}.turn-banner{width:min(650px,100%);min-height:57px;display:flex;align-items:center;gap:12px;padding:9px 15px;background:#061b14b8;border:1px solid #4e674e;border-radius:6px}.turn-light{width:9px;height:9px;border-radius:50%;background:#607365;flex:none}.turn-light.on{background:#79ef92;box-shadow:0 0 12px #79ef92}.turn-banner strong{display:block;font:17px Georgia,serif;color:#d9efcd}.turn-banner small{display:block;color:#afc2b0;margin-top:4px;font-size:11px}
.playing-card{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--card-w);height:var(--card-h);aspect-ratio:2/3;flex:none;border-radius:6px;box-shadow:0 3px 8px #001d14aa}.playing-card.face{background:#f7f0df;border:2px solid #d5c5a5;color:#15271e}.playing-card.red{color:var(--red)}.playing-card.back{background:#103723 url('/card-back.jpg') center/100% 100% no-repeat;border:2px solid #ded0a7}.playing-card.empty-card{border:1px dashed #a2b59d55;background:#042d203b;box-shadow:none}.card-corner{position:absolute;top:5px;left:6px;display:flex;flex-direction:column;align-items:center;line-height:.84;font:clamp(13px,1.7vw,23px) Georgia,serif}.card-corner span{font-size:.8em;margin-top:2px}.card-corner.bottom{top:auto;left:auto;bottom:5px;right:6px;transform:rotate(180deg)}.card-center{display:flex;flex-direction:column;align-items:center;justify-content:center;font:clamp(31px,4.2vw,64px) Georgia,serif;line-height:1}.card-center .court{font-size:.75em;line-height:.85}.playing-card.playable{transition:transform .16s,box-shadow .16s}.playing-card.playable:hover,.playing-card.playable:focus-visible{transform:translateY(-12px);box-shadow:0 13px 18px #00180caa;outline:2px solid var(--gold)}.playing-card.playable.illegal{filter:brightness(.73);opacity:.8}.playing-card.playable.illegal:hover{transform:none;outline:0;box-shadow:0 3px 8px #001d14aa}
.room-meta{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:12px;border-radius:8px}.room-meta>div{flex:1}.room-meta strong{display:block;font:24px Georgia,serif;letter-spacing:.08em;margin-top:4px}.room-meta .leave-button{border-color:#99584f;background:#4a211d}.right-rail>.muted{margin-top:-7px}.action-list{display:grid;gap:10px;margin:17px 0 24px}.action-list button,.marriage-actions button{border:1px solid #63735b;border-radius:6px;background:#263a2c;color:var(--cream);text-align:left;padding:11px 13px;font:15px Georgia,serif;min-height:47px}.action-list button:hover:not(:disabled),.marriage-actions button:hover{background:#36553a;border-color:var(--gold)}.action-list button span{display:inline-block;color:var(--gold-light);width:25px;font:21px Arial,sans-serif;vertical-align:middle}.marriage-actions h4{margin:0 0 10px}.marriage-actions button{width:100%;font-size:13px;margin-bottom:6px}.marriage-actions p{font-size:12px}.next-button{margin-top:20px}.small-rule{color:#a9baaa;font:13px/1.6 Georgia,serif}.rule-line{border-top:1px solid var(--line);display:flex;gap:15px;padding:14px 0}.rule-line span{font:17px Georgia,serif;color:var(--gold)}.rule-line p{font:14px/1.5 Georgia,serif;margin:0}.rules-link{display:inline-block;margin-top:13px;font:14px Georgia,serif;text-decoration:none;border-bottom:1px solid var(--gold)}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);background:radial-gradient(circle at 28% 65%,#12513a,#082b21 42%,#061b16 80%)}.auth-intro{padding:44px clamp(40px,6vw,110px);position:relative;overflow:hidden}.auth-intro:after{content:"";position:absolute;inset:15px;border:1px solid #d6b27137;border-radius:24px;pointer-events:none}.auth-brand{margin-bottom:clamp(100px,17vh,220px)}.auth-brand .brand-mark{font-size:45px}.auth-brand strong{font-size:40px}.auth-intro h1{font-size:clamp(48px,5vw,78px);max-width:690px;margin-bottom:24px}.auth-intro h1 em{font-style:normal;color:var(--gold-light)}.auth-intro p{color:#ceddca;font:20px/1.55 Georgia,serif;max-width:500px}.auth-deck{display:flex;position:absolute;bottom:45px;right:90px;transform:rotate(-7deg)}.auth-deck .playing-card{--card-w:110px;--card-h:160px;margin-left:-25px}.auth-deck .playing-card:nth-child(2){transform:rotate(13deg) translateY(-18px)}.auth-deck .playing-card:nth-child(3){transform:rotate(26deg)}.auth-panel{background:#091f1a;border-left:1px solid #526548;padding:clamp(30px,6vw,95px) clamp(28px,4vw,65px);display:flex;flex-direction:column;justify-content:center}.auth-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:50px}.auth-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:#9faf9d;padding:13px 7px;margin-right:24px;font:17px Georgia,serif}.auth-tabs button.selected{color:var(--gold-light);border-bottom-color:var(--gold)}.auth-panel h2{font-size:41px;margin-bottom:9px}.auth-panel>p{color:var(--muted);font:16px Georgia,serif}.auth-panel form{margin-top:28px}.auth-panel label{font-size:13px;margin-bottom:22px}.auth-panel input{font-size:16px;margin-top:10px;padding:14px}.auth-panel .gold-button{margin-top:8px}.auth-panel .auth-foot{font-size:13px;margin-top:37px;text-align:center;color:#91a392}
#toast{position:fixed;z-index:100;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#f0dfb6;color:#10281c;border-radius:7px;padding:12px 18px;font-size:14px;box-shadow:0 8px 30px #0006;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:1150px){.app-grid{grid-template-columns:225px minmax(420px,1fr) 225px}.rail{padding:22px 15px}.table-frame{padding:15px}.brand,.account{min-width:165px}.site-header{padding:0 17px}}
@media(max-width:950px){.app-grid{grid-template-columns:minmax(0,1fr) 260px;min-height:auto}.left-rail{grid-column:1 / -1;grid-row:2;border-top:1px solid var(--line);border-right:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.left-rail .rail-heading,.left-rail .rail-divider{display:none}.left-rail h3{grid-column:1 / -1;margin:0}.left-rail>.outline-button{margin:0}.left-rail .room-list{grid-column:1 / -1}.table-space{min-height:680px}.right-rail{grid-column:2;grid-row:1}.auth-shell{grid-template-columns:1fr 390px}.auth-intro{padding:35px}.auth-deck{right:35px}}
@media(max-width:700px){.site-header{height:65px;padding:0 13px}.brand{min-width:0}.brand-mark{font-size:28px}.brand strong{font-size:27px}.brand small{font-size:8px}.site-header nav{display:none}.account{min-width:0}.account>span:nth-child(2){display:none}.account button{font-size:11px;margin-left:0}.app-grid{display:flex;flex-direction:column}.table-space{order:1;min-height:590px}.right-rail{order:2;border-left:0;border-top:1px solid var(--line)}.left-rail{order:3;display:block}.left-rail .rail-heading,.left-rail .rail-divider{display:block}.left-rail .room-list{margin-bottom:14px}.table-frame{min-height:590px;grid-template-rows:auto auto minmax(195px,1fr) auto auto auto;padding:20px 15px}.opponent-hand{padding-top:8px}.player-strip{width:100%}.player-id strong{font-size:16px}.player-id small{font-size:11px}.scorebox>span{min-width:65px;padding:5px 8px}.scorebox b{font-size:18px}.scorebox small{font-size:10px}.table-middle{grid-template-columns:70px minmax(0,1fr) 70px;gap:2px}.trick-cards{gap:5px}.trick-cards .playing-card{--card-w:clamp(53px,15vw,75px);--card-h:calc(var(--card-w)*1.46)}.talon-zone .playing-card{--card-w:54px;--card-h:79px}.your-hand{gap:3px}.your-hand .playing-card{--card-w:clamp(53px,17vw,76px);--card-h:calc(var(--card-w)*1.46)}.card-corner{font-size:15px}.card-center{font-size:34px}.turn-banner strong{font-size:15px}.lobby-space,.waiting-space{min-height:600px}.lobby-inner h1,.waiting-inner h1{font-size:42px}.lobby-inner p,.waiting-inner p{font-size:17px}.lobby-choices{flex-direction:column;align-items:center}.lobby-choices button{width:210px}.auth-shell{grid-template-columns:1fr}.auth-intro{min-height:310px;padding:27px}.auth-brand{margin-bottom:43px}.auth-intro h1{font-size:46px}.auth-intro p{font-size:15px;max-width:360px}.auth-deck{display:none}.auth-panel{padding:25px;min-height:520px}.auth-tabs{margin-bottom:28px}}
@media(max-width:390px){.site-header .avatar{display:none}.table-middle{grid-template-columns:56px minmax(0,1fr) 56px}.talon-zone .playing-card{--card-w:47px;--card-h:69px}.your-hand .playing-card{--card-w:53px;--card-h:77px}.room-code{gap:8px;padding:11px}.room-code strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.language-button{align-self:center;margin-top:20px;background:none;border:0;color:var(--gold-light);border-bottom:1px solid var(--gold);padding:3px;font:14px Georgia,serif}
.capacity-picker{display:flex;align-items:center;gap:6px;margin:0 0 12px}.capacity-picker small{margin-right:auto;color:var(--muted);font-size:11px;letter-spacing:.1em}.capacity-picker button,.choice-grid button{border:1px solid #63735b;border-radius:5px;background:#263a2c;color:var(--cream);padding:9px 12px}.capacity-picker button.selected,.choice-grid button:hover{border-color:var(--gold);background:#5b4a2a;color:#fff0cf}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 22px}.choice-grid button{text-align:left;min-height:42px}
.table-frame{grid-template-rows:auto minmax(220px,1fr) auto auto auto;gap:10px}.opponents-row{display:flex;justify-content:center;gap:12px;width:100%;max-width:760px;flex-wrap:wrap}.opponent-seat{min-width:160px;max-width:220px;flex:1;text-align:center;background:#052b209c;border:1px solid #63816b;border-radius:8px;padding:8px 9px}.opponent-heading{display:flex;justify-content:center;gap:6px;align-items:baseline}.opponent-heading strong{font:17px Georgia,serif}.opponent-heading small{font-size:11px;color:var(--gold-light)}.opponent-scores{font-size:11px;color:#c5d7c4;margin:4px 0}.opponent-seat .opponent-hand{display:flex;align-items:center;justify-content:center;padding:2px 0}.opponent-seat .opponent-hand .playing-card{--card-w:26px;--card-h:38px;margin:0 -3px;border-radius:3px}.opponent-hand b{font-size:12px;margin-left:9px;color:var(--gold-light)}.trick-play{display:flex;flex-direction:column;align-items:center;gap:5px}.trick-play small{max-width:74px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:#dce7d1}.trick-cards .playing-card{--card-w:clamp(46px,5vw,78px);--card-h:calc(var(--card-w)*1.46)}.trick-cards{gap:5px}.table-middle{grid-template-columns:minmax(68px,1fr) minmax(160px,2.5fr) minmax(68px,1fr)}.your-hand .playing-card{--card-w:clamp(42px,4.2vw,74px);--card-h:calc(var(--card-w)*1.46)}.your-hand{gap:clamp(2px,.5vw,8px)}
@media(max-width:700px){.table-frame{grid-template-rows:auto minmax(190px,1fr) auto auto auto}.opponent-seat{min-width:95px;padding:6px 3px}.opponent-heading strong{font-size:12px}.opponent-scores{font-size:9px}.opponent-seat .opponent-hand .playing-card{--card-w:17px;--card-h:25px;margin:0 -4px}.opponent-hand b{font-size:10px;margin-left:5px}.table-middle{grid-template-columns:58px minmax(0,1fr) 58px}.trick-cards .playing-card{--card-w:clamp(34px,9vw,55px);--card-h:calc(var(--card-w)*1.46)}.trick-play small{font-size:8px;max-width:42px}.your-hand .playing-card{--card-w:clamp(36px,10vw,49px);--card-h:calc(var(--card-w)*1.46)}.your-hand{gap:2px}.your-hand .card-corner{font-size:11px}.your-hand .card-center{font-size:25px}.talon-zone .zone-label{font-size:8px}.talon-zone small{font-size:10px}.talon-zone .trump-suit{font-size:38px}}
.your-hand .card-center .court,.trick-cards .card-center .court{display:none}.your-hand .card-center{font-size:clamp(23px,2.7vw,37px)}.your-hand .card-corner{font-size:clamp(11px,1.2vw,17px)}.trick-cards .card-center{font-size:clamp(24px,3vw,40px)}.trick-cards .card-corner{font-size:clamp(10px,1.2vw,16px)}
.bid-actions{display:grid;gap:8px;margin:12px 0 20px}.bid-actions button{border:1px solid #63735b;border-radius:6px;background:#263a2c;color:var(--cream);text-align:left;padding:11px 13px;font:15px Georgia,serif;min-height:44px}.bid-actions button:hover{border-color:var(--gold);background:#36553a}
.suit-icon{width:1em;height:1em;fill:currentColor;display:inline-block;vertical-align:middle}.playing-card.face.leaf{color:#217249}.playing-card.face.heart{color:#b9332a}.playing-card.face.bell{color:#aa731b}.playing-card.face.acorn{color:#73482b}.trump-suit .suit-icon{color:var(--gold-light)}
.traditional-card{--paper:#fffdfa;--frame:#99968d;--figure-sheet:url('/decks/classic.jpg');overflow:hidden;background:var(--paper)!important;border:1px solid #d5d2c7!important;border-radius:5px;isolation:isolate}.traditional-card.deck-engraved{--paper:#eee2c7;--frame:#80725c;--figure-sheet:url('/decks/engraved.jpg')}.traditional-card.deck-folk{--paper:#fff8e9;--frame:#b4925c;--figure-sheet:url('/decks/folk.jpg')}.traditional-card .face-frame{position:absolute;inset:3%;border:1px solid var(--frame);border-radius:3px;z-index:3;pointer-events:none}.traditional-card .face-rank{position:absolute;top:3%;left:50%;transform:translateX(-50%);z-index:5;color:#21211d;background:var(--paper);padding:0 .1em;font:700 clamp(9px,1.2vw,16px)/1 Georgia,serif}.traditional-card .face-rank.reversed{top:auto;bottom:3%;transform:translateX(-50%) rotate(180deg)}.traditional-card .figure-face{position:absolute;inset:4% 4%;display:flex;flex-direction:column;overflow:hidden}.traditional-card .figure-half{display:block;width:100%;height:50%;background-image:var(--figure-sheet);background-repeat:no-repeat;background-size:400% 240%;background-position:var(--figure-x) 12%}.traditional-card .figure-half.mirrored{transform:rotate(180deg);border-top:1px solid #35312c}.traditional-card .face-suit{position:absolute;z-index:4;font-size:calc(var(--card-w)*.21);line-height:1;filter:drop-shadow(0 1px 1px #fff)}.traditional-card .upper-left{top:7%;left:7%}.traditional-card .upper-right{top:7%;right:7%}.traditional-card .lower-left{bottom:7%;left:7%;transform:rotate(180deg)}.traditional-card .lower-right{bottom:7%;right:7%;transform:rotate(180deg)}.traditional-card .pip-field{position:absolute;inset:17% 5%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(5,1fr);align-items:center;justify-items:center;z-index:2}.traditional-card .face-pip{font-size:calc(var(--card-w)*.23);line-height:1}.traditional-card .face-pip.reversed{transform:rotate(180deg)}.traditional-card .pip-divider{position:absolute;left:38%;width:24%;top:50%;border-top:1px solid var(--frame);opacity:.7}.traditional-card.deck-engraved{filter:saturate(.82)}.traditional-card.deck-folk{filter:saturate(1.12)}.traditional-card.playable.illegal{filter:brightness(.78) saturate(.6)}.traditional-card.playable.illegal:hover{filter:brightness(.78) saturate(.6)}
.settings-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#020b08cf;padding:16px}.settings-dialog{width:min(920px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#10291f;border:1px solid #a98953;border-radius:14px;box-shadow:0 24px 70px #000b;padding:26px}.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-heading h2{margin-bottom:8px}.settings-heading p{font:15px Georgia,serif;color:#c8d5c4;margin-bottom:22px}.settings-heading button{border:1px solid #6e8268;background:#234733;color:var(--cream);width:36px;height:36px;border-radius:50%;font-size:26px;line-height:1;flex:none}.deck-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.deck-option{border:1px solid #60745f;background:#092219;color:var(--cream);padding:15px 10px;border-radius:9px;text-align:center;min-height:210px}.deck-option.selected{border:2px solid var(--gold);background:#213e2c}.deck-option:hover{border-color:var(--gold-light)}.deck-option strong,.deck-option small{display:block}.deck-option strong{font:20px Georgia,serif;margin:9px 0 4px}.deck-option small{color:#bdd0be;font-size:12px}.deck-sample{display:flex;justify-content:center;align-items:center;height:130px}.deck-sample .playing-card{--card-w:72px;--card-h:106px;margin:0 -8px;box-shadow:0 5px 9px #0008}.deck-sample .playing-card:nth-child(2){transform:translateY(-8px);z-index:2}.deck-sample .playing-card:nth-child(3){transform:rotate(5deg)}.deck-sample .traditional-card .face-rank{font-size:12px}
@media(max-width:700px){.deck-options{grid-template-columns:1fr}.deck-option{min-height:145px;display:flex;align-items:center;gap:18px;text-align:left}.deck-sample{height:116px;min-width:165px}.deck-sample .playing-card{--card-w:55px;--card-h:81px}.deck-option strong{font-size:17px}.settings-dialog{padding:18px}.settings-heading h2{font-size:25px}.settings-heading p{font-size:13px}.traditional-card .face-rank{font-size:clamp(8px,2vw,12px)}}
@media(max-width:390px){.deck-option{gap:9px}.deck-sample{min-width:145px}.deck-sample .playing-card{--card-w:50px;--card-h:74px}}
.traditional-card .middle-left{top:36%;left:7%}.traditional-card .middle-right{bottom:36%;right:7%;transform:rotate(180deg)}.deck-sample .playing-card:nth-child(4){transform:rotate(-5deg)}
.trick-cards .playing-card{--card-w:clamp(60px,6.4vw,106px);--card-h:calc(var(--card-w)*1.46)}
.your-hand .playing-card{--card-w:clamp(54px,5.5vw,90px);--card-h:calc(var(--card-w)*1.46)}
@media(max-width:700px){
  .trick-cards .playing-card{--card-w:clamp(39px,10.5vw,68px)}
  .your-hand .playing-card{--card-w:clamp(38px,11.5vw,72px)}
  .your-hand .playing-card + .playing-card{margin-left:-7px}
}
.turn-rules{margin-left:auto;flex:none;width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;background:#163d2b;color:var(--gold-light);font:20px Georgia,serif}
.rules-link{display:inline-block;margin-top:13px;padding:0;border:0;border-bottom:1px solid var(--gold);background:none;color:var(--gold-light);font:14px Georgia,serif;text-align:left}
.rules-dialog{width:min(880px,100%)}
.rules-section{margin:8px 0 25px}.rules-section h3,.rules-detail-grid h3{color:var(--gold-light);margin:0 0 8px}.rules-section>p{color:#c7d5c6;font:14px/1.5 Georgia,serif;margin-bottom:16px}
.rules-rank-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.rule-rank{display:flex;flex-direction:column;align-items:center;gap:7px;padding:11px 5px;background:#092219;border:1px solid #56715b;border-radius:7px;text-align:center}.rule-rank .playing-card{--card-w:70px;--card-h:102px}.rule-rank strong{font:15px Georgia,serif;min-height:34px}.rule-rank>span:last-child{color:#c8d8c2;font-size:12px}.rule-rank>span:last-child b{color:var(--gold-light);font:24px Georgia,serif}
.rules-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rules-flow>div,.rules-detail-grid>section{padding:15px;background:#17382a;border:1px solid #58735d;border-radius:8px}.rules-flow-icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:12px;border-radius:50%;background:#092c20;color:var(--gold-light);font-size:22px}.rules-flow-icon .suit-icon{width:23px;height:23px}.rules-flow strong{display:block;color:var(--gold-light);font:17px Georgia,serif}.rules-flow p,.rules-detail-grid p{color:#d0ddcf;font:14px/1.5 Georgia,serif;margin:8px 0 0}.rules-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rules-source{margin:23px 0 0;color:#afc2b0;font:12px/1.5 Georgia,serif}
@media(max-width:700px){.rules-rank-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rule-rank .playing-card{--card-w:60px;--card-h:88px}.rules-flow,.rules-detail-grid{grid-template-columns:1fr}.rules-dialog{padding:18px}.rules-section{margin-bottom:20px}.rules-flow>div{padding:12px}.rules-flow-icon{float:left;margin:0 12px 3px 0}.rules-flow p{clear:both}}
@media(max-width:360px){.rules-rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.site-header nav button.active-nav{color:var(--gold-light);height:100%;border-bottom:2px solid var(--gold)}
.lobby-screen{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);min-height:calc(100vh - 76px)}
.lobby-hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:55px 35px;text-align:center;background:radial-gradient(ellipse at 50% 48%,#13543c 0%,#0a412e 54%,#052c21 100%);box-shadow:inset 0 0 0 12px #3d3021,inset 0 0 0 15px #9b7651,inset 0 0 50px 24px #031910}
.lobby-hero:before{content:"";position:absolute;inset:16px;border:1px solid rgba(234,194,127,.23);border-radius:22px;pointer-events:none}
.lobby-hero h1,.lobby-hero p,.lobby-hero button,.lobby-hero .lobby-preview,.lobby-hero .lobby-line{position:relative;z-index:1}
.lobby-hero p{max-width:530px;color:#d1dccb;font:19px/1.5 Georgia,serif}.lobby-hero .gold-button{margin-bottom:10px}
.lobby-controls{padding:30px 28px;background:#092119;border-left:1px solid var(--line)}.lobby-controls h3{margin:0 0 14px}.lobby-controls>.outline-button{margin-top:10px}
.table-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,285px);min-height:calc(100vh - 76px)}
.table-layout .right-rail{min-width:0}.turn-actions{display:none}
@media(max-width:950px){.lobby-screen{grid-template-columns:minmax(0,1fr) 320px}.lobby-controls{padding:24px 18px}.table-layout{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:700px){
  .site-header{height:auto;min-height:102px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand account" "nav nav";padding:0 12px;gap:0}
  .site-header .brand{grid-area:brand}.site-header .account{grid-area:account;gap:0}.site-header .avatar,.site-header .account>span:nth-child(2){display:none}
  .site-header .account button{margin-left:0;padding:6px 0 6px 8px;font-size:11px}
  .site-header nav{grid-area:nav;display:flex;justify-content:center;align-items:stretch;gap:28px;height:39px;border-top:1px solid var(--line);font-size:15px}
  .site-header nav button{font-size:15px;min-height:38px}
  .lobby-screen{grid-template-columns:1fr}.lobby-hero{min-height:270px;padding:32px 24px 24px}.lobby-hero .table-ornament{margin:0 0 8px;font-size:31px}.lobby-hero h1{font-size:36px;margin-bottom:10px}.lobby-hero p{font-size:15px;margin-bottom:14px}.lobby-hero .lobby-preview{display:none}.lobby-hero .lobby-line{font-size:11px}.lobby-controls{border-left:0;border-top:1px solid var(--line);padding:25px 20px}
  .table-layout{display:flex;flex-direction:column}.table-layout .table-space{order:1;min-height:calc(100svh - 102px)}.table-layout .right-rail{order:2;border-left:0;border-top:1px solid var(--line);padding:20px}
  .table-layout.needs-action .right-rail{order:0}.table-layout.needs-action .table-space{order:1}
  .table-layout.needs-action .right-rail{padding:8px 12px}.table-layout.needs-action .right-rail .rail-divider,.table-layout.needs-action .right-rail h3,.table-layout.needs-action .right-rail>.muted,.table-layout.needs-action .right-rail>.small-rule,.table-layout.needs-action .right-rail>.rules-link{display:none}
  .table-layout.needs-action .room-meta{margin-bottom:7px;padding:5px 7px}.table-layout.needs-action .room-meta small{display:none}.table-layout.needs-action .room-meta strong{margin:0;font-size:17px}
  .table-layout.needs-action .bid-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.table-layout.needs-action .bid-actions button{min-height:42px;padding:7px 5px;text-align:center;font-size:12px}
  .table-layout.needs-action .choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.table-layout.needs-action .choice-grid button{min-height:42px;padding:6px;font-size:12px}
  .table-layout.needs-action .next-button{margin:0}.table-layout.needs-action .table-space,.table-layout.needs-action .table-frame{min-height:620px}
  .table-frame{min-height:calc(100svh - 102px);grid-template-rows:auto minmax(170px,1fr) auto auto auto;gap:8px;padding:14px 10px}
  .opponents-row{flex-wrap:nowrap;gap:5px}.opponent-seat{min-width:0;max-width:none;flex:1;padding:6px 3px}.opponent-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.opponent-heading small{font-size:9px}.opponent-scores{font-size:9px}
  .table-middle{grid-template-columns:45px minmax(0,1fr) 45px;gap:4px}.talon-zone .playing-card{--card-w:44px;--card-h:64px}.talon-zone small{font-size:9px}.zone-label{font-size:8px;letter-spacing:.04em}.trick-cards{gap:2px}.trick-cards .playing-card{--card-w:clamp(42px,13vw,56px)}.trick-play small{max-width:50px;font-size:9px}
  .your-hand{gap:0;padding:8px 0 4px}.your-hand .playing-card{--card-w:clamp(45px,14vw,62px)}.your-hand .playing-card+.playing-card{margin-left:-10px}.your-hand .face-pip{font-size:calc(var(--card-w)*.25)}
  .turn-banner{padding:8px;gap:7px}.turn-banner strong{font-size:13px}.turn-banner small{font-size:10px}.turn-actions{display:block;margin-left:auto;flex:none;padding:7px;border:1px solid var(--gold);border-radius:5px;background:#163d2b;color:var(--gold-light);font-size:11px}.turn-rules{margin-left:0}
  .right-rail .rail-divider{margin:14px 0}.right-rail .room-meta{padding:8px}.right-rail .room-meta strong{font-size:18px}.right-rail .room-meta button{padding:7px}.right-rail .bid-actions{margin:10px 0}.right-rail .small-rule:last-of-type{margin-bottom:0}
}
@media(max-width:390px){.site-header .brand strong{font-size:25px}.site-header .brand-mark{font-size:26px}.site-header .account button{font-size:10px;padding-left:6px}.table-frame{padding:12px 8px}.table-middle{grid-template-columns:40px minmax(0,1fr) 40px}.talon-zone .playing-card{--card-w:39px;--card-h:57px}.your-hand .playing-card{--card-w:clamp(43px,14vw,54px)}.your-hand .playing-card+.playing-card{margin-left:-10px}}
