@charset "UTF-8";*{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;--bg-seam-color: #000;background:linear-gradient(180deg,var(--bg-seam-color, #000) 0%,var(--bg-seam-color, #000) 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}.route-stage:has(.lobby) .app-bg,.route-stage:has(.landing) .app-bg{--bg-seam-color: transparent}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:calc(env(safe-area-inset-top,0px) + 3.25rem) auto 1.25rem;padding:1.75rem 2.25rem 2.5rem;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:#5a4030}.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__subtitle{margin:-1rem 0 0;text-align:center;font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.95rem;color:#1a0e05b3;letter-spacing:.02em}.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__code-input{text-align:center;font-family:Courier New,Courier,monospace;font-size:1.4rem;font-weight:700;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase}.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:#5a4030}.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}button.lobby__code{background:transparent;border:0;padding:.1rem .3rem;margin:0;color:inherit;font:inherit;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;gap:.3rem;position:relative}button.lobby__code:hover{background:#1a0e0514}button.lobby__code:focus-visible{outline:2px solid #b8860b;outline-offset:2px}.lobby__code-icon{display:inline-flex;align-items:center;color:#1a0e05}.lobby__code-icon svg{width:1.05rem;height:1.05rem}.lobby__code-value{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1.6rem;color:#1a0e05;line-height:1;letter-spacing:20px;margin-right:-20px}.lobby__code-block{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.lobby__header-actions{display:flex;flex-direction:row;align-items:center;gap:.4rem}.lobby__header-actions button.lobby__code-copy{padding:0 .2rem;margin:0;min-height:0}.lobby__invite-hint{margin:.25rem auto 0;padding:0 1rem;text-align:center;font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.9rem;color:#1a0e05b3;line-height:1.4}.lobby__invite-hint strong{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-style:normal;letter-spacing:.08em;color:#1a0e05}.lobby__quick-fill{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5}.lobby__quick-fill .bot-seat-icon{background:#e8d09a;border-radius:50%}.lobby__code-label{position:absolute;bottom:100%;left:0;margin-bottom:.15rem;user-select:none;-webkit-user-select:none;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.6rem;text-transform:uppercase;color:#1a0e058c;white-space:nowrap}button.lobby__code-copy{background:transparent;border:0;padding:0;margin-left:.4em;color:#000;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:1.6rem;border-radius:4px}button.lobby__code-copy svg{width:1.2rem;height:1.2rem}button.lobby__code-copy:hover{opacity:.6;color:#e8d09a}button.lobby__code-copy:focus-visible{outline:2px solid currentColor;outline-offset:2px}.connection-status{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1.6rem;letter-spacing:.05em;color:#e8d4a8;text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none;z-index:20}.connection-status__dots{display:inline-block;margin-left:.4ch}.connection-status__dots span{display:inline-block;animation:connection-status-dot 1.2s infinite;opacity:.2}.connection-status__dots span:nth-child(1){animation-delay:0s}.connection-status__dots span:nth-child(2){animation-delay:.2s}.connection-status__dots span:nth-child(3){animation-delay:.4s}@keyframes connection-status-dot{0%,80%,to{opacity:.2}40%{opacity:1}}@media(prefers-reduced-motion:reduce){.connection-status__dots span{animation:none;opacity:.7}}.host-crown{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.25em;margin-right:.3ch;color:#3a2a08}.opponent-seat__count .host-crown,.game__self-name .host-crown{color:#e8d4a8}.opponent-seat__count .host-crown,.opponent-seat__count .disconnect-icon{margin:0}.disconnect-icon{display:inline-block;width:1em;height:1em;vertical-align:-.15em;margin-left:.4em;color:#c4a472}.robot-icon,.robot-off-icon{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.2em;color:#c4a472}.lobby__seats{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-bottom:1.25rem}.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:.5rem;align-items:center;justify-content:center;padding:1.25rem 1rem;min-height:7rem;text-align:center;background:transparent;position:relative}.seat.seat--mine{background:#1a0e0514}.seat.seat--empty{color:#1a0e058c}.seat__name{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1rem}.seat__action-row{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.2rem}.seat__actions{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;width:100%}.seat__actions>button:first-child{grid-column:2;justify-self:center}.seat__actions>.seat__bot-toggle{grid-column:3;justify-self:start;align-self:center}button.seat__bot-toggle{background:transparent;border:0;padding:0;margin:0;color:#5a4030;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:2.2rem;border-radius:4px;font-size:1rem;min-height:0}button.seat__bot-toggle svg{width:1.7rem;height:1.7rem}button.seat__bot-toggle .robot-icon,button.seat__bot-toggle .robot-off-icon{color:inherit}button.seat__bot-toggle:hover{opacity:.7;color:#e8d09a}button.seat__bot-toggle:focus-visible{outline:2px solid currentColor;outline-offset:2px}.host-controls{display:flex;justify-content:center;margin-top:1rem}.host-controls--non-host{font-size:1rem;padding:.5rem 1rem;color:#000;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;letter-spacing:.06em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.2rem}.host-controls__wait-hint{font-size:.78rem;opacity:.7;letter-spacing:.04em}.game{position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;height:100svh;height:var(--app-height, 100svh);padding:13rem 1rem 5rem;gap:1rem;justify-items:center}.game__opponents{position:absolute;top:calc(50vh - 16rem);left:calc(max(14rem,50vw - 40rem) - 14rem);display:flex;flex-direction:column;gap:2rem}.game__self-name{margin-top:.5rem;text-align:center;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.9rem;color:#e8d4a8;letter-spacing:.05em;text-shadow:0 1px 2px rgba(0,0,0,.5);display:inline-block;padding:.1rem .5rem;border-radius:4px}.game__self-score{margin-left:.5rem;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:.75rem;font-weight:600;font-style:italic;color:#e8d09abf;letter-spacing:.02em}.opponent-seat__score--pulse,.game__self-score--pulse{animation:score-pulse .9s ease-out 1}@keyframes score-pulse{0%{color:#e8d09abf;text-shadow:0 0 0 rgba(232,212,168,0);transform:scale(1)}25%{color:#f3d27a;text-shadow:0 0 8px rgba(243,210,122,.8);transform:scale(1.15)}to{color:#e8d09abf;text-shadow:0 0 0 rgba(232,212,168,0);transform:scale(1)}}@keyframes trick-win-glow-pulse{0%{box-shadow:0 0 #e8d4a800;background-color:#e8d4a800}50%{box-shadow:0 0 28px 6px #e8d4a8b3;background-color:#e8d4a826}to{box-shadow:0 0 #e8d4a800;background-color:#e8d4a800}}.opponent-seat__name--winning,.game__self-name--winning{animation:trick-win-glow-pulse .4s ease-in-out 3}.game__self-name .game__self-passed{margin-left:.5rem;vertical-align:middle}.opponent-seat{text-align:left;padding:.5rem calc(.5rem + 5px);width:14rem;position:relative}.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;min-height:1.6rem;font-size:.95rem;font-weight:700;color:#e8d09a;text-align:left}.opponent-seat__count-value{display:inline-block;transform-origin:center}.opponent-seat__count-value--thin{color:#d4a04a;animation:opp-count-thin 1.8s ease-in-out infinite}.opponent-seat__count-value--critical{color:#e88a3a;text-shadow:0 0 6px rgba(232,138,58,.45);animation:opp-count-critical 1.2s ease-in-out infinite}@keyframes opp-count-thin{0%,to{opacity:1}50%{opacity:.62}}@keyframes opp-count-critical{0%,to{opacity:1;transform:scale(1)}50%{opacity:.78;transform:scale(1.12)}}.opponent-seat__count .cards-icon{width:1em;height:1em}.opponent-seat__score{margin-left:.45rem;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:.75rem;font-weight:600;font-style:italic;color:#e8d09abf;letter-spacing:.02em}.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__bot-toggle{display:inline-flex;align-items:center;background:transparent;border:0;padding:0;margin:0;line-height:1;cursor:pointer;color:#c4a472}.opponent-seat__bot-toggle .robot-icon,.opponent-seat__bot-toggle .robot-off-icon{width:1em;height:1em}.opponent-seat__bot-toggle:hover{color:#e8d09a}.opponent-seat__bot-toggle:focus-visible{outline:2px solid currentColor;outline-offset:2px}.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}@keyframes turn-chip-pulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(232,212,168,0))}50%{transform:scale(1.25);filter:drop-shadow(0 0 14px rgba(232,212,168,.9))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(232,212,168,0))}}.trick-pile__turn-chip--pulsing .turn-chip{animation:turn-chip-pulse .4s ease-in-out 3}.trick-pile__turn-chip--player{bottom:3.75rem;left:calc(50% - .85rem)}.trick-pile__cards{margin-top:-2rem}.opponent-seat__name-text--just-played{animation:opp-name-just-played 1.2s ease-out}@keyframes opp-name-just-played{0%{color:#fff;text-shadow:0 0 10px rgba(232,212,168,.9)}40%{color:#fff;text-shadow:0 0 6px rgba(232,212,168,.6)}to{color:inherit;text-shadow:none}}.trick-pile__turn-chip--opp-0{top:18%;left:1.5rem}.trick-pile__turn-chip--opp-1{top:calc(52% - .85rem);left:1.5rem}.trick-pile__turn-chip--opp-2{top:calc(85% - .85rem);left:1.5rem}.opponent-seat__hand{display:flex;justify-content:flex-start;margin:.25rem 0;min-height:calc(var(--card-height) * .5)}.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}.trick-pile--drop-ready{outline:2px dashed rgba(201,160,74,.55);outline-offset:-6px;animation:trick-pile-drop-ready 2.4s ease-in-out infinite}@keyframes trick-pile-drop-ready{0%,to{outline-color:#c9a04a66;background-color:#c9a04a00}50%{outline-color:#c9a04ab8;background-color:#c9a04a0d}}.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}@keyframes card-hint-glow{0%,to{box-shadow:0 0 #d4a35600}50%{box-shadow:0 0 10px 2px #d4a356a6}}.card.card--hinted{animation:card-hint-glow 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.card.card--hinted{animation:none;box-shadow:0 0 6px 1px #d4a35680}}.hand>.card.card--selected+.card{margin-left:calc(var(--slot-pitch) - var(--card-width) + 12px)}@media(pointer:coarse){.card:active:not(.card--selected){transform:translateY(-12px)}}.card__face{width:100%;height:100%;display:block;border-radius:inherit;pointer-events:none;-webkit-user-drag:none}.card-flip *{backface-visibility:hidden}.card-back{display:inline-block;width:var(--card-width);height:var(--card-height);border-radius:6px;pointer-events:none;-webkit-user-drag:none}.deal-animation__flying{margin-top:calc(var(--card-height) * -.5);margin-left:calc(var(--card-width) * -.5)}.deal-animation__flying--opp{width:calc(var(--card-width) * .5);height:calc(var(--card-height) * .5);margin-top:calc(var(--card-height) * -.25);margin-left:calc(var(--card-width) * -.25)}.card-preview{border-radius:6px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.55)) drop-shadow(0 2px 4px rgba(0,0,0,.4))}.card-preview img{border-radius:inherit}.play-controls{display:flex;justify-content:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}.play-controls__sort{display:inline-flex!important;align-items:center;justify-content:center;gap:0}.play-controls__sort-glyph{display:inline-flex;align-items:center;line-height:1;font-size:1.125rem}.play-controls__sort-arrow{display:inline-flex;align-items:center;line-height:1;font-size:.75rem;margin:0 5px}.play-controls__suit--red{color:#b3261e}.play-controls__suit--black{color:#1a0e05}@keyframes play-controls__ready-pulse{0%,to{box-shadow:inset 0 1px #fff0c899,inset 0 -1px #78501e59,0 1px 3px #00000073,0 0 #d4a35600}50%{box-shadow:inset 0 1px #fff0c899,inset 0 -1px #78501e59,0 1px 3px #00000073,0 0 12px 2px #d4a3568c}}.play-controls__play--ready{animation:play-controls__ready-pulse 1.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.play-controls__play--ready{animation:none;box-shadow:inset 0 1px #fff0c899,inset 0 -1px #78501e59,0 1px 3px #00000073,0 0 8px 1px #d4a35666}}.play-controls button{background:linear-gradient(180deg,#f0d9a8,#e8d09a,#c4a472);color:#1a0e05;border:1px solid #3a2810;border-radius:4px;padding:.45rem 1.2rem;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 0 rgba(255,240,200,.6);box-shadow:inset 0 1px #fff0c899,inset 0 -1px #78501e59,0 1px 3px #00000073;cursor:pointer;transition:filter .15s ease-out,transform .05s ease-out}.play-controls button:hover:not(:disabled){filter:brightness(1.07)}.play-controls button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 1px #fff0c866,inset 0 -1px #78501e59,0 1px 1px #00000059}.play-controls button:disabled{opacity:.55;filter:saturate(.6);cursor:not-allowed}.play-controls button.secondary{background:linear-gradient(180deg,#d8bf88,#c4a472,#a48656)}.round-end{width:min(92%,60rem);margin:2rem auto;padding:1.5rem 1.75rem;background:#e8d09a;color:#1a0e05;border:2px solid #1a0e05;border-radius:2px;box-shadow:0 4px 14px #00000073}.round-end .round-end__scores{margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.round-end .round-end__player{display:flex;flex-direction:column}.round-end .round-end__player-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.15rem 0 .45rem;border-bottom:1px solid rgba(26,14,5,.22)}.round-end .round-end__player-name{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem;min-width:0;flex:1 1 auto;font-family:var(--font-rye, "Rye", "Bookman Old Style", Bookman, Georgia, serif);font-size:1.2rem;letter-spacing:.04em;text-transform:uppercase;color:#1a0e05;line-height:1.15}.round-end .round-end__player-name .host-crown{width:1em;height:1em;color:#1a0e05;flex-shrink:0}.round-end .round-end__player-name-text{min-width:0;overflow-wrap:anywhere}.round-end .round-end__player-status{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0}.round-end .round-end__winner-star{display:inline-block;color:#b8860b;font-size:1.15em;line-height:1;transform:rotate(-8deg);text-shadow:0 1px 0 rgba(26,14,5,.25)}.round-end .round-end__cleared{display:inline-block;margin:.55rem 0 .5rem;font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.95rem;color:#1a0e05b3}.round-end .round-end__player-score{display:flex;align-items:center;gap:.85rem;margin-top:.55rem}.round-end .round-end__score-stamp{display:inline-block;padding:.3rem .85rem;font-family:var(--font-rye, "Rye", "Bookman Old Style", Bookman, Georgia, serif);font-size:1.3rem;font-variant-numeric:tabular-nums;border:1.5px solid #1a0e05;border-radius:2px;background:#fff8dc8c;transform:rotate(-2deg);line-height:1}.round-end .round-end__score-stamp--positive{color:#1a0e05;background:#b8860b38;border-color:#1a0e05}.round-end .round-end__score-stamp--negative{color:#7a1a1a;border-color:#7a1a1a;background:#7a1a1a0f}.round-end .round-end__score-total{font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.9rem;color:#1a0e05b3}.round-end .round-end__final-hand-row{margin:.55rem 0 0}.round-end__final-hand-row{display:flex;flex-wrap:nowrap;align-items:center}.round-end__final-hand-row .card{width:52px;height:70.5714285714px;flex-shrink:0}.round-end__hand-card{display:inline-block;flex-shrink:0;transition:opacity .01s ease-out}.round-end__hand-card+.round-end__hand-card{margin-left:-22px}.round-end__headline{margin:0 0 1rem;font-family:var(--font-rye, "Rye", "Bookman Old Style", Bookman, Georgia, serif);font-weight:400;font-size:2.2rem;letter-spacing:.04em;text-align:center;color:#1a0e05;line-height:1}.round-end__mode-label{display:block;margin:0 0 .5rem;font-family:var(--font-rye, "Rye", serif);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#1a0e05b8}.round-end__ready-badge{display:inline-block;padding:.15rem .55rem;font-family:var(--font-rye, "Rye", serif);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#1a0e05;background:#b8860b47;border:1px solid #1a0e05;border-radius:2px;line-height:1}.round-end__divider{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:.5rem auto 1.25rem;max-width:14rem;color:#1a0e058c}.round-end__divider:before,.round-end__divider:after{content:"";flex:1;height:1px;background:#1a0e0566}.round-end__divider-ornament{color:#1a0e058c;font-size:1rem;line-height:1}.error-banner{position:absolute;top:-7rem;left:50%;margin-left:-16rem;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 button.landing__toast-close{flex:0 0 auto;min-height:0;width:1.4rem;height:1.4rem;padding:0;font-family:inherit;font-size:1.1rem;line-height:1;text-transform:none;letter-spacing:normal;color:#1a0e05;background:transparent;border:0;border-radius:2px;cursor:pointer}.landing button.landing__toast-close:hover:not(:disabled){background:#1a0e0514}@keyframes landing-toast-fade-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.round-end__rematch{margin:0 auto;padding:0;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;font-family:inherit;color:#1a0e05;text-align:left;width:100%}.round-end__mode-tile:hover:not(:disabled){background:#fdeec7;transform:translateY(-1px);box-shadow:0 3px #1a0e05}.round-end__mode-tile:focus-visible{outline:2px solid #b8860b;outline-offset:3px}.round-end__mode-tile--selected{background:#1a0e05;color:#fff5e3}.round-end__mode-tile--selected:hover:not(:disabled){background:#2a1a0a;box-shadow:0 3px #fdeec7}.round-end__mode-tile--selected .round-end__mode-sub{color:#ead7b9}.round-end__mode-tile--readonly,.round-end__mode-tile:disabled{cursor:default;opacity:.85}.round-end__mode-tile--readonly:hover,.round-end__mode-tile:disabled:hover{background:#fdeec7;transform:none;box-shadow:none}.round-end__mode-tile--readonly.round-end__mode-tile--selected,.round-end__mode-tile:disabled.round-end__mode-tile--selected{opacity:1}.round-end__mode-hint{margin:0 0 .5rem;font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.85rem;color:#1a0e05a6;letter-spacing:.02em}.round-end__mode-unready{display:inline-block;margin:.5rem 0 0;padding:0;background:transparent;border:0;font-family:Bookman Old Style,Bookman,Georgia,serif;font-style:italic;font-size:.85rem;letter-spacing:.02em;color:#1a0e05a6;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.round-end__mode-unready:hover{color:#1a0e05}.round-end__mode-unready:focus-visible{outline:2px solid #b8860b;outline-offset:2px}.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__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}.spec-mode-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem}.spec-mode-toggle__label{letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;opacity:.8}.spec-mode-toggle__segments{display:inline-flex;border:1px solid rgba(232,212,168,.45);border-radius:3px;overflow:hidden}.spec-mode-toggle__segment{background:#e8d4a82e;color:inherit;border:0;padding:.25rem .7rem;font-size:.78rem;font-family:inherit;cursor:pointer;letter-spacing:.02em;line-height:1}.spec-mode-toggle__segment:hover:not(.spec-mode-toggle__segment--selected){background:#e8d4a847}.spec-mode-toggle__segment--selected{background:#e8d4a8;color:#1a0e05;cursor:default}.invite-spec-menu{position:relative;display:inline-block}.invite-spec-menu__trigger{background:transparent;color:inherit;border:1px solid currentColor;border-radius:2px;padding:.15rem .45rem;font-size:.7rem;font-family:inherit;cursor:pointer;letter-spacing:.02em;opacity:.85}.invite-spec-menu__trigger:hover{opacity:1;background:#fff5e314}.invite-spec-menu__list{position:absolute;top:100%;right:0;margin:.25rem 0 0;padding:.3rem;list-style:none;background:#f6e8c4;color:#1a0e05;border:1px solid #1a0e05;border-radius:3px;z-index:200;display:flex;flex-direction:column;gap:.2rem;min-width:8rem}.invite-spec-menu__list button{background:transparent;color:#1a0e05;border:0;padding:.25rem .5rem;cursor:pointer;text-align:left;font-family:inherit;font-size:.85rem;border-radius:2px}.invite-spec-menu__list button:hover{background:#1a0e0514}.bot-replaced-banner{position:fixed;top:calc(env(safe-area-inset-top,0px) + 1rem);left:50%;transform:translate(-50%);z-index:950;display:flex;align-items:center;gap:.6rem;padding:.55rem .85rem;background:#e8d09a;color:#1a0e05;border:1.5px solid #1a0e05;border-radius:3px;box-shadow:0 4px 12px #0006;font-size:.9rem;max-width:calc(100vw - 2rem)}.bot-replaced-banner button{background:#1a0e05;color:#f6e8c4;border:0;border-radius:2px;padding:.25rem .55rem;font-size:.8rem;font-family:inherit;cursor:pointer}.bot-replaced-banner button:hover{background:#2d1a08}@media(orientation:portrait)and (max-width:767px){:root{--card-width: 20vw;--slot-pitch: calc((100vw - 20vw - 2rem) / 12)}.game{padding:2.4rem 0 0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:.3rem}.audio-settings__trigger,.game-share-button{width:2rem;height:2rem}.game-share-button{right:calc(env(safe-area-inset-right,0px) + 3rem)}.spectator-badge{right:calc(env(safe-area-inset-right,0px) + 5.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:.15rem .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;min-height:22px}.opponent-seat__hand .card-back{width:16px;height:auto}.opponent-seat__hand .card-back+.card-back{margin-left:-10px}.deal-animation__flying--opp{width:16px;height:auto;margin-top:-11px;margin-left:-8px}.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% - 8px);left:-.25rem;right:auto;margin-left:0;margin-right:0;top:auto;width:60px;height:60px;border-radius:50%;object-fit:cover;object-position:center bottom;transform:none;z-index:1}.trick-pile{width:calc(100% - 1rem);margin:0 auto .75rem;align-self:start;height:clamp(7rem,var(--app-height, 100svh) * .25,13rem);min-height:0;border:4px solid #2a1a0a;border-radius:14px;padding:.75rem .5rem;top:30px}.trick-pile__cards{--card-width: 15vw;--card-height: calc(15vw * 190 / 140);margin-top:0}.app-bg{background-image:linear-gradient(180deg,var(--bg-seam-color, #000) 0%,var(--bg-seam-color, #000) 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 .75rem .75rem;overflow:visible;justify-content:center;--slot-pitch: calc((80vw - 2rem)/max(var(--cards-per-row, 13) - 1, 1)) }.hand>*{margin-left:calc(var(--slot-pitch) - var(--card-width))}.hand>*:first-child{margin-left:0}.hand--two-rows{flex-wrap:wrap;row-gap:.15rem}.card.card--selected{transform:translateY(-32px);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{padding:1.5rem 1rem;gap:1rem}.lobby{margin-top:3.6rem;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:.15rem}.trick-pile__turn-chip--opp-0{top:.15rem;left:calc(16% - .85rem);bottom:auto}.trick-pile__turn-chip--opp-1{top:.15rem;left:calc(50% - .85rem);bottom:auto}.trick-pile__turn-chip--opp-2{top:.15rem;left:calc(84% - .85rem);bottom:auto}}@media(orientation:portrait)and (max-width:767px){.game{padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}.play-controls{display:flex;flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:.5rem;margin-top:.25rem;padding:0 .75rem}.play-controls>button:not(.play-controls__sort){flex:1 1 0;min-height:50px;padding:0 .5rem;font-size:1.125rem}.game__self-name{margin-top:.25rem}.play-controls__sort-group{position:relative;display:flex;align-items:stretch;gap:6px;border:1px solid #5a4326;border-radius:6px;padding:13px 5px 4px}.play-controls__sort-cap{position:absolute;top:-7px;left:50%;transform:translate(-50%);background:#241910;padding:0 6px;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#e0c890;line-height:1;white-space:nowrap}.play-controls .play-controls__sort{flex:0 0 59px;width:59px;min-height:0;padding:0}.round-end{width:min(96%,60rem);padding:.85rem .75rem 1rem;margin:.5rem auto}.round-end .round-end__player-name{font-size:1rem;letter-spacing:.02em}.round-end .round-end__player-score{gap:.65rem;margin-top:.45rem}.round-end .round-end__score-stamp{font-size:1.1rem;padding:.25rem .7rem}.round-end__rematch{margin:0 0 .65rem;padding:0 0 .65rem;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__hand-card+.round-end__hand-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__hand-card+.round-end__hand-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__hand-card+.round-end__hand-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}}.message-toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 3.5rem);left:50%;transform:translate(-50%);z-index:1200;max-width:calc(100vw - 2rem);padding:.6rem 1rem;background:#1a0e05;color:#f6e8c4;border:1px solid #5a4030;border-radius:6px;box-shadow:0 6px 18px #00000073;font-family:inherit;font-size:.9rem;line-height:1.3;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.how-to-play__trigger{position:fixed;top:calc(env(safe-area-inset-top,0px) + .35rem);left:calc(env(safe-area-inset-left,0px) + .6rem);z-index:1000;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;background:#140c088c;color:#e8d4a8;border:1px solid rgba(232,212,168,.25);border-radius:50%;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:1.2rem;font-weight:700;line-height:1;cursor:pointer;transition:background .15s ease,transform .1s ease}.how-to-play__trigger:hover{background:#281810bf}.how-to-play__trigger:active{transform:scale(.94)}.how-to-play__trigger:focus-visible{outline:2px solid #e8d4a8;outline-offset:2px}.how-to-play__trigger--pulsing{animation:how-to-play-pulse 1.6s ease-in-out infinite}@keyframes how-to-play-pulse{0%,to{box-shadow:0 0 #e8d4a873;transform:scale(1)}50%{box-shadow:0 0 0 8px #e8d4a800;transform:scale(1.06)}}@media(orientation:portrait)and (max-width:767px){.how-to-play__trigger{width:2rem;height:2rem;font-size:1rem}}.how-to-play__backdrop{position:fixed;inset:0;background:#000000a6;z-index:1300;display:flex;align-items:center;justify-content:center;padding:1rem}.how-to-play__modal{background:#f6e8c4;color:#1a0e05;border:2px solid #1a0e05;border-radius:6px;box-shadow:0 12px 32px #0009;max-width:36rem;width:100%;max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;overflow:hidden}.how-to-play__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .5rem;border-bottom:1px solid rgba(26,14,5,.2)}.how-to-play__header h2{margin:0;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;font-size:1.4rem;letter-spacing:.02em;color:#1a0e05}.how-to-play__close{background:transparent;border:0;padding:0 .3rem;color:#1a0e05;font-size:1.6rem;line-height:1;cursor:pointer;border-radius:3px}.how-to-play__close:hover{background:#1a0e0514}.how-to-play__close:focus-visible{outline:2px solid #1a0e05;outline-offset:2px}.how-to-play__body{padding:.75rem 1.25rem 1.25rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.how-to-play__section{margin-top:1rem}.how-to-play__section:first-child{margin-top:0}.how-to-play__section h3{margin:0 0 .4rem;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:1rem;font-weight:700;color:#1a0e05;letter-spacing:.01em}.how-to-play__section p,.how-to-play__section ul{margin:.25rem 0;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:.92rem;line-height:1.45;color:#2d1a08}.how-to-play__section ul{padding-left:1.25rem}.how-to-play__section li{margin:.1rem 0}.how-to-play__section em{color:#2d1a08b3}.how-to-play__section strong{color:#1a0e05}.audio-settings{position:fixed;top:calc(env(safe-area-inset-top,0px) + .35rem);right:calc(env(safe-area-inset-right,0px) + .6rem);z-index:1000}.audio-settings__trigger{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;background:#140c088c;color:#e8d4a8;border:1px solid rgba(232,212,168,.25);border-radius:50%;cursor:pointer;transition:background .15s ease,transform .1s ease}.audio-settings__trigger:hover{background:#281810bf}.audio-settings__trigger:active{transform:scale(.94)}.audio-settings__trigger:focus-visible{outline:2px solid #e8d4a8;outline-offset:2px}.audio-settings__popover{position:absolute;top:calc(100% + .5rem);right:0;min-width:16rem;padding:.8rem 1rem;background:#1a1410;color:#e8d4a8;border:1px solid rgba(232,212,168,.3);border-radius:.5rem;box-shadow:0 8px 24px #00000080;font-size:.85rem;display:flex;flex-direction:column;gap:.6rem}.audio-settings__mute-row{display:flex;justify-content:space-between;align-items:center;font-weight:600;padding-bottom:.6rem;border-bottom:1px solid rgba(232,212,168,.15)}.audio-settings__switch{width:2.4rem;height:1.3rem;padding:0;border-radius:.65rem;border:1px solid rgba(232,212,168,.3);background:#3a2a1f;position:relative;cursor:pointer;transition:background .15s ease}.audio-settings__switch:before{content:"";position:absolute;top:50%;left:.15rem;width:.95rem;height:.95rem;background:#e8d4a8;border-radius:50%;transform:translateY(-50%);transition:left .15s ease}.audio-settings__switch.is-on{background:#6a4a2a}.audio-settings__switch.is-on:before{left:calc(100% - 1.1rem)}.audio-settings__slider-row{display:flex;flex-direction:column;gap:.25rem}.audio-settings__slider-row span{font-size:.78rem;opacity:.85}.audio-settings__slider-row input[type=range]{width:100%;accent-color:#e8d4a8}.audio-settings__track-row{display:flex;flex-direction:column;gap:.3rem}.audio-settings__track-row>span{font-size:.78rem;opacity:.85}.audio-settings__track-options{display:flex;gap:.3rem}.audio-settings__track-option{flex:1;padding:.3rem .4rem;background:#e8d4a814;color:#e8d4a8;border:1px solid rgba(232,212,168,.3);border-radius:3px;font-size:.78rem;font-family:inherit;cursor:pointer;transition:background .12s ease-out}.audio-settings__track-option:hover{background:#e8d4a82e}.audio-settings__track-option--selected{background:#e8d4a8d9;color:#1a0e05;cursor:default}.audio-settings__track-option--selected:hover{background:#e8d4a8d9}.audio-settings__test{align-self:flex-start;margin-top:.25rem;padding:.3rem .7rem;background:#e8d4a81f;color:#e8d4a8;border:1px solid rgba(232,212,168,.45);border-radius:3px;font-size:.78rem;font-family:inherit;cursor:pointer}.audio-settings__test:hover{background:#e8d4a838}.audio-settings__leave{margin-top:.65rem;padding:.4rem .7rem;background:#dc5a462e;color:#f3b1a3;border:1px solid rgba(220,90,70,.55);border-top:1px solid rgba(220,90,70,.55);border-radius:3px;font-size:.85rem;font-family:inherit;cursor:pointer;position:relative}.audio-settings__leave:before{content:"";position:absolute;top:-.35rem;left:0;right:0;height:1px;background:#e8d4a82e}.audio-settings__leave:hover{background:#dc5a4652;color:#ffdcd0}.name-prompt-backdrop{position:fixed;inset:0;background:#0009;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1rem;pointer-events:auto}.name-prompt-card{width:100%;max-width:22rem;padding:1.5rem 1.75rem 1.25rem;background:#faf3e6;color:#1a1410;border:1px solid #8b6f4a;border-radius:.6rem;box-shadow:0 14px 40px #0000008c;display:flex;flex-direction:column;gap:.6rem;font-family:Bookman Old Style,Bookman,Georgia,serif}.name-prompt-card__title{margin:0;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-weight:400;font-size:1.15rem;letter-spacing:.04em;text-transform:none}.name-prompt-card__subtitle{margin:0 0 .4rem;font-size:.92rem;opacity:.75}.name-prompt-card__form{display:flex;flex-direction:column;gap:.6rem}.name-prompt-card__input{width:100%;padding:.55rem .7rem;font-size:1rem;font-family:inherit;background:#fff;color:#1a1410;border:1px solid #8b6f4a;border-radius:.4rem}.name-prompt-card__input:focus{outline:2px solid #6a4a2a;outline-offset:1px}.name-prompt-card__submit{padding:.55rem .7rem;font-size:1rem;font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;letter-spacing:.06em;text-transform:uppercase;background:#6a4a2a;color:#faf3e6;border:1px solid #4d3618;border-radius:.4rem;cursor:pointer;transition:background .15s ease,transform .08s ease}.name-prompt-card__submit:hover{background:#5a3e22}.name-prompt-card__submit:active{transform:scale(.98)}.name-prompt-card__submit:disabled{opacity:.5;cursor:not-allowed;background:#6a4a2a}.name-prompt-card__back{align-self:center;margin-top:.5rem;padding:.25rem .5rem;background:transparent;border:none;color:#6a4a2a;font-size:.85rem;text-decoration:underline;cursor:pointer}.name-prompt-card__back:hover{color:#4d3618}.spectator-badge{position:fixed;top:calc(env(safe-area-inset-top,0px) + .35rem);right:calc(env(safe-area-inset-right,0px) + 3.25rem);z-index:1000}.spectator-badge__button{display:inline-flex;align-items:center;gap:.3rem;padding:0 .6rem;height:2.4rem;background:#140c088c;color:#e8d4a8;border:1px solid rgba(232,212,168,.25);border-radius:1.2rem;cursor:pointer;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:.9rem;transition:background .15s ease,transform .1s ease}.spectator-badge__button:hover{background:#281810bf}.spectator-badge__button:active{transform:scale(.96)}.spectator-badge__button:focus-visible{outline:2px solid #e8d4a8;outline-offset:2px}.spectator-badge__button svg{width:1.1em;height:1.1em}.spectator-badge__count{font-weight:600;letter-spacing:.02em}.spectator-badge__popover{position:absolute;top:calc(100% + .5rem);right:0;min-width:14rem;max-width:20rem;padding:.7rem .9rem;background:#1a1410;color:#e8d4a8;border:1px solid rgba(232,212,168,.3);border-radius:.5rem;box-shadow:0 8px 24px #00000080;font-size:.9rem;display:flex;flex-direction:column;gap:.55rem}.spectator-badge__popover .spec-mode-toggle{flex-wrap:wrap;padding-bottom:.5rem;border-bottom:1px solid rgba(232,212,168,.18)}.spectator-badge__empty{margin:0;font-style:italic;opacity:.65;font-size:.85rem}.spectator-badge__watching{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.5rem;border-bottom:1px solid rgba(232,212,168,.18)}.spectator-badge__watch-options{display:flex;flex-direction:column;gap:.2rem}.spectator-badge__watch-option{background:#e8d4a82e;color:inherit;border:1px solid rgba(232,212,168,.45);border-radius:3px;padding:.3rem .6rem;font-size:.85rem;font-family:Bookman Old Style,Bookman,Georgia,serif;cursor:pointer;text-align:left;line-height:1.1}.spectator-badge__watch-option:hover:not(.spectator-badge__watch-option--selected){background:#e8d4a847}.spectator-badge__watch-option--selected{background:#e8d4a8;color:#1a0e05;border-color:#1a0e05;cursor:default}.spectator-badge__title{font-family:Rye,Bookman Old Style,Bookman,Georgia,serif;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8;margin-bottom:.4rem}.spectator-badge__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.spectator-badge__name{font-family:Bookman Old Style,Bookman,Georgia,serif}.spectator-badge__name--disconnected{opacity:.6}.spectator-badge__off{font-size:.78rem;opacity:.7}.game-share-button{position:fixed;top:calc(env(safe-area-inset-top,0px) + .35rem);right:calc(env(safe-area-inset-right,0px) + 6.75rem);z-index:1000;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;background:#140c088c;color:#e8d4a8;border:1px solid rgba(232,212,168,.25);border-radius:50%;cursor:pointer;transition:background .15s ease,transform .1s ease}.game-share-button:hover{background:#281810bf}.game-share-button:active{transform:scale(.94)}.game-share-button:focus-visible{outline:2px solid #e8d4a8;outline-offset:2px}.game-share-button svg{width:1.2em;height:1.2em}button.bot-seat-icon,.bot-seat-icon{--bot-icon-rest-color: #5a4030;display:inline-flex;align-items:center;justify-content:center;position:relative;color:var(--bot-icon-rest-color);background:transparent;border:0;padding:.2rem;margin:0;min-height:0;border-radius:4px;cursor:default}button.bot-seat-icon .robot-icon,.bot-seat-icon .robot-icon{color:inherit}button.bot-seat-icon svg,.bot-seat-icon svg{width:1.7rem;height:1.7rem}.opponent-seat__count .bot-seat-icon{--bot-icon-rest-color: #c4a472;background:#40101659;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-radius:4px}.bot-seat-icon--interactive{cursor:pointer}.bot-seat-icon--interactive:focus-visible{outline:2px solid #b8860b;outline-offset:2px}.bot-seat-icon--disabled{opacity:.45;cursor:not-allowed}button.bot-seat-icon--interactive:hover:not(:disabled){background:#5a40308c;color:#f6e8c4}.opponent-seat__count .bot-seat-icon--interactive:hover{background:#c4a4728c;color:#f6e8c4}.bot-seat-icon__visual{position:relative;display:inline-flex;align-items:center;justify-content:center}.bot-seat-icon__subscript{position:absolute;bottom:-.2rem;right:-.2em;font-family:Bookman Old Style,Bookman,Georgia,serif;font-size:.65rem;font-weight:700;line-height:1;color:inherit;letter-spacing:0}.bot-picker{display:inline-flex;gap:.15rem;padding:.2rem;background:#f6e8c4;border:1px solid #1a0e05;border-radius:3px;box-shadow:0 2px 8px #0000004d;z-index:200}.bot-picker--info{display:block;max-width:12rem;padding:.4rem .55rem;white-space:normal}.bot-picker__message{display:block;color:#1a0e05;font-size:.78rem;font-family:inherit;line-height:1.25;text-align:center}.bot-picker__option{background:transparent;color:#1a0e05;border:1px solid transparent;border-radius:2px;padding:.2rem .55rem;font-size:.78rem;font-family:inherit;cursor:pointer;line-height:1}.bot-picker__option--selected{background:#1a0e05;color:#f6e8c4;cursor:default}.seat__bot-affordance{display:inline-flex}.seat>.bot-picker,.opponent-seat>.bot-picker{position:absolute;top:calc(100% - .5rem);left:50%;transform:translate(-50%);max-width:calc(100% - .5rem);margin-top:.25rem}.lobby__quick-fill>.bot-picker{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.35rem;z-index:10}@media(orientation:portrait)and (max-width:767px){.bot-picker{flex-direction:column;align-items:stretch}.bot-picker__option{padding:.45rem .7rem;text-align:center}}
