: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}body{background:var(--felt-dark);color:var(--ink);-webkit-text-size-adjust:100%;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}input,textarea{-webkit-user-select:text;user-select:text}.app{background:radial-gradient(ellipse at center, var(--felt), var(--felt-dark));flex-direction:column;height:100%;display:flex}.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}}.main-menu{grid-template-columns:minmax(0,1fr) minmax(0,17rem);align-items:center;gap:clamp(1.5rem,6vw,4.5rem);width:min(46rem,100%);height:100%;margin:0 auto;padding:clamp(.75rem,4vh,2rem) clamp(1.25rem,5vw,2.5rem);display:grid}.main-menu__identity{animation:.46s cubic-bezier(.2,.7,.3,1) both menu-enter}.main-menu__actions{flex-direction:column;gap:.7rem;animation:.46s cubic-bezier(.2,.7,.3,1) 90ms both 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.5vh,3.25rem);font-weight:500;line-height:.94}.main-menu__rule{background:var(--accent);border:0;width:2.75rem;height:2px;margin:.9rem 0 1.1rem}.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-toggle{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.terminology-toggle__label{opacity:.6;font-size:.75rem}.terminology-toggle__options{border:1px solid var(--rule);background:var(--sunk);border-radius:.5rem;padding:2px;display:inline-flex}.terminology-toggle__option{opacity:.65;background:0 0;border:0;border-radius:.375rem;padding:.3rem .7rem;font-size:.8rem}.terminology-toggle__option[aria-pressed=true]{color:var(--accent);opacity:1;background:#e8b64c29}.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{border-bottom:1px solid var(--rule);margin-bottom:.2rem;padding-bottom:1.1rem}.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}@media (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,5vw,3.5rem);width:min(52rem,100%);height:100%;margin:0 auto;padding:clamp(.85rem,4vh,1.5rem) clamp(1.25rem,5vw,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,8vh,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,5vw,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}@media (width<=44rem){.lobby{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:minmax(0,1fr) minmax(0,1.6fr) 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:#0003;border:1px solid #f5f3ee2e;border-radius:.35rem;flex-direction:column;justify-content:center;gap:.1rem;min-width:0;min-height:0;max-height:100%;padding:.15rem .3rem;font-size:.7rem;display:flex;overflow:hidden}.player-seat--top{flex:1 1 0}.player-seat--left,.player-seat--right{flex:none}.player-seat--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.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;overflow:hidden}.player-seat__line--quiet{opacity:.8;font-size:.62rem}.player-seat__name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-seat__role{color:var(--accent);letter-spacing:-.05em;font-size:.6rem}.player-seat__stack{align-items:center;display:flex}.player-seat__stack-card{background:repeating-linear-gradient(45deg, var(--felt-dark), var(--felt-dark) 2px, var(--felt) 2px, var(--felt) 4px);border:1px solid #f5f3ee80;border-radius:.12rem;flex:none;width:.6rem;height:.85rem}.player-seat__stack-card+.player-seat__stack-card{margin-left:-.2rem}.player-seat__offline{color:var(--danger);font-size:.5rem}.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;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.trick-area__banners{gap:.3rem;display:flex;position:absolute;top:0}.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);transform:translateY(calc(min(var(--depth), 4) * -10px));flex-direction:column;align-items:center;gap:.2rem;display:flex;position:relative}.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:.75;max-width:9rem;font-size:.65rem;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{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}.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--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__pass{color:var(--ink);background:#0a1610d9;border:1px solid #f5f3ee59}.action-bar__pass:disabled{box-shadow:none;opacity:.5}.action-bar .turn-timer{flex:none;align-self:center}.card-tray{flex-wrap:wrap;justify-content:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.card-tray__card{background:0 0;border:1px solid #0000;border-radius:.35rem;padding:.1rem;transition:transform .14s,border-color .14s}button.card-tray__card{cursor:pointer}.card-tray__card--selected{border-color:var(--accent);transform:translateY(-6px)}.card-tray__card--fixed{opacity:.9}.exchange{flex-direction:column;justify-content:center;align-items:center;gap:.3rem;padding:.25rem;display:flex}.exchange__prompt{color:var(--accent);margin:0;font-size:.75rem}.exchange__note{opacity:.6;text-align:center;margin:0;font-size:.6rem}.exchange__send{background:var(--accent);color:#14110d;border-radius:.3rem;padding:.3rem .2rem;font-size:.65rem;font-weight:700;line-height:1.15}.exchange__send:disabled{color:#f5f3eea6;background:#f5f3ee1f;font-weight:400}.pending-action{z-index:10;background:#0a3b25d1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pending-action__panel{border:1px solid var(--accent);background:var(--felt);border-radius:.5rem;flex-direction:column;align-items:center;gap:.4rem;max-width:90%;padding:.6rem .9rem;display:flex}.pending-action__header,.pending-action__footer{align-items:center;gap:.6rem;display:flex}.pending-action__prompt{color:var(--accent);margin:0;font-size:.8rem}.pending-action__note{opacity:.6;margin:0;font-size:.6rem}.pending-action__submit{background:var(--accent);color:#14110d;border-radius:.3rem;padding:.3rem .8rem;font-size:.7rem;font-weight:700}.pending-action__submit:disabled{color:#f5f3eea6;background:#f5f3ee1f;font-weight:400}.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}}}
