:root{--light-position: 32% 0%;--color-edge-light: rgba(255, 255, 255, .05);--shadow-flat: 0 1px 2px rgba(0, 0, 0, .35);--shadow-raised: var(--card-shadow);--shadow-lifted: 0 14px 30px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-floating: 0 30px 70px rgba(0, 0, 0, .6);--shadow-sunken: 0 2px 6px rgba(0, 0, 0, .35) inset;--shadow-pressed: 0 1px 4px rgba(0, 0, 0, .3) inset;--edge-top: 0 1px 0 var(--color-edge-light) inset;--edge-gold: 0 0 0 1px rgba(212, 160, 74, .1) inset;--ring-hover: 0 0 0 1px rgba(212, 160, 74, .25);--ring-focus: 0 0 0 3px rgba(212, 160, 74, .22);--ring-selected: 0 0 0 2.5px var(--amber-400);--glow-selected: 0 0 22px rgba(232, 184, 96, .55);--glow-turn: 0 0 24px rgba(232, 184, 96, .5);--glow-danger: 0 0 22px rgba(184, 51, 42, .5);--halo-turn: 0 0 44px rgba(232, 184, 96, .34), 0 0 0 1px rgba(232, 184, 96, .2) inset;--inset-seam: 0 0 0 1px rgba(212, 160, 74, .12) inset, 0 2px 10px rgba(0, 0, 0, .3) inset;--shadow-card: var(--shadow-raised);--shadow-card-hover: var(--shadow-lifted), var(--ring-hover);--shadow-card-selected: var(--ring-selected), var(--glow-selected), 0 12px 28px rgba(0, 0, 0, .55);--shadow-panel: 0 10px 26px rgba(0, 0, 0, .4), var(--edge-top);--shadow-popover: 0 16px 36px rgba(0, 0, 0, .5);--shadow-overlay: var(--shadow-floating), var(--edge-gold), var(--edge-top);--shadow-control: 0 2px 8px rgba(0, 0, 0, .3), var(--edge-top);--shadow-control-hover: 0 6px 18px rgba(0, 0, 0, .4), 0 0 0 1px rgba(212, 160, 74, .18), var(--edge-top);--lift-subtle: -1px;--lift-hover: -8px;--lift-selected: -20px;--press-scale: .96;--card-thickness: 2.5px;--card-edge: 0 calc(-1 * var(--card-thickness)) 0 rgba(10, 20, 14, .18) inset;--surface-card-face: radial-gradient(120% 90% at var(--light-position), rgba(255, 255, 255, .6), transparent 55%), linear-gradient(160deg, var(--ivory) 0%, var(--ivory-2) 100%);--surface-card-back: radial-gradient(120% 120% at 50% 50%, rgba(232, 184, 96, .14), transparent 60%), repeating-linear-gradient(45deg, transparent 0 8px, rgba(232, 184, 96, .12) 8px 9px), repeating-linear-gradient(-45deg, transparent 0 8px, rgba(232, 184, 96, .12) 8px 9px), linear-gradient(160deg, #7d2a1f 0%, #571c16 55%, #3d130e 100%);--radius-card: var(--card-radius);--felt-texture: var(--grain);--surface-felt: radial-gradient(120% 100% at 50% 30%, rgba(92, 196, 163, .18), transparent 55%), radial-gradient(140% 120% at 50% 50%, var(--jade-600) 0%, var(--jade-700) 55%, var(--jade-800) 100%);--table-frame-width: 10px;--table-frame-gradient: linear-gradient(160deg, var(--walnut-500), var(--walnut-800), var(--walnut-600));--table-ring: 0 0 0 2px rgba(212, 160, 74, .25), 0 0 0 10px var(--walnut-700), 0 0 0 11px rgba(212, 160, 74, .18);--table-cast: 0 24px 60px rgba(0, 0, 0, .55);--surface-panel: linear-gradient(180deg, rgba(18, 34, 24, .92), rgba(10, 20, 14, .96));--surface-panel-soft: linear-gradient(180deg, rgba(18, 34, 24, .85), rgba(10, 20, 14, .85));--surface-inlay: linear-gradient(180deg, rgba(246, 240, 224, .06), rgba(246, 240, 224, .02));--surface-button: linear-gradient(180deg, var(--walnut-700), var(--walnut-850));--surface-button-hover: linear-gradient(180deg, var(--walnut-600), var(--walnut-800));--surface-gold: linear-gradient(180deg, var(--amber-400), var(--amber-600));--surface-gold-hover: linear-gradient(180deg, var(--amber-300), var(--amber-500));--surface-input: linear-gradient(180deg, rgba(246, 240, 224, .96), rgba(239, 231, 210, .96));--surface-scrim: radial-gradient(120% 100% at 50% 50%, rgba(6, 13, 9, .78), rgba(6, 13, 9, .92));--color-surface-raised: var(--walnut-800);--color-surface-sunken: var(--walnut-950);--color-felt: var(--jade-700);--color-felt-light: var(--jade-600);--color-felt-deep: var(--jade-800);--color-frame: var(--walnut-700);--color-selection: var(--amber-400);--color-glow-amber: rgba(232, 184, 96, .55);--color-on-gold: var(--walnut-900);--color-scrim: rgba(6, 13, 9, .82);--color-danger: var(--suit-red);--color-danger-deep: var(--suit-red-deep);--color-danger-text: #ff9b8e;--color-danger-glow: rgba(184, 51, 42, .5);--color-danger-hot: #ff3030;--color-danger-warm: #ff7733;--border-walnut: 1px solid var(--walnut-500);--border-gold-faint: 1px solid rgba(212, 160, 74, .14);--border-gold: 1px solid rgba(212, 160, 74, .28);--border-gold-strong: 1px solid rgba(232, 184, 96, .55);--border-danger: 1px solid rgba(184, 51, 42, .7);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 24px;--radius-pill: 999px;--state-disabled-opacity: .45;--state-disabled-saturate: .6;--dur-instant: 80ms;--dur-fast: .16s;--dur-normal: .28s;--dur-slow: .42s;--dur-deal: .34s;--ease-standard: cubic-bezier(.2, 0, .2, 1);--ease-lift: var(--ease-luxe);--ease-pop: cubic-bezier(.175, .885, .32, 1.275);--motion-lift: transform var(--dur-fast) var(--ease-lift), box-shadow var(--dur-fast) var(--ease-lift);--motion-ui: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard)}@media(max-width:480px){:root{--lift-selected: -14px}}@media(prefers-reduced-motion:reduce){:root{--dur-instant: 1ms;--dur-fast: 1ms;--dur-normal: 1ms;--dur-slow: 1ms;--dur-deal: 1ms;--lift-subtle: 0px;--lift-hover: 0px;--lift-selected: 0px;--press-scale: 1}}:root{--walnut-950: #060b09;--walnut-900: #0b1410;--walnut-850: #101d16;--walnut-800: #16261c;--walnut-700: #1f3829;--walnut-600: #315540;--walnut-500: #487355;--amber-200: #f8dc9b;--amber-300: #f5cd7a;--amber-400: #e8b860;--amber-500: #d4a04a;--amber-600: #b8853a;--amber-700: #8c6128;--jade-900: #0f3328;--jade-800: #16463a;--jade-700: #1f5d4d;--jade-600: #2d8067;--jade-500: #3a9b7e;--jade-400: #5cc4a3;--jade-300: #8eddc2;--ivory: #f6f0e0;--ivory-2: #efe7d2;--ivory-shade: #e4d9bf;--suit-red: #b8332a;--suit-red-deep: #8f241d;--suit-black: #131a15;--color-bg: var(--walnut-900);--color-surface: var(--walnut-800);--color-accent: var(--suit-red);--color-gold: var(--amber-400);--color-success: var(--jade-400);--color-text: #ece8d8;--color-text-muted: #93a68b;--color-text-secondary: #bcc9ad;--color-border: var(--walnut-600);--color-card-bg: var(--ivory);--color-card-back: #6e2118;--font-display: "Baloo 2", "Huninn", "Zen Maru Gothic", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-body: "Nunito", "Huninn", "Zen Maru Gothic", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-card: "Baloo 2", "Huninn", "Zen Maru Gothic", sans-serif;--card-width: 84px;--card-height: 116px;--card-scale: 1;--hand-card-float-space: 24px;--hand-card-row-height: calc((var(--card-height) * var(--card-scale)) + 12px);--hand-panel-reserved-height: calc(var(--hand-card-float-space) + var(--hand-card-row-height) + clamp(88px, 9vh, 120px) + env(safe-area-inset-bottom, 0px));--card-radius: 9px;--card-shadow: 0 6px 16px rgba(0,0,0,.45), 0 1px 2px rgba(0,0,0,.4);--app-gutter: 22px;--transition-fast: .16s cubic-bezier(.2, 0, .2, 1);--transition-normal: .28s cubic-bezier(.2, 0, .2, 1);--ease-luxe: cubic-bezier(.16, 1, .3, 1);--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.86  0 0 0 0 0.93  0 0 0 0 0.87  0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100dvh;color:var(--color-text);font-family:var(--font-body);font-feature-settings:"ss01","cv01";letter-spacing:.01em;text-wrap:pretty;overflow-x:hidden;overflow-y:auto;background-color:var(--walnut-900);background-image:radial-gradient(120% 80% at 50% -10%,rgba(212,160,74,.16),transparent 60%),radial-gradient(80% 60% at 85% 110%,rgba(45,128,103,.12),transparent 60%),radial-gradient(70% 50% at 10% 90%,rgba(184,133,58,.08),transparent 55%),linear-gradient(180deg,var(--walnut-900) 0%,var(--walnut-950) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:var(--grain);background-size:160px 160px;opacity:.55;mix-blend-mode:overlay}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(130% 100% at 50% 40%,transparent 55%,rgba(0,0,0,.42) 100%)}#root{position:relative;z-index:1;min-height:100dvh}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.02em;line-height:1.15;text-wrap:balance}button{background:linear-gradient(180deg,var(--walnut-700),var(--walnut-850));color:var(--color-text);border:1px solid var(--walnut-500);padding:9px 18px;border-radius:10px;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:.95rem;letter-spacing:.02em;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);box-shadow:0 1px #ffffff0a inset,0 2px 8px #0000004d}button:hover:not(:disabled){background:linear-gradient(180deg,var(--walnut-600),var(--walnut-800));border-color:var(--amber-600);box-shadow:0 0 0 1px #d4a04a2e,0 6px 18px #0006,0 1px #ffffff0f inset;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0) scale(.96);box-shadow:0 1px 4px #0000004d inset}button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.6)}button.primary{background:linear-gradient(180deg,var(--amber-400),var(--amber-600));border-color:var(--amber-700);color:var(--walnut-900);font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.18);box-shadow:0 1px #ffffff4d inset,0 6px 18px #b8853a59,0 0 0 1px #f5cd7a33}button.primary:hover:not(:disabled){background:linear-gradient(180deg,var(--amber-300),var(--amber-500));border-color:var(--amber-600);box-shadow:0 1px #fff6 inset,0 8px 24px #b8853a80,0 0 0 1px #f5cd7a59;transform:translateY(-1px)}button,input,select,textarea{font:inherit}select,input[type=number],input[type=text],input[type=password]{background:linear-gradient(180deg,#f6f0e0f5,#efe7d2f5);color:var(--walnut-900);border:1px solid var(--walnut-600);padding:9px 13px;border-radius:9px;font-family:var(--font-body);font-weight:500;box-shadow:0 1px 3px #0000004d inset,0 0 0 1px #d4a04a0f;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}select:focus,input[type=number]:focus,input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--amber-500);box-shadow:0 1px 3px #0000004d inset,0 0 0 3px #d4a04a38}input::placeholder,input[type=text]::placeholder{color:#0a140e66}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23315540' d='M6 8 0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--amber-500),var(--walnut-600));outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--amber-300),var(--amber-600));border:1px solid var(--amber-700);box-shadow:0 2px 6px #0006;cursor:pointer}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--amber-300),var(--amber-600));border:1px solid var(--amber-700);box-shadow:0 2px 6px #0006;cursor:pointer}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:5px;background:linear-gradient(180deg,var(--walnut-700),var(--walnut-900));border:1px solid var(--walnut-500);cursor:pointer;position:relative;flex-shrink:0;transition:border-color var(--transition-fast),background var(--transition-fast)}input[type=checkbox]:checked{background:linear-gradient(180deg,var(--amber-400),var(--amber-600));border-color:var(--amber-700);box-shadow:0 0 0 2px #d4a04a33}input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--walnut-900);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--walnut-900)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--walnut-600),var(--walnut-800));border-radius:999px;border:2px solid var(--walnut-900)}::-webkit-scrollbar-thumb:hover{background:var(--amber-700)}@media(max-width:768px){:root{--app-gutter: 14px;--card-width: 72px;--card-height: 100px;--hand-panel-reserved-height: calc(var(--hand-card-float-space) + var(--hand-card-row-height) + clamp(104px, 11vh, 132px) + env(safe-area-inset-bottom, 0px))}body{font-size:15px}button{min-height:42px;padding:10px 14px}}@media(max-width:480px){:root{--app-gutter: 10px;--card-width: 60px;--card-height: 84px;--hand-card-float-space: 20px;--hand-panel-reserved-height: calc(var(--hand-card-float-space) + var(--hand-card-row-height) + clamp(118px, 14vh, 148px) + env(safe-area-inset-bottom, 0px))}body{font-size:14px}button{min-height:40px;padding:9px 12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.card:hover:not(.face-down),.card.selected{transform:none!important}body:before{animation:none!important}}.card-container{transform-style:preserve-3d;perspective:1000px}.card{width:calc(var(--card-width) * var(--card-scale));height:calc(var(--card-height) * var(--card-scale));border-radius:var(--radius-card);background:var(--surface-card-face);border:1px solid var(--ivory-shade);box-shadow:var(--shadow-card),var(--card-edge);display:flex;flex-direction:column;padding:5px;cursor:pointer;font-family:var(--font-card);will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;transition:var(--motion-lift);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:calc(var(--card-radius) - 3px);border:.5px solid rgba(184,133,58,.22);pointer-events:none}.card:hover:not(.face-down){transform:translate3d(0,var(--lift-hover),0);box-shadow:var(--shadow-card-hover),var(--card-edge)}.card.selected{transform:translate3d(0,var(--lift-selected),0)!important;box-shadow:var(--shadow-card-selected),var(--card-edge)}.card.selected:before{border-color:#e8b86099}.card.red{color:var(--suit-red)}.card.black{color:var(--suit-black)}.card.face-down{cursor:default;background:var(--surface-card-back);border:1px solid #2a0f0b}.card.face-down:before{top:5px;right:5px;bottom:5px;left:5px;border-radius:calc(var(--card-radius) - 5px);border:1px solid rgba(212,160,74,.32);background:radial-gradient(circle at 50% 50%,rgba(232,184,96,.14),transparent 70%)}.card.face-down:after{content:"";position:absolute;top:50%;left:50%;width:38%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(45deg);border:1px solid rgba(232,184,96,.45);background:linear-gradient(135deg,rgba(232,184,96,.18),transparent 60%),linear-gradient(315deg,rgba(232,184,96,.08),transparent 60%);box-shadow:0 0 12px #e8b8602e inset;pointer-events:none}.card.face-down.has-custom:before{background:none}.card.face-down.has-custom:after{display:none}.card-back-img{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:calc(var(--card-radius) - 5px);overflow:hidden;pointer-events:none}.card-back-img img{position:absolute;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.card.mini{--card-width: 36px;--card-height: 52px;font-size:10px;border-radius:6px}.card.small{--card-width: 54px;--card-height: 76px;font-size:12px;border-radius:7px}.card-top-left{position:absolute;top:5px;left:6px;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:600}.card-top-left span:first-child{font-size:1.05em}.card-top-left span:last-child{font-size:.95em;margin-top:1px}.card-bottom-right{position:absolute;bottom:5px;right:6px;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:600;transform:rotate(180deg)}.card-bottom-right span:first-child{font-size:1.05em}.card-bottom-right span:last-child{font-size:.95em;margin-top:1px}.card-center{flex:1;display:flex;align-items:center;justify-content:center;font-size:2.1em;text-shadow:0 1px 0 rgba(255,255,255,.4)}@keyframes dealIn{0%{opacity:0;transform:translate3d(0,-80px,0) scale(.5) rotate(-6deg)}to{opacity:1;transform:translateZ(0) scale(1) rotate(0)}}.card.deal-animate{animation:dealIn var(--dur-deal) var(--ease-lift) both}@keyframes playToTable{0%{transform:translate3d(0,60px,0) scale(.8) rotate(4deg);opacity:0}70%{transform:translate3d(0,-4px,0) scale(1.03) rotate(-1deg);opacity:1}to{transform:translateZ(0) scale(1) rotate(0);opacity:1}}.table-card-animate{animation:playToTable var(--dur-deal) var(--ease-lift) both}.table-cards .card:nth-child(2){animation-delay:var(--dur-instant)}.table-cards .card:nth-child(3){animation-delay:calc(var(--dur-instant) * 2)}.table-cards .card:nth-child(4){animation-delay:calc(var(--dur-instant) * 3)}.table-cards .card:nth-child(5){animation-delay:calc(var(--dur-instant) * 4)}@media(hover:none){.card:hover:not(.face-down){transform:none}}@media(max-width:768px){.card.small{--card-width: 46px;--card-height: 64px;font-size:11px}}@media(max-width:480px){.card{padding:3px}.card-center{font-size:1.7em}.card.small{--card-width: 40px;--card-height: 56px;font-size:10px}}@media(prefers-reduced-motion:reduce){.card.deal-animate,.table-card-animate{animation:none!important}}.game-board{display:flex;flex-direction:column;min-height:100dvh;height:auto;width:100%;position:relative;overflow-x:hidden;overflow-y:visible;background:radial-gradient(110% 70% at 50% 0%,rgba(212,160,74,.08),transparent 60%)}.game-board.my-turn-table:before{content:"";position:fixed;top:8px;right:8px;bottom:8px;left:8px;border-radius:20px;border:2px solid rgba(232,184,96,.6);box-shadow:0 0 28px #e8b86080,0 0 90px #e8b86038,inset 0 0 56px #e8b86033;pointer-events:none;z-index:11;animation:turnHalo 2.4s ease-in-out infinite}@keyframes turnHalo{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.006)}}.game-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px var(--app-gutter);background:linear-gradient(180deg,#060d09c7,#060d0966);border-bottom:1px solid rgba(212,160,74,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10;font-size:.92rem}.game-header>div:first-child{font-family:var(--font-display);font-weight:600;letter-spacing:.12em;color:var(--amber-300);text-transform:uppercase;font-size:.85rem}.game-stats-panel{display:flex;gap:14px;align-items:center;padding:7px 16px;border-radius:var(--radius-pill);background:var(--surface-inlay);border:var(--border-gold-faint);font-size:.88rem;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-sunken)}.sound-controls{display:flex;align-items:center;gap:10px}.sound-volume-control{display:flex;align-items:center;gap:8px;font-size:.85rem}.sound-volume-control input{width:120px}.game-main{flex:1;position:relative;display:grid;grid-template-columns:minmax(150px,1fr) minmax(340px,580px) minmax(150px,1fr);grid-template-rows:minmax(140px,1fr) minmax(180px,auto);justify-items:center;align-items:center;gap:clamp(10px,1.6vw,24px);min-height:0;padding:clamp(16px,1.8vw,26px) clamp(16px,4vw,96px) var(--hand-panel-reserved-height)}.game-error-banner{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:1000;max-width:min(92vw,520px);background:linear-gradient(180deg,var(--suit-red),var(--suit-red-deep));color:#fff;padding:11px 18px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.15);text-align:center;box-shadow:var(--shadow-popover),0 0 0 1px var(--color-danger-glow);font-weight:600;animation:bannerIn var(--dur-normal) var(--ease-lift)}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.opponent-top{position:relative;grid-column:2;grid-row:1;justify-self:center;align-self:start}.opponent-left{position:relative;grid-column:1;grid-row:2;justify-self:start;align-self:start;z-index:2}.opponent-right{position:relative;grid-column:3;grid-row:2;justify-self:end;align-self:start;z-index:2}.opponent-top-left{position:relative;grid-column:1;grid-row:1;justify-self:start;align-self:start}.opponent-top-right{position:relative;grid-column:3;grid-row:1;justify-self:end;align-self:start}.opponent-hand{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--surface-panel);padding:12px 14px;border-radius:var(--radius-md);border:var(--border-walnut);box-shadow:var(--shadow-panel);transition:var(--motion-ui);will-change:transform;transform:translateZ(0);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);position:relative}.opponent-hand-side{width:140px;min-width:140px;height:360px;min-height:360px;padding:10px 8px;justify-content:flex-start;align-items:stretch}.opponent-hand.current-turn{box-shadow:var(--ring-selected),var(--glow-turn),var(--shadow-panel);border-color:var(--amber-400)}@keyframes danger-pulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.opponent-hand.danger{border-color:var(--color-danger);box-shadow:var(--shadow-panel)}.opponent-hand.danger:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:20px;box-shadow:0 0 22px 10px var(--color-danger-glow);pointer-events:none;z-index:-1;animation:danger-pulse 1s ease-in-out infinite}.opponent-hand.danger-1{border-color:var(--color-danger-hot)}.opponent-hand.danger-1:before{animation-duration:.6s}.opponent-hand.danger-2{border-color:var(--color-danger-warm)}.opponent-hand.danger-2:before{animation-duration:1s}.opponent-hand.danger-1 .opponent-avatar{border-color:var(--color-danger-hot);color:var(--color-danger-text);box-shadow:var(--shadow-control),var(--glow-danger)}.opponent-hand.danger-1 .opponent-name{color:var(--color-danger-text)}.opponent-hand.danger-1 .card.face-down{border-color:var(--color-danger-hot);background:radial-gradient(120% 120% at 50% 50%,var(--color-danger-glow),transparent 60%),repeating-linear-gradient(45deg,transparent 0 8px,var(--color-danger-glow) 8px 9px),repeating-linear-gradient(-45deg,transparent 0 8px,var(--color-danger-glow) 8px 9px),linear-gradient(160deg,var(--color-danger) 0%,var(--color-danger-deep) 55%,var(--walnut-900) 100%);box-shadow:var(--shadow-card),var(--card-edge),var(--glow-danger)}.opponent-hand.danger-1 .card.face-down:after{border-color:var(--color-danger-text)}.opponent-info{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}.opponent-identity{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.player-avatar{position:relative;overflow:hidden}.player-avatar img{position:absolute;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.player-avatar.list-avatar{width:24px;height:24px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-button);border:var(--border-walnut);font-family:var(--font-display);font-weight:700;font-size:.75rem;line-height:1;color:var(--amber-300);vertical-align:middle;margin-right:6px}.player-avatar.list-avatar.framed{border:var(--border-gold-strong)}.opponent-avatar{width:34px;height:34px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-button);border:var(--border-walnut);box-shadow:var(--shadow-control);font-family:var(--font-display);font-weight:700;font-size:1rem;line-height:1;color:var(--amber-300)}.opponent-avatar.framed{border:var(--border-gold-strong);box-shadow:var(--shadow-control),var(--ring-hover)}.opponent-name{font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:.02em;color:var(--amber-200)}.opponent-badges{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:5px;font-size:.78em}.opponent-hand-side .opponent-info{min-height:64px}.opponent-hand-side .opponent-badges{min-height:38px}.badge{padding:3px 8px;border-radius:999px;background:#f6f0e014;border:1px solid rgba(212,160,74,.18);color:var(--color-text);font-weight:500;letter-spacing:.03em}.badge.ai{background:linear-gradient(180deg,var(--amber-400),var(--amber-600));color:var(--walnut-900);border-color:var(--amber-700)}.badge.offline{background:linear-gradient(180deg,var(--suit-red),var(--suit-red-deep));color:#fff;border-color:var(--suit-red-deep)}.badge.placement{background:linear-gradient(180deg,var(--amber-300),var(--amber-500));color:var(--walnut-900);font-weight:700;border-color:var(--amber-700)}.badge.card-count{background:#2d806738;color:var(--jade-300);border-color:#2d806766}.badge.danger{background:linear-gradient(180deg,var(--suit-red),var(--suit-red-deep));color:#fff;border-color:var(--suit-red-deep)}.badge.card-count.last-card{background:linear-gradient(180deg,var(--color-danger),var(--color-danger-deep));color:#fff;border-color:var(--color-danger-deep);animation:pulseGlow .9s ease-in-out infinite}.badge.placement{animation:placementReveal var(--dur-slow) var(--ease-pop) both}.badge.placement-1{box-shadow:var(--shadow-control),var(--glow-turn)}@keyframes placementReveal{0%{opacity:0;transform:translate3d(0,8px,0) scale(.5)}60%{opacity:1;transform:translate3d(0,-2px,0) scale(1.15)}to{opacity:1;transform:translateZ(0) scale(1)}}.opponent-hand.just-placed:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:20px;box-shadow:0 0 0 2.5px var(--amber-400),var(--glow-turn);pointer-events:none;z-index:-1;animation:placedFlash 1.3s var(--ease-standard) both}@keyframes placedFlash{0%{opacity:0;transform:scale(.97)}35%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.04)}}.pass-float{position:absolute;top:10px;left:50%;transform:translate(-50%);font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.18em;color:var(--color-text-secondary);background:var(--surface-panel);border:var(--border-gold-faint);padding:3px 12px 3px 15px;border-radius:var(--radius-pill);box-shadow:var(--shadow-popover);pointer-events:none;z-index:6;animation:passFloat 1.4s var(--ease-standard) both}@keyframes passFloat{0%{opacity:0;transform:translate3d(-50%,8px,0) scale(.8)}18%{opacity:1;transform:translate3d(-50%,0,0) scale(1)}70%{opacity:1;transform:translate3d(-50%,-6px,0)}to{opacity:0;transform:translate3d(-50%,-14px,0)}}.opponent-cards{display:flex}.opponent-cards-side{display:flex;flex-direction:column;align-items:center;width:100%;flex:1;min-height:0;max-height:none;margin-top:0;justify-content:flex-start;overflow:hidden}.opponent-cards .card{margin-left:-20px}.opponent-cards .card:first-child{margin-left:0}.opponent-cards-side .card{margin-left:0;margin-top:-60px}.opponent-cards-side .card:first-child{margin-top:0}.opponent-cards-overflow{display:none}.table-area{grid-column:2;grid-row:2;width:min(100%,580px);min-height:clamp(250px,22vh,320px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;position:relative;padding:clamp(22px,2.4vw,34px) clamp(18px,2vw,30px);text-align:center;border-radius:var(--radius-xl);box-sizing:border-box;background:var(--felt-texture),var(--surface-felt);background-size:160px 160px,auto,auto;background-blend-mode:overlay,normal,normal;box-shadow:var(--table-ring),var(--table-cast),var(--edge-top)}.table-area:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:18px;border:1px solid rgba(8,40,32,.5);box-shadow:var(--inset-seam);pointer-events:none}.table-alert-banner{padding:8px 16px;border-radius:var(--radius-pill);background:linear-gradient(180deg,#b8332a38,#b8332a1f);border:var(--border-danger);box-shadow:var(--shadow-control);color:#ffd9d2;text-align:center;font-weight:500;position:relative;z-index:2}.table-alert-banner:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:999px;box-shadow:var(--glow-danger);pointer-events:none;z-index:-1;animation:pulseGlow 1.2s ease-in-out infinite}.table-area.my-turn:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:calc(var(--radius-xl) + 3px);box-shadow:var(--halo-turn);pointer-events:none;animation:pulseGlow 2.4s ease-in-out infinite}.table-clear-banner{position:absolute;top:clamp(14px,2vw,20px);left:50%;transform:translate(-50%);padding:8px 18px;border-radius:var(--radius-pill);background:var(--surface-gold);border:1px solid var(--amber-700);box-shadow:var(--shadow-popover),var(--glow-turn);color:var(--color-on-gold);font-family:var(--font-display);font-weight:700;letter-spacing:.06em;white-space:nowrap;z-index:5;animation:clearBannerIn var(--dur-slow) var(--ease-pop) both}@keyframes clearBannerIn{0%{opacity:0;transform:translate3d(-50%,-10px,0) scale(.7)}60%{opacity:1;transform:translate3d(-50%,0,0) scale(1.07)}to{opacity:1;transform:translate3d(-50%,0,0) scale(1)}}.table-clear-out .card{animation:tableClearOut var(--dur-slow) var(--ease-standard) both}@keyframes tableClearOut{0%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(0,-30px,0) scale(.72)}}.table-free-tag{font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.08em;color:var(--jade-300);background:#060d098c;border:var(--border-gold-faint);padding:4px 14px;border-radius:var(--radius-pill);animation:fadeIn var(--dur-normal) ease-out}.table-empty-hint{opacity:.5}.table-empty-hint.free-play{opacity:1;color:var(--jade-300);font-family:var(--font-display);font-weight:600;letter-spacing:.05em;padding:6px 16px;border:1px dashed var(--amber-500);border-radius:var(--radius-pill);animation:fadeIn var(--dur-normal) ease-out}.table-cards-wrapper{display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;position:relative;cursor:pointer;min-height:80px;margin:0 auto;z-index:2}.table-cards{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;max-width:100%;padding:0 16px;position:relative;z-index:1;flex-shrink:0;margin:0 auto}.table-cards-row{display:flex;justify-content:center;align-items:center;position:relative}.table-cards .card{margin-left:-30px;will-change:transform;transform:translateZ(0);box-shadow:var(--shadow-lifted),var(--card-edge)}.table-cards .card:first-child{margin-left:0}.table-hand-type{font-family:var(--font-display);font-weight:700;font-size:clamp(1rem,1.6vw,1.3rem);letter-spacing:.12em;color:var(--amber-200);background:var(--surface-panel);border:var(--border-gold);border-radius:var(--radius-pill);padding:5px 18px;box-shadow:var(--shadow-popover);animation:handTypeReveal var(--dur-slow) var(--ease-pop) both;white-space:nowrap;z-index:4}@keyframes handTypeReveal{0%{opacity:0;transform:translate3d(0,10px,0) scale(.6)}55%{opacity:1;transform:translateZ(0) scale(1.08)}to{opacity:1;transform:translateZ(0) scale(1)}}.table-play-author{position:absolute;top:-28px;left:50%;transform:translate(-50%);font-size:13px;color:var(--amber-200);background:var(--surface-panel);border:var(--border-gold);box-shadow:var(--shadow-popover);padding:3px 14px;border-radius:var(--radius-pill);white-space:nowrap;z-index:5;animation:fadeIn var(--dur-fast) ease-out;font-family:var(--font-display);letter-spacing:.04em}.table-info{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;width:100%;z-index:3;margin:0 auto}.direction-indicator{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;border-radius:50%;font-size:1.1em;line-height:1;color:var(--amber-300);background:var(--surface-inlay);box-shadow:var(--shadow-sunken)}.current-player-indicator{padding:8px 16px;border-radius:var(--radius-pill);background:var(--surface-inlay);border:var(--border-gold);box-shadow:var(--shadow-control);transition:var(--motion-ui);display:flex;align-items:center;gap:8px;font-family:var(--font-display);letter-spacing:.03em}.current-player-indicator.my-turn{background:linear-gradient(180deg,#e8b86033,#e8b86014);box-shadow:var(--ring-selected),var(--shadow-control);color:var(--amber-200);font-weight:600;position:relative}.current-player-indicator.my-turn:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-pill);box-shadow:var(--glow-turn);pointer-events:none;z-index:-1;animation:pulseGlow 1s ease-in-out infinite}.pass-count{background:#060d0999;border:var(--border-gold-faint);box-shadow:var(--shadow-flat);padding:4px 14px;border-radius:var(--radius-pill);font-size:.88em;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.seat-bubbles{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);width:max-content;max-width:240px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:24;pointer-events:none}.seat-bubbles.self{left:12px;transform:none}.seat-bubble{position:relative;max-width:230px;padding:8px 14px;border-radius:16px;background:linear-gradient(180deg,#fdf8ec,#f2e9d2);color:var(--walnut-900);border:2px solid var(--walnut-700);font-family:var(--font-body);font-weight:700;font-size:.98rem;line-height:1.3;overflow-wrap:anywhere;box-shadow:0 5px 16px #0006,inset 0 1px #ffffffa6;animation:seatBubblePop var(--dur-normal) var(--ease-pop)}.seat-bubble:before,.seat-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-style:solid;border-color:transparent}.seat-bubble:before{border-width:10px 8px 0;border-top-color:var(--walnut-700)}.seat-bubble:after{border-width:7px 6px 0;border-top-color:#f6eedd;margin-top:-2px}.seat-bubbles.self .seat-bubble:before,.seat-bubbles.self .seat-bubble:after{left:34px}.seat-bubble.emote{padding:7px 11px;border-radius:14px}.seat-bubble.emote .anim-emote{font-size:2.1rem}.seat-bubble-text{display:block}@keyframes seatBubblePop{0%{opacity:0;transform:scale(.35) translateY(10px)}60%{opacity:1;transform:scale(1.08) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.anim-emote{position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:1.4rem}.anim-emote-face{display:inline-block;transform-origin:50% 82%}.anim-emote:before,.anim-emote:after{position:absolute;pointer-events:none;opacity:0}.anim-laugh .anim-emote-face{animation:emoteLaughRock .75s ease-in-out infinite}@keyframes emoteLaughRock{0%,to{transform:rotate(-13deg) scale(1)}50%{transform:rotate(13deg) scale(1.07)}}.anim-laugh:before,.anim-laugh:after{content:"💧";top:6%;font-size:.34em;animation:emoteTearFly .75s ease-out infinite}.anim-laugh:before{--tx: -.65em;left:4%}.anim-laugh:after{--tx: .65em;right:4%;animation-delay:.37s}@keyframes emoteTearFly{0%{opacity:0;transform:translate(0) scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(var(--tx),-.5em) scale(1)}}.anim-cool{overflow:hidden;border-radius:50%}.anim-cool .anim-emote-face{animation:emoteCoolNod 1.8s ease-in-out infinite}@keyframes emoteCoolNod{0%,to{transform:rotate(-5deg) translateY(0)}40%{transform:rotate(5deg) translateY(-2%)}}.anim-cool:after{content:"";top:-15%;bottom:-15%;left:0;width:.42em;background:linear-gradient(100deg,transparent,rgba(255,255,255,.95),transparent);transform:skew(-18deg);opacity:1;animation:emoteGleam 1.8s ease-in-out infinite}@keyframes emoteGleam{0%,55%{transform:translate(-.5em) skew(-18deg)}85%,to{transform:translate(1.3em) skew(-18deg)}}.anim-angry .anim-emote-face{animation:emoteShake .45s linear infinite}@keyframes emoteShake{0%,to{transform:translate(-1.5px) rotate(-4deg)}50%{transform:translate(1.5px) rotate(4deg)}}.anim-angry:before{content:"💢";top:-.32em;left:58%;font-size:.4em;animation:emotePopOver .9s ease-out infinite}@keyframes emotePopOver{0%{opacity:0;transform:scale(.3) translateY(4px)}35%{opacity:1;transform:scale(1.15) translateY(0)}to{opacity:0;transform:scale(.85) translateY(-.28em)}}.anim-cry .anim-emote-face{animation:emoteSob .9s ease-in-out infinite}@keyframes emoteSob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4%) rotate(3deg)}}.anim-cry:before,.anim-cry:after{content:"💧";top:52%;font-size:.3em;animation:emoteTearFall .9s ease-in infinite}.anim-cry:before{left:16%}.anim-cry:after{right:16%;animation-delay:.45s}@keyframes emoteTearFall{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1}to{opacity:0;transform:translateY(.75em) scale(1.05)}}.anim-fire .anim-emote-face{animation:emoteFlame .7s ease-in-out infinite}@keyframes emoteFlame{0%,to{transform:scaleY(1) skew(0)}30%{transform:scaleY(1.12) skew(-3deg)}65%{transform:scaleY(.94) skew(3deg)}}.anim-fire:before{content:"";top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,132,40,.55),transparent);animation:emoteGlow .7s ease-in-out infinite}@keyframes emoteGlow{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.18)}}.anim-clap .anim-emote-face{animation:emoteClap .6s ease-in-out infinite}@keyframes emoteClap{0%,to{transform:rotate(-16deg) scaleX(1)}50%{transform:rotate(16deg) scaleX(.82)}}.anim-clap:after{content:"✨";top:-.3em;right:-.15em;font-size:.4em;animation:emotePopOver .6s ease-out infinite}@media(prefers-reduced-motion:reduce){.anim-emote-face,.anim-emote:before,.anim-emote:after{animation:none!important}.seat-bubble{animation:none}}.unlock-toast-stack{position:absolute;top:64px;right:20px;z-index:16;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.unlock-toast{display:flex;align-items:center;gap:10px;min-width:200px;max-width:260px;padding:10px 14px;border-radius:var(--radius-md);background:var(--surface-panel);border:var(--border-gold);box-shadow:var(--shadow-popover);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:unlockToastIn var(--dur-normal) var(--ease-pop)}.unlock-toast.me{border:var(--border-gold-strong);box-shadow:var(--shadow-popover),var(--glow-selected)}.unlock-toast-icon{font-size:1.45rem;line-height:1;flex-shrink:0}.unlock-toast-body{display:flex;flex-direction:column;gap:2px;min-width:0}.unlock-toast-body strong{color:var(--amber-300);font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.02em}.unlock-toast-name{color:var(--color-text-primary, #f0e6d2);font-size:.95rem;font-weight:600}.unlock-toast-body small{color:var(--color-text-secondary);font-size:.78rem}.unlock-toast.guest-upgrade{pointer-events:auto}.unlock-toast-cta{display:flex;gap:8px;margin-top:6px;align-self:flex-start}.unlock-toast-cta button{padding:6px 14px;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:var(--shadow-control);transition:var(--motion-ui)}.unlock-toast-cta button:first-child{background:var(--surface-gold);border:1px solid var(--amber-700);color:var(--color-on-gold)}.unlock-toast-cta button:first-child:hover{background:var(--surface-gold-hover);border-color:var(--amber-600)}.unlock-toast-cta button:last-child{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted)}@keyframes unlockToastIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.my-cards-wrapper{position:relative;display:inline-flex;max-width:100%;padding-top:6px;z-index:3}.message-bubble-trigger{position:absolute;right:100%;bottom:10px;margin-right:20px;z-index:12}.message-bubble-button,.message-bubble-panel button{background:linear-gradient(180deg,var(--walnut-700),var(--walnut-900));font-size:.82rem;padding:5px 11px;text-align:center;white-space:nowrap;border-color:var(--walnut-500)}.message-bubble-panel{position:absolute;right:0;bottom:calc(100% + 8px);min-width:190px;padding:12px;border-radius:var(--radius-lg);background:var(--surface-panel);border:var(--border-gold);box-shadow:var(--shadow-popover);display:flex;flex-direction:column;gap:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.message-bubble-section{display:flex;flex-direction:column;gap:6px}.emote-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.emote-bar button{min-width:42px;font-size:1rem;padding:6px;overflow:visible}.emote-bar .anim-emote{font-size:1.3rem}.custom-message-row{display:flex;gap:6px}.custom-message-row input{flex:1;min-width:0;background:var(--surface-input);color:var(--walnut-900);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-sunken);padding:6px 10px;font-size:.85rem}.custom-message-row input:focus{outline:none;border-color:var(--amber-500)}.effect-overlay{position:absolute;inset:12% 15% auto;z-index:14;display:flex;justify-content:center;pointer-events:none}.effect-overlay.shake-enabled{animation:boardShake var(--dur-normal) ease-out}.effect-overlay-text{padding:14px 24px;border-radius:var(--radius-lg);font-size:clamp(1.1rem,2vw,2rem);font-family:var(--font-display);font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--surface-panel);border:var(--border-gold);box-shadow:var(--shadow-overlay)}.effect-overlay-art{display:flex;flex-direction:column;align-items:center;gap:10px}.effect-overlay-art img{max-width:min(42vw,260px);max-height:160px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}.effect-overlay.tone-impact .effect-overlay-text{color:var(--amber-300);box-shadow:var(--glow-turn),var(--shadow-overlay)}.effect-overlay.tone-warning .effect-overlay-text{color:#ffccbc;box-shadow:var(--glow-danger),var(--shadow-overlay)}.effect-overlay.tone-neutral .effect-overlay-text{color:var(--jade-300)}.effect-overlay.intensity-low .effect-overlay-text{transform:scale(.9)}.effect-overlay.intensity-high .effect-overlay-text{transform:scale(1.08)}.table-combo-indicator{position:absolute;left:100%;top:50%;margin-left:10px;font-family:var(--font-display);font-size:1.4rem;font-weight:700;text-shadow:0 0 14px rgba(232,184,96,.85);animation:combo-pulse .5s ease-in-out;pointer-events:none;z-index:5;white-space:nowrap}.combo-x2{color:var(--amber-400);font-size:1.4rem}.combo-x3{color:#f73;font-size:1.8rem}.combo-x4{color:#ff3030;font-size:2.2rem;animation:combo-pulse .3s ease-in-out infinite}@keyframes combo-pulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.1)}}@keyframes boardShake{0%,to{transform:translateZ(0)}25%{transform:translate3d(-6px,0,0)}75%{transform:translate3d(6px,0,0)}}.hand-panel{position:absolute;bottom:0;left:0;right:0;padding:clamp(12px,1.5vw,18px) var(--app-gutter) calc(clamp(12px,1.5vw,18px) + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,rgba(6,13,9,.92) 30%,rgba(6,13,9,.4) 75%,transparent);display:flex;flex-direction:column;align-items:center;gap:8px;transition:var(--motion-ui);z-index:5}.hand-panel.my-turn .hand-controls button.primary:not(:disabled){position:relative}.hand-panel.my-turn .hand-controls button.primary:not(:disabled):after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:14px;box-shadow:var(--glow-turn);pointer-events:none;animation:pulseGlow 1.6s ease-in-out infinite}.my-placement-banner{font-family:var(--font-display);font-weight:700;letter-spacing:.08em;color:var(--color-on-gold);background:var(--surface-gold);border:1px solid var(--amber-700);padding:6px 20px;border-radius:var(--radius-pill);box-shadow:var(--shadow-popover),var(--glow-turn);animation:placementReveal var(--dur-slow) var(--ease-pop) both;z-index:2}.hand-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;position:relative;z-index:1}.hand-type-display{font-family:var(--font-display);font-weight:600;color:var(--amber-300);min-width:60px;text-align:center;letter-spacing:.04em;font-size:1.05rem;padding:4px 14px;border-radius:var(--radius-pill);background:var(--surface-inlay);border:var(--border-gold-faint);box-shadow:var(--shadow-sunken)}.my-cards{display:flex;justify-content:center;min-height:var(--hand-card-row-height);max-width:min(calc(100vw - (var(--app-gutter) * 2)),960px);overflow:visible;padding:8px 4px 4px}.my-cards .card{will-change:transform;transform:translateZ(0)}.my-cards-scroller{display:flex;justify-content:center;align-items:flex-end;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none;padding-top:24px;margin-top:-22px}.my-cards-scroller::-webkit-scrollbar{display:none}.hand-card-slot{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-radius:0;padding:0;margin:0;min-height:calc((var(--card-height) * var(--card-scale)) + 12px);position:relative;display:block;flex:0 0 calc((var(--card-width) * var(--card-scale)) - 40px);height:calc((var(--card-height) * var(--card-scale)) + 12px);z-index:1;cursor:pointer;box-shadow:none;transform:none}.hand-card-slot:hover:not(:disabled):not(.shift-right):not(.shift-left),.hand-card-slot:active:not(:disabled):not(.shift-right):not(.shift-left){background:transparent;border-color:transparent;box-shadow:none;transform:none}.hand-card-slot:focus{outline:none}.hand-card-slot:last-child{flex-basis:calc(var(--card-width) * var(--card-scale))}.hand-card-slot:hover:not(.selected){z-index:20}.hand-card-slot.selected{z-index:1}.hand-card-slot{transition:transform var(--dur-fast) var(--ease-standard)}.hand-card-slot.dragging .card{opacity:0}.hand-card-slot.collapsed{flex-basis:0;overflow:hidden}.hand-card-slot.shift-right{transform:translate(calc(var(--card-width) * var(--card-scale) - 40px))}.drag-ghost-card{position:fixed;transform:translate(-50%,-55%) rotate(4deg) scale(1.05);z-index:2000;pointer-events:none}.drag-ghost-card .card{opacity:.82;box-shadow:var(--shadow-card-hover),var(--card-edge)}.hand-card-slot .card{position:absolute;left:0;bottom:0;pointer-events:none}.hand-card-slot:hover:not(.selected) .card{transform:translate3d(0,var(--lift-hover),0);box-shadow:var(--shadow-card-hover),var(--card-edge)}.hand-card-slot:active:not(.selected) .card{transform:translate3d(0,var(--lift-hover),0) scale(var(--press-scale))}.hand-card-slot.selected:active .card{transform:translate3d(0,var(--lift-selected),0) scale(var(--press-scale))!important}.hand-card-slot:focus-visible .card{box-shadow:var(--shadow-card),var(--card-edge),var(--ring-focus)}@media(hover:none){.hand-card-slot:hover:not(.selected) .card{transform:none;box-shadow:var(--shadow-card),var(--card-edge)}}.hand-card-slot .card.hand-card-sort-animate{animation:handSortPulse var(--dur-normal) ease-out}@keyframes deal-in-my{0%{opacity:0;transform:translateY(-38vh) scale(.55) rotate(-8deg)}55%{opacity:1}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes deal-in-from-bottom{0%{opacity:0;transform:translateY(46px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes deal-in-from-left{0%{opacity:0;transform:translate(-46px) scale(.5)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes deal-in-from-right{0%{opacity:0;transform:translate(46px) scale(.5)}to{opacity:1;transform:translate(0) scale(1)}}.hand-card-slot.deal-in{animation:deal-in-my .42s var(--ease-lift) backwards}.card.face-down.deal-in{animation-duration:.38s;animation-timing-function:var(--ease-lift);animation-fill-mode:backwards}.card.face-down.deal-in.deal-from-bottom{animation-name:deal-in-from-bottom}.card.face-down.deal-in.deal-from-left{animation-name:deal-in-from-left}.card.face-down.deal-in.deal-from-right{animation-name:deal-in-from-right}@keyframes pulseGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}@keyframes handSortPulse{0%{transform:translateZ(0) scale(.96)}60%{transform:translate3d(0,-10px,0) scale(1.02)}to{transform:translateZ(0) scale(1)}}@keyframes shake{0%,to{transform:translateZ(0)}15%{transform:translate3d(-8px,0,0)}30%{transform:translate3d(7px,0,0)}45%{transform:translate3d(-6px,0,0)}60%{transform:translate3d(5px,0,0)}75%{transform:translate3d(-4px,0,0)}90%{transform:translate3d(3px,0,0)}}.hand-panel.shake-error{animation:shake var(--dur-slow) ease-out}.settlement-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--surface-scrim);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fadeIn var(--dur-normal) ease-out}.settlement-box{background:linear-gradient(180deg,var(--walnut-800),var(--walnut-900));padding:34px 36px;border-radius:var(--radius-lg);border:var(--border-gold);min-width:320px;text-align:center;box-shadow:var(--shadow-overlay)}.settlement-box h2{font-family:var(--font-display);font-size:1.8rem;color:var(--amber-300);letter-spacing:.06em}.settlement-list{margin:22px 0;display:flex;flex-direction:column;gap:10px}.settlement-item{display:flex;justify-content:space-between;padding:12px 16px;background:var(--surface-inlay);border:var(--border-gold-faint);border-radius:var(--radius-sm);font-size:.96rem}.settlement-item.me{border-color:var(--amber-400);box-shadow:var(--ring-hover)}.settlement-item .positive{color:var(--jade-300);font-weight:600}.settlement-item .negative{color:#f76;font-weight:600}@media(min-width:769px)and (max-height:1180px){.game-board{height:100dvh;overflow:hidden}.game-main{grid-template-columns:minmax(120px,.9fr) minmax(300px,500px) minmax(120px,.9fr);grid-template-rows:minmax(96px,auto) minmax(0,1fr);gap:12px;padding-top:12px;padding-left:clamp(16px,2.6vw,56px);padding-right:clamp(16px,2.6vw,56px);padding-bottom:calc(var(--hand-panel-reserved-height) - 20px);overflow-y:auto;overflow-x:hidden}.opponent-hand{gap:6px;padding:8px 10px}.opponent-hand-side{width:120px;min-width:120px;height:300px;min-height:300px;padding:8px 6px}.opponent-badges{font-size:.72em}.opponent-cards .card{margin-left:-28px}.opponent-cards-side{max-height:280px}.opponent-cards-side .card{margin-left:0;margin-top:-56px}.table-area{min-height:clamp(210px,18vh,280px);padding:16px 0}.quick-message-stack{bottom:116px}.hand-panel{gap:6px;padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}}@media(max-width:1024px){.game-main{padding-left:clamp(18px,3vw,72px);padding-right:clamp(18px,3vw,72px)}.quick-message-stack{right:12px}}@media(max-width:1366px){.my-cards-wrapper{display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:min(calc(100vw - (var(--app-gutter) * 2)),960px);gap:8px}.message-bubble-trigger{position:relative;right:auto;bottom:auto;margin-right:0;align-self:center}.message-bubble-panel{left:50%;right:auto;transform:translate(-50%)}.my-cards{width:100%;max-width:none}.my-cards-scroller{width:max-content;min-width:100%;justify-content:center}}@media(max-width:768px){.game-board{min-height:100dvh}.game-header{justify-content:center;gap:8px;font-size:.92rem}.game-header>div,.game-header>button{width:100%}.game-header>button{max-width:none}.game-stats-panel{flex-wrap:wrap;justify-content:center;border-radius:18px}.game-error-banner{top:auto;bottom:170px;left:50%}.game-main{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto;align-items:stretch;justify-items:stretch;justify-content:flex-start;padding:16px var(--app-gutter) var(--hand-panel-reserved-height)}.opponent-top,.opponent-left,.opponent-right,.opponent-top-left,.opponent-top-right{position:static;transform:none;width:100%}.game-main{display:grid;grid-template-columns:1fr;gap:12px}.opponent-hand,.opponent-hand-side{width:100%;min-width:0;padding:10px 12px}.opponent-info{width:100%}.opponent-badges{flex-wrap:wrap;justify-content:center}.opponent-cards,.opponent-cards-side{width:100%;max-height:none;flex-direction:row;justify-content:center;overflow-x:auto;overflow-y:visible;padding-bottom:4px}.opponent-cards .card:nth-child(n+6),.opponent-cards-side .card:nth-child(n+6){display:none}.opponent-cards .card,.opponent-cards-side .card{margin-top:0;margin-left:-16px}.opponent-cards .card:first-child,.opponent-cards-side .card:first-child{margin-left:0}.opponent-cards-overflow{display:flex;align-items:center;justify-content:center;margin-left:4px;padding:2px 8px;border-radius:999px;background:linear-gradient(180deg,var(--walnut-700),var(--walnut-800));border:1px solid var(--walnut-500);color:var(--amber-300);font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.02em;min-width:28px;height:24px;box-shadow:0 2px 6px #0000004d;flex-shrink:0}.table-area{order:-1;grid-row:auto;width:100%;min-height:200px;padding:10px 0}.table-alert-banner{font-size:.85rem;max-width:100%;text-align:center}.table-clear-banner{white-space:normal;text-align:center;max-width:calc(100% - 32px)}.table-cards .card{margin-left:-22px}.current-player-indicator{max-width:100%;text-align:center;justify-content:center;flex-wrap:wrap}.quick-message-stack{right:var(--app-gutter);left:var(--app-gutter);bottom:calc(var(--hand-panel-reserved-height) - 110px);align-items:stretch}.quick-message-bubble{max-width:100%;min-width:0}.hand-panel{gap:12px}.quick-message-bar{position:static;margin-right:0;width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:8px}.hand-controls{width:100%}.hand-controls button{flex:1 1 120px}.hand-type-display{width:100%;min-width:0;order:-1}.my-cards{justify-content:flex-start;min-height:var(--hand-card-row-height)}.my-cards-scroller{justify-content:flex-start}.hand-card-slot{flex-basis:calc((var(--card-width) * var(--card-scale)) - 24px)}.settlement-box{width:min(92vw,420px);min-width:0;padding:20px 16px}}@media(max-width:480px){.game-header{padding-top:8px;padding-bottom:8px}.game-main{padding-bottom:var(--hand-panel-reserved-height)}.game-error-banner{bottom:calc(var(--hand-panel-reserved-height) - 96px);font-size:.9rem}.opponent-name{font-size:.95rem}.opponent-badges{gap:6px}.badge{font-size:.72rem}.badge.card-count{order:-1}.table-area{min-height:210px}.table-cards{padding:0 8px}.table-cards .card{margin-left:-18px}.quick-message-stack{bottom:calc(var(--hand-panel-reserved-height) - 112px);gap:6px}.quick-message-bubble{padding:8px 10px;border-radius:12px;font-size:.85rem}.quick-message-bar button{flex:1 1 calc(50% - 6px);white-space:normal}.hand-panel{padding-top:12px}.hand-controls{gap:8px}.hand-controls button{flex-basis:calc(50% - 8px)}.my-cards{min-height:var(--hand-card-row-height)}.hand-card-slot{flex-basis:calc((var(--card-width) * var(--card-scale)) - 20px)}.settlement-item{flex-direction:column;align-items:flex-start;gap:4px}}@media(prefers-reduced-motion:reduce){.game-board.my-turn-table:before,.opponent-hand.danger:before,.opponent-hand.just-placed:after,.current-player-indicator.my-turn:before,.table-alert-banner:before,.table-area.my-turn:after,.table-clear-banner,.table-clear-out .card,.table-free-tag,.table-empty-hint.free-play,.table-hand-type,.pass-float,.badge.placement,.badge.card-count.last-card,.my-placement-banner,.hand-panel.my-turn .hand-controls button.primary:not(:disabled):after,.combo-x4,.hand-panel.shake-error,.unlock-toast,.deal-in,.effect-overlay.shake-enabled{animation:none!important}}.lobby-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:var(--app-gutter);position:relative}.lobby-container:before{content:"";position:absolute;top:8%;left:50%;width:min(560px,92vw);height:min(560px,92vw);transform:translate(-50%);background:radial-gradient(circle,rgba(232,184,96,.14),transparent 60%);pointer-events:none;z-index:0}.lobby-box{position:relative;z-index:1;background:var(--surface-panel);padding:40px 38px;border-radius:var(--radius-lg);border:var(--border-gold);width:100%;max-width:420px;box-shadow:var(--shadow-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:lobbyRise var(--dur-slow) var(--ease-lift) both}.lobby-title{text-align:center;margin-bottom:28px;font-family:var(--font-display);font-size:2.4em;font-weight:600;letter-spacing:.08em;color:var(--amber-300);text-shadow:0 0 24px rgba(232,184,96,.4),0 2px 0 rgba(0,0,0,.4);position:relative}.lobby-title:after{content:"";display:block;margin:12px auto 0;width:60%;height:1px;background:linear-gradient(90deg,transparent,var(--amber-500),transparent)}.lobby-section{margin-bottom:24px;padding-bottom:24px;border-bottom:var(--border-gold-faint)}.lobby-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.lobby-section h3{margin-bottom:14px;font-size:1.05em;font-family:var(--font-display);font-weight:600;color:var(--amber-200);letter-spacing:.06em;text-transform:uppercase}.input-group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.input-group label,.input-group span{font-size:.82em;color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.checkbox-group{display:flex;align-items:center;gap:10px;line-height:1.4;margin:8px 0;font-size:.95rem}.checkbox-group label{cursor:pointer;color:var(--color-text-secondary)}.error-message{color:var(--color-danger-text);margin-top:12px;text-align:center;font-size:.9em;padding:8px 12px;border-radius:var(--radius-sm);background:#b8332a29;border:var(--border-danger)}.lobby-profile-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:14px 16px;border-radius:var(--radius-md);background:var(--surface-inlay);border:var(--border-gold-faint);box-shadow:var(--shadow-sunken)}.lobby-profile-summary strong{font-family:var(--font-display);color:var(--amber-200);font-size:1.05rem;letter-spacing:.03em}.lobby-profile-summary span{color:var(--color-text-secondary);font-size:.9rem}.lobby-profile-actions{display:flex;gap:8px;flex-wrap:wrap}.lobby-auth-actions{display:flex;gap:8px}.lobby-auth-actions button{flex:1}.lobby-auth-hint{margin-top:10px;font-size:.78rem;color:var(--color-text-muted);line-height:1.5}.waiting-room{display:flex;flex-direction:column;align-items:center;padding:36px var(--app-gutter);min-height:100dvh;position:relative}.room-header{text-align:center;margin-bottom:40px;animation:lobbyRise var(--dur-slow) var(--ease-lift) both}.room-header h2{font-family:var(--font-display);font-size:1.6rem;color:var(--amber-200);letter-spacing:.1em;text-transform:uppercase}.room-code{font-family:var(--font-display);font-size:3em;font-weight:700;letter-spacing:8px;color:var(--amber-300);background:var(--surface-panel-soft);border:var(--border-gold);padding:14px 26px;border-radius:var(--radius-md);margin-top:14px;-webkit-user-select:all;user-select:all;text-shadow:0 0 20px rgba(232,184,96,.35);box-shadow:var(--shadow-panel),var(--edge-gold);display:inline-block}.waiting-content{display:flex;gap:40px;width:100%;max-width:1000px;align-items:flex-start}.players-list{flex:1;display:flex;flex-direction:column;gap:14px;animation:lobbyRise var(--dur-slow) var(--ease-lift) both;animation-delay:var(--dur-instant)}.players-list h3{font-family:var(--font-display);color:var(--amber-200);letter-spacing:.06em;margin-bottom:4px}.player-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;background:var(--surface-panel-soft);border:var(--border-walnut);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);transition:var(--motion-ui)}.player-slot:hover{border-color:var(--amber-500);box-shadow:var(--shadow-panel),var(--ring-hover)}.player-name{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);color:var(--color-text);letter-spacing:.02em}.player-slot.empty{opacity:.5;border-style:dashed;background:transparent;box-shadow:none}.player-slot.me{border-color:var(--amber-400);box-shadow:var(--shadow-panel),var(--ring-hover),0 0 22px #e8b8602e}.player-status{font-weight:700;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.player-status.ready{color:var(--jade-300)}.player-status.pending{color:var(--color-text-secondary)}.rules-panel{flex:1;background:var(--surface-panel-soft);padding:22px;border-radius:var(--radius-md);border:var(--border-walnut);max-height:60vh;overflow-y:auto;box-shadow:var(--shadow-panel);animation:lobbyRise var(--dur-slow) var(--ease-lift) both;animation-delay:calc(var(--dur-instant) * 2)}.rules-panel h3{margin-bottom:18px;border-bottom:var(--border-gold-faint);padding-bottom:10px;font-family:var(--font-display);color:var(--amber-200);letter-spacing:.06em}.rule-group{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.rule-group label{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);cursor:pointer}.rule-group>label:has(input[type=number]){display:block}.rule-group input[type=number]{width:100%;margin-top:8px}.rule-section{margin-bottom:20px}.rule-section-title{margin:0 0 10px;font-size:.9rem;font-family:var(--font-display);color:var(--amber-200);letter-spacing:.08em;opacity:.85}.rules-summary-list{margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.rules-summary-row{display:flex;gap:14px;align-items:baseline;padding-bottom:12px;border-bottom:var(--border-gold-faint);border-bottom-style:dashed}.rules-summary-row:last-child{border-bottom:none;padding-bottom:0}.rules-summary-row dt{flex:none;width:5.5em;font-family:var(--font-display);font-size:.85rem;color:var(--amber-200);letter-spacing:.06em}.rules-summary-row dd{margin:0;color:var(--color-text-secondary);line-height:1.6;overflow-wrap:anywhere}.rules-summary-hint{margin:18px 0 0;font-size:.8rem;color:var(--color-text-muted)}.rank-order-row{display:flex;align-items:center;gap:8px}.rank-order-cap{flex:none;font-size:.75rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.08em}.rank-order-chips{flex:1;display:flex;flex-wrap:wrap;gap:6px}.rank-chip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:6px 8px;border-radius:var(--radius-sm);border:var(--border-walnut);background:var(--surface-panel-soft);color:var(--color-text);font-family:var(--font-display);font-weight:600;font-size:.95rem;letter-spacing:.03em;user-select:none;-webkit-user-select:none;transition:var(--motion-ui),opacity var(--dur-fast) var(--ease-standard)}.rank-chip.draggable{cursor:grab}.rank-chip.draggable:hover{border-color:var(--amber-500);box-shadow:var(--shadow-control);transform:translateY(var(--lift-subtle))}.rank-chip.dragging{opacity:.4;cursor:grabbing}.rank-chip.drag-over{border-color:var(--amber-400);box-shadow:var(--ring-selected),var(--glow-selected)}.rank-order-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.rank-order-hint{font-size:.78rem;color:var(--color-text-muted)}.rank-order-reset{padding:6px 12px;font-size:.82rem}.waiting-actions{margin-top:40px;display:flex;gap:20px;animation:lobbyRise var(--dur-slow) var(--ease-lift) both;animation-delay:calc(var(--dur-instant) * 3)}.waiting-actions button{font-size:1.05em;padding:12px 30px}.lobby-box button,.waiting-room button{background:var(--surface-button);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-control);transition:var(--motion-ui)}.lobby-box button:hover:not(:disabled),.waiting-room button:hover:not(:disabled){background:var(--surface-button-hover);border-color:var(--amber-600);box-shadow:var(--shadow-control-hover);transform:translateY(var(--lift-subtle))}.lobby-box button:active:not(:disabled),.waiting-room button:active:not(:disabled){transform:translateY(0) scale(var(--press-scale));box-shadow:var(--shadow-pressed)}.lobby-box button:focus-visible,.waiting-room button:focus-visible{outline:none;box-shadow:var(--shadow-control),var(--ring-focus)}.lobby-box button:disabled,.waiting-room button:disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate))}.lobby-box button.primary,.waiting-room button.primary{background:var(--surface-gold);border-color:var(--amber-700);color:var(--color-on-gold)}.lobby-box button.primary:hover:not(:disabled),.waiting-room button.primary:hover:not(:disabled){background:var(--surface-gold-hover);border-color:var(--amber-600)}.lobby-box input:not([type=checkbox]):not([type=range]),.lobby-box select,.waiting-room input:not([type=checkbox]):not([type=range]),.waiting-room select{background:var(--surface-input);color:var(--walnut-900);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-sunken);transition:var(--motion-ui)}.lobby-box select,.waiting-room select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%234a3220' d='M6 8 0 0h12z'/></svg>"),var(--surface-input);background-repeat:no-repeat;background-position:right 12px center,0 0}.lobby-box input:not([type=checkbox]):not([type=range]):focus,.lobby-box select:focus,.waiting-room input:not([type=checkbox]):not([type=range]):focus,.waiting-room select:focus{outline:none;border-color:var(--amber-500);box-shadow:var(--shadow-sunken),var(--ring-focus)}.lobby-box input:disabled,.lobby-box select:disabled,.waiting-room input:disabled,.waiting-room select:disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate));cursor:not-allowed}.lobby-box input[type=checkbox],.waiting-room input[type=checkbox]{background:var(--surface-button);border:var(--border-walnut);box-shadow:var(--shadow-sunken);transition:var(--motion-ui)}.lobby-box input[type=checkbox]:hover,.waiting-room input[type=checkbox]:hover{border-color:var(--amber-600)}.lobby-box input[type=checkbox]:checked,.waiting-room input[type=checkbox]:checked{background:var(--surface-gold);border-color:var(--amber-700);box-shadow:var(--ring-hover)}.lobby-box input[type=checkbox]:focus-visible,.waiting-room input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--ring-focus)}@media(max-width:768px){.lobby-box,.scoreboard-box{padding:26px 20px}.lobby-title{margin-bottom:22px;font-size:2em}.room-header{margin-bottom:24px}.room-code{font-size:2.25em;letter-spacing:4px;padding:12px 18px}.waiting-content{flex-direction:column;gap:20px}.players-list,.rules-panel{width:100%}.rules-panel{max-height:none}.waiting-actions{width:100%;flex-direction:column-reverse;gap:12px}.waiting-actions button{width:100%;font-size:1rem;padding:12px 18px}}@media(max-width:480px){.lobby-container,.waiting-room{justify-content:flex-start;padding-top:18px;padding-bottom:24px}.lobby-box{padding:20px 16px;border-radius:16px}.lobby-section{margin-bottom:18px;padding-bottom:18px}.checkbox-group{align-items:flex-start}.checkbox-group input{margin-top:3px}.room-header h2,.players-list h3,.rules-panel h3{font-size:1.05rem}.room-code{width:100%;font-size:1.8em;letter-spacing:2px}.player-slot{flex-direction:column;align-items:flex-start;padding:14px}.player-status{align-self:flex-end}}@media(prefers-reduced-motion:reduce){.lobby-box,.room-header,.players-list,.rules-panel,.waiting-actions{animation:none!important}}.rps-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn var(--dur-normal) ease-out}.rps-modal{background:var(--surface-panel);padding:40px;border-radius:var(--radius-lg);border:var(--border-gold);text-align:center;min-width:400px;box-shadow:var(--shadow-overlay);animation:popIn var(--dur-slow) var(--ease-pop) both}.rps-title{font-family:var(--font-display);font-size:1.6em;margin-bottom:30px;color:var(--amber-300);letter-spacing:.06em}.rps-players{display:grid;grid-template-columns:1fr auto 1fr;justify-items:center;align-items:center;margin-bottom:36px}.rps-player{display:flex;flex-direction:column;align-items:center;gap:10px}.rps-player span{font-family:var(--font-display);color:var(--amber-200);letter-spacing:.03em}.rps-avatar{width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--walnut-600),var(--walnut-900));border:var(--border-gold-strong);display:flex;align-items:center;justify-content:center;font-size:2.2em;box-shadow:var(--shadow-panel),var(--edge-gold)}.rps-vs{font-family:var(--font-display);font-size:1.8em;font-weight:700;color:var(--color-danger);letter-spacing:.1em;text-shadow:0 0 16px rgba(184,51,42,.4)}.rps-choices{display:flex;justify-content:center;gap:20px}.rps-btn{font-size:3em;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--walnut-600),var(--walnut-900));border:var(--border-walnut);cursor:pointer;transition:var(--motion-ui);box-shadow:var(--shadow-panel);display:flex;align-items:center;justify-content:center;color:var(--amber-200)}.rps-btn svg,.rps-avatar svg{width:1em;height:1em;display:block}.rps-avatar{color:var(--amber-200)}.rps-btn:hover{transform:scale(1.1);background:radial-gradient(circle at 35% 30%,var(--walnut-500),var(--walnut-850));border-color:var(--amber-400);box-shadow:var(--shadow-card-hover),var(--glow-turn)}.rps-btn:focus-visible{outline:none;box-shadow:var(--shadow-panel),var(--ring-focus)}.rps-result{font-size:4em;animation:popIn var(--dur-slow) var(--ease-pop) both}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.direction-choices{display:flex;justify-content:center;gap:20px;margin-top:20px}.settings-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fadeIn var(--dur-normal) ease-out}.settings-modal{width:min(860px,100%);max-height:min(90vh,900px);overflow:auto;background:var(--surface-panel);border:var(--border-gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);padding:22px;animation:modalIn var(--dur-slow) var(--ease-lift) both}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:var(--border-gold-faint)}.settings-modal-header h2{color:var(--amber-300);font-family:var(--font-display);letter-spacing:.06em;font-size:1.5rem}.icon-button{width:40px;height:40px;border-radius:50%;font-size:1rem;padding:0;display:flex;align-items:center;justify-content:center}.settings-section{padding:18px;border:var(--border-gold-faint);border-radius:var(--radius-md);background:var(--surface-inlay);margin-bottom:16px}.settings-section h3{margin-bottom:14px;color:var(--amber-200);font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;font-size:.95rem}.settings-slider-row{display:flex;flex-direction:column;gap:10px;margin-top:8px}.settings-slider-row input[type=range]{width:100%}.settings-modal .sound-controls{justify-content:space-between;margin-bottom:12px}.settings-toggle-row,.settings-actions-row,.profile-summary-grid,.profile-stats-grid,.profile-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-toggle-row{margin-top:14px}.settings-toggle-row span{color:var(--color-text-secondary)}.settings-actions-row{margin-top:16px;flex-wrap:wrap}.profile-modal{width:min(980px,100%)}.profile-panel-grid,.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.profile-stats-grid{margin-top:14px;padding:14px;border-radius:var(--radius-sm);background:#2d806714;border:1px solid rgba(45,128,103,.25)}.profile-stats-grid span{color:var(--jade-300);font-family:var(--font-body);font-weight:600;font-size:.9rem;letter-spacing:.02em}.profile-card{padding:14px;border-radius:var(--radius-md);border:var(--border-gold-faint);background:var(--surface-inlay);text-align:left;box-shadow:var(--shadow-flat);transition:var(--motion-ui)}.profile-card-header strong{font-family:var(--font-display);color:var(--amber-200);letter-spacing:.02em}.profile-card-header span{color:var(--color-text-muted);font-size:.85rem}.profile-card.completed{border-color:var(--amber-400);box-shadow:var(--ring-hover),0 0 18px #e8b86029}.profile-card.selected{border-color:var(--amber-400);box-shadow:var(--ring-selected),var(--glow-selected)}.profile-progress-bar{margin-top:10px;height:8px;border-radius:var(--radius-pill);background:#f6f0e014;box-shadow:var(--shadow-sunken);overflow:hidden}.profile-progress-fill{height:100%;background:linear-gradient(90deg,var(--amber-500),var(--amber-300));box-shadow:0 0 10px #e8b86066}.cosmetic-card{cursor:pointer}.cosmetic-card p{color:var(--color-text-secondary);font-size:.85rem;margin-top:4px}.cosmetic-card[disabled]{opacity:var(--state-disabled-opacity);cursor:not-allowed}.penalty-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;-webkit-user-select:none;user-select:none;touch-action:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn var(--dur-normal) ease-out}.penalty-title{font-family:var(--font-display);font-size:2.2em;color:var(--color-danger);margin-bottom:10px;letter-spacing:.06em;text-shadow:0 0 20px rgba(184,51,42,.4)}.penalty-subtitle{font-size:1.15em;margin-bottom:40px;color:var(--color-text-secondary)}.penalty-arrows{position:relative;width:220px;height:220px;margin-bottom:40px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(45,128,103,.12),transparent 70%);border:var(--border-gold-faint)}.penalty-arrow{position:absolute;font-size:3em;color:#f5cd7a40;transition:color var(--transition-fast),transform var(--transition-fast),text-shadow var(--transition-fast)}.penalty-arrow.up{top:0;left:50%;transform:translate(-50%)}.penalty-arrow.down{bottom:0;left:50%;transform:translate(-50%)}.penalty-arrow.left{left:0;top:50%;transform:translateY(-50%)}.penalty-arrow.right{right:0;top:50%;transform:translateY(-50%)}.penalty-arrow.active{color:var(--amber-300);text-shadow:0 0 18px rgba(232,184,96,.6);animation:pulse 1s infinite}.penalty-arrow.completed{color:var(--jade-300)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1)}}.penalty-arrow.up.active{animation:pulseUp 1s infinite}.penalty-arrow.down.active{animation:pulseDown 1s infinite}.penalty-arrow.left.active{animation:pulseLeft 1s infinite}.penalty-arrow.right.active{animation:pulseRight 1s infinite}@keyframes pulseUp{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}@keyframes pulseDown{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(10px)}}@keyframes pulseLeft{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(-10px)}}@keyframes pulseRight{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(10px)}}.penalty-progress{width:320px;height:22px;background:linear-gradient(180deg,var(--walnut-800),var(--walnut-900));border-radius:var(--radius-pill);overflow:hidden;border:var(--border-walnut);box-shadow:var(--shadow-sunken)}.penalty-progress-bar{height:100%;background:linear-gradient(90deg,var(--suit-red),var(--amber-500));box-shadow:0 0 12px #b8332a80;transition:width .3s ease}.penalty-text{margin-top:12px;font-family:var(--font-display);font-weight:700;color:var(--amber-300);letter-spacing:.08em}.drag-indicator{position:absolute;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--amber-300),var(--amber-600));border:1px solid var(--amber-700);box-shadow:var(--glow-selected);pointer-events:none;transform:translate(-50%,-50%);z-index:1001}.settings-modal button:not(.profile-card),.rps-modal button:not(.rps-btn){background:var(--surface-button);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-control);transition:var(--motion-ui)}.settings-modal button.icon-button{border-radius:50%}.settings-modal button:not(.profile-card):hover:not(:disabled),.rps-modal button:not(.rps-btn):hover:not(:disabled){background:var(--surface-button-hover);border-color:var(--amber-600);box-shadow:var(--shadow-control-hover);transform:translateY(var(--lift-subtle))}.settings-modal button:not(.profile-card):active:not(:disabled),.rps-modal button:not(.rps-btn):active:not(:disabled){transform:translateY(0) scale(var(--press-scale));box-shadow:var(--shadow-pressed)}.settings-modal button:not(.profile-card):focus-visible,.rps-modal button:not(.rps-btn):focus-visible{outline:none;box-shadow:var(--shadow-control),var(--ring-focus)}.settings-modal button:not(.profile-card):disabled,.rps-modal button:not(.rps-btn):disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate))}.settings-modal button.primary:not(.profile-card),.rps-modal button.primary:not(.rps-btn){background:var(--surface-gold);border-color:var(--amber-700);color:var(--color-on-gold)}.settings-modal button.primary:not(.profile-card):hover:not(:disabled),.rps-modal button.primary:not(.rps-btn):hover:not(:disabled){background:var(--surface-gold-hover);border-color:var(--amber-600)}.settings-modal .cosmetic-card:hover:not(:disabled){background:var(--surface-inlay);border-color:var(--amber-500);box-shadow:var(--shadow-card-hover);transform:translateY(var(--lift-subtle))}.settings-modal .cosmetic-card:focus-visible{outline:none;box-shadow:var(--shadow-flat),var(--ring-focus)}.settings-modal .cosmetic-card.selected:hover:not(:disabled){box-shadow:var(--ring-selected),var(--glow-selected);border-color:var(--amber-400)}.settings-modal input:not([type=checkbox]):not([type=range]),.settings-modal select{background:var(--surface-input);color:var(--walnut-900);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-sunken);transition:var(--motion-ui)}.settings-modal select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%234a3220' d='M6 8 0 0h12z'/></svg>"),var(--surface-input);background-repeat:no-repeat;background-position:right 12px center,0 0}.settings-modal input:not([type=checkbox]):not([type=range]):focus,.settings-modal select:focus{outline:none;border-color:var(--amber-500);box-shadow:var(--shadow-sunken),var(--ring-focus)}.settings-modal input:disabled,.settings-modal select:disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate));cursor:not-allowed}.settings-modal input[type=checkbox]{background:var(--surface-button);border:var(--border-walnut);box-shadow:var(--shadow-sunken);transition:var(--motion-ui)}.settings-modal input[type=checkbox]:hover{border-color:var(--amber-600)}.settings-modal input[type=checkbox]:checked{background:var(--surface-gold);border-color:var(--amber-700);box-shadow:var(--ring-hover)}.settings-modal input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--ring-focus)}.settings-modal input[type=range]{border-radius:var(--radius-pill);box-shadow:var(--shadow-sunken)}.settings-modal input[type=range]::-webkit-slider-thumb{box-shadow:var(--shadow-control)}.settings-modal input[type=range]::-moz-range-thumb{box-shadow:var(--shadow-control)}.settings-modal input[type=range]:focus-visible{box-shadow:var(--shadow-sunken),var(--ring-focus)}@media(max-width:768px){.rps-modal-overlay{padding:16px}.rps-modal{width:min(100%,520px);min-width:0;padding:26px 20px}.rps-title{margin-bottom:20px}.rps-players{margin-bottom:24px}.rps-choices,.direction-choices{flex-wrap:wrap;gap:12px}.settings-modal{padding:16px;border-radius:16px}.settings-modal .sound-controls{flex-direction:column;align-items:flex-start}.penalty-title{font-size:1.7em}.penalty-subtitle{font-size:1rem;margin-bottom:24px;text-align:center;padding:0 16px}.penalty-arrows{width:170px;height:170px;margin-bottom:24px}.penalty-progress{width:min(320px,calc(100vw - 32px))}}@media(max-width:480px){.rps-modal{padding:20px 16px}.rps-players{gap:8px}.rps-avatar{width:66px;height:66px;font-size:1.7em}.rps-vs{font-size:1.5em}.rps-btn{width:70px;height:70px;font-size:2.4em}.settings-modal-header{align-items:flex-start}.settings-modal-header h2{font-size:1.2rem}.settings-section{padding:14px}.penalty-title{font-size:1.4em}.penalty-arrows{width:140px;height:140px}.penalty-arrow{font-size:2.2em}}@media(prefers-reduced-motion:reduce){.rps-modal,.settings-modal,.rps-modal-overlay,.settings-modal-overlay,.penalty-overlay,.rps-result,.penalty-arrow.active{animation:none!important}}.end-vote-panel{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:900;min-width:300px;padding:16px 22px;border-radius:var(--radius-lg);border:var(--border-gold);background:var(--surface-panel);box-shadow:var(--shadow-popover),var(--glow-turn);text-align:center;animation:popIn var(--dur-slow) var(--ease-pop) both}.end-vote-title{font-family:var(--font-display);color:var(--amber-200);letter-spacing:.04em;margin-bottom:8px}.end-vote-initiator{color:var(--amber-300);font-weight:700}.end-vote-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.88rem;color:var(--color-text-secondary);margin-bottom:12px}.end-vote-names{opacity:.75}.end-vote-countdown{font-variant-numeric:tabular-nums;color:var(--amber-300)}.end-vote-actions{display:flex;justify-content:center;gap:12px}.end-vote-waiting{font-size:.85rem;color:var(--color-text-secondary);letter-spacing:.05em}.card-back-editor{margin-bottom:14px;padding:14px;border-radius:var(--radius-md);border:var(--border-gold-faint);background:var(--surface-inlay)}.card-back-editor-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.card-back-editor-head strong{font-family:var(--font-display);color:var(--amber-200);letter-spacing:.02em}.card-back-active-badge{padding:2px 10px;border-radius:999px;background:#2d806747;border:1px solid rgba(45,128,103,.55);color:var(--jade-300);font-size:.78rem;font-weight:700}.card-back-editor-body{display:flex;gap:16px;align-items:flex-start}.card-back-preview{position:relative;width:108px;height:144px;flex-shrink:0;border-radius:var(--card-radius, 10px);border:var(--border-walnut);background:var(--surface-card-back);box-shadow:var(--shadow-flat);overflow:hidden;cursor:grab;touch-action:none}.card-back-preview:active{cursor:grabbing}.card-back-preview:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:6px;border:1px solid rgba(212,160,74,.32);pointer-events:none}.card-back-preview img{position:absolute;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.card-back-preview-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--color-text-muted);font-size:.8rem;letter-spacing:.06em}.card-back-editor-controls{display:flex;flex-direction:column;gap:10px;flex:1}.card-back-zoom{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary)}.card-back-zoom input[type=range]{flex:1;accent-color:var(--amber-400)}.card-back-zoom span:last-child{min-width:44px;text-align:right;font-variant-numeric:tabular-nums}.card-back-hint{margin:0;font-size:.8rem;color:var(--color-text-muted)}.card-back-editor-actions{display:flex;gap:10px;margin-top:12px}.avatar-preview{width:96px;height:96px;border-radius:50%}.avatar-preview:after{border-radius:50%}.avatar-preview .card-back-preview-hint{font-size:1.6rem;font-family:var(--font-display)}.scoreboard-container{display:flex;flex-direction:column;align-items:center;padding:36px var(--app-gutter);min-height:100dvh;background:transparent;position:relative}.scoreboard-container:before{content:"";position:absolute;top:0;left:50%;width:min(720px,96vw);height:min(720px,96vw);transform:translate(-50%);background:radial-gradient(circle,rgba(232,184,96,.12),transparent 60%);pointer-events:none;z-index:0}.scoreboard-box{position:relative;z-index:1;background:var(--surface-panel);padding:40px;border-radius:var(--radius-lg);border:var(--border-gold);width:100%;max-width:840px;box-shadow:var(--shadow-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:lobbyRise var(--dur-slow) var(--ease-lift) both}@keyframes lobbyRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.scoreboard-title{text-align:center;margin-bottom:30px;font-family:var(--font-display);font-size:2.4em;font-weight:600;color:var(--amber-300);letter-spacing:.08em;text-shadow:0 0 24px rgba(232,184,96,.35);position:relative}.scoreboard-title:after{content:"";display:block;margin:12px auto 0;width:50%;height:1px;background:linear-gradient(90deg,transparent,var(--amber-500),transparent)}.score-table{width:100%;border-collapse:collapse;margin-bottom:36px;font-variant-numeric:tabular-nums}.score-table th:first-child,.score-table td:first-child,.score-table th:nth-child(2),.score-table td:nth-child(2){white-space:nowrap}.score-table th,.score-table td{padding:14px 12px;text-align:center;border-bottom:var(--border-gold-faint)}.score-table th{color:var(--color-text-muted);font-weight:600;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:.82em}.score-table td{font-size:.95rem}.score-table td:nth-child(2){text-align:left;font-family:var(--font-display);color:var(--amber-200);letter-spacing:.02em}.score-table tr.me{background:linear-gradient(90deg,#e8b8601f,#e8b8600a);box-shadow:inset 0 0 0 1px #e8b86040}.score-table tr.me td:nth-child(2){color:var(--amber-200)}.score-table td.total-score{font-family:var(--font-display);font-weight:700;font-size:1.15em;color:var(--amber-300)}.score-table td.positive{color:var(--jade-300);font-weight:600}.score-table td.negative{color:var(--color-danger-text);font-weight:600}.messages-section{margin-top:36px;border-top:var(--border-gold-faint);padding-top:26px}.messages-title{font-family:var(--font-display);font-size:1.35em;margin-bottom:18px;color:var(--amber-200);letter-spacing:.04em}.message-input-area{display:flex;gap:10px;align-items:center;margin-bottom:26px}.message-input-area input{flex:1}.message-char-count{flex:none;font-size:.8rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.messages-progress{margin-left:10px;font-size:.65em;color:var(--color-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}.message-sent-note{margin-bottom:26px;padding:11px 15px;border-radius:var(--radius-sm);border:var(--border-gold);border-style:dashed;color:var(--jade-300);font-size:.92rem;text-align:center}.score-table .round-delta{font-size:.78em;opacity:.75;font-variant-numeric:tabular-nums}.messages-list{display:flex;flex-direction:column;gap:10px;max-height:220px;overflow-y:auto;padding-right:8px}.message-item{background:var(--surface-inlay);padding:11px 15px;border-radius:var(--radius-sm);border:var(--border-gold-faint);box-shadow:var(--shadow-sunken);display:flex;gap:10px}.message-author{font-family:var(--font-display);font-weight:600;color:var(--amber-300);letter-spacing:.02em;white-space:nowrap}.message-content{color:var(--color-text-secondary)}.history-list,.history-standings{display:flex;flex-direction:column;gap:10px}.history-card{padding:16px;border-radius:var(--radius-md);background:var(--surface-inlay);border:var(--border-gold-faint);box-shadow:var(--shadow-flat)}.history-card .profile-card-header strong{font-family:var(--font-display);color:var(--amber-200)}.history-standings>div{color:var(--color-text-secondary);font-size:.92rem;padding:2px 0}.history-empty{opacity:.7;color:var(--color-text-muted)}.scoreboard-actions{margin-top:36px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.scoreboard-actions button{font-size:1.05em;padding:12px 28px}.scoreboard-box button{background:var(--surface-button);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-control);transition:var(--motion-ui)}.scoreboard-box button:hover:not(:disabled){background:var(--surface-button-hover);border-color:var(--amber-600);box-shadow:var(--shadow-control-hover);transform:translateY(var(--lift-subtle))}.scoreboard-box button:active:not(:disabled){transform:translateY(0) scale(var(--press-scale));box-shadow:var(--shadow-pressed)}.scoreboard-box button:focus-visible{outline:none;box-shadow:var(--shadow-control),var(--ring-focus)}.scoreboard-box button:disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate))}.scoreboard-box button.primary{background:var(--surface-gold);border-color:var(--amber-700);color:var(--color-on-gold)}.scoreboard-box button.primary:hover:not(:disabled){background:var(--surface-gold-hover);border-color:var(--amber-600)}.scoreboard-box input:not([type=checkbox]):not([type=range]){background:var(--surface-input);color:var(--walnut-900);border:var(--border-walnut);border-radius:var(--radius-sm);box-shadow:var(--shadow-sunken);transition:var(--motion-ui)}.scoreboard-box input:not([type=checkbox]):not([type=range]):focus{outline:none;border-color:var(--amber-500);box-shadow:var(--shadow-sunken),var(--ring-focus)}.scoreboard-box input:disabled{opacity:var(--state-disabled-opacity);filter:saturate(var(--state-disabled-saturate));cursor:not-allowed}@media(max-width:768px){.scoreboard-box{padding:26px 20px}.scoreboard-title{margin-bottom:22px;font-size:2rem}.score-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.score-table th,.score-table td{padding:12px 10px;font-size:.92rem}.message-input-area{flex-direction:column}.message-input-area button,.scoreboard-actions button{width:100%}.scoreboard-actions{flex-direction:column;gap:12px}}@media(max-width:480px){.scoreboard-container{padding-top:18px;padding-bottom:24px}.scoreboard-box{padding:20px 16px}.scoreboard-title{font-size:1.7rem}.messages-section{margin-top:26px;padding-top:18px}.message-item{flex-direction:column;gap:4px}}.victory-celebration{position:fixed;top:10%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-panel);border:var(--border-gold-strong);padding:28px 54px;border-radius:var(--radius-lg);z-index:1000;animation:fadeIn var(--dur-slow) ease-out;pointer-events:auto;cursor:pointer;box-shadow:var(--shadow-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.victory-text{font-family:var(--font-display);font-size:2.2rem;font-weight:700;letter-spacing:.08em;text-shadow:0 0 24px currentColor;animation:victoryPulse 1.2s ease-in-out infinite}.victory-celebration.rank-1 .victory-text{color:var(--amber-300)}.victory-celebration.rank-2 .victory-text{color:#d8d8d8}.victory-celebration.rank-3 .victory-text{color:#d49a6a}.victory-celebration.rank-4 .victory-text{color:var(--jade-400)}@keyframes victoryPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.victory-celebration.rank-1 .victory-animation:before,.victory-celebration.rank-1 .victory-animation:after{content:"🎆";position:absolute;top:-40px;font-size:2.5rem;animation:fireworks 1s ease-out infinite}.victory-celebration.rank-1 .victory-animation:before{left:-20px;animation-delay:.2s}.victory-celebration.rank-1 .victory-animation:after{right:-20px;animation-delay:.5s}@keyframes fireworks{0%{transform:scale(0) rotate(0);opacity:1}to{transform:scale(2) rotate(180deg);opacity:0}}@media(prefers-reduced-motion:reduce){.scoreboard-box,.victory-celebration{animation:none!important}.victory-text,.victory-celebration.rank-1 .victory-animation:before,.victory-celebration.rank-1 .victory-animation:after{animation:none!important}}
