.room-page{position:relative;min-height:100dvh;background:#060908;overflow:hidden}.room-page--horizontal{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.room-page__bg{position:fixed;background-position:50%}.room-page__bg,.room-page__bg--playfield{inset:0;background-size:cover;background-repeat:no-repeat;z-index:0}.room-page__bg--playfield{position:absolute;pointer-events:none}.room-page__bg--playfield:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,8,.35),rgba(6,9,8,.06) 24%,rgba(6,9,8,.04) 52%,rgba(6,9,8,.22))}.room-page__ui{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column;pointer-events:none}.room-page__ui a,.room-page__ui button{pointer-events:auto}.room-page__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:nowrap;padding:calc(.75rem + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .5rem max(1rem,env(safe-area-inset-left))}.room-page__back{color:rgba(245,240,230,.82);text-decoration:none;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.room-page__back:hover{color:#e8d96a}.room-page__meta{text-align:right;min-width:0;flex:1}.room-page__title{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.25rem,2.5vw,1.75rem);color:#e8d96a;letter-spacing:.04em}.room-page__subtitle{margin:.35rem 0 0;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,240,230,.5)}.room-page__status{margin:.25rem 0 0;font-size:.62rem;letter-spacing:.04em;color:rgba(232,217,106,.82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.room-game-shell{min-height:100dvh;max-height:100dvh;overflow:hidden;background:#060908}.room-game-shell--horizontal{--poker-dock-height-idle:52px;--poker-dock-height-active:min(120px,22dvh);--poker-dock-height:var(--poker-dock-height-idle);--room-top-bar-height:44px}.room-game-shell--horizontal,.room-game-shell--vertical{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100dvh;max-height:100dvh}.room-game-shell--vertical{--poker-dock-height-idle:48px;--poker-dock-height-active:min(168px,32dvh);--poker-dock-height:var(--poker-dock-height-idle);--room-top-bar-height:44px;overflow:hidden;background:#060908}.room-game-shell--active{--poker-dock-height:var(--poker-dock-height-active)}.room-game-shell--idle{--poker-dock-height:var(--poker-dock-height-idle)}.room-game-shell--horizontal .room-game-shell__playfield,.room-game-shell--vertical .room-game-shell__playfield{position:relative;min-height:0;max-height:calc(100dvh - var(--poker-dock-height));overflow:hidden;display:flex;flex-direction:column}.room-top-bar{position:relative;z-index:12;flex-shrink:0;display:flex;align-items:center;gap:8px;min-height:var(--room-top-bar-height);padding:calc(4px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 4px max(10px,env(safe-area-inset-left));pointer-events:auto}.room-top-bar__btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0 8px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(8,12,10,.72);color:rgba(245,240,230,.9);font-size:.82rem;text-decoration:none;cursor:pointer}.room-top-bar__btn--on{border-color:rgba(126,200,255,.55);color:#7ec8ff}.room-top-bar__btn--coaching{background:rgba(22,163,74,.2);border-color:rgba(34,197,94,.4);color:#4ade80}.room-top-bar__btn--coaching:hover:not(:disabled){background:rgba(22,163,74,.3)}.room-top-bar__btn--coaching:disabled{opacity:.5;cursor:not-allowed}.room-top-bar__id{flex:1;min-width:0;padding:.25rem .65rem;border-radius:999px;background:rgba(8,12,10,.72);border:1px solid rgba(255,255,255,.1);color:rgba(245,240,230,.78);font-size:.72rem;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-top-bar__actions{display:flex;align-items:center;gap:6px}.room-top-bar__menu{position:absolute;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:calc(var(--room-top-bar-height) + env(safe-area-inset-top));z-index:20;display:flex;flex-wrap:wrap;gap:8px;padding:10px;border-radius:12px;border:1px solid rgba(201,162,78,.35);background:rgba(6,10,8,.96);box-shadow:0 12px 32px rgba(0,0,0,.45);pointer-events:auto}.room-game-shell--horizontal .room-page__table-wrap,.room-game-shell--vertical .room-page__table-wrap{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.room-game-shell--horizontal .room-page__ui{flex:1;min-height:0;display:flex;flex-direction:column}.room-page__table-wrap,.room-table-stage{position:relative;flex:1;min-height:0}.room-table-stage{margin:0 auto;width:min(100%,1400px);padding:0 .5rem;display:flex;align-items:center;justify-content:center;transform-origin:center center}@media (min-width:768px) and (max-width:1199px){.room-game-shell--horizontal .room-table-stage{transform:scale(.88)}}.room-game-shell--horizontal .room-table-stage{width:100%;max-width:none;padding:0}.room-table-felt{position:relative;width:100%;height:100%;z-index:1}.room-table-felt--horizontal{width:min(100%,calc((100dvh - var(--poker-dock-height) - var(--room-top-bar-height)) * 1.501));height:auto;max-height:calc(100dvh - var(--poker-dock-height) - var(--room-top-bar-height));aspect-ratio:1024/682;margin:0 auto;overflow:visible}.room-table-felt--horizontal .room-table-center{z-index:3}.room-table-felt--horizontal .room-seat{z-index:4}.room-table-canvas{position:absolute;left:50%;top:var(--table-center-top,50%);transform:translate(-50%,-50%);width:min(58%,520px);height:min(34%,220px);z-index:1;opacity:.55;pointer-events:none;border-radius:50%;overflow:hidden}.room-table-winner{padding:.35rem .75rem;border-radius:999px;background:rgba(8,12,10,.88);border:1px solid rgba(201,162,78,.45);color:#e8d96a;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.room-table-center{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:3}.room-table-board{padding:6px 10px;border-radius:10px;background:rgba(0,0,0,.25);backdrop-filter:blur(4px)}.room-table-board--empty{color:rgba(255,255,255,.25);font-size:.72rem;padding:12px 24px}.room-table-board--empty,.room-table-pot{letter-spacing:.12em;text-transform:uppercase}.room-table-pot{min-width:72px;padding:.35rem .75rem;border-radius:999px;border:1px solid rgba(201,162,78,.45);background:rgba(8,12,10,.82);text-align:center;color:#e8d96a;font-size:.65rem}.room-table-pot__label{display:block;opacity:.75}.room-table-pot strong{display:block;font-size:1.05rem;letter-spacing:.04em}.room-seat{position:absolute;transform:translate(-50%,-50%);z-index:4}.room-seat__anchor{position:relative;width:0;height:0}.room-seat__empty,.room-seat__info{position:absolute;left:0;top:0;transform:translate(-50%,-50%);min-width:64px;max-width:88px}.room-seat__cards{transform:translate(-50%,calc(-100% - 6px));margin-bottom:0;max-width:min(92px,22vw);overflow:hidden}.room-seat__allin,.room-seat__blind,.room-seat__cards,.room-seat__dealer{position:absolute;left:0;top:0}.room-seat-empty{opacity:.72}.room-seat-folded{opacity:.35}.room-seat-active .room-seat__avatar,.room-seat-active .room-seat__info{box-shadow:0 0 0 2px rgba(232,217,106,.9),0 6px 18px rgba(0,0,0,.4)}.room-seat-winner .room-seat__avatar,.room-seat-winner .room-seat__info{box-shadow:0 0 0 2px rgba(232,217,106,.95),0 0 14px rgba(232,217,106,.35)}.room-seat__dealer{transform:translate(18px,-30px);width:24px;height:24px;border-radius:50%;background:linear-gradient(180deg,#fff,#e8e8e8);color:#111;font-size:.68rem;font-weight:900;display:grid;place-items:center;border:2px solid #e8d96a;box-shadow:0 2px 8px rgba(0,0,0,.55);z-index:3;text-shadow:none}.room-seat__blind{transform:translate(-50%,calc(-100% - 36px));padding:3px 6px;border-radius:999px;font-size:.58rem;font-weight:800;letter-spacing:.06em;line-height:1;border:1px solid rgba(255,255,255,.35);box-shadow:0 2px 8px rgba(0,0,0,.5);z-index:3;text-shadow:0 1px 2px rgba(0,0,0,.45)}.room-seat__blind--sb{transform:translate(calc(-50% - 18px),calc(-100% - 36px));background:rgba(21,101,192,.92);color:#fff}.room-seat__blind--bb{transform:translate(calc(-50% + 18px),calc(-100% - 36px));background:rgba(198,40,40,.92);color:#fff}.room-seat--hero .room-seat__info{border-color:rgba(232,217,106,.62)}.room-seat__allin{transform:translate(-26px,-28px);padding:2px 6px;border-radius:999px;background:rgba(198,40,40,.92);color:#fff;font-size:.52rem;font-weight:800;letter-spacing:.06em;animation:allin-pulse 1.2s ease-in-out infinite;z-index:3}@keyframes allin-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.88}}.room-seat__avatar{width:54px;height:54px;margin:0 auto 2px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:linear-gradient(145deg,#1a3a8c,#0f2266);border:2px solid rgba(201,162,78,.55);display:block}.room-seat__cards--invert{transform:rotate(180deg)}.room-seat__avatar--turn{box-shadow:0 0 0 2px rgba(232,217,106,.95),0 0 12px rgba(232,217,106,.45)}.room-seat__info{min-width:72px;max-width:96px;padding:.25rem .45rem .35rem;border-radius:.5rem;border:1px solid rgba(201,162,78,.32);background:rgba(8,12,10,.86);backdrop-filter:blur(6px);text-align:center;font-size:.65rem;line-height:1.2}.room-seat__empty{display:flex;flex-direction:column;align-items:center;gap:2px}button.room-seat__empty{cursor:pointer;pointer-events:auto;border:none;background:none;padding:0;font:inherit;color:inherit}button.room-seat__empty:hover:not(:disabled){opacity:1}button.room-seat__empty:hover:not(:disabled) .room-seat__empty-icon{border-color:rgba(232,217,106,.55);color:rgba(232,217,106,.88)}button.room-seat__empty:hover:not(:disabled) .room-seat__empty-label{color:rgba(232,217,106,.75)}button.room-seat__empty:disabled{cursor:not-allowed;opacity:.45}.room-seat__empty-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(8,12,10,.55);color:rgba(245,240,230,.65);font-size:.85rem}.room-seat__empty-label{font-size:.52rem;letter-spacing:.06em;color:rgba(245,240,230,.42);text-transform:uppercase}.room-seat__name{color:rgba(245,240,230,.95);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.room-seat__stack{color:#e8d96a;font-weight:700;font-size:.7rem}.room-seat__bet{margin-top:2px;color:#7ec8ff;font-size:.65rem}.room-table-meta{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px;color:rgba(245,240,230,.38);font-size:.58rem;letter-spacing:.06em;text-align:center}.room-table-meta span:first-child{text-transform:uppercase;letter-spacing:.1em}.room-page__bottom{display:none}.room-panel{min-width:120px;padding:.75rem 1rem;border:1px solid rgba(201,162,78,.28);border-radius:.75rem;background:rgba(8,12,10,.55);backdrop-filter:blur(8px)}.room-panel__label{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,240,230,.55)}.room-panel__value{display:block;margin-top:.25rem;font-size:1rem;color:#e8d96a}@media (max-width:640px){.room-seat__empty,.room-seat__info{min-width:52px;max-width:80px}}.room-page--minimal .room-page__ui{min-height:0}.room-page--vertical{flex:1;min-height:0;padding-bottom:0;display:flex;flex-direction:column;overflow:hidden}.room-page--vertical .room-page__bg:after{background:linear-gradient(180deg,rgba(6,9,8,.45),rgba(6,9,8,.08) 18%,rgba(6,9,8,.04) 45%,rgba(6,9,8,.55) 88%,rgba(6,9,8,.72))}.room-page--vertical .room-page__top{padding:calc(.65rem + env(safe-area-inset-top)) .85rem .35rem}.room-page--vertical .room-page__title{font-size:1.05rem}.room-page--vertical .room-page__subtitle{font-size:.62rem}.room-page--vertical .room-page__status{font-size:.58rem;margin-top:.2rem}.room-game-shell--vertical .room-page__ui,.room-page--vertical .room-page__table-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.room-page--vertical .room-page__table-wrap{position:relative;overflow:hidden}.room-page--vertical .room-page__bg--playfield:after{background:linear-gradient(180deg,rgba(6,9,8,.35),rgba(6,9,8,.04) 22%,rgba(6,9,8,.02) 48%,rgba(6,9,8,.18) 78%,rgba(6,9,8,.28))}.room-page--vertical .room-table-stage{position:relative;z-index:1;flex:1;min-height:0;width:100%;max-width:520px;margin:0 auto;overflow:hidden;display:flex;align-items:center;justify-content:center}.room-page--vertical .room-table-felt--vertical{position:relative;height:100%;max-width:100%;aspect-ratio:9/16;overflow:hidden}.room-page--vertical .room-page__bg--playfield{background-position:top}.room-page--vertical .room-table-center{gap:8px}.room-page--vertical .room-table-pot{min-width:84px;padding:.45rem .85rem}.room-page--vertical .room-table-pot strong{font-size:1.15rem}.room-page--vertical .room-seat__empty,.room-page--vertical .room-seat__info{min-width:52px;max-width:76px;transform:translate(-50%,calc(-50% + 14px))}.room-page--vertical .room-seat--hero{min-width:68px;max-width:92px;z-index:5}.room-page--vertical .room-seat--hero .room-seat__info{padding:.28rem .42rem;border-width:2px;transform:translate(-50%,calc(-50% + 17px))}.room-page--vertical .room-seat--hero .room-seat__avatar{width:42px;height:42px}.room-page--vertical .room-seat__info{min-width:68px;max-width:88px;font-size:.6rem}.room-page--vertical .room-seat__empty-icon{width:28px;height:28px;font-size:.75rem}.room-page--vertical .room-seat__dealer{width:26px;height:26px;font-size:.7rem}.room-page--vertical .room-seat__blind{font-size:.62rem;padding:3px 7px}.room-page--vertical .chip-drag-drop{top:50%;width:min(62vw,260px);height:min(32vw,160px);z-index:3}.room-game-shell--horizontal .chip-drag-stack,.room-game-shell--vertical .chip-drag-stack{display:none}.room-game-shell--horizontal .chip-drag-drop,.room-game-shell--vertical .chip-drag-drop{position:absolute}.room-page--vertical .chip-drag-stack__chip{width:44px;height:44px}.dom-table-canvas__felt{width:100%;height:100%;border-radius:50%;background:radial-gradient(ellipse at center,#1a5c38 0,#0f3d24 72%,#0a2818 100%);box-shadow:inset 0 0 40px rgba(0,0,0,.35)}.phaser-table-canvas canvas{border-radius:50%}.room-table-loading{min-height:60vh;display:grid;place-items:center}.room-table-loading__label{margin:0;color:#e8d96a;letter-spacing:.1em;text-transform:uppercase;font-size:.82rem}.room-table-pot--gathering strong{animation:pot-gather-pulse .6s ease-in-out infinite alternate}.room-table-pot--awarding{opacity:calc(1 - var(--award-fade, 0))}.room-table-pot-chip{position:absolute;z-index:6;pointer-events:none;width:28px;height:28px}.room-table-pot-chip__icon{display:block;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fde68a,#c9a24e 55%,#8b6914);border:2px solid rgba(255,255,255,.35);box-shadow:0 2px 10px rgba(0,0,0,.45)}@keyframes pot-gather-pulse{0%{color:#fef08a}to{color:#fde047}}.chip-drag-drop{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);width:min(52vw,360px);height:min(24vw,140px);border-radius:50%;pointer-events:none;z-index:3;border:2px dashed transparent;transition:border-color .15s ease}.chip-drag-drop--active{border-color:rgba(232,217,106,.45);background:rgba(26,92,56,.12)}.chip-drag-drop--over{border-color:rgba(232,217,106,.85);background:rgba(26,92,56,.22);box-shadow:0 0 0 4px rgba(232,217,106,.12)}.chip-drag-drop__edge{position:absolute;left:50%;transform:translateX(-50%);font-size:.62rem;letter-spacing:.06em;color:rgba(245,240,230,.55)}.chip-drag-drop__edge--max{top:.35rem}.chip-drag-drop__edge--min{bottom:.35rem}.chip-drag-drop__hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.72rem;color:rgba(245,240,230,.65)}.chip-drag-drop__bb{opacity:.75;font-size:.75em}.chip-drag-drop__preview{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.35rem .75rem;border-radius:999px;background:rgba(8,12,10,.88);border:1px solid rgba(201,162,78,.45);color:#e8d96a;font-size:.82rem;display:flex;gap:.5rem;align-items:center}.chip-drag-stack{position:fixed;left:max(1rem,env(safe-area-inset-left));right:auto;bottom:calc(156px + env(safe-area-inset-bottom));width:56px;height:56px;z-index:28;cursor:grab;touch-action:none;pointer-events:auto}.chip-drag-stack--dragging{cursor:grabbing;opacity:.85}.chip-drag-stack--over-drop .chip-drag-stack__chip{box-shadow:0 0 12px rgba(232,217,106,.45)}.chip-drag-stack__chip{position:absolute;left:8px;top:8px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fde68a,#c9a24e 55%,#8b6914);border:2px solid rgba(255,255,255,.35);box-shadow:0 2px 6px rgba(0,0,0,.35)}.chip-drag-stack__chip--2{transform:translate(4px,-4px);opacity:.92}.chip-drag-stack__chip--3{transform:translate(8px,-8px);opacity:.84}.chip-drag-stack__hint{position:absolute;bottom:-1rem;left:50%;transform:translateX(-50%);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(245,240,230,.55);white-space:nowrap}.pcard--highlight{border-color:#e8d96a!important;box-shadow:0 0 0 2px rgba(232,217,106,.85),0 0 14px rgba(232,217,106,.55),0 2px 8px rgba(0,0,0,.45)}.pcard--dimmed{opacity:.38;filter:saturate(.55)}.pcard-row{display:inline-flex;gap:4px;align-items:center;justify-content:center}.pcard{position:relative;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.45);flex-shrink:0}.pcard--sm{width:34px;height:48px;font-size:.62rem}.pcard--md{width:44px;height:62px;font-size:.78rem}.pcard--lg{width:56px;height:78px;font-size:.95rem}.pcard--face{background:linear-gradient(145deg,#fffef8,#f4f0e6);border:1px solid #c8c0b0;color:#111}.pcard--red{color:#c62828}.pcard--black{color:#1a1a1a}.pcard--blue{color:#1565c0}.pcard--green{color:#2e7d32}.pcard__corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:800}.pcard__corner small{font-size:.85em;margin-top:1px}.pcard__corner--tl{top:3px;left:4px}.pcard__corner--br{bottom:3px;right:4px;transform:rotate(180deg)}.pcard__center{position:absolute;inset:0;display:grid;place-items:center;font-size:1.55em;opacity:.92}.pcard--sm .pcard__center{font-size:1.35em}.pcard--back{background:linear-gradient(135deg,#1a3a8c,#0f2266 50%,#1a3a8c);border:2px solid #c9a24e;overflow:hidden}.pcard__back-pattern{width:100%;height:100%;background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 4px,transparent 4px 8px),radial-gradient(circle at 50% 50%,rgba(201,162,78,.35) 0,transparent 55%)}.pcard-row--board .pcard{animation:pcard-deal .35s ease-out both}@keyframes pcard-deal{0%{opacity:0;transform:translateY(-8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.pcard-row--board .pcard:nth-child(2){animation-delay:.08s}.pcard-row--board .pcard:nth-child(3){animation-delay:.16s}.pcard-row--board .pcard:nth-child(4){animation-delay:.24s}.pcard-row--board .pcard:nth-child(5){animation-delay:.32s}.pcard--flipping{perspective:600px;background:transparent;border:none;box-shadow:none}.pcard--flipping .pcard__flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateY(calc((1 - var(--pcard-flip, 0)) * 180deg));transition:transform .08s linear}.pcard--flipping .pcard__flip-back,.pcard--flipping .pcard__flip-front{position:absolute;inset:0;border-radius:6px;backface-visibility:hidden}.pcard--flipping .pcard__flip-back{background:linear-gradient(135deg,#1a3a8c,#0f2266 50%,#1a3a8c);border:2px solid #c9a24e;overflow:hidden}.pcard--flipping .pcard__flip-front{transform:rotateY(180deg);background:linear-gradient(145deg,#fffef8,#f4f0e6);border:1px solid #c8c0b0}.pcard-row--dealing{--deal-progress:0}.pcard-row--dealing .pcard{opacity:calc(.35 + var(--deal-progress) * .65);transform:translate(calc((1 - var(--deal-progress)) * var(--deal-dx, 0px)),calc((1 - var(--deal-progress)) * var(--deal-dy, 0px))) scale(calc(.72 + var(--deal-progress) * .28));transition:transform .06s linear,opacity .06s linear}