:root{--felt:#0f5132;--felt-dark:#0a3b25;--ink:#f5f3ee;--accent:#e8b64c;--danger:#b3261e;--rule:#f5f3ee29;--sunk:#00000047;--display:"Fraunces", "Cormorant Garamond", Georgia, serif;--code:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}#root{container-type:size}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--ink);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}img,svg{-webkit-user-drag:none;user-drag:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.lobby__rail,.lobby__roster ul,.host-panel__dialog,.round-end__places,.emoji-picker__panel{touch-action:pan-y}.viewport{width:100%;height:100%;overflow:hidden;container-type:size}.viewport--sideways{transform-origin:0 0;width:100cqh;height:100cqw;position:fixed;top:0;left:0;transform:rotate(90deg)translateY(-100%)}html{background-color:var(--felt-dark);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.09'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(ellipse 120% 135% at 50% 50%, var(--felt), #062a1b);background-blend-mode:soft-light, normal;background-position:50%,50%;background-repeat:repeat,no-repeat;background-size:140px 140px,cover}.app{flex-direction:column;height:100%;display:flex;position:relative}.rotate-prompt{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;height:100%;padding:1.5rem;display:flex}.rotate-prompt__icon{font-size:3rem;animation:2.4s ease-in-out infinite rotate-hint}@keyframes rotate-hint{0%,60%,to{transform:rotate(0)}80%{transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){.rotate-prompt__icon{animation:none}}.rotate-prompt__sideways{color:inherit;opacity:.7;text-underline-offset:.2em;background:0 0;border:0;margin-top:.75rem;padding:.5rem .9rem;font-family:inherit;font-size:.8rem;text-decoration:underline}.rotate-prompt__sideways:hover{opacity:.9}.main-menu{grid-template-columns:minmax(0,1fr) minmax(0,17rem);align-items:center;gap:clamp(1.5rem,6cqw,4.5rem);width:min(46rem,100%);height:100%;margin:0 auto;padding:clamp(.75rem,4cqh,2rem) clamp(1.25rem,5cqw,2.5rem);display:grid}.main-menu__identity{flex-direction:column;align-items:flex-start;animation:.46s cubic-bezier(.2,.7,.3,1) backwards menu-enter;display:flex}.main-menu__actions{flex-direction:column;gap:.7rem;animation:.46s cubic-bezier(.2,.7,.3,1) 90ms backwards menu-enter;display:flex}@keyframes menu-enter{0%{opacity:0;transform:translateY(.6rem)}}@media (prefers-reduced-motion:reduce){.main-menu__identity,.main-menu__actions{animation:none}}.main-menu__title{font-family:var(--display);letter-spacing:-.005em;margin:0;font-size:clamp(2.1rem,8.5cqh,3.25rem);font-weight:500;line-height:.94}.main-menu__title-text{animation:.42s cubic-bezier(.2,.7,.3,1) both title-swap;display:inline-block}@keyframes title-swap{0%{opacity:0;filter:blur(4px);transform:translateY(.18em)}}.field{flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.field input{width:10rem;color:inherit;font:inherit;background:#00000040;border:1px solid #f5f3ee59;border-radius:.4rem;padding:.5rem .6rem}button{color:inherit;font:inherit;cursor:pointer;background:#0003;border:1px solid #f5f3ee59;border-radius:.4rem;padding:.5rem .9rem}button:disabled{opacity:.5;cursor:default}.terminology-switch{--terminology-gap:.6rem;align-items:center;gap:var(--terminology-gap);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;margin:.9rem 0 1.1rem;padding:0;display:inline-flex;position:relative}.terminology-switch__bar{background:var(--accent);width:2.75rem;height:2px;transition:transform .48s cubic-bezier(.65,0,.15,1)}.terminology-switch[data-terminology=grandMillionaire] .terminology-switch__bar{transform:translateX(calc(var(--terminology-shift,0px) + var(--terminology-gap)))}.terminology-switch__label{letter-spacing:.01em;white-space:nowrap;opacity:0;font-size:.75rem;transition:opacity .32s,transform .48s cubic-bezier(.65,0,.15,1),color .32s}.terminology-switch__label--left{position:absolute;left:0;transform:translate(.5rem)}.terminology-switch__label--right{transform:translate(-.5rem)}.terminology-switch[data-terminology=daifugo] .terminology-switch__label--right,.terminology-switch[data-terminology=grandMillionaire] .terminology-switch__label--left{opacity:.55;transform:translate(0)}.terminology-switch:hover .terminology-switch__label,.terminology-switch:focus-visible .terminology-switch__label{color:var(--accent)}.terminology-switch:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:.25rem}@media (prefers-reduced-motion:reduce){.main-menu__title-text{animation:none}.terminology-switch__bar,.terminology-switch__label{transition-duration:1ms}}.main-menu .field{gap:.35rem}.main-menu .field>span{opacity:.7}.main-menu .field input{width:100%}.main-menu .field input:focus-visible,.main-menu button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main-menu__name{max-width:17rem}.main-menu__name input{border-radius:999px;padding:.85rem 1.25rem;font-size:1.15rem}.main-menu__button{width:100%;padding:.6rem .9rem;font-weight:600}.main-menu__button--primary{border-color:var(--accent);background:var(--accent);color:var(--felt-dark)}.main-menu__or{opacity:.5;align-items:center;gap:.6rem;margin:.15rem 0;font-size:.75rem;display:flex}.main-menu__or:before,.main-menu__or:after{background:var(--rule);content:"";flex:1;height:1px}.main-menu__join{flex-direction:column;gap:.7rem;display:flex}.main-menu .field.main-menu__code input{background:var(--sunk);width:8.5rem;color:var(--accent);font-family:var(--code);letter-spacing:.4rem;text-transform:uppercase;border:1px solid #f5f3ee33;border-radius:999px;padding:.5rem 0 .5rem 1rem;font-size:1.05rem}.main-menu__code input::placeholder{color:#f5f3ee40;letter-spacing:.4rem}.main-menu__resume{align-items:baseline;gap:.75rem;margin-top:.2rem;font-size:.8rem;display:flex}.main-menu__link{color:var(--accent);font-size:inherit;text-underline-offset:.2em;background:0 0;border:0;padding:0;text-decoration:underline}.main-menu__link--quiet{color:inherit;opacity:.55}.main-menu__notice{color:var(--accent);margin:0;font-size:.8rem}@container (width<=40rem){.main-menu{grid-template-columns:minmax(0,1fr);align-content:center;gap:1.5rem}}.error-banner{background:var(--danger);justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .75rem;font-size:.8rem;display:flex}.lobby{grid-template-columns:minmax(0,19rem) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,5cqw,3.5rem);width:min(52rem,100%);height:100%;margin:0 auto;padding:clamp(.85rem,4cqh,1.5rem) clamp(1.25rem,5cqw,2.5rem) 2.4rem;font-size:.8rem;display:grid;position:relative}.lobby__rail{flex-direction:column;gap:1rem;min-height:0;max-height:100%;display:flex;overflow-y:auto}.lobby__code{flex-direction:column;margin:0;font-weight:400;display:flex}.lobby__code-label{letter-spacing:.02em;opacity:.55;font-family:inherit;font-size:.75rem;font-weight:400}.lobby__code-value{color:var(--accent);font-family:var(--display);letter-spacing:.14em;font-size:clamp(2rem,8cqh,3rem);line-height:1.05}.lobby__share{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;margin-top:.4rem;padding:.3rem .7rem;font-family:inherit;font-size:.75rem}.lobby__share:hover{background:var(--accent);color:var(--felt-dark)}.lobby__rule{background:var(--accent);border:0;width:2.75rem;height:2px;margin:.7rem 0 .6rem}.lobby__round{opacity:.7;margin:0}.lobby h2{letter-spacing:.02em;opacity:.55;margin:0 0 .45rem;font-size:.75rem;font-weight:500}.lobby__exit{align-items:baseline;gap:.75rem;display:flex;position:absolute;bottom:.7rem;left:clamp(1.25rem,5cqw,2.5rem)}.lobby__leave{color:inherit;opacity:.7;text-underline-offset:.2em;background:0 0;border:0;padding:0;font-size:.75rem;text-decoration:underline}.lobby__leave:hover{opacity:.85}.lobby__connection{opacity:.6;font-size:.7rem}.lobby__roster{flex-direction:column;min-height:0;max-height:100%;display:flex}.lobby__roster ul{min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.seat-row{border-bottom:1px solid var(--rule);border-left:2px solid #0000;align-items:baseline;gap:.5rem;padding:.5rem .25rem .5rem .6rem;display:flex}.seat-row__index{width:1.1rem;font-family:var(--code);opacity:.55;flex:none;font-size:.7rem}.lobby__name{font-size:1rem;font-weight:500}.seat-row--me{border-left-color:var(--accent);background:linear-gradient(90deg,#e8b64c17,#0000 60%)}.seat-row--offline .lobby__name{opacity:.5}.seat-row--open{border-bottom-style:dashed;border-bottom-color:#f5f3ee1f}.seat-row--open .seat-row__index{opacity:.3}.seat-row__open{opacity:.5;font-size:.85rem;font-style:italic}.seat-row__state{white-space:nowrap;gap:.6rem;margin-left:auto;padding-left:.75rem;font-size:.72rem;display:flex}.seat-row__ready{color:var(--accent)}.seat-row__offline{color:#e08b84}.badge{border:1px solid var(--rule);letter-spacing:.01em;opacity:.75;border-radius:.8rem;padding:.05rem .4rem;font-size:.65rem}.badge--host{color:var(--accent);opacity:1;border-color:#e8b64c80}.badge--you{background:#f5f3ee1a;border-color:#0000}.badge--quiet{opacity:.5;border-color:#0000}.badge--warn{border-color:var(--danger);color:var(--danger)}.lobby__standings table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.lobby__standings caption{opacity:.55;text-align:left;padding-bottom:.35rem;font-size:.7rem}.lobby__standings th,.lobby__standings td{border-bottom:1px solid var(--rule);text-align:left;padding:.28rem .6rem .28rem 0}.lobby__standings th{opacity:.55;border-bottom-color:#f5f3ee47;font-size:.68rem;font-weight:500}.lobby__standings tbody tr:first-child td{color:var(--accent)}.lobby__standings td:last-child,.lobby__standings th:last-child{text-align:right;padding-right:0}.lobby__miyako-ochi{color:var(--accent);margin:.45rem 0 0;font-size:.72rem;line-height:1.4}.lobby__actions{flex-direction:column;gap:.45rem;padding-top:.9rem;display:flex}.ready-controls__deal,.ready-controls__ready{border-color:var(--accent);background:var(--accent);width:100%;color:var(--felt-dark);padding:.65rem .9rem;font-weight:600}.ready-controls__ready--sent,.ready-controls__deal:disabled{border-color:var(--rule);color:var(--ink);cursor:default;background:0 0}.ready-controls__note{opacity:.72;margin:0;font-size:.75rem}.lobby :focus-visible{outline:2px solid var(--accent);outline-offset:2px}@container (width<=44rem){.lobby{touch-action:pan-y;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}.lobby__rail{overflow:visible}}.lobby .host-panel__summary{border:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:0 0;justify-content:center;align-items:center;width:100%;padding:.45rem 0;font-size:.8rem;display:flex}.host-panel__summary{font-size:.75rem}.host-panel__backdrop{z-index:60;background:#0a3b25d1;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.host-panel__dialog{border:1px solid var(--accent);background:var(--felt);border-radius:.5rem;flex-direction:column;gap:.5rem;width:min(28rem,100%);max-height:100%;padding:.75rem .9rem;display:flex;overflow-y:auto}.host-panel__header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.host-panel__heading{color:var(--accent);margin:0;font-size:.85rem}.host-panel__close{color:var(--ink);opacity:.7;background:0 0;border:0;padding:0 .35rem;font-size:1rem;line-height:1}.host-panel__close:hover{opacity:1}.host-panel__body{flex-direction:column;gap:.5rem;display:flex}.host-panel__rules{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.2rem .8rem;margin:0;padding:0;list-style:none;display:grid}.host-panel__rule{align-items:center;gap:.35rem;display:flex}.host-panel__limit{align-items:flex-end;gap:.5rem;display:flex}.host-panel__limit .field input{width:5rem}.host-panel__note{color:var(--accent);margin:0;font-size:.72rem}.game-table{flex-direction:column;flex:auto;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.game-table__top{flex:0 0 var(--top-strip-height);height:var(--top-strip-height);border-bottom:1px solid #f5f3ee1f;grid-template-columns:auto minmax(0,1fr) minmax(0,1.2fr) auto auto;align-items:center;gap:.4rem;padding:.25rem .4rem;display:grid}.game-table__middle{grid-template-columns:var(--side-column-width) minmax(0, 1fr) var(--side-column-width);flex:1 1 var(--middle-height);gap:.3rem;min-height:0;padding:.3rem .4rem;display:grid}.game-table__bottom{flex-direction:column;flex:0 0 var(--hand-row-height);height:var(--hand-row-height);border-top:1px solid #f5f3ee1f;display:flex;position:relative}.game-table__hand,.game-table__action{min-width:0;overflow:hidden}.game-table__action{flex-direction:column;flex:0 0 var(--action-row-height);height:var(--action-row-height);border-bottom:1px solid #f5f3ee1f;justify-content:center;align-items:stretch;padding:0 .4rem;display:flex}.game-table__seats{gap:.3rem;min-width:0;min-height:0;display:flex}.game-table__seats--left{flex-direction:column-reverse;justify-content:center}.game-table__seats--right{flex-direction:column;justify-content:center}.game-table__seats--top{align-items:center}.game-table__clock{align-items:center;gap:.3rem;display:flex}.game-table__turn{max-width:8rem;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.game-table__connection{color:var(--accent);white-space:nowrap;border:1px solid #e8b64ca6;border-radius:999px;padding:.12rem .35rem;font-size:.65rem;line-height:1}.game-table__leave{border-radius:.3rem;padding:.1rem .4rem;font-size:.9rem;line-height:1}.player-seat{background:linear-gradient(#00000057,#0003);border:1px solid #f5f3ee33;border-radius:.45rem;flex-direction:column;justify-content:center;gap:.18rem;min-width:0;min-height:0;max-height:100%;padding:.3rem .45rem;font-size:.8rem;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #f5f3ee0f}.player-seat--top{max-width:var(--side-column-width);flex:1 1 0}.player-seat--left,.player-seat--right{flex:none}.player-seat--crowned{background:radial-gradient(120% 140% at 50% 0,#e8b64c33,#0000 70%),linear-gradient(#00000057,#0003);border-color:#e8b64c8c;box-shadow:inset 0 1px #e8b64c38}.player-seat--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 14px #e8b64c47;background:linear-gradient(#e8b64c29,#0000003d)}.player-seat--finished{border-color:#f5f3ee66}.player-seat--passed,.player-seat--dropped,.player-seat--offline{opacity:.6}.player-seat__line{align-items:center;gap:.25rem;min-width:0;display:flex;overflow:hidden}.player-seat .badge{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;font-size:.68rem;overflow:hidden}.player-seat__line--quiet{opacity:.85;font-size:.68rem}.player-seat__name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-seat__role{color:var(--accent);letter-spacing:-.05em;flex:none;font-size:.72rem}.player-seat__role--crown{align-items:center;display:inline-flex}.crown-mark{fill:currentColor;filter:drop-shadow(0 0 3px #e8b64ca6);width:.95rem;height:.8rem}.player-seat__stack{align-items:center;display:flex}.player-seat__stack-card{width:var(--seat-pip-width,11px);height:calc(var(--seat-pip-width,11px) * 1.55);background:repeating-linear-gradient(45deg, var(--felt-dark), var(--felt-dark) 2px, var(--felt) 2px, var(--felt) 4px);border:1px solid #f5f3ee99;border-radius:.15rem;flex:none;box-shadow:-1px 0 2px #00000073}.player-seat__stack-card+.player-seat__stack-card{margin-left:calc(var(--seat-pip-step,7px) - var(--seat-pip-width,11px))}.player-seat__offline{color:var(--danger);font-size:.6rem}.badge--good{border-color:var(--accent);color:var(--accent)}.badge--rule{border-color:var(--accent);color:var(--accent);text-transform:none}.trick-area{flex-direction:column;justify-content:center;align-items:center;gap:.3rem;min-width:0;min-height:0;padding-bottom:3.6rem;display:flex;position:relative;overflow:hidden}.trick-area__banners{min-height:1.15rem;transform:translateX(var(--trick-live-offset,0px));flex:none;align-items:center;gap:.3rem;display:flex}.trick-area__centre{flex-direction:column;align-items:center;gap:.4rem;display:flex}.trick-area__note{opacity:.6;margin:0;font-size:.75rem}.trick-area__stack{justify-content:center;align-items:center;max-width:100%;margin:0;padding:0;list-style:none;display:flex;position:relative}.trick-area__play{margin-left:calc(var(--trick-overlap,14.4px) * -1);flex-direction:column;align-items:center;gap:.25rem;display:flex;position:relative}.trick-area__play--live .card-face{box-shadow:0 4px 12px #0000008c}.trick-area__play--live:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(#0000003d 0%,#0000002b 38%,#0000000f 64%,#0000 84%);border-radius:50%;width:calc(100% + 5.5rem);height:calc(100% + 2.6rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trick-area__play--beaten{transform-origin:100% 65%;transform:translateY(calc(min(var(--depth), 3) * -7px)) rotate(calc(min(var(--depth), 3) * -2.5deg)) scale(.85);filter:brightness(.62);opacity:max(.42, calc(1 - var(--depth) * .16))}.trick-area__play:first-child{margin-left:0}.trick-area__cards{gap:.15rem;display:flex}.trick-area__player{white-space:nowrap;text-overflow:ellipsis;opacity:.85;max-width:9rem;font-size:.72rem;overflow:hidden}.card-face{background:var(--ink);border:1px solid #0006;border-radius:.25rem;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:.15em 0 0 .2em;font-weight:700;line-height:1;display:flex}.card-face__rank,.card-face__suit{display:block}.card-face__suit{margin-top:.05em}.card-face--trick{width:calc(var(--card-width) * .7);height:calc(var(--card-height) * .7);font-size:.85rem}.card-face--hand{width:var(--card-width);height:var(--card-height);font-size:1.1rem}.card-face--red{color:#b3261e}.card-face--black{color:#14110d}.card-face--joker{background:linear-gradient(140deg,#f7efd8,#e8b64c);justify-content:center;align-items:center;padding:0}.card-face--bound{border-style:dashed}.history-log{--history-line:14px;min-width:0;max-height:calc(var(--history-line) * 3);font-size:11px;line-height:var(--history-line);flex-direction:column;align-self:center;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.history-log__line{flex:0 0 var(--history-line);white-space:nowrap;text-overflow:ellipsis;color:var(--ink);overflow:hidden}.history-log__line:nth-child(2){color:#f5f3ee94}.history-log__line:nth-child(3){color:#f5f3ee52}.turn-timer{align-items:center;gap:.2rem;display:inline-flex}.turn-timer__track{stroke:#f5f3ee33}.turn-timer__ring{stroke:var(--accent);stroke-linecap:round}.turn-timer__seconds{font-variant-numeric:tabular-nums;font-size:.7rem}.game-table__hand{z-index:38;flex:auto;min-height:0;position:relative;overflow:visible}.game-table__hand-cards{height:100%}.hand-wait{z-index:40;background:#0a16109e;position:absolute;inset:0}.table-focus{z-index:35;pointer-events:none;background:#06120c9e;animation:.18s both anim-table-focus;position:absolute;inset:0}@keyframes anim-table-focus{0%{opacity:0}to{opacity:1}}.turn-wait{color:#f5f3eeeb;letter-spacing:.01em;text-shadow:0 1px 3px #0000008c;background:#0a1610b8;border-radius:.6rem;justify-content:center;align-items:center;gap:.6rem;padding:.55rem 1.4rem;font-size:1.05rem;font-weight:600;animation:.2s both turn-wait-in;display:flex}@keyframes turn-wait-in{0%{opacity:0;transform:translateY(.4rem)}}.turn-wait__label{white-space:nowrap;text-overflow:ellipsis;max-width:26ch;overflow:hidden}.turn-wait__spinner{border:3px solid;border-top-color:#0000;border-radius:50%;flex:none;width:1.2rem;height:1.2rem;animation:2s linear infinite turn-wait-spin}@keyframes turn-wait-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.turn-wait,.turn-wait__spinner{animation:none}}.hand{height:100%;padding-bottom:var(--hand-fan-floor);justify-content:center;align-items:flex-end;display:flex;position:relative;overflow:visible}.hand__fan{height:var(--card-height);margin:0;padding:0;list-style:none;position:relative}.hand__slot{height:var(--card-height);position:absolute;top:0}.hand__card{cursor:pointer;touch-action:none;background:0 0;border:0;width:100%;padding:0;position:absolute;left:0;overflow:visible}.hand__card-box{pointer-events:none;bottom:var(--hand-hit-slop);transform:var(--card-transform);transform-origin:50% 100%;filter:saturate(var(--card-saturation,1));transition:transform .18s cubic-bezier(.2,1.5,.4,1),filter .18s,opacity .18s;display:block;position:absolute;left:0}.hand__card--selected .hand__card-box{filter:drop-shadow(0 6px 10px #00000073)}.hand__card--dimmed .hand__card-box{opacity:.5}.hand__card--fixed{cursor:default}.hand__card--dimmed{cursor:not-allowed}.hand__card--unplayable .hand__card-box{opacity:.75}.hand__binding{z-index:1;background:var(--accent);color:#14110d;cursor:pointer;border:1px solid #00000059;border-radius:.6rem;padding:.05rem .25rem;font-size:.65rem;font-weight:700;position:absolute;top:-.35rem;left:.15rem}.hand__notice{bottom:calc(var(--card-height) * .5);z-index:2;white-space:nowrap;animation:anim-hand-notice var(--notice-duration,2.2s) ease both;background:#0a3b25f0;border:1px solid #b3261eb3;border-radius:.4rem;margin:0;padding:.35rem .75rem;font-size:.8rem;position:absolute;left:50%}@keyframes anim-hand-notice{0%{opacity:0;transform:translate(-50%,8px)scale(.94)}8%{opacity:1;transform:translate(-50%)scale(1)}85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,6px)scale(.97)}}.hand__auto-pass{bottom:calc(var(--card-height) * .5);z-index:1;animation:anim-auto-pass var(--auto-pass-duration,1.2s) ease both;background:#0a3b25eb;border-radius:.4rem;padding:.35rem .75rem;font-size:.8rem;position:absolute;left:50%}@keyframes anim-auto-pass{0%{opacity:0;transform:translate(-50%,12px)scale(.9)}12%{opacity:1;transform:translate(-50%)scale(1)}78%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,16px)scale(.94)}}.hand__fan--passing{filter:saturate(.45);transition:transform .22s,filter .22s;transform:translateY(8px)}.game-table__turn-actions{z-index:45;width:100%;padding:0 .6rem calc(var(--hand-lift-clearance) + .35rem);pointer-events:none;display:grid;position:absolute;bottom:100%;left:0}.game-table__turn-actions>*{grid-area:1/1}.game-table__turn-actions>.turn-wait{justify-self:center}.action-bar{opacity:0;flex-direction:row;justify-content:center;align-items:center;gap:.75rem;transition:opacity .2s,transform .2s cubic-bezier(.2,.9,.3,1);display:flex;transform:translateY(.5rem)}.action-bar--active{opacity:1;transform:none}.action-bar--active button{pointer-events:auto}@media (prefers-reduced-motion:reduce){.action-bar{transition:opacity .2s;transform:none}}.action-bar button{white-space:nowrap;text-overflow:ellipsis;border-radius:.6rem;flex:none;max-width:45%;padding:.55rem 1.6rem;font-size:1.05rem;font-weight:700;line-height:1.2;overflow:hidden;box-shadow:0 4px 14px #00000073}.action-bar__play{background:var(--accent);color:#14110d}.action-bar__play:disabled{box-shadow:none;color:#f5f3eeb3;background:#f5f3ee24;font-weight:500}.action-bar button.action-bar__pass{color:var(--ink);background:#0a1610d9;border:1px solid #f5f3ee59;border-radius:.45rem;padding:.35rem .9rem;font-size:.8rem;box-shadow:0 2px 8px #0006}.action-bar button.action-bar__pass:disabled{box-shadow:none;opacity:.5}.action-bar .turn-timer{flex:none;align-self:center}.action-bar--pending{gap:.6rem}.action-bar__pending{text-align:right;background:#0a1610d1;border-radius:.4rem;flex-direction:column;flex:0 auto;gap:.1rem;min-width:0;padding:.3rem .5rem;display:flex}.action-bar__pending:only-child{text-align:center}.action-bar__prompt{color:var(--accent);font-size:.8rem;font-weight:700;line-height:1.15}.action-bar__note{opacity:.65;font-size:.6rem;line-height:1.15}.action-bar__submit{background:var(--accent);color:#14110d}.action-bar__submit:disabled{box-shadow:none;color:#f5f3eeb3;background:#f5f3ee24;font-weight:500}.exchange{justify-content:center;align-items:stretch;display:flex}.exchange__send{max-width:40%}.table-anim{z-index:40;pointer-events:none;position:absolute;inset:0;overflow:hidden}.table-anim>*{top:calc(var(--top-strip-height) + var(--middle-height) / 2);justify-content:center;align-items:center;gap:.3rem;animation-timing-function:ease-out;animation-fill-mode:both;display:flex;position:absolute;left:50%}.table-anim__title{color:var(--accent);letter-spacing:.08em;text-shadow:0 2px 6px #0009;white-space:nowrap;font-size:1.1rem}.table-anim__caption,.table-anim__label{opacity:.85;white-space:nowrap;font-size:.65rem}.card-back{width:calc(var(--card-width) * .45);height:calc(var(--card-height) * .45);background:repeating-linear-gradient(45deg, var(--felt-dark), var(--felt-dark) 3px, var(--felt) 3px, var(--felt) 6px);border:1px solid #f5f3ee80;border-radius:.2rem}.table-anim__sweep{animation-name:anim-sweep}@keyframes anim-sweep{0%{transform:translate(-50%, -50%) translate(var(--anim-from-x), var(--anim-from-y));opacity:1}to{transform:translate(-50%, -50%) translate(var(--anim-to-x), var(--anim-to-y)) rotate(-18deg) scale(.7);opacity:0}}.table-anim__revolution{background:linear-gradient(90deg,#0000,#000000bf 20% 80%,#0000);flex-direction:column;gap:.15rem;width:100%;padding:.5rem 0;animation-name:anim-revolution}@keyframes anim-revolution{0%{opacity:0;transform:translate(-50%,-50%)scaleY(.2)}15%{opacity:1;transform:translate(-50%,-50%)scaleY(1)}80%{opacity:1;transform:translate(-50%,-50%)scaleY(1)}to{opacity:0;transform:translate(-50%,-50%)scaleY(1)}}.game-table__hand--revolution .hand__fan{animation:.7s ease-in-out anim-hand-flip}@keyframes anim-hand-flip{0%{transform:rotateX(0)}50%{filter:brightness(1.6);transform:rotateX(80deg)}to{transform:rotateX(0)}}.table-anim__travel{flex-direction:column;gap:.15rem;animation-name:anim-travel}.table-anim__cards{gap:.15rem;display:flex}@keyframes anim-travel{0%{transform:translate(-50%, -50%) translate(var(--anim-from-x), var(--anim-from-y)) scale(.8);opacity:0}20%{opacity:1}to{transform:translate(-50%, -50%) translate(var(--anim-to-x), var(--anim-to-y)) scale(.8);opacity:0}}.table-anim__stamp{border:2px solid var(--accent);border-radius:.4rem;padding:.3rem .8rem;animation-name:anim-stamp}@keyframes anim-stamp{0%{opacity:0;transform:translate(-50%,-50%)scale(2.4)rotate(-12deg)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-12deg)}75%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-12deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.1)rotate(-12deg)}}.table-anim__skip{flex-direction:column;gap:.1rem;animation-name:anim-skip}@keyframes anim-skip{0%{transform:translate(-50%, -50%) translate(var(--anim-from-x), var(--anim-from-y)) scale(.6);opacity:0}40%{transform:translate(-50%, -50%) translate(calc(var(--anim-to-x) / 2), calc(var(--anim-to-y) / 2 - 40px)) scale(1);opacity:1}to{transform:translate(-50%, -50%) translate(var(--anim-to-x), var(--anim-to-y)) scale(.9);opacity:0}}.table-anim__agari{animation-name:anim-agari}@keyframes anim-agari{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}20%{opacity:1;transform:translate(-50%,-50%)scale(1)}80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.table-anim__miyako{flex-direction:column;gap:.25rem;animation-name:anim-miyako}.table-anim__miyako .table-anim__title{font-size:.8rem}@keyframes anim-miyako{0%{transform:translate(-50%, -50%) translate(var(--anim-from-x), var(--anim-from-y)) scale(.8);opacity:0}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}75%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%, -50%) translate(var(--anim-to-x), var(--anim-to-y)) scale(.7);opacity:0}}.player-seat--demoted{animation:1.1s ease-in forwards anim-seat-drop}@keyframes anim-seat-drop{0%{opacity:1;transform:translateY(0)}to{opacity:.55;transform:translateY(14px)}}.your-turn-popup{z-index:45;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.your-turn-popup__text{border:2px solid var(--accent);color:var(--accent);letter-spacing:.1em;text-shadow:0 2px 6px #0009;white-space:nowrap;background:#0a3b25e0;border-radius:.6rem;padding:.5rem 1.4rem;font-size:1.6rem;font-weight:700;animation:1.4s ease-out both anim-your-turn}@keyframes anim-your-turn{0%{opacity:0;transform:scale(.6)}18%{opacity:1;transform:scale(1.08)}28%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.table-anim>*{animation-name:anim-fade}.your-turn-popup__text{animation-name:anim-fade;animation-duration:1.4s}.game-table__hand--revolution .hand__fan{animation:none}.hand__auto-pass,.hand__notice{animation-name:anim-fade}.hand__fan--passing{transition:none;transform:none}.player-seat--demoted{opacity:.55;animation:none}@keyframes anim-fade{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}}.room-shell__curtain{width:100%;height:100%;position:relative}.room-shell__table{width:100%;height:100%;animation:.7s ease-out forwards curtain-table-settle}@keyframes curtain-table-settle{0%{filter:none}to{filter:blur(2px)brightness(.45)saturate(.7)}}.round-end{background:radial-gradient(#0a3b258c,#000000d1);justify-content:center;align-items:center;padding:.75rem;animation:.52s cubic-bezier(.2,.9,.25,1) both curtain-rise;display:flex;position:absolute;inset:0}@keyframes curtain-rise{0%{opacity:0}to{opacity:1}}.round-end__panel{border:1px solid var(--rule);text-align:center;background:linear-gradient(#0f5132eb,#0a3b25f5);border-radius:.7rem;outline:none;flex-direction:column;align-items:center;gap:.35rem;width:min(34rem,100%);max-height:100%;padding:.9rem 1.4rem 1rem;animation:.62s cubic-bezier(.2,.9,.25,1) both curtain-panel-in;display:flex;box-shadow:0 1.4rem 3rem #00000073}@keyframes curtain-panel-in{0%{opacity:0;transform:translateY(26px)scale(.94)}to{opacity:1;transform:none}}.round-end__eyebrow{color:#f5f3eea6;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.7rem}.round-end__headline{color:var(--accent);font-family:var(--display);margin:0 0 .25rem;font-size:1.5rem;font-weight:600;line-height:1.1}.round-end__places{flex-direction:column;gap:.2rem;width:100%;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.round-end__place{background:var(--sunk);text-align:left;border-radius:.35rem;grid-template-columns:1.4rem minmax(0,1fr) minmax(0,8rem) 2.4rem 3.2rem;align-items:center;gap:.5rem;padding:.28rem .5rem;font-size:.78rem;animation:.42s cubic-bezier(.2,.9,.25,1) both curtain-place-in;display:grid}.round-end__place--me{background:#e8b64c24;border:1px solid #e8b64c8c}.round-end__place:first-child .round-end__rank,.round-end__place:first-child .round-end__player{color:var(--accent);font-weight:600}@keyframes curtain-place-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}.round-end__rank{font-family:var(--display);text-align:center;font-size:.95rem}.round-end__player{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.round-end__role{color:#f5f3eeb8;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.round-end__gained{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}.round-end__total{color:#f5f3eea6;font-variant-numeric:tabular-nums;text-align:right}.round-end__actions{flex-direction:column;align-items:center;gap:.3rem;width:min(18rem,100%);margin-top:.5rem;display:flex}.round-end__actions .ready-controls__deal,.round-end__actions .ready-controls__ready{border:1px solid var(--accent);font:inherit;cursor:pointer;border-radius:.4rem;padding:.45rem .9rem;font-size:.82rem;font-weight:600}.round-end__actions .ready-controls__ready--sent,.round-end__actions .ready-controls__deal:disabled{cursor:default}.round-end__lobby{color:#f5f3ee99;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-top:.1rem;padding:.2rem .4rem;font-size:.72rem;text-decoration:underline}.round-end__lobby:hover{color:var(--ink)}.round-end :focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.room-shell__table{filter:brightness(.45);animation:none}.round-end,.round-end__panel,.round-end__place{animation-name:curtain-fade;animation-duration:.2s}@keyframes curtain-fade{0%{opacity:0}to{opacity:1}}}.main-menu__profile{align-items:flex-end;gap:.65rem;width:100%;max-width:21rem;display:flex}.main-menu__profile .main-menu__name{flex:1;min-width:0;position:relative}.main-menu__profile .main-menu__name>span{z-index:1;letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:600;line-height:1;position:absolute;top:.48rem;left:1.25rem}.main-menu__profile .main-menu__name input{height:3.25rem;padding-top:1.2rem;padding-bottom:.3rem}.emoji-picker{flex:none;position:relative}.emoji-picker__trigger{background:radial-gradient(circle at 50% 42%, #ffffff0f, transparent 62%), var(--sunk);border-color:#f5f3ee59;border-radius:50%;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;padding:0;transition:border-color .16s,background-color .16s,transform .16s;display:flex;position:relative}.emoji-picker__trigger:hover,.emoji-picker__trigger[aria-expanded=true]{background-color:#e8b64c14;border-color:#e8b64ccc}.emoji-picker__trigger:active{transform:scale(.97)}.emoji-picker__current{filter:drop-shadow(0 .12rem .1rem #0000004d);font-size:1.7rem;line-height:1}.emoji-picker__panel{z-index:20;background:linear-gradient(145deg, #104c31, var(--felt-dark));scrollbar-color:#f5f3ee47 transparent;scrollbar-width:thin;transform-origin:0 100%;border:1px solid #f5f3ee33;border-radius:.9rem;grid-template-columns:repeat(6,2.5rem);gap:.2rem;width:max-content;max-width:min(17rem,82cqw);max-height:55cqh;padding:.55rem;animation:.14s ease-out both emoji-picker-enter;display:grid;position:absolute;bottom:calc(100% + .7rem);left:0;overflow:hidden auto;box-shadow:0 1rem 2.4rem #0000006b,inset 0 1px #ffffff0a}.emoji-picker__option{background:0 0;border:1px solid #0000;border-radius:.65rem;place-items:center;min-width:0;min-height:2.5rem;padding:0;font-size:1.45rem;line-height:1;transition:border-color .14s,background-color .14s,transform .14s;display:grid;position:relative}.emoji-picker__option:hover{background:#f5f3ee17;transform:translateY(-1px)}.emoji-picker__option[aria-pressed=true]{border-color:var(--accent);background:#e8b64c21;box-shadow:inset 0 0 0 1px #e8b64c14}.emoji-picker__option[aria-pressed=true]:after{background:var(--accent);content:"";border-radius:50%;width:.22rem;height:.22rem;position:absolute;bottom:.24rem;right:.24rem}@keyframes emoji-picker-enter{0%{opacity:0;transform:translateY(.3rem)scale(.98)}}@media (prefers-reduced-motion:reduce){.emoji-picker__trigger,.emoji-picker__option{transition:none}.emoji-picker__panel{animation:none}}.input-spotlight{display:none}@media (hover:none) and (pointer:coarse){.input-spotlight{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04100a99;animation:.2s both spotlight-fade;display:block;position:fixed;inset:0}.main-menu[data-spotlight=closing] .input-spotlight{pointer-events:none;animation:.18s reverse both spotlight-fade}.main-menu[data-spotlight] .main-menu__profile .main-menu__name{z-index:31;top:max(2.1rem, calc((100% - var(--keyboard-inset,0px)) / 2));width:min(24rem,80cqw);max-width:none;animation:.28s cubic-bezier(.2,.7,.3,1) both name-spotlight;position:fixed;left:50%}.viewport--sideways .main-menu[data-spotlight] .main-menu__profile .main-menu__name{top:50%;left:calc((100% - var(--keyboard-inset,0px)) / 2);width:clamp(12rem, calc(100% - var(--keyboard-inset,0px) - 2rem), 24rem)}.main-menu[data-spotlight=closing] .main-menu__profile .main-menu__name{animation:.18s reverse both name-spotlight}.main-menu[data-spotlight] .main-menu__name input{border-color:#e8b64cd9;box-shadow:0 1.4rem 3.2rem #00000080}}@keyframes spotlight-fade{0%{opacity:0}to{opacity:1}}@keyframes name-spotlight{0%{opacity:.5;transform:translate(-50%,calc(2.4rem - 50%))scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.input-spotlight,.main-menu[data-spotlight] .main-menu__profile .main-menu__name{animation-duration:1ms}}.player-icon{vertical-align:middle;flex-shrink:0;margin-inline-end:.3em;font-size:1.15em;line-height:1;display:inline-block}.player-seat__line>.player-icon{margin-inline-end:0}.reaction-menu{flex:none;align-items:center;display:flex;position:relative}.reaction-menu__trigger{background:var(--sunk);border-color:#f5f3ee47;border-radius:.45rem;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;transition:border-color .16s,background-color .16s,opacity .16s;display:flex}.reaction-menu__trigger:hover:not(:disabled),.reaction-menu__trigger[aria-expanded=true]{background-color:#e8b64c1a;border-color:#e8b64ccc}.reaction-menu__trigger:disabled{opacity:.45}.reaction-mark{width:1.05rem;height:1.05rem;fill:var(--accent)}.reaction-menu__panel{z-index:30;background:linear-gradient(145deg, #104c31, var(--felt-dark));transform-origin:0 0;border:1px solid #f5f3ee33;border-radius:.6rem;flex-direction:column;gap:.25rem;width:max-content;max-width:11rem;padding:.35rem;animation:.12s ease-out both reaction-menu-enter;display:flex;position:absolute;top:calc(100% + .35rem);left:0;box-shadow:0 .8rem 1.8rem #00000073}.reaction-menu__option{text-align:left;white-space:nowrap;background:#0000003d;border:1px solid #f5f3ee2e;border-radius:.45rem;padding:.3rem .55rem;font-size:.78rem;line-height:1.1}.reaction-menu__option:hover{background:#e8b64c1f;border-color:#e8b64cbf}@keyframes reaction-menu-enter{0%{opacity:0;transform:translateY(-.25rem)scale(.98)}}.reaction-bubble{color:var(--accent);text-align:center;background:linear-gradient(#123e2a,#09261a);border:1px solid #e8b64cbf;border-radius:.55rem;justify-content:center;align-items:center;padding:.2rem .4rem;font-size:.72rem;line-height:1.15;animation:.16s ease-out both reaction-bubble-enter;display:flex;box-shadow:0 .4rem .9rem #00000073}.reaction-bubble--seat{z-index:5;position:absolute;inset:0;overflow:hidden}.reaction-bubble--trigger{z-index:30;width:max-content;max-width:9rem;position:absolute;top:calc(100% + .35rem);left:0}@keyframes reaction-bubble-enter{0%{opacity:0;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.reaction-menu__panel,.reaction-bubble{animation:none}.reaction-menu__trigger{transition:none}}
