*{box-sizing:border-box}:root{--card-width: 80px;--card-height: calc(var(--card-width) * 190 / 140);--slot-pitch: 88px}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{color:#f0f0f0;font-family:system-ui,-apple-system,sans-serif}.app-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#000 0% 100%),repeating-linear-gradient(180deg,transparent 0,transparent 68px,rgba(0,0,0,.55) 69px,rgba(0,0,0,.55) 71px,transparent 72px),repeating-linear-gradient(0deg,rgba(220,180,140,.05) 0 1px,transparent 1px 3px,rgba(40,25,15,.07) 3px 4px,transparent 4px 7px),linear-gradient(180deg,#3a2410,#1e1006),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'><g fill='%23e0c890' fill-opacity='0.55'><path d='M60 40 Q70 50 60 60 Q50 50 60 40Z'/><path d='M60 60 Q70 70 60 80 Q50 70 60 60Z'/><path d='M40 60 Q50 50 60 60 Q50 70 40 60Z'/><path d='M60 60 Q70 50 80 60 Q70 70 60 60Z'/><circle cx='60' cy='60' r='3'/><path d='M40 40 Q25 25 10 15 Q15 30 40 40Z'/><path d='M80 40 Q95 25 110 15 Q105 30 80 40Z'/><path d='M40 80 Q25 95 10 105 Q15 90 40 80Z'/><path d='M80 80 Q95 95 110 105 Q105 90 80 80Z'/><circle cx='0' cy='0' r='5'/><circle cx='120' cy='0' r='5'/><circle cx='0' cy='120' r='5'/><circle cx='120' cy='120' r='5'/></g></svg>"),linear-gradient(180deg,#5a1f24,#401016);background-size:100% 1.5px,100% 67%,100% 67%,100% 67%,120px 120px,100% 33%;background-position:0 33%,bottom,bottom,bottom,top,top;background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,repeat,no-repeat}button{background:#c9a04a;color:#f0f0f0;border:0;padding:.5rem 1rem;font-size:1rem;cursor:pointer;border-radius:4px}button:disabled{background:#888;cursor:not-allowed}button.secondary{background:transparent;border:1px solid #888}input,select{background:#2a2a2a;color:#f0f0f0;border:1px solid #888;padding:.5rem;font-size:1rem;border-radius:4px}.route-stage{width:100%;height:100%;perspective:1400px;perspective-origin:50% 50%;background:#1a0e05;overflow:clip}.route-stage__page{width:100%;height:100%;position:relative;z-index:1;transform-style:preserve-3d;backface-visibility:hidden;display:flow-root}.landing{max-width:480px;margin:1.25rem auto;padding:2.5rem 2.25rem;display:flex;flex-direction:column;gap:1.5rem;background:#e8d09a;color:#1a0e05;border:2px solid #1a0e05;border-radius:2px;box-shadow:0 4px 14px #00000073}.landing h1,.landing h2{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;letter-spacing:.02em;color:#1a0e05;margin:0}.landing h1{font-size:1.9rem;text-align:center;margin-bottom:1rem}.landing h2{font-size:1.05rem}.landing input,.landing select{background:#f6e8c4;color:#1a0e05;border:1.5px solid #1a0e05;border-radius:2px}.landing input::placeholder{color:#1a0e0573}.landing button{background:#1a0e05;color:#e8d09a;border:2px solid #1a0e05;border-radius:2px;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.landing button:hover:not(:disabled){background:#2d1a08}.landing button:disabled{background:#1a0e0566;color:#e8d09ab3;border-color:#1a0e0566;cursor:not-allowed}.landing button.secondary{background:transparent;color:#1a0e05;border:1.5px solid #1a0e05}.landing button.secondary:hover:not(:disabled){background:#1a0e0514}.landing__name-field{display:flex;flex-direction:column;gap:.4rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(26,14,5,.35)}.landing__name-field>span{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}.landing__name-field input{padding:.65rem .75rem;font-size:1rem}.landing__divider{display:flex;align-items:center;gap:.75rem;color:#1a0e05b3;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}.landing__divider:before,.landing__divider:after{content:"";flex:1;height:1px;background:#1a0e0559}.landing__form{display:flex;flex-direction:column;gap:.75rem}.landing__form h2{margin:0 0 .25rem}.landing__form input,.landing__form select{padding:.65rem .75rem}.landing__form button{margin-top:.25rem;padding:.65rem 1rem}.landing__secondary .landing__form{gap:.6rem}.landing__secondary .landing__form h2{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#1a0e05b3;font-family:Georgia,Times New Roman,serif}.landing__secondary .landing__form button{background:transparent;color:#1a0e05;border:1.5px solid #1a0e05}.landing__secondary .landing__form button:hover:not(:disabled){background:#1a0e0514}.landing__secondary .landing__form button:disabled{background:transparent;color:#1a0e0566;border-color:#1a0e0566}.lobby{max-width:720px;margin:1.25rem auto;padding:2.5rem 2.25rem;display:flex;flex-direction:column;gap:1.5rem;background:#e8d09a;color:#1a0e05;border:2px solid #1a0e05;border-radius:2px;box-shadow:0 4px 14px #00000073}.lobby h1,.lobby h2{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;letter-spacing:.02em;color:#1a0e05;margin:0}.lobby h1{font-size:1.9rem;text-align:center;margin-bottom:1rem}.lobby h2{font-size:1.05rem}.lobby input,.lobby select{background:#f6e8c4;color:#1a0e05;border:1.5px solid #1a0e05;border-radius:2px}.lobby input::placeholder{color:#1a0e0573}.lobby button{background:#1a0e05;color:#e8d09a;border:2px solid #1a0e05;border-radius:2px;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.lobby button:hover:not(:disabled){background:#2d1a08}.lobby button:disabled{background:#1a0e0566;color:#e8d09ab3;border-color:#1a0e0566;cursor:not-allowed}.lobby button.secondary{background:transparent;color:#1a0e05;border:1.5px solid #1a0e05}.lobby button.secondary:hover:not(:disabled){background:#1a0e0514}.lobby__header{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.lobby__title{text-align:left;margin-bottom:0}.lobby__code{position:relative}.lobby__code-value{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1.6rem;letter-spacing:.18em;color:#1a0e05;line-height:1;margin-right:-.18em;letter-spacing:20px}.lobby__code-label{position:absolute;bottom:100%;left:0;margin-bottom:.15rem;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.6rem;text-transform:uppercase;color:#1a0e058c;white-space:nowrap}.lobby__seats{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:0}.lobby__seats:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;transform:translate(-50%);background:linear-gradient(to bottom,transparent 0 calc(50% - 22px),#e8d09a calc(50% - 22px) calc(50% + 22px),transparent calc(50% + 22px) 100%),repeating-linear-gradient(to bottom,rgba(26,14,5,.25) 0 4px,transparent 10px 20px),linear-gradient(#e8d09a,#e8d09a);background-size:100% 100%,2px 100%,100% 100%;background-position:center,center,center;background-repeat:no-repeat}.lobby__seats:after{content:"";position:absolute;left:0;right:0;top:50%;height:4px;transform:translateY(-50%);background:linear-gradient(to right,transparent 0 calc(50% - 22px),#e8d09a calc(50% - 22px) calc(50% + 22px),transparent calc(50% + 22px) 100%),repeating-linear-gradient(to right,rgba(26,14,5,.25) 0 4px,transparent 10px 20px),linear-gradient(#e8d09a,#e8d09a);background-size:100% 100%,100% 2px,100% 100%;background-position:center,center,center;background-repeat:no-repeat}.lobby__seats-ornament{position:absolute;top:50%;left:50%;width:24px;height:24px;color:#1a0e05;transform:translate(-50%,-50%);z-index:1}.seat{display:flex;flex-direction:column;gap:.75rem;align-items:center;justify-content:center;padding:1.25rem 1rem;min-height:7rem;text-align:center;background:transparent}.seat.seat--mine{background:#1a0e0514}.seat.seat--empty{color:#1a0e058c}.seat>div:first-child{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1rem}.host-controls{display:flex;justify-content:center;margin-top:1rem}.game{position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;height:100dvh;padding:13rem 1rem 5rem;gap:1rem;justify-items:center}.game__opponents{position:absolute;top:calc(50vh - 12.8rem);left:calc(max(14rem,50vw - 40rem) - 14rem);display:flex;flex-direction:column;gap:3rem}.opponent-seat{text-align:left;padding:.5rem calc(.5rem + 5px);width:14rem}.opponent-seat>div:first-child{display:block;width:100%;padding:.2rem .65rem;text-align:center;background:linear-gradient(180deg,#8a7a40,#706230,#5a4e20);color:#e8d4a8;border:1px solid #3a2810;border-radius:3px;box-shadow:inset 0 1px #ffe6a073,inset 0 -1px #28180866,0 1px 3px #00000080;font-size:.85rem;font-weight:450;letter-spacing:.04em;text-shadow:0 1px 1px rgba(0,0,0,.65);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-chip{display:inline-block;width:1.45rem;height:1.45rem;vertical-align:-.31rem;margin-right:.44rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.opponent-seat__count{display:flex;align-items:center;gap:.35rem;margin-top:.3rem;font-size:.95rem;font-weight:700;color:#e8d09a;text-align:left}.opponent-seat__count .cards-icon{width:1em;height:1em}.opponent-seat__passed{display:inline-block;margin-left:auto;padding:.2rem .7rem;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.95rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;line-height:1;color:#1a0e05;background:#e8d09a;border:2px solid #1a0e05;border-radius:2px;box-shadow:0 2px 4px #00000059}.opponent-seat__disconnected{display:inline-block;margin-top:.2rem;padding:.15rem .45rem;font-family:var(--font-rye, "Rye", serif);font-size:.7rem;letter-spacing:.05em;color:#fff5e3;background:#6b3a2a;border:1px solid #1a0e05;border-radius:2px}.opponent-seat__replace{margin-top:.3rem;padding:.3rem .55rem;font-family:inherit;font-size:.75rem;background:#fff5e3;border:1px solid #1a0e05;border-radius:3px;cursor:pointer}.opponent-seat__replace:hover{background:#ead7b9}.game__hand-area{position:relative}.trick-pile__turn-chip{position:absolute;z-index:5;pointer-events:none}.trick-pile__turn-chip .turn-chip{margin-right:0;vertical-align:0;width:1.7rem;height:1.7rem}.trick-pile__turn-chip--player{bottom:1.25rem;left:50%;transform:translate(-50%)}.trick-pile__turn-chip--opp-0{top:18%;left:1.5rem}.trick-pile__turn-chip--opp-1{top:52%;left:1.5rem;transform:translateY(-50%)}.trick-pile__turn-chip--opp-2{top:85%;left:1.5rem;transform:translateY(-50%)}.opponent-seat__hand{display:flex;justify-content:flex-start;margin:.25rem 0}.opponent-seat__hand .card-back{width:calc(var(--card-width) * .5);height:calc(var(--card-height) * .5)}.opponent-seat__hand .card-back+.card-back{margin-left:calc(var(--card-width) * -.4)}.trick-pile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1.5rem 1.5rem;font-family:monospace;align-self:center;width:min(80rem,100vw - 28rem);min-height:32rem;border-radius:80px;background-image:url(/textures/felt.png);background-size:cover;background-position:center;box-shadow:inset 0 0 60px #00000059,0 8px 24px #00000080;text-shadow:0 1px 2px rgba(0,0,0,.5)}.trick-pile__dealer{position:absolute;top:-12.25rem;left:50%;transform:translate(-200%);width:14rem;height:14rem;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.trick-pile--drop-active{outline:2px dashed #c9a04a;outline-offset:-6px;background-color:#c9a04a1f;background-blend-mode:overlay;transition:outline-color .18s ease-out,background-color .18s ease-out}.hand{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.card{display:inline-block;width:var(--card-width);height:var(--card-height);border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent}.card.card--selected{transform:translateY(-.5rem);box-shadow:0 0 0 2px #c9a04a,0 6px 12px #0006}.card__face{width:100%;height:100%;display:block;border-radius:inherit;pointer-events:none;-webkit-user-drag:none}.card-back{display:inline-block;width:var(--card-width);height:var(--card-height);border-radius:6px;pointer-events:none;-webkit-user-drag:none}.play-controls{display:flex;justify-content:center;gap:1rem;margin-top:1rem}.round-end{width:85%;margin:2rem auto;padding:2rem}.round-end .round-end__scores{max-width:75rem;margin:0 auto}.round-end .round-end__score-header,.round-end .round-end__score-row{display:grid;grid-template-columns:1fr 4ch 4ch;column-gap:1rem;align-items:center}.round-end .round-end__score-header{color:#a89060;padding:.5rem 0;font-size:1.35rem;font-weight:600}.round-end .round-end__score-header span:nth-child(2),.round-end .round-end__score-header span:nth-child(3){text-align:center}.round-end .round-end__score-row{padding:.5rem 0;border-top:1px solid rgba(255,245,227,.08)}.round-end .round-end__score-name{grid-column:1;grid-row:1}.round-end .round-end__final-hand-row{grid-column:1;grid-row:2}.round-end .round-end__score-round,.round-end .round-end__score-cumulative{font-variant-numeric:tabular-nums;text-align:center;font-size:1.35rem;font-weight:600;align-self:center;grid-row:1/span 2}.round-end .round-end__score-round{grid-column:2}.round-end .round-end__score-cumulative{grid-column:3}.round-end .round-end__score-row.winner .round-end__score-name,.round-end .round-end__score-row.winner .round-end__score-round,.round-end .round-end__score-row.winner .round-end__score-cumulative{color:#e8d4a8;font-weight:700}.error-banner{position:absolute;top:-7rem;left:50%;margin-left:-16.5rem;z-index:10;max-width:22rem;padding:.85rem 1.1rem;background:#fff;color:#1a1a1a;border:2px solid #1a1a1a;border-radius:1rem;font-family:system-ui,-apple-system,sans-serif;font-weight:500;line-height:1.3;cursor:pointer;box-shadow:0 6px 16px #00000073;text-shadow:none}.error-banner:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:14px solid #1a1a1a}.error-banner:after{content:"";position:absolute;left:-11px;top:50%;transform:translateY(-50%);border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:13px solid #fff}.landing__toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:.6rem;max-width:min(90vw,28rem);padding:.55rem .6rem .55rem .85rem;font-size:.9rem;color:#1a0e05;background:#fff5e3;border:1px solid #1a0e05;border-radius:3px;box-shadow:0 4px 14px #00000040;animation:landing-toast-fade-in .2s ease-out}.landing__toast-close{flex:0 0 auto;width:1.4rem;height:1.4rem;padding:0;font-family:inherit;font-size:1.1rem;line-height:1;color:#1a0e05;background:transparent;border:0;border-radius:2px;cursor:pointer}.landing__toast-close:hover{background:#1a0e0514}@keyframes landing-toast-fade-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.round-end__rematch{max-width:45rem;margin:1rem auto 1.5rem;padding:.85rem 1rem;border:1px solid #1a0e05;border-radius:4px;background:#fff5e3;color:#1a0e05;display:flex;flex-direction:column;gap:.85rem}.round-end__mode{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:0;border:0}.round-end__mode legend{grid-column:1/-1;margin-bottom:.4rem;font-family:var(--font-rye, "Rye", serif);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:#1a0e05}.round-end__mode-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .85rem .6rem;background:#fdeec7;border:1.5px solid #1a0e05;border-radius:4px;cursor:pointer;transition:transform 80ms ease-out,box-shadow 80ms ease-out,background 80ms ease-out;-webkit-user-select:none;user-select:none}.round-end__mode-tile:hover{background:#fff5e3;transform:translateY(-1px);box-shadow:0 3px #1a0e05}.round-end__mode-tile input[type=radio]{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.round-end__mode-tile input[type=radio]:focus-visible+.round-end__mode-title{outline:2px solid #b8860b;outline-offset:3px;border-radius:2px}.round-end__mode-tile--selected{background:#1a0e05;color:#fff5e3;box-shadow:0 3px #1a0e0566;transform:translateY(-1px)}.round-end__mode-tile--selected:hover{background:#2a1a0a}.round-end__mode-tile--selected .round-end__mode-sub{color:#ead7b9}.round-end__mode-title{font-family:var(--font-rye, "Rye", serif);font-size:1.05rem;letter-spacing:.04em;line-height:1.1}.round-end__mode-sub{font-size:.78rem;letter-spacing:.02em;color:#1a0e05b8}.round-end__mode[disabled] .round-end__mode-tile{cursor:default;opacity:.55}.round-end__mode[disabled] .round-end__mode-tile:hover{background:#fdeec7;transform:none;box-shadow:none}.round-end__mode[disabled] .round-end__mode-tile.round-end__mode-tile--selected:hover{background:#1a0e05}.round-end__ready-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.round-end__ready-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.3rem 0;border-bottom:1px dashed rgba(26,14,5,.2)}.round-end__ready-row:last-child{border-bottom:0}.round-end__ready-mark{font-weight:700}.round-end__waiting{font-style:italic;opacity:.65}.round-end__ready-btn{padding:.3rem .7rem;font-size:.85rem;background:#1a0e05;color:#fff5e3;border:0;border-radius:3px;cursor:pointer}.round-end__ready-btn:hover{background:#2a1a0a}@media(orientation:portrait)and (max-width:767px){:root{--card-width: 54px;--slot-pitch: 25px}.game{padding:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:.5rem}.game__opponents{position:static;display:flex;flex-direction:row;justify-content:space-between;width:100%;padding:.5rem;gap:.4rem}.opponent-seat{flex:1 1 0;min-width:0;width:auto;padding:.3rem .4rem}.opponent-seat__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;padding:.2rem .3rem}.opponent-seat__hand{justify-content:flex-start}.opponent-seat__hand .card-back{width:16px;height:auto}.opponent-seat__hand .card-back+.card-back{margin-left:-10px}.opponent-seat__count{justify-content:flex-start;text-align:left}.opponent-seat__passed{margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;border-width:1px}.trick-pile__dealer{position:absolute;bottom:calc(100% - 10px);left:.5rem;right:auto;margin-left:0;margin-right:0;top:auto;width:80px;height:80px;border-radius:50%;object-fit:cover;object-position:center bottom;transform:none;z-index:1}.trick-pile{width:calc(100% - 1rem);margin:0 auto;align-self:center;height:33vh;min-height:0;border:4px solid #2a1a0a;border-radius:14px;padding:.75rem .5rem;top:40px}.app-bg{background-image:linear-gradient(180deg,#000 0% 100%),repeating-linear-gradient(180deg,transparent 0,transparent 32px,rgba(0,0,0,.55) 33px,rgba(0,0,0,.55) 35px,transparent 36px),repeating-linear-gradient(0deg,rgba(220,180,140,.05) 0 1px,transparent 1px 3px,rgba(40,25,15,.07) 3px 4px,transparent 4px 7px),linear-gradient(180deg,#3a2410,#1e1006),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'><g fill='%23e0c890' fill-opacity='0.55'><path d='M60 40 Q70 50 60 60 Q50 50 60 40Z'/><path d='M60 60 Q70 70 60 80 Q50 70 60 60Z'/><path d='M40 60 Q50 50 60 60 Q50 70 40 60Z'/><path d='M60 60 Q70 50 80 60 Q70 70 60 60Z'/><circle cx='60' cy='60' r='3'/><path d='M40 40 Q25 25 10 15 Q15 30 40 40Z'/><path d='M80 40 Q95 25 110 15 Q105 30 80 40Z'/><path d='M40 80 Q25 95 10 105 Q15 90 40 80Z'/><path d='M80 80 Q95 95 110 105 Q105 90 80 80Z'/><circle cx='0' cy='0' r='5'/><circle cx='120' cy='0' r='5'/><circle cx='0' cy='120' r='5'/><circle cx='120' cy='120' r='5'/></g></svg>"),linear-gradient(180deg,#5a1f24,#401016);background-size:100% 1.5px,100% 60%,100% 60%,100% 60%,90px 90px,100% 40%;background-position:0 40%,bottom,bottom,bottom,top,top}.hand{flex-wrap:nowrap;gap:0;padding:.5rem .25rem .75rem;overflow:visible;justify-content:center}.hand>*{margin-left:calc(var(--slot-pitch) - var(--card-width))}.hand>*:first-child{margin-left:0}.card.card--selected{transform:translateY(-12px);z-index:2}.error-banner{top:-3.5rem;bottom:auto;left:calc(80px + 1rem);right:.5rem;margin-left:0;margin-right:0;width:auto;max-width:none;padding:.55rem .8rem;font-size:.85rem}.error-banner:before{top:50%;left:-14px;transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:14px solid #1a1a1a;border-left:0}.error-banner:after{top:50%;left:-11px;transform:translateY(-50%);border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:13px solid #fff;border-left:0}.landing,.lobby{padding:1.5rem 1rem;gap:1rem}.landing input,.landing select,.landing button,.lobby input,.lobby select,.lobby button{min-height:44px;padding:.75rem .85rem}.lobby__seats{gap:.4rem}.seat{padding:.85rem .5rem;font-size:.9rem}.landing h1,.lobby h1{font-size:1.5rem}.landing h2,.lobby h2{font-size:1rem}.card,.hand{touch-action:none}.trick-pile__turn-chip--player{bottom:.4rem}.trick-pile__turn-chip--opp-0{top:.5rem;left:16%;bottom:auto;transform:translate(-50%)}.trick-pile__turn-chip--opp-1{top:.5rem;left:50%;bottom:auto;transform:translate(-50%)}.trick-pile__turn-chip--opp-2{top:.5rem;left:84%;bottom:auto;transform:translate(-50%)}}@media(orientation:portrait)and (max-width:767px){.game{padding-bottom:4rem}.play-controls{margin-top:2rem}.round-end{padding:.5rem .25rem 1rem;margin:0 auto}.round-end .round-end__score-header,.round-end .round-end__score-line{column-gap:.5rem}.round-end .round-end__score-row{padding:.35rem 0}.round-end__rematch{margin:0 0 .75rem;padding:.6rem .75rem;gap:.5rem}.round-end__mode{gap:.4rem}.round-end__mode-tile{padding:.5rem .65rem}.round-end__final-hand-row{display:flex;flex-wrap:nowrap;align-items:center;gap:0;margin-bottom:.5rem}.round-end__final-hand-row strong{margin-right:.4rem;flex-shrink:0}.round-end__final-hand-row .card{width:32px;height:45px;flex-shrink:0}.round-end__final-hand-row .card+.card{margin-left:-16px}}@media(orientation:portrait)and (min-width:768px)and (max-width:1024px){:root{--card-width: 6rem;--slot-pitch: 54px}.game{padding:14rem .5rem .5rem;grid-template-columns:12rem minmax(0,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"opp  trick" ".    .    " "hand hand "}.game__opponents{position:static;grid-area:opp;width:auto;top:auto;left:auto;gap:1.5rem}.opponent-seat{width:auto}.trick-pile{grid-area:trick;width:auto;justify-self:stretch;align-self:stretch;margin:0;min-height:0}.game__hand-area{grid-area:hand}.app-bg{background-size:100% 1.5px,100% calc(100% - 18.8rem),100% calc(100% - 18.8rem),100% calc(100% - 18.8rem),120px 120px,100% 18.8rem;background-position:0 18.8rem,bottom,bottom,bottom,top,top}.trick-pile__dealer{width:9rem;height:9rem;top:-7.875rem;left:.5rem;transform:none}.hand{flex-wrap:nowrap;gap:0;justify-content:center}.hand>*{margin-left:calc(var(--slot-pitch) - var(--card-width))}.hand>*:first-child{margin-left:0}.error-banner{top:-5rem;left:10.5rem;right:1rem;margin-left:0;max-width:none;width:auto}.round-end__final-hand-row{display:flex;flex-wrap:nowrap;align-items:center;gap:0}.round-end__final-hand-row .card{width:40px;height:56px;flex-shrink:0}.round-end__final-hand-row .card+.card{margin-left:-18px}}@media(orientation:portrait)and (min-width:1000px)and (max-width:1024px){:root{--slot-pitch: 76px}.game{padding-top:18rem;padding-bottom:6rem}.trick-pile{min-height:33.6rem}.play-controls{margin-top:3rem}.game__opponents{gap:6.3rem}.app-bg{background-size:100% 1.5px,100% calc(100% - 24.72rem),100% calc(100% - 24.72rem),100% calc(100% - 24.72rem),120px 120px,100% 24.72rem;background-position:0 24.72rem,bottom,bottom,bottom,top,top}.round-end__final-hand-row{display:flex;flex-wrap:nowrap;align-items:center;gap:0}.round-end__final-hand-row .card{width:50px;height:70px;flex-shrink:0}.round-end__final-hand-row .card+.card{margin-left:-22px}}@media(max-height:900px)and (min-width:768px){.game{padding:9rem 1rem 1rem}.trick-pile{min-height:18rem;align-self:stretch}.trick-pile__dealer{width:10rem;height:10rem;top:-8.75rem}}@media(hover:none){.card:hover{transform:none}}
