@font-face{font-family:Pixel;src:url(/fonts/PressStart2P-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:Terminal;src:url(/fonts/VT323-Regular.ttf) format("truetype");font-display:swap}:root{font-family:Terminal,monospace;color:#eee9da;background:#153c36;font-synthesis:none;font-size:21px;--cream:#eee9da;--gold:#efc75a;--red:#e75c50;--blue:#438db3;--dark:#122923;--pixel:Pixel,monospace}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;filter:saturate(.5);opacity:.5}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}input:focus,select:focus{outline:2px solid var(--gold);outline-offset:3px}button{color:inherit}button img{pointer-events:none}h1,h2,h3,p{margin:0}a{color:var(--gold)}.app{min-height:100dvh;isolation:isolate;overflow:hidden}.felt-background{position:fixed;top:-40%;right:-40%;bottom:-40%;left:-40%;z-index:-2;background:repeating-conic-gradient(from 45deg at 50% 55%,#1b5145,#1b5145 12deg,#194d43 12deg,#194d43 25deg,#204f44 25deg,#204f44 37deg,#18483f 37deg,#18483f 49deg);filter:blur(22px);animation:felt-turn 160s linear infinite;opacity:.8}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 63% 42%,transparent 5%,#0b211c7d 100%)}.crt{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background:repeating-linear-gradient(0deg,#00000014 0px,#00000014 1px,transparent 1px,transparent 4px);opacity:.35;box-shadow:inset 0 0 100px #00000038}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;margin:0 4.5%;border-bottom:1px solid #c7e5cc20;position:relative;z-index:2}.wordmark{font-family:var(--pixel);font-size:17px;letter-spacing:-1px;background:transparent;border:0;padding:10px 0;text-shadow:2px 3px #112b25}.wordmark span{color:var(--gold);font-family:Terminal;font-size:31px;vertical-align:-3px;margin:0 -3px}.header-right{display:flex;align-items:center;gap:16px}.connection{font-size:16px;letter-spacing:2px;color:#b2c8b5;display:flex;align-items:center;gap:8px}.connection i{width:6px;height:6px;background:#b8a67e;box-shadow:0 0 8px #b8a67e66}.connection.online i{background:#8ac498;box-shadow:0 0 8px #8ac49866}.icon-button{border:1px solid #a5cbb13b;border-radius:3px;background:#13312980;width:32px;height:32px;font-size:24px;line-height:1;padding:0;box-shadow:0 2px #0d251d}.icon-button:hover{background:#306052}.home{max-width:1320px;margin:auto;padding:72px 5% 0;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;min-height:calc(100dvh - 78px);align-content:center}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:16px;color:#b7cfc0;letter-spacing:2px;display:flex;align-items:center;gap:10px}.little-star{color:var(--gold);font-size:26px}.hero-copy h1{font-family:var(--pixel);font-size:clamp(36px,5.1vw,71px);letter-spacing:-4px;margin:27px 0 36px;position:relative;text-shadow:0 6px #17342b,3px 8px #0b241d;line-height:1.2;transform:rotate(-2deg);width:max-content}.title-shadow{position:absolute;top:5px;right:0;bottom:0;left:0;z-index:-1;color:#103025;filter:blur(1px)}.hero-subtitle{font-size:40px;line-height:1.13;letter-spacing:-.5px}.hero-subtitle span{color:var(--gold)}.hero-description{font-family:Terminal;font-size:22px;line-height:1.3;color:#b9cabc;max-width:385px;margin:20px 0 29px}.name-label{font-size:14px;letter-spacing:2px;color:#b6c9b9}.name-input{margin-left:18px;width:200px;border:0;border-bottom:1px solid #afc3b16b;background:transparent;border-radius:0;color:var(--cream);padding:6px 5px;outline:none;font-size:21px}.name-input::placeholder{color:#91a795}.home-buttons{display:flex;flex-direction:column;gap:14px;margin-top:25px;max-width:370px}.big-button,.small-button{border:0;border-radius:5px;background:#415d50;box-shadow:0 5px #102a22,0 7px #0c20193d;transition:transform .12s,box-shadow .12s;position:relative}.big-button:hover:not(:disabled),.small-button:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 7px #102a22,0 9px #0c20193d}.big-button:active:not(:disabled),.small-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #102a22}.big-button{min-height:78px;text-align:left;padding:20px 22px;display:flex;flex-direction:column;justify-content:center}.big-button>span{font-family:var(--pixel);font-size:12px;line-height:1.7;letter-spacing:-.5px}.big-button small{font-size:15px;letter-spacing:1px;opacity:.75;margin-top:5px}.big-button>b{position:absolute;right:23px;top:50%;transform:translateY(-50%);font-size:29px;font-weight:400}.red-button{background:#de5c50;box-shadow:0 5px #963d35,0 7px #0c201943}.blue-button{background:#3e83a3;box-shadow:0 5px #285569,0 7px #0c201943}.red-button:hover:not(:disabled){box-shadow:0 7px #963d35}.blue-button:hover:not(:disabled){box-shadow:0 7px #285569}.secondary-actions{display:flex;align-items:center;gap:27px;margin-top:8px}.small-button{font-size:19px;letter-spacing:.5px;padding:12px 18px;min-height:43px;white-space:nowrap}.text-button{font-size:18px;background:transparent;border:0;padding:10px 0;color:#c2d0bf;white-space:nowrap}.text-button span{color:var(--gold);margin-left:7px}.text-button:hover{color:var(--cream)}.hero-art{position:relative;min-height:530px;align-self:center;transform:translate(15px,-10px)}.hero-card{position:absolute;width:190px;aspect-ratio:122/190;filter:drop-shadow(0 15px 10px #061e1880);border-radius:6px;overflow:hidden;image-rendering:pixelated;transition:transform .4s}.hero-card img{width:100%;height:100%;display:block}.hero-card-left{left:8%;top:20%;transform:rotate(-22deg);animation:float-left 6s ease-in-out infinite}.hero-card-right{right:1%;top:18%;transform:rotate(19deg);animation:float-right 7s ease-in-out infinite}.hero-card-center{left:33%;top:10%;transform:rotate(3deg);width:214px;animation:float-center 5s ease-in-out infinite}.magic-orbit{position:absolute;width:385px;height:385px;border:1px solid #bdd7b518;border-radius:50%;top:2%;left:14%;box-shadow:0 0 0 28px #bdd7b505,0 0 0 59px #bdd7b505}.spark{position:absolute;color:var(--gold);text-shadow:0 0 18px #edd17460;animation:sparkle 3.5s infinite}.spark-one{top:5%;right:0;font-size:52px}.spark-two{top:68%;left:3%;font-size:32px;animation-delay:1s}.spark-three{top:1%;left:15%;font-size:35px;animation-delay:2s}.art-caption{position:absolute;top:79%;left:20%;font-size:17px;letter-spacing:3px;line-height:1.7;transform:rotate(-3deg);color:#a7bba8;text-align:center}.art-caption span{color:var(--gold);font-size:23px}.home-footer{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:54px 0 28px;color:#92ab99;font-size:14px;letter-spacing:1.4px}.home-footer i{font-style:normal;color:var(--gold);padding:0 14px}.edition{font-size:12px}.pixel-panel{background:#18362fd9;border:2px solid #67806a52;border-radius:8px;box-shadow:0 5px #10271f,inset 0 1px #d9e3c510}.section-label{font-size:14px;letter-spacing:2px;color:#aec3ae;display:flex;align-items:center;justify-content:space-between}.muted{color:#b3c4b5;font-size:23px;line-height:1.3}.gold{color:var(--gold)}.red-text{color:#ee8471}.fine-print{font-size:17px;color:#a0b6a4;line-height:1.35}.toast{position:fixed;z-index:120;top:86px;left:50%;transform:translate(-50%);padding:16px 45px 16px 22px;background:#733c32;border:2px solid #dc8570;box-shadow:0 5px #1c2923;border-radius:5px;font-size:22px;width:max-content;max-width:calc(100% - 30px)}.toast button{position:absolute;right:12px;top:14px;background:transparent;border:0;font-size:20px}.reconnect-banner{background:#b68d35;color:#172e22;text-align:center;position:relative;z-index:3;padding:8px}.lobby{max-width:970px;margin:0 auto;padding:58px 32px}.lobby-title{margin-bottom:36px}.lobby-title h1{font-family:var(--pixel);font-size:23px;margin:21px 0;line-height:1.5}.lobby-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:28px}.lobby-seats{padding:24px}.lobby-seat{display:flex;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid #a0bba123}.lobby-seat strong{font-weight:400;font-size:27px}.lobby-seat small{font-size:14px;color:var(--gold)}.avatar{display:grid;place-items:center;width:35px;height:35px;background:#516b55;border-radius:4px;box-shadow:0 3px #263c2d;color:#e2dca8;font-size:25px}.avatar.bot{background:#42626f}.seat-tag{margin-left:auto;font-size:14px;letter-spacing:1px;color:#b1c5aa}.empty-seat{padding-top:23px;color:#a0b7a5;font-size:19px}.lobby-options{display:flex;flex-direction:column;gap:19px}.invite-panel{padding:22px;text-align:center}.invite-panel .section-label{justify-content:center}.room-code{display:block;font-family:var(--pixel);font-size:27px;color:var(--gold);letter-spacing:4px;margin:24px 0}.invite-panel .small-button{width:100%}.setup-panel{padding:22px}.setup-panel label{display:block;font-size:15px;letter-spacing:1px;margin-bottom:17px}.setup-panel select{display:block;width:100%;margin-top:9px;background:#0f2822;color:var(--cream);border:1px solid #6b846e;padding:9px;border-radius:3px;font-size:22px}.start-button{min-height:65px}.game-layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:195px 1fr;gap:28px;padding:28px 4.5% 15px;min-height:calc(100dvh - 78px)}.game-sidebar{display:flex;flex-direction:column;gap:15px;padding-top:5px}.round-panel{text-align:center;padding:18px 15px}.round-panel .section-label,.prediction-panel .section-label{justify-content:center}.round-number{font-family:var(--pixel);font-size:37px;line-height:1.4;margin:13px 0 8px;color:var(--gold);text-shadow:2px 3px #0e271f}.round-number span{font-family:Terminal;font-size:29px;color:#8aa28d;margin-left:5px}.round-detail{font-size:13px;letter-spacing:1px;color:#b3c2ae}.prediction-panel{padding:18px 12px;text-align:center}.prediction-number{font-family:var(--pixel);font-size:25px;margin:18px 0 13px;line-height:1.5}.prediction-number i{font-family:Terminal;font-size:34px;font-style:normal;color:#8da28f;margin:0 12px}.prediction-meter{display:flex;gap:4px;justify-content:center;margin-top:16px}.prediction-meter i{height:5px;flex:1;max-width:22px;background:#365444;border-radius:1px}.prediction-meter .filled{background:var(--gold)}.score-panel{padding:16px;text-align:center}.score-panel .section-label{justify-content:center}.score-panel strong{font-family:var(--pixel);font-size:27px;display:block;margin:13px 0 5px;line-height:1.5}.score-button{display:flex;align-items:center;justify-content:space-between;font-size:18px;padding:10px 14px}.sidebar-note{margin-top:10px;text-align:center;display:grid;gap:8px}.sidebar-note span{font-size:12px;color:#8fa58f;letter-spacing:1px}.sidebar-note b{font-weight:400;font-size:18px;color:#c6c7a2;margin-bottom:9px}.game-table{min-width:0;display:flex;flex-direction:column}.opponents{display:flex;justify-content:center;gap:14px;min-height:115px}.opponent{background:#14332bc7;border:2px solid #71977344;box-shadow:0 4px #0d251d;flex:1;max-width:235px;min-width:0;padding:11px 13px;border-radius:6px;position:relative;transition:border-color .3s,transform .3s}.opponent.active-player{border-color:var(--gold);box-shadow:0 4px #715c26,0 0 20px #ecd57412;transform:translateY(3px)}.opponent.won-trick{border-color:#c4cf74}.opponent-heading{display:flex;align-items:center;gap:9px}.opponent-heading strong{font-weight:400;font-size:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-heading small{display:block;font-size:12px;color:#96b096;letter-spacing:1px}.opponent-score{margin-left:auto;color:#e2dcb2;font-size:24px}.opponent-stats{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-size:12px;color:#95b096;letter-spacing:.5px}.opponent-stats b{font-size:21px;line-height:.8;margin-left:2px;color:#e5ddc1;font-weight:400}.mini-hand{position:absolute;top:calc(100% - 2px);height:34px;display:flex;justify-content:center;left:10px;right:10px;pointer-events:none}.mini-hand img{width:23px;height:36px;object-fit:cover;margin-left:-9px;border-radius:1px;filter:brightness(.8);transform-origin:50% 100%}.table-center{display:flex;align-items:center;flex:1;min-height:310px;position:relative;padding-top:22px}.trump-area{width:100px;flex-shrink:0;text-align:center;display:flex;align-items:center;flex-direction:column;gap:10px;margin-right:16px}.trump-area .section-label{font-size:12px}.playing-card{display:block;aspect-ratio:122/190;border:0;padding:0;background:#e0d8bd;border-radius:5px;position:relative;box-shadow:0 4px #0d221c,0 7px 12px #061c174d;overflow:hidden;width:100px;flex-shrink:0}.playing-card img{width:100%;height:100%;display:block;object-fit:fill;image-rendering:pixelated;-webkit-user-select:none;user-select:none}.trump-card{width:66px;transform:rotate(-7deg)}.trump-name{font-size:17px;letter-spacing:1px;color:#bdd0b8;white-space:nowrap}.red{color:#ed806d}.yellow{color:#edcd6b}.green{color:#8ab886}.blue{color:#81b2d3}.trump-area small{color:#93ac96;font-size:14px}.trick-area{position:relative;flex:1;min-width:0;min-height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column}.table-watermark{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--pixel);font-size:130px;color:#d7e0b80c;pointer-events:none;transform:rotate(-8deg);z-index:-1}.table-watermark span{font-family:Terminal;font-size:85px;margin-left:-30px;margin-top:30px}.trick-label{font-size:13px;letter-spacing:3px;color:#8fa993;position:absolute;top:0;left:0;right:0;text-align:center}.played-cards{display:flex;gap:15px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:25px}.played-card{position:relative;transform:rotate(var(--card-rotation));animation:card-play .35s cubic-bezier(.15,.8,.3,1);text-align:center}.played-card .playing-card{width:96px}.played-card>span{display:block;font-size:16px;margin-top:11px;color:#c8d4be;text-shadow:0 1px #0b281e}.winning-card .playing-card{box-shadow:0 0 0 3px var(--gold),0 0 22px #ead57766;transform:translateY(-5px);transition:all .3s}.winner-label{color:var(--gold);font-size:24px;margin-top:18px;animation:winner-pop .4s ease-out;text-shadow:1px 2px #25381f}.empty-trick{text-align:center;color:#8faa94;margin-top:30px}.empty-trick>span{font-size:43px;opacity:.5}.empty-trick p{font-size:23px;margin-top:10px}.action-bar{background:#102b25a6;border:1px solid #99b18b30;border-radius:6px;min-height:84px;padding:15px 20px;margin:8px 0 10px;box-shadow:0 3px #112a22}.action-copy{display:flex;flex-direction:column;gap:4px}.action-kicker{font-size:13px;letter-spacing:2px;color:var(--gold)}.action-copy strong,.trump-picker strong{font-size:25px;font-weight:400}.action-copy small{font-size:15px;color:#9db49e}.bid-controls,.play-controls,.trump-picker{display:flex;align-items:center;gap:20px;justify-content:space-between}.bid-stepper{display:flex;align-items:center;gap:15px}.bid-stepper button{border:0;background:#46634d;border-radius:3px;width:30px;height:30px;font-size:27px;box-shadow:0 3px #213b29;line-height:1}.bid-stepper span{font-family:var(--pixel);font-size:23px;min-width:35px;text-align:center}.waiting-prompt{height:52px;display:flex;align-items:center;justify-content:center;gap:15px;font-size:25px;color:#c4d1bc;flex-wrap:wrap}.waiting-prompt small{font-size:15px;color:#91aa94}.thinking-dots{letter-spacing:3px;color:var(--gold);animation:sparkle 1.5s infinite}.trump-picker>div:first-child{display:flex;flex-direction:column;gap:5px}.suit-buttons{display:flex;gap:7px}.suit-button{padding:10px;font-size:21px;border:1px solid currentColor;background:#234535}.hand-area{margin-top:auto;padding:7px 0 0}.hand-caption{display:flex;align-items:center;justify-content:space-between;color:#d0d2b3;font-size:18px;margin:0 8px 3px}.hand-caption b{font-size:12px;letter-spacing:2px;margin-left:12px;font-weight:400;color:#8caa91}.hand-caption>span:last-child{font-size:13px;letter-spacing:1px;color:#93ab92}.hand{display:flex;align-items:flex-end;justify-content:center;min-height:183px;padding:27px 22px 10px;position:relative}.hand-card{width:96px;margin-left:clamp(-52px,calc((950px - 115px * var(--hand-size)) / var(--hand-size)),12px);transform:rotate(var(--fan-angle));transform-origin:50% 130%;transition:transform .16s,filter .16s;z-index:var(--card-order);animation:card-deal .3s backwards;animation-delay:calc(var(--card-order) * 35ms);border-radius:5px}.hand-card:first-child{margin-left:0}.hand-card:hover:not(:disabled){transform:translateY(-14px) rotate(0);z-index:30;box-shadow:0 0 0 2px #d9e1b0,0 8px 15px #09231c80}.hand-card.selected,.hand-card.selected:hover{transform:translateY(-25px) rotate(0);z-index:31;box-shadow:0 0 0 3px var(--gold),0 10px 22px #08221980}.hand-card.unplayable{filter:brightness(.5) saturate(.65);opacity:1}.empty-hand{color:#7f9d86;font-size:18px;letter-spacing:2px;align-self:center}.empty-hand span{color:#b6bd78;margin-left:12px}.large-hand{overflow-x:auto;justify-content:flex-start}.large-hand .hand-card{margin-left:-38px;width:84px}.large-hand .hand-card:first-child{margin-left:0}.large-hand:has(.hand-card:nth-child(15)){min-height:167px}.large-hand:has(.hand-card:nth-child(15)) .hand-card{width:78px;margin-left:-43px}.round-results{position:absolute;top:8px;bottom:5px;left:0;right:0;z-index:2;background:#1a3c32f5;padding:20px 24px;max-width:640px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center;box-shadow:0 5px #10271f,0 0 60px #112a21ab}.result-kicker{font-size:12px;letter-spacing:2px;color:#aac099;margin-bottom:12px}.round-results h2{font-family:var(--pixel);font-size:14px;line-height:1.7;margin-bottom:15px;color:var(--gold)}.results-list{display:grid;gap:5px;margin-bottom:15px}.results-list>div{display:grid;grid-template-columns:1fr 75px 50px 45px;align-items:center;font-size:22px;padding:3px 8px;text-align:left}.results-list small{font-size:15px;color:#9eb49b}.results-list b{font-weight:400;text-align:right}.results-list strong{text-align:right;font-weight:400}.results-list .self-result{background:#a6c39515;border-radius:3px}.round-results .small-button{align-self:center}.round-results .text-button{font-size:15px;align-self:center;padding-bottom:0}.modal-shade{position:fixed;top:0;right:0;bottom:0;left:0;background:#081c16bd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:110;display:flex;align-items:center;justify-content:center;padding:22px}.modal{background:#1c3b31;width:100%;max-width:550px;max-height:calc(100dvh - 44px);overflow:auto;padding:26px 30px;border-color:#789174;box-shadow:0 7px #0b2019,0 20px 90px #00120a99}.modal.wide{max-width:820px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #8ca37c40;padding-bottom:19px;margin-bottom:23px}.modal-heading h2{font-family:var(--pixel);font-size:14px;line-height:1.5;letter-spacing:-.5px;color:#e5e2c5}.rules .rule-intro{font-size:27px;line-height:1.2;margin-bottom:23px}.rule-row{display:flex;gap:17px;margin-bottom:20px}.rule-row>b{background:#516745;border-radius:4px;color:#d7d7a4;align-self:flex-start;padding:5px 7px;font-size:21px;font-weight:400}.rule-row h3{font-size:24px;font-weight:400;color:#e0ddb4;margin-bottom:4px}.rule-row p{font-size:21px;color:#bdccba;line-height:1.2}.text-link{display:inline-block;font-size:18px;margin-top:16px}.form-label{display:block;font-size:15px;letter-spacing:2px;margin-top:22px}.form-label input{width:100%;display:block;background:#102921;color:#eee4c5;border:1px solid #6d876e;border-radius:3px;padding:12px;font-size:25px;letter-spacing:0;margin-top:10px}.form-label .code-input{font-family:var(--pixel);font-size:20px;letter-spacing:7px;padding:18px 14px}.modal form .big-button{width:100%;margin-top:26px;min-height:63px}.menu-settings{display:flex;flex-direction:column;gap:18px}.menu-settings>label{display:flex;align-items:center;justify-content:space-between;font-size:24px}.toggle{background:#7b5841;color:#ebd2b8;border:0;border-radius:3px;box-shadow:0 3px #493324;padding:5px 13px;font-size:18px;min-width:63px}.toggle.on{background:#66835d;box-shadow:0 3px #3d5136;color:#e4e6bc}.scores-scroll{overflow:auto}.score-table{border-collapse:collapse;width:100%;font-size:23px;text-align:center}.score-table th{font-weight:400;color:#bacbad;padding:8px 14px;font-size:20px;border-bottom:1px solid #9ab08040}.score-table th:first-child,.score-table td:first-child{padding-left:0;text-align:left}.score-table td{padding:12px 14px;border-bottom:1px solid #9ab08020}.score-table td strong{font-weight:400}.score-table small{display:block;font-size:14px;color:#9bb49b}.total-row td{color:var(--gold);font-size:26px;border-bottom:0;padding-top:20px}.reduced-motion *,.reduced-motion *:before{animation:none!important;transition:none!important}@keyframes felt-turn{to{transform:rotate(360deg)}}@keyframes float-center{50%{transform:translateY(-13px) rotate(5deg)}}@keyframes float-left{50%{transform:translateY(7px) rotate(-25deg)}}@keyframes float-right{50%{transform:translateY(-10px) rotate(22deg)}}@keyframes sparkle{50%{opacity:.45}}@keyframes card-play{0%{opacity:0;transform:translateY(65px) rotate(0) scale(.85)}to{opacity:1;transform:rotate(var(--card-rotation))}}@keyframes card-deal{0%{opacity:0;translate:0 35px}to{opacity:1;translate:0 0}}@keyframes winner-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media(min-width:1450px){.game-layout{gap:35px;grid-template-columns:210px 1fr}.table-center{min-height:360px}.hand-card{width:112px}.hand{min-height:211px}.played-card .playing-card{width:112px}.trump-card{width:78px}}@media(max-width:1100px){.home{padding-top:45px}.hero-card{width:160px}.hero-card-center{width:181px;left:31%}.hero-art{min-height:470px}.hero-card-left{left:0}.hero-card-right{right:0}.magic-orbit{width:310px;height:310px;left:5%}.hero-copy h1{font-size:49px}.home-footer .edition{display:none}.game-layout{grid-template-columns:155px 1fr;gap:18px;padding-left:3%;padding-right:3%}.opponent{padding:9px}.opponent-heading{gap:6px}.opponent-heading strong{font-size:21px}.opponent .avatar{width:27px;height:30px}.opponent-stats{gap:3px;letter-spacing:0;font-size:11px}.opponent-stats b{font-size:19px}.trump-area{width:80px;margin-right:8px}.played-cards{gap:10px}.played-card .playing-card{width:80px}.action-copy strong{font-size:22px}.bid-controls{gap:13px}.action-bar{padding:13px}.hand-card{width:84px;margin-left:clamp(-50px,calc((650px - 100px * var(--hand-size)) / var(--hand-size)),8px)}.hand{min-height:163px}.opponents{gap:8px}.game-sidebar .section-label{font-size:12px}.round-detail{font-size:11px}.suit-buttons{gap:5px}.suit-button{font-size:18px;padding:8px}.trump-picker strong{font-size:21px}}@media(max-width:760px){.topbar{height:62px;margin:0 5%}.wordmark{font-size:13px}.wordmark span{font-size:25px}.header-right{gap:9px}.connection{font-size:12px;letter-spacing:1px}.icon-button{width:29px;height:29px;font-size:21px}.home{display:flex;flex-direction:column;padding:36px 7% 0;min-height:calc(100dvh - 62px);align-items:center}.hero-copy{width:100%;max-width:500px}.hero-copy h1{font-size:clamp(38px,9.1vw,62px);margin:22px 0 26px;letter-spacing:-3px}.eyebrow{font-size:13px;letter-spacing:1.4px}.hero-subtitle{font-size:33px}.hero-description{font-size:21px;max-width:400px;margin:16px 0 22px}.home-buttons{max-width:100%;gap:13px;margin-top:19px}.big-button{min-height:72px;padding:15px 21px}.big-button>span{font-size:11px}.hero-art{min-height:310px;width:100%;max-width:390px;margin-top:43px;transform:none;order:2}.hero-card{width:125px}.hero-card-center{width:141px;top:0;left:32%}.hero-card-left{top:10%;left:7%}.hero-card-right{top:9%;right:5%}.magic-orbit{width:260px;height:260px;left:16%;top:-15px}.art-caption{top:79%;left:20%;font-size:13px}.art-caption span{font-size:19px}.spark-one{font-size:38px;top:0;right:4%}.spark-two{left:1%;top:65%}.spark-three{left:18%;top:-12%;font-size:27px}.home-footer{order:3;font-size:11px;letter-spacing:.7px;padding:20px 0 25px;text-align:center;white-space:nowrap}.home-footer i{padding:0 7px}.name-label{font-size:13px}.name-input{width:180px}.secondary-actions{justify-content:space-between;gap:15px}.small-button{font-size:18px}.lobby{padding:36px 22px}.lobby-title h1{font-size:19px}.lobby-layout{display:flex;flex-direction:column;gap:22px}.lobby-seats{padding:20px}.lobby-seat{padding:15px 0}.lobby-options{gap:18px}.room-code{font-size:28px}.game-layout{display:flex;flex-direction:column;gap:18px;padding:16px 12px 8px;min-height:calc(100dvh - 62px)}.game-sidebar{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px;padding:0}.round-panel,.prediction-panel,.score-panel{padding:8px 6px;min-height:83px}.round-number{font-size:23px;margin:7px 0 0;line-height:1.2}.round-number span{font-size:22px}.prediction-number{font-size:18px;line-height:1.3;margin:8px 0 0}.prediction-number i{font-size:23px;margin:0 10px}.score-panel strong{font-size:22px;margin:8px 0 0;line-height:1.3}.game-sidebar .section-label{font-size:10px;letter-spacing:1px}.round-detail{font-size:9px;letter-spacing:.4px;margin-top:3px}.prediction-meter,.sidebar-note,.score-button{display:none}.game-table{flex:1}.opponents{gap:7px;min-height:98px;flex-wrap:wrap;margin:0 3px}.opponent{min-width:calc(30% - 5px);max-width:none;padding:8px 9px;flex:1}.opponent-heading strong{font-size:20px}.opponent-heading small{font-size:9px;letter-spacing:.5px}.opponent-score{font-size:21px}.opponent .avatar{width:23px;height:26px;font-size:20px}.opponent-stats{font-size:10px;margin-top:10px}.opponent-stats b{font-size:17px}.mini-hand{height:24px}.mini-hand img{width:17px;height:26px;margin-left:-7px}.table-center{min-height:280px;padding-top:15px;align-items:stretch}.trump-area{width:56px;margin-right:7px;justify-content:center;gap:8px}.trump-card{width:47px;border-radius:3px}.trump-area .section-label{font-size:10px;letter-spacing:1px}.trump-name{font-size:12px;letter-spacing:.4px}.trump-area small{font-size:11px}.trick-area{min-height:265px}.trick-label{font-size:10px;letter-spacing:1.5px;top:12px}.played-cards{gap:8px;margin-top:27px;row-gap:14px}.played-card .playing-card{width:65px;border-radius:3px}.played-card>span{font-size:13px;margin-top:8px}.winner-label{font-size:19px;margin-top:16px}.table-watermark{font-size:95px}.table-watermark span{font-size:65px}.empty-trick p{font-size:20px}.empty-trick>span{font-size:35px}.action-bar{margin:5px 0 4px;padding:12px;min-height:84px}.bid-controls{gap:10px;flex-wrap:wrap;justify-content:space-between}.action-copy{gap:3px}.action-copy strong{font-size:22px}.action-copy small{font-size:12px}.action-kicker{font-size:10px;letter-spacing:1.2px}.bid-controls .action-copy{flex:1 1 calc(100% - 100px)}.bid-controls>.small-button{margin-left:auto;margin-top:1px;flex:1 1 auto}.bid-stepper{gap:13px}.bid-stepper button{width:27px;height:27px;font-size:23px}.bid-stepper span{font-size:18px;min-width:24px}.play-controls{gap:12px}.play-controls>.small-button{font-size:16px;padding:12px}.waiting-prompt{height:52px;font-size:20px;gap:9px}.waiting-prompt small{font-size:13px}.trump-picker{flex-direction:column;align-items:flex-start;gap:12px}.suit-buttons{width:100%;gap:7px}.suit-button{flex:1;padding:8px 6px;font-size:18px}.trump-picker strong{font-size:22px}.hand-area{padding-top:10px}.hand-caption{font-size:17px;margin:0 3px}.hand-caption b{font-size:9px;margin-left:9px}.hand-caption>span:last-child{font-size:10px}.hand{padding:28px 7px 8px;min-height:155px;overflow-x:auto;overflow-y:hidden}.hand-card{width:76px;margin-left:clamp(-48px,calc((340px - 82px * var(--hand-size)) / var(--hand-size)),7px);border-radius:3px}.hand-card.selected,.hand-card.selected:hover{transform:translateY(-20px) rotate(0)}.large-hand{justify-content:flex-start;min-height:148px}.large-hand .hand-card,.large-hand:has(.hand-card:nth-child(15)) .hand-card{width:76px;margin-left:-35px}.large-hand .hand-card:first-child,.large-hand:has(.hand-card:nth-child(15)) .hand-card:first-child{margin-left:0}.large-hand:has(.hand-card:nth-child(15)){min-height:148px}.round-results{top:7px;bottom:0;left:-5px;right:0;padding:16px 11px}.result-kicker{font-size:10px;margin-bottom:9px}.round-results h2{font-size:11px;line-height:1.6;margin-bottom:12px}.results-list{gap:3px;margin-bottom:12px}.results-list>div{font-size:18px;grid-template-columns:1fr 48px 30px 30px;padding:3px 5px}.results-list small{font-size:11px}.round-results .small-button{font-size:16px;min-height:37px;padding:9px 12px}.round-results .text-button{font-size:12px;padding-top:10px}.modal-shade{padding:14px}.modal{padding:20px;max-height:calc(100dvh - 28px)}.modal-heading h2{font-size:12px}.modal-heading{padding-bottom:15px;margin-bottom:20px}.rule-row p{font-size:20px}.rule-row{gap:13px}.rules .rule-intro{font-size:26px}.toast{top:70px;font-size:20px}.scores-scroll{margin:0 -4px}.score-table th{font-size:17px;padding:8px 10px}.score-table td{font-size:21px;padding:12px 10px}.score-table small{font-size:12px}}@media(max-width:390px){.connection{display:none}.hero-copy h1{font-size:36px;letter-spacing:-2px}.eyebrow{font-size:12px}.home{padding-left:6%;padding-right:6%}.opponent-heading strong{font-size:18px}.opponent .avatar{display:none}.hand-card{width:70px}.played-card .playing-card{width:58px}.action-copy strong{font-size:20px}.play-controls>.small-button{padding:10px;font-size:15px}.hand-caption b{display:none}.room-code{font-size:24px}.round-results h2{font-size:10px}.results-list>div{font-size:17px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}.felt-background{animation:none}}.language-selector{background:#18382e;color:#e6dfbd;border:1px solid #a5cbb14d;border-radius:3px;padding:4px 3px 4px 7px;font:18px Terminal,monospace;min-height:32px;box-shadow:0 2px #0d251d;cursor:pointer}@media(max-width:760px){.table-center{min-height:236px}.trick-area{min-height:230px}.opponents{min-height:88px}.language-selector{font-size:16px;min-height:29px;max-width:55px}.header-right{gap:7px}.hero-art{overflow:visible}}@media(max-width:540px){.connection{display:none}}@media(max-width:760px)and (max-height:730px){.table-center{min-height:210px}.trick-area{min-height:205px}.hand{min-height:140px}.hand-card{width:68px}.opponents{min-height:80px}.action-copy small{display:none}.game-layout{gap:13px}}.admin-badge{font-size:13px;color:#ecd377;letter-spacing:1px;background:#455135;padding:5px 8px;border:1px solid #a6b87c55;border-radius:3px}.admin-signin{font-size:16px;color:#dfd8b2;text-decoration:none;white-space:nowrap;border-bottom:1px solid #a3b39370;padding:5px 0}.waiting-room{max-width:660px;margin:80px auto;padding:20px 28px}.waiting-panel{text-align:center;padding:35px 30px}.waiting-panel h1{font-family:var(--pixel);font-size:19px;line-height:1.7;color:var(--gold);margin:18px 0}.waiting-panel .room-code{margin:25px 0}.waiting-panel .muted{margin:15px 0 28px}.waiting-panel .small-button{margin:8px}.admission-panel{padding-top:25px;border-top:1px solid #aecaa340;margin-top:20px}.admission-panel h3{font-size:23px;font-weight:400;color:var(--gold);margin-bottom:13px}.pending-player{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #b0c1a520}.pending-player>strong{font-size:23px;font-weight:400;overflow-wrap:anywhere}.pending-actions{display:flex;gap:8px}.pending-actions .small-button{font-size:16px;padding:9px 12px;min-height:34px}.waiting-panel .thinking-dots{font-size:40px;letter-spacing:8px;color:var(--gold)}@media(max-width:760px){.admin-badge{font-size:10px;padding:5px}.admin-signin{max-width:66px;text-overflow:ellipsis;overflow:hidden;font-size:15px}.waiting-room{margin:45px auto;padding:15px}.waiting-panel{padding:25px 20px}.waiting-panel h1{font-size:15px}.pending-actions .small-button{font-size:15px;padding:8px 10px}.pending-player>strong{font-size:21px}}.stats-tabs{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stats-tabs .text-button{margin-left:auto;font-size:15px}.stats-mode{display:flex;gap:10px;margin:24px 0 14px}.stats-status{margin:30px 0;text-align:center}.stats-note{margin-top:24px}.ranking-table th{font-size:18px;white-space:nowrap}.ranking-table td:nth-child(2){text-align:left}.history-list{display:grid;gap:12px;margin-top:25px}.history-entry{background:#122f26;border:1px solid #80947445;border-radius:5px;overflow:hidden}.history-entry summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:16px;gap:15px;list-style:none}.history-entry summary:before{content:"+";color:var(--gold);font-size:25px}.history-entry[open] summary:before{content:"−"}.history-entry summary>span{flex:1}.history-entry summary b{font-weight:400;color:#cbd2ad;font-size:21px}.history-entry summary strong{font-weight:400;font-size:28px;text-align:right}.history-entry summary small{display:block;font-size:15px;color:#99b296}.history-content{padding:15px 20px;border-top:1px solid #80947435}.history-players{display:flex;gap:12px;flex-wrap:wrap;font-size:20px;margin-bottom:20px}.history-content .score-table{font-size:20px}.history-content .score-table th{font-size:17px}.history-content .section-label{margin-bottom:12px}@media(max-width:760px){.header-right{gap:5px}.header-right .admin-signin{max-width:50px;font-size:13px}.stats-tabs{gap:10px}.stats-tabs .small-button{font-size:16px;padding:10px}.ranking-table th{font-size:16px}.history-entry summary{padding:13px}.history-entry summary small{font-size:13px}.history-content{padding:13px}.history-players{font-size:18px}.history-entry summary strong{font-size:25px}}
