:root{--font-body:"Inter", system-ui, sans-serif;--font-heading:"Quicksand", sans-serif;--bg:#10121a;--surface:#1a1e2b;--surface-2:#212537;--surface-3:#2b3049;--border:#ffffff14;--border-divider:#ffffff1f;--border-input:#ffffff24;--border-strong:#ffffff29;--text:#f2f4fa;--text-muted:#9aa0b8;--text-faint:#6b7085;--accent:#6c63ff;--accent-2:#3fa9f5;--accent-3:#b3b3b3;--accent-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent) 90%, black), color-mix(in srgb, var(--accent) 65%, black));--accent-2-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 90%, black), color-mix(in srgb, var(--accent-2) 65%, black));--edit-color:#3fa9f5;--success:#2ecc71;--success-text:#6bf0a3;--danger:#ff6b6b;--warning-text:#ffd166;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px #00000059;--shadow-glow:0 0 0 1px var(--border), 0 12px 32px #00000059;--mesh-1:#6c63ff47;--mesh-2:#3fa9f538;--mesh-3:#ff5cd224;--mesh-4:#38e0b324;--mesh-5:#ff9f641f;--burst-1:#6c63ff38;--burst-2:#3fa9f533;--burst-3:#ff5cd229;--grain-opacity:.05;--wire-1:#4f46e5;--wire-2:#0891dc;--wire-3:#db2777;--wire-4:#05ad82;--wire-5:#f97316;--game-bg:#12141c;--game-surface:#1a1e2b;--game-surface-2:#2b3049;--game-text:#f2f4fa;--game-border:#ffffff14}[data-surface=light]{--bg:#f3f4f9;--surface:#fff;--surface-2:#f1f2f8;--surface-3:#e6e8f2;--border:#1416231a;--border-divider:#14162324;--border-input:#14162329;--border-strong:#1416232e;--text:#181a26;--text-muted:#565c72;--text-faint:#878ca3;--accent:#5a51e0;--accent-2:#2585c9;--accent-3:color-mix(in srgb, var(--accent) 70%, black);--accent-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent) 90%, black), color-mix(in srgb, var(--accent) 65%, black));--accent-2-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 90%, black), color-mix(in srgb, var(--accent-2) 65%, black));--edit-color:#2585c9;--success:#1f9d54;--success-text:#16793f;--danger:#d8394a;--warning-text:#917000;--shadow-sm:0 2px 8px #14162314;--shadow-md:0 12px 32px #1416231f;--shadow-glow:0 0 0 1px var(--border), 0 12px 32px #1416231f;--grain-opacity:.07}[data-theme=electric]{--grain-opacity:.045;--accent:#4f46e5;--accent-2:#0891dc}[data-theme=white]{--grain-opacity:0}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;position:relative}body:before{content:"";z-index:-2;background:linear-gradient(108deg, transparent 0%, transparent 20%, var(--burst-1) 34%, var(--burst-2) 48%, var(--burst-3) 60%, transparent 76%, transparent 100%), radial-gradient(38% 32% at 14% -4%, var(--mesh-1), transparent 70%), radial-gradient(34% 30% at 104% 8%, var(--mesh-2), transparent 70%), radial-gradient(32% 32% at 88% 92%, var(--mesh-3), transparent 70%), radial-gradient(30% 28% at 2% 96%, var(--mesh-4), transparent 70%), radial-gradient(30% 26% at 58% 46%, var(--mesh-5), transparent 72%);pointer-events:none;animation:22s ease-in-out infinite alternate mesh-drift;position:fixed;inset:-12%}[data-surface=light] body:before{background:var(--page-gradient,none);animation:none}[data-theme=sunset]{--page-gradient:linear-gradient(135deg, #ffffc4 0%, #ff6164 50%, #b00012 100%);--accent:#ff6164;--accent-2:#b00012;--dice-color:#fff6e8}[data-theme=ocean]{--page-gradient:linear-gradient(#ffffff80, #ffffff80), linear-gradient(135deg, #4facfe, #00f2fe);--accent:#0091d5;--accent-2:#00b8c4}[data-theme=dusk]{--page-gradient:linear-gradient(#ffffff80, #ffffff80), linear-gradient(135deg, #6a11cb, #2575fc);--accent:#6a11cb;--accent-2:#2575fc}[data-theme=dense-water]{--page-gradient:linear-gradient(#ffffff80, #ffffff80), linear-gradient(180deg, #3ab5b0, #3d99be, #56317a);--accent:#3d99be;--accent-2:#56317a}[data-theme=nightwatch]{--accent:#1fb8c4;--accent-2:#330867;--page-gradient:linear-gradient(#ffffff80, #ffffff80), linear-gradient(90deg, #30cfd0, #330867);--dice-color:#ffce6b;--surface:#1a1e2b;--surface-2:#212537;--surface-3:#2b3049;--border:#ffffff14;--border-divider:#ffffff1f;--border-input:#ffffff24;--border-strong:#ffffff29;--text:#f2f4fa;--text-muted:#9aa0b8;--text-faint:#6b7085;--accent-3:#b3b3b3;--edit-color:#3fa9f5;--success:#2ecc71;--success-text:#6bf0a3;--danger:#ff6b6b;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px #00000059;--shadow-glow:0 0 0 1px var(--border), 0 12px 32px #00000059}[data-theme=aurora]{--accent:#7090ab;--accent-2:#54537d;--page-gradient:linear-gradient(#ffffff26, #ffffff26), conic-gradient(from 0deg, #c5bbb8, #b8b5b8, #a9afb7, #9aa8b5, #8ba1b3, #7d98af, #7090ab, #6587a6, #5c7ea1, #55759b, #516c94, #4f638d, #505a85, #54537d, #5b4b74, #c5bbb8);--dice-color:#f4b942}[data-theme=sedona]{--accent:#c26100;--accent-2:#1787ac;--page-gradient:linear-gradient(#ffffff59, #ffffff59), conic-gradient(from 90deg, #a64900 0deg, #a64900 27.692deg, #c26100 calc(27.692deg + .1deg), #c26100 55.385deg, #d57800 calc(55.385deg + .1deg), #d57800 83.077deg, #df8c1e calc(83.077deg + .1deg), #df8c1e 110.769deg, #dd9d45 calc(110.769deg + .1deg), #dd9d45 138.462deg, #d0a969 calc(138.462deg + .1deg), #d0a969 166.154deg, #b9b188 calc(166.154deg + .1deg), #b9b188 193.846deg, #9bb3a1 calc(193.846deg + .1deg), #9bb3a1 221.538deg, #78afb1 calc(221.538deg + .1deg), #78afb1 249.231deg, #55a6b8 calc(249.231deg + .1deg), #55a6b8 276.923deg, #3399b7 calc(276.923deg + .1deg), #3399b7 304.615deg, #1787ac calc(304.615deg + .1deg), #1787ac 332.308deg, #047299 calc(332.308deg + .1deg) 360deg)}[data-theme=fernwood]{--accent:#1c5842;--accent-2:#bca552;--page-gradient:linear-gradient(#fff6, #fff6), conic-gradient(from 90deg, #07444a 0deg, #1c5842 90deg, #477040 180deg, #808a46 270deg, #bca552 360deg)}[data-theme=daybreak]{--accent:#c8606b;--accent-2:#ffae79;--accent-3:#453e64;--page-gradient:linear-gradient(#ffffff4d, #ffffff4d), conic-gradient(from 90deg, #453e64 0deg, #453e64 27.692deg, #664465 calc(27.692deg + .1deg), #664465 55.385deg, #864b67 calc(55.385deg + .1deg), #864b67 83.077deg, #a75569 calc(83.077deg + .1deg), #a75569 110.769deg, #c8606b calc(110.769deg + .1deg), #c8606b 138.462deg, #e76d6d calc(138.462deg + .1deg), #e76d6d 166.154deg, #ff7b70 calc(166.154deg + .1deg), #ff7b70 193.846deg, #ff8b73 calc(193.846deg + .1deg), #ff8b73 221.538deg, #ff9c76 calc(221.538deg + .1deg), #ff9c76 249.231deg, #ffae79 calc(249.231deg + .1deg), #ffae79 276.923deg, #ffc07c calc(276.923deg + .1deg), #ffc07c 304.615deg, #ffd480 calc(304.615deg + .1deg), #ffd480 332.308deg, #ffe783 calc(332.308deg + .1deg) 360deg)}[data-theme=eclipse]{--accent:#a5723f;--accent-2:#2d5e92;--page-gradient:linear-gradient(#ffffff4d, #ffffff4d), linear-gradient(90deg, #c8d5c8 0%, #c8d5c8 2.941%, #d0d3bd calc(2.941% + 1px), #d0d3bd 5.882%, #d4ceaf calc(5.882% + 1px), #d4ceaf 8.824%, #d5c59e calc(8.824% + 1px), #d5c59e 11.765%, #d2b88c calc(11.765% + 1px), #d2b88c 14.706%, #cbaa79 calc(14.706% + 1px), #cbaa79 17.647%, #c19865 calc(17.647% + 1px), #c19865 20.588%, #b48651 calc(20.588% + 1px), #b48651 23.529%, #a5723f calc(23.529% + 1px), #a5723f 26.471%, #935f2e calc(26.471% + 1px), #935f2e 29.412%, #804b20 calc(29.412% + 1px), #804b20 32.353%, #6c3914 calc(32.353% + 1px), #6c3914 35.294%, #59290b calc(35.294% + 1px), #59290b 38.235%, #461c06 calc(38.235% + 1px), #461c06 41.176%, #341105 calc(41.176% + 1px), #341105 44.118%, #250908 calc(44.118% + 1px), #250908 47.059%, #18060e calc(47.059% + 1px), #18060e 50%, #0e0617 calc(50% + 1px), #0e0617 52.941%, #080924 calc(52.941% + 1px), #080924 55.882%, #051033 calc(55.882% + 1px), #051033 58.824%, #061b45 calc(58.824% + 1px), #061b45 61.765%, #0b2958 calc(61.765% + 1px), #0b2958 64.706%, #13396b calc(64.706% + 1px), #13396b 67.647%, #1f4b7f calc(67.647% + 1px), #1f4b7f 70.588%, #2d5e92 calc(70.588% + 1px), #2d5e92 73.529%, #3e72a4 calc(73.529% + 1px), #3e72a4 76.471%, #5085b3 calc(76.471% + 1px), #5085b3 79.412%, #6498c1 calc(79.412% + 1px), #6498c1 82.353%, #77a9cb calc(82.353% + 1px), #77a9cb 85.294%, #8bb8d2 calc(85.294% + 1px), #8bb8d2 88.235%, #9dc4d5 calc(88.235% + 1px), #9dc4d5 91.176%, #aecdd4 calc(91.176% + 1px), #aecdd4 94.118%, #bcd3d0 calc(94.118% + 1px), #bcd3d0 97.059%, #c7d5c8 calc(97.059% + 1px) 100%);--surface:#1a1e2b;--surface-2:#212537;--surface-3:#2b3049;--border:#ffffff14;--border-divider:#ffffff1f;--border-input:#ffffff24;--border-strong:#ffffff29;--text:#f2f4fa;--text-muted:#9aa0b8;--text-faint:#6b7085;--accent-3:#b3b3b3;--edit-color:#3fa9f5;--success:#2ecc71;--success-text:#6bf0a3;--danger:#ff6b6b;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px #00000059;--shadow-glow:0 0 0 1px var(--border), 0 12px 32px #00000059}[data-theme=chartreuse]{--accent:#345f36;--accent-2:#b3f433;--page-gradient:linear-gradient(#ffffff40, #ffffff40), conic-gradient(from 20deg, #345f36 0deg, #345f36 72deg, #616735 calc(72deg + .1deg), #616735 144deg, #a29134 calc(144deg + .1deg), #a29134 216deg, #c6c934 calc(216deg + .1deg), #c6c934 288deg, #b3f433 calc(288deg + .1deg) 360deg)}[data-theme=ember-tide]{--accent:#af5b2e;--accent-2:#0c8ea2;--page-gradient:linear-gradient(#ffffff59, #ffffff59), conic-gradient(from 180deg, #000021 0deg, #00000b 10.909deg, #000 21.818deg, #000 32.727deg, #000 43.636deg, #000 54.545deg, #000 65.455deg, #180000 76.364deg, #320000 87.273deg, #4b0000 98.182deg, #630000 109.091deg, #7a0100 120deg, #8d1700 130.909deg, #9d2e02 141.818deg, #a94518 152.727deg, #af5b2e 163.636deg, #b07045 174.545deg, #ac825c 185.455deg, #a39270 196.364deg, #969e83 207.273deg, #84a692 218.182deg, #6faa9e 229.091deg, #57aaa5 240deg, #3ea5a9 250.909deg, #259ba7 261.818deg, #0c8ea2 272.727deg, #007e98 283.636deg, #006b8a 294.545deg, #005579 305.455deg, #003f65 316.364deg, #002850 327.273deg, #001139 338.182deg, #002 349.091deg, #00000c 360deg)}[data-theme=sherbet]{--accent:#e0699b;--accent-2:#5aa9e6;--page-gradient:linear-gradient(225deg, #f7e9f3 0%, #e7f3ff 16.667%, #ddfaff 33.333%, #e5fbeb 50%, #f5f6dc 66.667%, #fbede0 83.333%, #f0e3f4 100%)}[data-theme=skylight]{--accent:#3a9fd9;--accent-2:#e0a83e;--page-gradient:linear-gradient(#fff3, #fff3), linear-gradient(0deg, #ffecb7 0%, #e3e4d1 25%, #bddbea 50%, #97d3ff 75%, #72ccff 100%)}.electric-bg{z-index:-3;pointer-events:none;width:112%;height:112%;position:fixed;inset:-6%}.electric-scrim{z-index:-2;pointer-events:none;background:#ffffff9e;position:fixed;inset:0}.electric-wire{stroke-width:2.25px;opacity:.55}.electric-pulse{fill:#fff;offset-distance:0%;filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px var(--pulse-color)) drop-shadow(0 0 22px var(--pulse-color));mix-blend-mode:screen;animation-name:electric-surge;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes electric-surge{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}to{offset-distance:100%;opacity:0}}@media (prefers-reduced-motion:reduce){.electric-pulse{opacity:0;animation:none}}body:after{content:"";z-index:-1;opacity:var(--grain-opacity);mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@keyframes mesh-drift{0%{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate(-3%,2.5%)rotate(1.5deg)scale(1.08)}to{transform:translate(2.5%,-2%)rotate(-1deg)scale(1.04)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.01em;overflow-wrap:break-word;font-weight:700}button{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text);padding:.6rem 1.1rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:transform .12s,background-color .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--surface-2)}button.primary{background:var(--accent-gradient);color:#fff;box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}button.primary:hover:not(:disabled){box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 45%, transparent)}button.secondary{background:var(--accent-2-gradient);color:#fff;box-shadow:0 6px 18px color-mix(in srgb, var(--accent-2) 35%, transparent);border-color:#0000}button.secondary:hover:not(:disabled){box-shadow:0 8px 22px color-mix(in srgb, var(--accent-2) 45%, transparent)}button.danger{background:var(--danger);color:#fff;border-color:#0000}button.danger:hover:not(:disabled){filter:brightness(1.08)}.danger-zone{text-align:center;margin-top:2rem}button.subtle-danger-link{color:var(--text-faint);background:0 0;border:1px solid #0000;padding:.3rem .6rem;font-size:.8rem;font-weight:500}button.subtle-danger-link:hover:not(:disabled){color:var(--danger);background:0 0;border-color:#0000;transform:none}a.primary,a.ghost{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--surface-3);justify-content:center;align-items:center;padding:.6rem 1.1rem;font-family:inherit;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .12s,background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}a.primary:hover,a.ghost:hover{border-color:var(--border-strong);transform:translateY(-1px)}a.ghost{background:0 0;border-color:#0000}a.ghost:hover{background:var(--surface-2)}a.primary{background:var(--accent-gradient);color:#fff;box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}a.primary:hover{box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 45%, transparent)}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]),select,textarea{color:var(--text);background:var(--surface-2);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:.6rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:5.5rem;line-height:1.5}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit])::placeholder,textarea::placeholder{color:var(--text-faint)}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:var(--border-strong)}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):disabled,select:disabled,textarea:disabled{color:var(--text-faint);opacity:1;cursor:not-allowed;background:var(--surface)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7085' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:12px;padding-right:2.25rem}[data-surface=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%239aa0b8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.error{color:var(--danger)}.page-loading{min-height:calc(100vh - 12rem);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.dice-loader{flex-direction:column;align-items:center;gap:1.1rem;display:flex}.dice-loader-dice{gap:.6rem;display:flex}.dice-loader-die{color:var(--dice-color,var(--accent));border-radius:3px;font-size:2.5rem;line-height:1;animation:1.1s ease-in-out infinite dice-toss;display:inline-block}.dice-loader-die:nth-child(2){animation-delay:.12s}.dice-loader-die:nth-child(3){animation-delay:.24s}.dice-loader-die:nth-child(4){animation-delay:.36s}.dice-loader-label{font-family:var(--font-heading);letter-spacing:.02em;color:var(--accent);text-shadow:0 0 6px var(--surface), 0 0 6px var(--surface), 0 0 12px var(--surface);font-size:1.15rem;font-weight:600}@keyframes dice-toss{0%{transform:translateY(0)rotate(0)}30%{transform:translateY(-30px)rotate(160deg)}55%{transform:translateY(0)rotate(280deg)}70%{transform:translateY(6px)rotate(330deg)}to{transform:translateY(0)rotate(360deg)}}.app-header{--header-text:#fffffff0;--header-text-muted:#ffffffa8;--header-hover:#ffffff1a;--header-control-hover:#ffffff1a;--header-border:#ffffff1f;z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--header-border);background:#10121abf;position:sticky;top:0}[data-surface=light] .app-header{--header-text:#14161f;--header-text-muted:#5b6072;--header-hover:transparent;--header-control-hover:#1416230f;--header-border:#14162314;background:#ffffffdb;box-shadow:0 1px 24px #1416230f}[data-theme=eclipse] .app-header,[data-theme=nightwatch] .app-header{--header-text:#fffffff0;--header-text-muted:#ffffffa8;--header-hover:#ffffff1a;--header-control-hover:#ffffff1a;--header-border:#ffffff1f;box-shadow:none;background:#10121abf}.app-header-inner{align-items:center;gap:1.5rem;max-width:1000px;margin:0 auto;padding:.85rem 1.25rem;display:flex}.brand{color:var(--header-text);white-space:nowrap;align-items:center;gap:.4rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{font-size:1.2rem}.app-nav{flex:1;gap:.25rem;display:flex}.nav-link{color:var(--header-text-muted);border-radius:var(--radius-sm);padding:.5rem .85rem;font-family:Quicksand,sans-serif;font-size:.9rem;font-weight:700;text-decoration:none;transition:background-color .15s,color .15s;position:relative}.nav-link:hover,.nav-link-active{color:var(--header-text)}.nav-link:after{content:"";background:var(--accent-gradient);opacity:0;border-radius:999px;height:3px;transition:opacity .18s,transform .18s;position:absolute;bottom:1px;left:.85rem;right:.85rem;transform:scaleX(.6)}[data-surface=light] .nav-link:hover:after,[data-surface=light] .nav-link-active:after{opacity:1;transform:scaleX(1)}.page-icon{margin-right:.5rem;display:inline-block}.app-header-account{align-items:center;gap:.6rem;display:flex}.account-menu{position:relative}.account-chip{color:var(--header-text);min-width:0;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .6rem .25rem .25rem;text-decoration:none;transition:background-color .15s;display:flex}.account-chip:hover{background:var(--header-control-hover)}.account-chip-static{cursor:default}.account-chip-static:hover{background:0 0}.account-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden}.account-menu-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:50;flex-direction:column;gap:.15rem;min-width:180px;padding:.4rem;display:flex;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 32px #00000040}.account-menu-item{border-radius:var(--radius-sm);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-weight:600;text-decoration:none;display:block}.account-menu-item:hover{background:var(--surface-2)}.account-menu-item-active{color:var(--accent-3);background:color-mix(in srgb, var(--accent) 10%, transparent)}.app-header .ghost{color:var(--header-text)}.app-header .ghost:hover:not(:disabled){background:var(--header-control-hover)}a.icon-button,button.icon-button{border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;display:inline-flex}a.icon-button-sm,button.icon-button-sm{width:30px;height:30px}a.icon-button-edit,button.icon-button-edit{color:var(--edit-color)}a.icon-button-edit:hover:not(:disabled),button.icon-button-edit:hover:not(:disabled){background:color-mix(in srgb, var(--edit-color) 15%, transparent)}a.icon-button-delete,button.icon-button-delete{color:var(--danger)}a.icon-button-delete:hover:not(:disabled),button.icon-button-delete:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 15%, transparent)}.notification-bell{position:relative}.notification-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:16px;position:absolute;top:2px;right:2px}.notification-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:50;width:340px;max-width:calc(100vw - 2rem);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 12px 32px #00000040}.notification-dropdown-header{border-bottom:1px solid var(--border-divider);color:var(--text);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-weight:700;display:flex}.notification-dropdown-header .ghost{padding:.3rem .6rem;font-size:.78rem}.notification-dropdown-empty{text-align:center;padding:1.5rem 1rem}.notification-list{max-height:340px;margin:0;padding:0;list-style:none;overflow-y:auto}.notification-item{text-align:left;border:none;border-bottom:1px solid var(--border-divider);background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.7rem 1rem;font-weight:400;display:flex}.notification-item:hover{background:var(--surface-2);transform:none}.notification-item-unread{background:var(--surface-2);padding-left:1.25rem;font-weight:600;position:relative}.notification-item-unread:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:1rem;left:.4rem}.notification-item-text{color:var(--text);font-size:.85rem}.notification-item-date{color:var(--text-muted);font-size:.72rem}.notification-dropdown-see-all{text-align:center;color:var(--accent);border-top:1px solid var(--border-divider);padding:.7rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;display:block}.notification-dropdown-see-all:hover{background:var(--surface-2)}.notification-row-unread{border-left-color:var(--accent)}.app-header-menu-toggle{border:1px solid var(--header-border);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:38px;height:38px;margin-left:auto;padding:0;display:none}.app-header-menu-toggle span{background:var(--header-text);border-radius:2px;width:18px;height:2px;display:block}.app-mobile-nav{display:none}.app-mobile-nav-divider{background:var(--header-border);height:1px;margin:.5rem 0}.app-mobile-logout{align-self:flex-start;align-items:center;gap:.5rem;display:inline-flex}@media (width<=780px){.app-nav,.app-header-account{display:none}.app-header-menu-toggle{display:flex}.app-mobile-nav{border-top:1px solid var(--header-border);flex-direction:column;gap:.25rem;padding:.75rem 1.25rem 1.25rem;display:flex}.app-mobile-nav .nav-link{padding:.65rem .85rem}}.app-main{max-width:1000px;margin:0 auto;padding:2rem 1.25rem 4rem}.impersonation-banner{z-index:50;color:#fff8e6;background:#917000;justify-content:center;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;display:flex;position:sticky;top:0}.impersonation-banner .ghost{color:#fff8e6;border:1px solid #ffffff80;padding:.25rem .75rem}.impersonation-banner .ghost:hover:not(:disabled){background:#ffffff26}@media (width<=560px){.app-main{padding:1.25rem 1rem 3rem}.app-header-inner{padding:.7rem 1rem}}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0}.avatar-initials{color:#000000a6;justify-content:center;align-items:center;font-weight:800;display:flex}.logo-mark,.logo-wordmark-svg{filter:drop-shadow(0 4px 10px #6c63ff59);flex-shrink:0;overflow:visible}.logo-mark-animated{animation:4.5s ease-in-out infinite logo-bob}@keyframes logo-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-6px)rotate(-4deg)}}.decorative-pieces{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.decorative-piece{opacity:.16;transform:rotate(var(--piece-rotate,0deg));animation-name:piece-float;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}.piece-svg{width:100%;height:100%;display:block}@keyframes piece-float{0%{transform:translateY(0) rotate(var(--piece-rotate,0deg))}50%{transform:translateY(-26px) rotate(calc(var(--piece-rotate,0deg) + 12deg))}to{transform:translateY(0) rotate(var(--piece-rotate,0deg))}}.auth-shell{--bg:#10121a;--surface:#1a1e2b;--surface-2:#212537;--surface-3:#2b3049;--border:#ffffff14;--border-divider:#ffffff1f;--border-input:#ffffff24;--border-strong:#ffffff29;--text:#f2f4fa;--text-muted:#9aa0b8;--text-faint:#6b7085;--accent:#6c63ff;--accent-2:#3fa9f5;--accent-3:#b3b3b3;--accent-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent) 90%, black), color-mix(in srgb, var(--accent) 65%, black));--accent-2-gradient:linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 90%, black), color-mix(in srgb, var(--accent-2) 65%, black));--edit-color:#3fa9f5;--success:#2ecc71;--success-text:#6bf0a3;--danger:#ff6b6b;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px #00000059;--shadow-glow:0 0 0 1px var(--border), 0 12px 32px #00000059;isolation:isolate;background:var(--bg);min-height:100vh;color:var(--text);grid-template-columns:minmax(0,1fr);display:grid;position:relative;overflow:hidden}@media (width>=900px){.auth-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.auth-shell:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(108deg,#0000 0% 20%,#6c63ff38 34%,#3fa9f533 48%,#ff5cd229 60%,#0000 76% 100%),radial-gradient(38% 32% at 14% -4%,#6c63ff47,#0000 70%),radial-gradient(34% 30% at 104% 8%,#3fa9f538,#0000 70%),radial-gradient(32% 32% at 88% 92%,#ff5cd224,#0000 70%),radial-gradient(30% 28% at 2% 96%,#38e0b324,#0000 70%),radial-gradient(30% 26% at 58% 46%,#ff9f641f,#0000 72%);animation:22s ease-in-out infinite alternate mesh-drift;position:absolute;inset:-12%}.auth-shell:after{content:"";z-index:0;opacity:.05;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.auth-shell:before{animation:none}}.auth-shell-panel{z-index:1;background:radial-gradient(760px 560px at 18% 18%, #6c63ff66, transparent 62%), radial-gradient(640px 540px at 92% 84%, #3fa9f552, transparent 58%), var(--surface);border-right:1px solid var(--border-divider);justify-content:center;align-items:center;display:none;position:relative;overflow:hidden}.auth-shell-panel-content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:.85rem;max-width:340px;display:flex;position:relative}.auth-shell-panel-content .logo{filter:drop-shadow(0 20px 45px #6c63ff73)}.auth-shell-panel-content h2{margin:0;font-size:1.6rem}.auth-shell-panel-content p{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.5}.auth-shell-form-side{z-index:1;flex-direction:column;justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex;position:relative}.auth-shell-back{color:var(--text-muted);align-items:center;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,transform .15s;display:inline-flex;position:absolute;top:1.5rem;left:1.5rem}.auth-shell-back:hover{color:var(--text);transform:translate(-2px)}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:0 24px 60px #00000073, 0 0 0 1px #ffffff0a inset, 0 0 80px -20px color-mix(in srgb, var(--accent) 35%, transparent);padding:2.25rem 2rem;animation:.5s cubic-bezier(.16,1,.3,1) auth-card-in;position:relative}.auth-card:before{content:"";z-index:-1;border-radius:inherit;background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 55%, transparent), transparent 40%, color-mix(in srgb, var(--accent-2) 45%, transparent));opacity:.6;position:absolute;inset:-1px}@keyframes auth-card-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.auth-card{animation:none}}.auth-card-brand{margin-bottom:1rem;display:none}.auth-card h1{margin:0 0 .35rem;font-size:1.65rem}.auth-card-tagline{color:var(--text-muted);margin:0 0 1.75rem;font-size:.92rem;line-height:1.4}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.auth-submit{width:100%;margin-top:.35rem;padding:.75rem 1.1rem;font-size:1rem}.auth-forgot-link{text-align:right;margin:-.5rem 0 0;font-size:.82rem}.auth-forgot-link a{color:var(--text-muted);text-decoration:none}.auth-forgot-link a:hover{color:var(--accent-2)}.auth-success{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--success) 16%, transparent);border:1px solid color-mix(in srgb, var(--success-text) 30%, transparent);color:var(--success-text);margin:0 0 1.25rem;padding:.7rem .9rem;font-size:.88rem}.auth-card-switch{border-top:1px solid var(--border-divider);color:var(--text-muted);text-align:center;margin:1.5rem 0 0;padding-top:1.25rem;font-size:.9rem}.auth-card-switch a{color:var(--accent-2);font-weight:600;text-decoration:none}.auth-card-switch a:hover{text-decoration:underline}@media (width>=900px){.auth-shell-panel{display:flex}}@media (width<=899px){.auth-card-brand{color:var(--text);justify-content:center;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;display:flex}}.landing-page{min-height:100vh;overflow-x:hidden}.landing-nav{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem;display:flex}.landing-nav-brand{color:var(--text);align-items:center;gap:.6rem;font-size:1rem;font-weight:800;text-decoration:none;display:flex}.landing-nav-actions{align-items:center;gap:1rem;display:flex}.landing-nav-link{color:var(--text-muted);font-size:.92rem;font-weight:600;text-decoration:none}.landing-nav-link:hover{color:var(--text)}.landing-nav-cta{padding:.55rem 1.2rem;text-decoration:none}.landing-hero{text-align:center;padding:4rem 1.5rem 6rem;position:relative;overflow:hidden}.landing-hero-content{z-index:1;flex-direction:column;align-items:center;max-width:640px;margin:0 auto;display:flex;position:relative}.landing-hero-eyebrow{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;margin-bottom:1.5rem;padding:.35rem .9rem;font-size:.78rem;font-weight:700;display:inline-block}.landing-hero-logo{margin-bottom:1.5rem}.landing-hero-title{letter-spacing:-.02em;margin:0 0 1.25rem;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.08}.landing-hero-title-accent{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.landing-hero-subtitle{color:var(--text-muted);max-width:520px;margin:0 0 2.25rem;font-size:1.05rem;line-height:1.6}.landing-hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.landing-hero-cta,.landing-hero-cta-secondary{padding:.85rem 1.6rem;font-size:1rem;text-decoration:none}.landing-features{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 5rem}.landing-features-title{text-align:center;margin:0 0 2.5rem;font-size:1.9rem}.landing-features-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;display:grid}.landing-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;transition:transform .2s,border-color .2s,box-shadow .2s}.landing-feature-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-4px)}.landing-feature-icon{border-radius:var(--radius-md);background:var(--surface-2);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:1rem;font-size:1.5rem;display:inline-flex}.landing-feature-card h3{margin:0 0 .5rem;font-size:1.05rem}.landing-feature-card p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.landing-cta-band{text-align:center;margin:0 1.5rem 4rem;border-radius:var(--radius-lg);background:radial-gradient(500px 300px at 20% 0%, #6c63ff40, transparent 60%), radial-gradient(500px 300px at 80% 100%, #3fa9f533, transparent 60%), var(--surface);border:1px solid var(--border);max-width:1100px;margin-inline:auto;padding:4rem 1.5rem}.landing-cta-band h2{margin:0 0 .5rem;font-size:1.8rem}.landing-cta-band p{color:var(--text-muted);margin:0 0 1.75rem}.landing-footer{color:var(--text-faint);justify-content:center;align-items:center;gap:.5rem;padding:2rem 1.5rem 3rem;font-size:.85rem;display:flex}.games-page h1{margin-bottom:.35rem}.game-type-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.game-type-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);color:var(--text);flex-direction:column;gap:.4rem;padding:1.5rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.game-type-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.game-type-icon{font-size:2rem}.game-type-card h2{margin:0;font-size:1.1rem}.game-type-card p{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.4}.game-type-play{color:var(--accent-2);margin-top:.5rem;font-size:.85rem;font-weight:700}.breadcrumbs{flex-wrap:wrap;align-items:center;margin:0 0 1rem;font-size:.85rem;display:flex}.breadcrumb-item{align-items:center;display:inline-flex}.breadcrumb-link{border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;margin:-.2rem 0;padding:.2rem .45rem;font-weight:600;text-decoration:none;transition:color .15s,background-color .15s;display:inline-block}.breadcrumb-link:hover{color:var(--accent-2);background:var(--surface-2)}.breadcrumb-link-button{padding-left:.2rem}.breadcrumb-current{color:var(--text-faint);padding:.2rem .45rem;font-weight:600}.breadcrumb-separator{color:var(--text-faint);margin:0 .05rem;font-size:1rem;line-height:1}.game-info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);margin-bottom:1.5rem;padding:1.5rem}.game-info-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.game-info-header h1{margin:0 0 .25rem;font-size:1.4rem}.game-info-meta{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0;display:flex}.detail-pill{white-space:nowrap;border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.detail-pill-players{background:color-mix(in srgb, var(--accent-2) 14%, transparent);color:var(--accent-2);border:1px solid color-mix(in srgb, var(--accent-2) 35%, transparent)}.detail-pill-time{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent)}.detail-pill-weight{color:var(--success-text);background:#2ecc7124;border:1px solid #2ecc7159}.game-info-description{color:var(--text-muted);max-width:65ch;margin:.85rem 0 0;font-size:.9rem;line-height:1.5}.lobby-page-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.lobby-page-header h2{margin:0;font-size:1.1rem}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#08090eb8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:560px;max-height:85vh;overflow-y:auto}.modal-header{background:var(--surface);border-bottom:1px solid var(--border-divider);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex;position:sticky;top:0}.modal-header h2{margin:0;font-size:1.15rem}.modal-close{border-radius:50%;width:32px;height:32px;padding:0}.modal-body{padding:1.5rem}.confirm-dialog-actions,.modal-footer-actions{justify-content:flex-end;gap:.6rem;margin-top:1.25rem;display:flex}.create-tables-list{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.create-tables-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.6rem;display:flex}.create-tables-reorder{flex-direction:column;flex-shrink:0;gap:.15rem;display:flex}.create-tables-reorder button{width:24px;height:20px;font-size:.7rem;line-height:1}.create-tables-seats{color:var(--text-muted);flex-direction:column;flex-shrink:0;gap:.2rem;font-size:.75rem;font-weight:600;display:flex}.create-tables-seats input{width:60px}.rules-section{margin-bottom:1.25rem}.rules-section:last-child{margin-bottom:0}.rules-section h3{color:var(--accent-2);margin:0 0 .4rem;font-size:.95rem}.rules-section p{color:var(--text-muted);margin:0 0 .5rem;font-size:.88rem;line-height:1.55}.rules-section p:last-child{margin-bottom:0}.game-list{flex-direction:column;gap:.6rem;padding:0;list-style:none;display:flex}.game-list li{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:.8rem 1.1rem;transition:border-color .15s,background-color .15s;display:flex}.game-list li.game-list-li-linked{overflow:hidden}.game-list-tile{width:100%;color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;text-decoration:none;display:flex}.game-list-arrow{width:30px;height:30px;color:var(--text-faint);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.game-list-select{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;display:flex}.game-list li:hover .game-list-arrow{color:#fff;background:var(--accent-gradient);transform:translate(4px)}.game-list-item-with-avatar{color:inherit;align-items:center;gap:.6rem;min-width:0;text-decoration:none;display:flex}.game-list-item-suffix{white-space:nowrap;flex-shrink:0}a.game-list-item-with-avatar:hover{text-decoration:underline}.game-list li:hover{border-color:var(--border-strong);background:var(--surface-3)}.game-list li.hosting{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.game-list li.joined{border-left-color:var(--success);background:#2ecc7114}.game-list-info{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.game-list-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.65rem;font-weight:700;display:inline-flex}.game-list-badge-hosting{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent)}.game-list-badge-joined{color:var(--success-text);background:#2ecc7129;border:1px solid #2ecc7166}.game-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.game-header h1{margin:0;font-size:1.2rem}.player-list{flex-wrap:wrap;gap:.6rem;padding:0;list-style:none;display:flex}.player-list li{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.45rem;max-width:100%;padding:.4rem .8rem;display:flex;overflow:hidden}.player-list-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.player-list-link{color:inherit;align-items:center;gap:.45rem;min-width:0;max-width:100%;text-decoration:none;display:inline-flex;overflow:hidden}.player-list-link:hover{text-decoration:underline}.player-list li.current-turn{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.player-list li.player-list-pending{opacity:.7}.member-role-button{padding:.2rem .55rem;font-size:.75rem;font-weight:600}.color-dot{border-radius:50%;width:12px;height:12px;display:inline-block}.lobby-controls{align-items:center;gap:1rem;margin:1rem 0;display:flex}.winner-banner{border-radius:var(--radius-md);margin:1rem 0;padding:.85rem 1.1rem;font-size:1.2rem;font-weight:800}.winner-banner-won{color:var(--success-text);background:#2ecc7124;border:1px solid #2ecc7166}.winner-banner-lost{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.confetti-canvas{pointer-events:none;z-index:60;width:100vw;height:100vh;position:fixed;inset:0}.muted{color:var(--text-muted)}.library-page h1{margin-bottom:1.5rem}.library-import-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);margin-bottom:1.5rem;padding:1.5rem}.library-empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.library-empty-state-question{margin:0;font-size:1.05rem;font-weight:700}.library-empty-state-import-link{align-self:flex-start;text-decoration:none}.library-import-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.library-import-form label{color:var(--text-muted);flex-direction:column;flex:1;gap:.35rem;min-width:220px;font-size:.85rem;font-weight:600;display:flex}.library-import-hint{color:var(--text-faint);margin:.85rem 0 0;font-size:.82rem}.library-import-success{color:var(--success-text);margin:.85rem 0 0;font-size:.85rem;font-weight:600}.library-surprise-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);margin-bottom:1.5rem;padding:1.5rem}.library-surprise-card h2{margin:0 0 .35rem;font-size:1.05rem}.library-surprise-filters{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.library-surprise-filters input{width:130px}.library-surprise-result{max-width:220px;margin-top:1.25rem}.library-surprise-result .library-card{transform-origin:50%;animation:.7s cubic-bezier(.34,1.56,.64,1) both surprise-spin-in}@keyframes surprise-spin-in{0%{opacity:0;transform:rotate(-35deg)scale(.3)}60%{opacity:1;transform:rotate(10deg)scale(1.06)}80%{transform:rotate(-4deg)scale(.98)}to{opacity:1;transform:rotate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.library-surprise-result .library-card{animation:none}}.surprise-dice-roll{animation:.6s linear infinite surprise-dice-spin;display:inline-block}@keyframes surprise-dice-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.surprise-dice-roll{animation:none}}.library-manual-add{margin-bottom:1.5rem}.library-manual-form{flex-wrap:wrap;gap:.5rem;display:flex}.library-manual-form input{flex:1;min-width:200px}.library-photo-input{border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:var(--surface-2);color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;padding:.6rem .7rem;font-size:.85rem;display:flex}.library-photo-input:hover{border-color:var(--border-strong)}.library-suggestions{background:var(--surface-2);border-radius:var(--radius-md);margin-top:.75rem;padding:.75rem}.library-suggestion-row{border-radius:var(--radius-sm);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.35rem .5rem;transition:background-color .15s;display:flex}.library-suggestion-row:hover:not(:disabled){background:var(--surface-3)}.library-suggestion-row:hover:not(:disabled) .game-list-arrow{color:#fff;background:var(--accent-gradient);transform:translate(4px)}.library-suggestion-row img,.library-suggestion-placeholder{object-fit:cover;background:var(--surface-3);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.library-suggestion-name{flex:1;font-size:.9rem}.library-duplicate-confirm{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:1rem}.library-duplicate-confirm p{margin:0 0 .75rem;font-size:.9rem}.library-duplicate-confirm-actions{flex-wrap:wrap;gap:.5rem;display:flex}.library-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.library-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.library-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.library-card-link{color:inherit;text-decoration:none;display:block}.library-card-image{aspect-ratio:1;background:var(--surface-2);justify-content:center;align-items:center;width:100%;display:flex}.library-card-image img{object-fit:cover;width:100%;height:100%}.library-card-image-placeholder{opacity:.5;font-size:2.5rem}.library-card-body{padding:.75rem .85rem}.library-card-status-row{padding:0 .85rem .75rem}.library-card-status-row select{width:100%;font-size:.82rem}.library-card-body h3{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .3rem;font-size:.95rem;line-height:1.3;display:flex}.library-card-expansion-tag{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:var(--surface-3);border-radius:999px;padding:.12rem .5rem;font-size:.68rem;font-weight:700}.library-card-meta{color:var(--text-muted);margin:0;font-size:.78rem}.library-card-remove{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;opacity:0;background:#10121abf;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:opacity .15s,background-color .15s,transform .15s;display:flex;position:absolute;top:.5rem;right:.5rem}.library-card-remove:hover:not(:disabled){background:var(--danger);transform:scale(1.08)}.library-card:hover .library-card-remove{opacity:1}.library-card-badge{z-index:1;text-transform:uppercase;letter-spacing:.03em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10121abf;border-radius:999px;padding:.2rem .5rem;font-size:.65rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.library-card-badge-rejected{color:var(--danger);border:1px solid #ff6b6b66}.library-card-badge-inline{text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);border-radius:999px;align-self:flex-start;padding:.2rem .5rem;font-size:.65rem;font-weight:700;display:inline-flex}.library-card-badge-pending{color:var(--warning-text);background:#ffd166eb;border:1px solid #e3ce9e}.catalog-game-hero{flex-wrap:wrap;gap:1.5rem;display:flex}.catalog-game-hero-image{aspect-ratio:1;border-radius:var(--radius-md);background:var(--surface-2);flex-shrink:0;justify-content:center;align-items:center;width:220px;display:flex;overflow:hidden}.catalog-game-hero-image img{object-fit:cover;width:100%;height:100%}.catalog-game-hero-details{flex-direction:column;flex:1;gap:.6rem;min-width:240px;display:flex}.catalog-game-hero-details h1{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:flex}.catalog-game-meta-grid{flex-wrap:wrap;gap:1.5rem;margin-top:.4rem;display:flex}.catalog-game-meta-item{flex-direction:column;gap:.15rem;display:flex}.catalog-game-meta-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.72rem;font-weight:700}.catalog-game-meta-value{color:var(--text);font-size:1.05rem;font-weight:700}.catalog-game-bgg-link{color:var(--accent-3);align-self:flex-start;margin-top:.4rem;font-size:.88rem;font-weight:600;text-decoration:none}.catalog-game-bgg-link:hover{text-decoration:underline}.catalog-game-play-row{min-width:0;font-size:.85rem}.events-actions-row{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.events-inline-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;flex:1;gap:.5rem;min-width:260px;padding:.75rem;display:flex}.events-inline-form input{flex:1;min-width:140px}.event-schedule{color:var(--accent-3);align-items:center;gap:.5rem;margin:.35rem 0 0;font-size:1.25rem;display:flex}.event-schedule-edit-button{color:var(--text-faint);padding:.15rem .5rem;font-size:.75rem}.event-schedule-edit-form{align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.event-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.event-header>div{min-width:0}.event-header h1{margin:0 0 .25rem}.table-header-actions{align-items:center;gap:.6rem;display:flex}.game-timer{font-variant-numeric:tabular-nums;color:var(--accent-3);align-items:center;gap:.4rem;font-weight:700;display:inline-flex}.game-timer-dot{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite game-timer-pulse}.game-timer-stopped{color:var(--text-muted)}.game-timer-stopped .game-timer-dot{background:var(--text-faint);animation:none}@keyframes game-timer-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.game-timer-dot{animation:none}}.event-section{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.5rem}.page-container{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.75rem}.page-container>.event-section{box-shadow:none;border-bottom:1px solid var(--border-divider);background:0 0;border-radius:0;margin-bottom:0;padding:1.5rem 0}.page-container>.event-section:first-child{padding-top:0}.page-container>.event-section:last-child{border-bottom:none;padding-bottom:0}.page-container>.error{margin-top:0}.page-container>.library-import-card,.page-container>.library-surprise-card{box-shadow:none;border:none;border-bottom:1px solid var(--border-divider);background:0 0;border-radius:0;margin-bottom:0;padding:1.5rem 0}.page-container>.library-import-card:first-child{padding-top:0}.page-container>.profile-card{box-shadow:none;border:none;border-bottom:1px solid var(--border-divider);background:0 0;border-radius:0;padding:1.5rem 0}.page-container>.profile-card:first-child{padding-top:0}.page-container>.profile-card:last-child{border-bottom:none;padding-bottom:0}.event-section h2{margin-top:0;font-size:1.05rem}.accordion summary{cursor:pointer;list-style:revert;font-size:1.05rem;font-weight:600}.accordion[open] summary{margin-bottom:1rem}.accordion-body{flex-direction:column;gap:1.5rem;display:flex}.event-subsection h3{margin-top:0;margin-bottom:.75rem;font-size:.95rem}.table-board{aspect-ratio:1;width:min(480px,100%);margin:1.5rem auto 2.5rem;position:relative}.table-board-center{border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--border);justify-content:center;align-items:center;width:48%;height:48%;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 8px 24px #00000040}.table-board-center img{object-fit:cover;width:75%;height:75%}.table-board-center-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:.75rem;display:flex}.table-board-center-placeholder span{font-size:2.5rem}.table-board-center-placeholder p{color:var(--text-muted);margin:0;font-size:.85rem;font-weight:600}.table-seat{flex-direction:column;align-items:center;gap:.3rem;width:5.5rem;display:flex;position:absolute;transform:translate(-50%,-50%)}.table-seat-label{text-align:center;color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;line-height:1.15;overflow:hidden}.table-seat-link{flex-direction:column;align-items:center;gap:.3rem;text-decoration:none;display:flex}.table-seat-link:hover .table-seat-label{text-decoration:underline}.table-seat-badge{padding:.05rem .4rem;font-size:.65rem}.table-seat-remove{padding:.1rem .5rem;font-size:.7rem}.table-seat-empty-marker,.table-seat-join{border:2px dashed var(--border-strong);width:60px;height:60px;color:var(--text-muted);cursor:default;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:flex}.table-seat-join{cursor:pointer}.table-seat-join:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.table-seat-join:disabled{cursor:not-allowed}.event-submit-form{flex-wrap:wrap;gap:.5rem;display:flex}.event-submit-form select{flex:1;min-width:220px}.event-submit-form label{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.event-submit-form input[type=number]{width:70px}.event-pool-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.event-pool-contributor{background:var(--surface-2);border-radius:var(--radius-md);padding:.9rem 1rem}.event-pool-contributor h4{color:var(--text-muted);margin:0 0 .5rem;font-size:.9rem}.event-pool-contributor h4 a{color:inherit;text-decoration:none}.event-pool-contributor h4 a:hover{text-decoration:underline}.event-pool-contributor ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.event-pool-item{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.event-pool-item img{object-fit:cover;border-radius:4px;flex-shrink:0;width:28px;height:28px}.event-pool-item-placeholder{background:var(--surface-3);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.event-pool-item-link{min-width:0;color:inherit;flex:1;align-items:center;gap:.5rem;text-decoration:none;display:flex}.event-pool-item-link:hover{text-decoration:underline}.event-pool-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.event-draw-form{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-bottom:1rem;display:flex}.event-draw-form label:first-child{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.event-draw-form input[type=number]{width:80px}.event-draw-result{border-top:1px solid var(--border-divider);margin-top:1rem;padding-top:1rem}.invites-banner{border-color:var(--accent)}.invite-actions{flex-shrink:0;gap:.5rem;display:flex}.guest-link-search{flex-shrink:1;min-width:0}.guest-link-search .user-search{flex:0 220px;min-width:160px}.user-search{flex-direction:column;flex:1;gap:.5rem;min-width:220px;display:flex;position:relative}.user-search>input{margin-bottom:.3rem}.user-search .game-list{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:220px;margin-top:.25rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000040}.record-play-guest-add{flex-direction:row;align-items:center}.record-play-guest-add>input{flex:1}.share-row{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.section-header-row{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-header-row h2{margin:0}.share-link-input{min-width:220px;color:var(--text-muted);flex:1;font-size:.85rem}.share-whatsapp{border-radius:var(--radius-sm);color:#0a1a10;white-space:nowrap;background:#25d366;align-items:center;padding:.6rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.share-whatsapp:hover{filter:brightness(1.08)}.chat-panel{flex-direction:column;gap:.75rem;display:flex}.chat-messages{flex-direction:column;gap:.75rem;max-height:360px;padding-right:.25rem;display:flex;overflow-y:auto}.chat-load-older{color:var(--text-muted);align-self:center;padding:.3rem .8rem;font-size:.78rem}.chat-message{align-items:flex-start;gap:.6rem;display:flex}.chat-message-body{flex:1;min-width:0}.chat-message-meta{align-items:baseline;gap:.5rem;font-size:.8rem;display:flex}.chat-message-actions{opacity:0;align-items:center;gap:.15rem;margin-left:auto;transition:opacity .15s;display:flex}.chat-message:hover .chat-message-actions{opacity:1}.chat-message-reply-button{color:var(--text-muted);padding:.2rem .5rem;font-size:.75rem}.chat-message-deleted{color:var(--text-faint);font-style:italic}.chat-reply-preview{border-left:2px solid var(--border-divider);color:var(--text-faint);margin:.15rem 0 .35rem;padding:.3rem .6rem;font-size:.78rem;display:block}.chat-reply-preview strong{color:var(--text-muted)}.chat-replying-banner{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-muted);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .7rem;font-size:.8rem;display:flex}.chat-replying-banner strong{color:var(--text)}.chat-replying-cancel{color:var(--text-faint);padding:.1rem .4rem}.chat-message-author-link{color:inherit;text-decoration:none}.chat-message-author-link:hover{text-decoration:underline}.chat-message-time{color:var(--text-faint)}.chat-message-body p{word-break:break-word;margin:.15rem 0 0;font-size:.92rem;line-height:1.45}.chat-form{border-top:1px solid var(--border-divider);gap:.5rem;padding-top:.75rem;display:flex}.chat-form input{flex:1}.admin-catalog-page>p.muted{max-width:60ch;margin-bottom:1.5rem}.admin-catalog-tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:.25rem;width:fit-content;margin-bottom:1.5rem;padding:.35rem;display:flex}.admin-catalog-list{flex-direction:column;gap:.75rem;display:flex}.admin-catalog-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:1rem;padding:1rem;display:flex}.admin-catalog-row-image{border-radius:var(--radius-sm);background:var(--surface-2);flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.admin-catalog-row-image img{object-fit:cover;width:100%;height:100%}.admin-catalog-row-body{flex:1;min-width:0}.admin-catalog-row-header{align-items:center;gap:.6rem;display:flex}.admin-catalog-row-header h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1rem;overflow:hidden}.admin-catalog-row-meta{color:var(--text-muted);margin:.3rem 0 0;font-size:.82rem}.admin-catalog-row-actions{gap:.5rem;margin-top:.75rem;display:flex}.admin-mechanism-add-form{gap:.6rem;margin:1rem 0;display:flex}.admin-mechanism-add-form input{flex:1}.admin-mechanism-filter{width:100%;margin-bottom:1rem}.admin-catalog-edit-form{flex-direction:column;gap:.6rem;display:flex}.admin-catalog-edit-form label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600;display:flex}.admin-catalog-field{flex-direction:column;gap:.25rem;display:flex}.admin-catalog-field-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.admin-catalog-image-row{align-items:center;gap:.5rem;display:flex}.admin-catalog-image-row input[type=text]{flex:1;min-width:0}.admin-catalog-upload-button{white-space:nowrap;flex-shrink:0;padding:.5rem .7rem;font-size:.8rem}.admin-catalog-edit-row{gap:.75rem;display:flex}.admin-catalog-edit-row label{flex:1}.admin-catalog-edit-actions{gap:.5rem;margin-top:.25rem;display:flex}.profile-page h1{margin-bottom:1.5rem}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);gap:2rem;padding:2rem;display:flex}.profile-settings-card{flex-direction:column;gap:1rem;margin-top:1.25rem}.profile-card-section-title{margin:0;font-size:1.1rem}.theme-picker{flex-wrap:wrap;gap:.75rem;display:flex}.theme-picker-option{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;align-items:center;gap:.75rem;min-width:200px;padding:.75rem 1rem;display:flex}.theme-picker-option-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-picker-swatch{border:1px solid var(--border-strong);border-radius:50%;flex-shrink:0;width:34px;height:34px}.theme-picker-swatch-dark{background:linear-gradient(135deg,#1a1e2b,#10121a)}.theme-picker-swatch-electric{background:conic-gradient(from 200deg,#4f46e5,#0891dc,#db2777,#05ad82,#f97316,#4f46e5)}.theme-picker-swatch-white{background:#fff}.theme-picker-swatch-sunset{background:linear-gradient(135deg,#ffffc4 0%,#ff6164 50%,#b00012 100%)}.theme-picker-swatch-ocean{background:linear-gradient(135deg,#4facfe,#00f2fe)}.theme-picker-swatch-dusk{background:linear-gradient(135deg,#6a11cb,#2575fc)}.theme-picker-swatch-dense-water{background:linear-gradient(#3ab5b0,#3d99be,#56317a)}.theme-picker-swatch-nightwatch{background:linear-gradient(90deg,#30cfd0,#330867)}.theme-picker-swatch-aurora{background:conic-gradient(#c5bbb8,#9aa8b5,#7090ab,#55759b,#505a85,#5b4b74,#c5bbb8)}.theme-picker-swatch-sedona{background:conic-gradient(from 90deg,#a64900,#d57800,#dd9d45,#9bb3a1,#55a6b8,#1787ac,#a64900)}.theme-picker-swatch-fernwood{background:conic-gradient(from 90deg,#07444a,#1c5842,#477040,#808a46,#bca552,#07444a)}.theme-picker-swatch-daybreak{background:conic-gradient(from 90deg,#453e64,#864b67,#c8606b,#ff7b70,#ffae79,#ffe783,#453e64)}.theme-picker-swatch-eclipse{background:linear-gradient(90deg,#c8d5c8,#a5723f,#250908,#080924,#1f4b7f,#c7d5c8)}.theme-picker-swatch-chartreuse{background:conic-gradient(from 20deg,#345f36,#616735,#a29134,#c6c934,#b3f433)}.theme-picker-swatch-ember-tide{background:conic-gradient(from 180deg,#000021,#7a0100,#af5b2e,#969e83,#57aaa5,#0c8ea2,#003f65,#002)}.theme-picker-swatch-sherbet{background:linear-gradient(225deg,#f7e9f3,#e7f3ff,#ddfaff,#e5fbeb,#f5f6dc,#fbede0,#f0e3f4)}.theme-picker-swatch-skylight{background:linear-gradient(#72ccff,#97d3ff,#bddbea,#e3e4d1,#ffecb7)}.theme-picker-text{flex-direction:column;gap:.1rem;display:flex}.theme-picker-label{color:var(--text);font-size:.9rem;font-weight:700}.theme-picker-description{color:var(--text-muted);font-size:.78rem}.profile-avatar-section{flex-shrink:0}.avatar-picker{background:0 0;border:none;border-radius:50%;flex-shrink:0;width:96px;height:96px;padding:0;position:relative;overflow:hidden}.avatar-picker .avatar{width:100%;height:100%}.avatar-picker-overlay{text-align:center;color:#fff;opacity:0;background:#0000008c;justify-content:center;align-items:center;padding:.5rem;font-size:.7rem;font-weight:700;transition:opacity .15s;display:flex;position:absolute;inset:0}.avatar-picker:hover .avatar-picker-overlay,.avatar-picker:disabled .avatar-picker-overlay{opacity:1}.group-header-identity{align-items:center;gap:1rem;min-width:0;display:flex}.group-header-identity>div{min-width:0}.group-header-identity h1{margin-bottom:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.profile-form{flex-direction:column;flex:1;gap:1.25rem;min-width:0;display:flex}.profile-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.profile-form .profile-toggle{flex-direction:row;align-items:center}.profile-field-label{color:var(--text-muted);font-size:.85rem;font-weight:600}.profile-field-hint{color:var(--text-faint);max-width:46ch;margin:.3rem 0 .75rem;font-size:.82rem;line-height:1.4}.chip-list{flex-wrap:wrap;gap:.5rem;margin:0 0 .6rem;padding:0;list-style:none;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;gap:.4rem;max-width:100%;padding:.35rem .5rem .35rem .8rem;font-size:.85rem;display:inline-flex}.chip-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;color:inherit;text-decoration:none;overflow:hidden}a.chip-text:hover{text-decoration:underline}button.chip{cursor:pointer;font-weight:600;transition:border-color .15s,background-color .15s}button.chip:hover:not(:disabled){border-color:var(--border-strong)}.chip-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-3)}.chip button{width:18px;height:18px;color:var(--text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.7rem;font-weight:400;display:inline-flex}.chip button:hover{background:var(--surface-3);color:var(--text);transform:none}.color-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:.5rem;max-width:420px;display:grid}.color-swatch{border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:flex;box-shadow:inset 0 0 0 1px #00000026}.color-swatch:hover:not(:disabled){transform:scale(1.12)}.color-swatch-selected{border-color:var(--text);box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--text)}.color-swatch-check{color:#000000a6;font-size:.95rem;font-weight:800}.profile-toggle{cursor:pointer;color:var(--text);align-items:center;gap:.65rem;font-size:.9rem;font-weight:500;display:flex}.profile-toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:var(--surface-3);border:1px solid var(--border);border-radius:999px;flex-shrink:0;width:40px;height:24px;transition:background-color .15s;position:relative}.toggle-thumb{background:var(--text);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.profile-toggle input:checked+.toggle-track{background:var(--accent-gradient);border-color:#0000}.profile-toggle input:checked+.toggle-track .toggle-thumb{background:#fff;transform:translate(16px)}.profile-form-actions{align-items:center;gap:.75rem;display:flex}.profile-saved-hint{color:var(--success-text);font-size:.9rem;font-weight:600}.board{background:var(--game-bg);border:1px solid var(--game-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:.5rem;margin:1rem 0;padding:1.25rem 1rem;display:flex;overflow-x:auto}.board-column{border-radius:10px;flex-direction:column;align-items:center;min-width:44px;padding:6px 2px;transition:background-color .2s,opacity .2s;display:flex}.board-column-available{background:#2ecc7124}.board-column-blocked{opacity:.7;background:#ff6b6b17}.column-label{background:var(--game-surface-2);width:36px;height:36px;color:var(--game-text);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;font-weight:800;transition:border-color .2s,background-color .2s;display:flex}.column-label:first-child{margin-bottom:.35rem}.column-label:last-child{margin-top:.35rem}.board-column-available .column-label{background:#2b4438;border-color:#2ecc71;animation:1.4s ease-in-out infinite column-glow-available}.board-column-blocked .column-label{background:#3d2b2e;border-color:#ff6b6b}.column-label.won{color:#10121a}.column-cells{flex-direction:column;gap:3px;display:flex}.cell{background:var(--game-surface);border-radius:4px;justify-content:center;align-items:center;gap:2px;width:32px;height:24px;display:flex;position:relative}.cell-disabled{background:0 0}.marker{border-radius:50%;width:14px;height:14px;display:inline-block}.marker-temp{animation:1.3s ease-in-out infinite marker-pulse;box-shadow:0 0 0 2px #fff}@keyframes marker-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 2px #fff}50%{transform:scale(1.18);box-shadow:0 0 0 5px #ffffff8c}}@keyframes column-glow-available{0%,to{box-shadow:0 0 #2ecc7199}50%{box-shadow:0 0 0 6px #2ecc7100}}.cell-won{background:var(--game-surface)}.win-flag{transform-origin:bottom;overflow:visible}.win-flag-entering{animation:.7s cubic-bezier(.34,1.56,.64,1) both flag-plant}@keyframes flag-plant{0%{opacity:0;transform:scale(.3)rotate(-20deg)}40%{opacity:1;transform:scale(1.2)rotate(12deg)}60%{transform:scale(1)rotate(-6deg)}80%{transform:scale(1.05)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.dice-row{gap:.5rem;display:flex}.die{width:44px;height:44px}.die-rolling{animation:.3s ease-in-out infinite die-shuffle}@keyframes die-shuffle{0%{transform:rotate(0)scale(1)}50%{transform:rotate(-8deg)scale(.96)}to{transform:rotate(6deg)scale(1)}}.die-face{background:#f4f4f6;border-radius:8px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:2px;width:100%;height:100%;padding:6px;display:grid;box-shadow:0 2px 4px #0006}.pip{background:0 0;border-radius:50%}.pip-on{background:#1b1f2a}.die-holdable{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0;transition:transform .15s,box-shadow .15s}.die-holdable:disabled{cursor:default}.die-holdable:hover:not(:disabled){transform:translateY(-2px)}.die-held{box-shadow:0 0 0 3px var(--accent);border-radius:10px;transform:translateY(-4px)}.yahtzee-scorecard{border-collapse:collapse;width:100%;margin-top:1rem;font-size:.9rem}.yahtzee-scorecard th,.yahtzee-scorecard td{text-align:center;border-bottom:1px solid var(--border-divider);padding:.5rem .6rem}.yahtzee-scorecard thead th{text-align:center;color:var(--text-muted);max-width:8rem;font-weight:700}.yahtzee-scorecard tbody th{text-align:left;color:var(--text-muted);white-space:nowrap;font-weight:600}.yahtzee-cell{min-width:3.5rem}.yahtzee-cell-filled{font-weight:700}.yahtzee-cell-empty{color:var(--text-faint)}.yahtzee-score-button{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);width:100%;color:var(--accent-3);border-radius:var(--radius-sm);cursor:pointer;padding:.3rem .4rem;font-weight:700;transition:background-color .15s,border-color .15s}.yahtzee-score-button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, transparent)}.yahtzee-subtotal-row th,.yahtzee-subtotal-row td{color:var(--text-faint);border-bottom:1px solid var(--border);font-size:.8rem}.yahtzee-total-row th,.yahtzee-total-row td{border-bottom:none;padding-top:.75rem;font-size:1rem;font-weight:800}.yahtzee-dice-row{justify-content:center;padding:.5rem 0}.gofish-hand-count{margin-left:auto;font-size:.8rem}.gofish-hand{flex-wrap:wrap;gap:.6rem;margin:.75rem 0 1rem;display:flex}.gofish-card{border:1px solid var(--border);color:#1b1f2a;cursor:pointer;background:#f9f9fb;border-radius:8px;width:52px;height:72px;font-size:1.3rem;font-weight:800;transition:transform .15s,box-shadow .15s;position:relative;box-shadow:0 2px 4px #00000040}.gofish-card:hover:not(:disabled){transform:translateY(-4px)}.gofish-card:disabled{cursor:default;opacity:.7}.gofish-card-selected{box-shadow:0 0 0 3px var(--accent), 0 6px 14px #0000004d;transform:translateY(-6px)}.gofish-card-count{color:var(--text-muted);font-size:.65rem;font-weight:700;position:absolute;bottom:3px;right:5px}.gofish-ask-form{flex-direction:column;gap:.6rem;display:flex}.gofish-ask-targets{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:600;display:flex}.chess-board{aspect-ratio:1;border-radius:8px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:min(480px,100%);margin:1rem 0;display:grid;overflow:hidden;box-shadow:0 4px 16px #00000040}.chess-square{cursor:pointer;aspect-ratio:1;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.chess-square-light{background:#eeeed2}.chess-square-dark{background:#769656}.chess-square-selected{box-shadow:inset 0 0 0 4px var(--accent)}.chess-square-last-move{box-shadow:inset 0 0 0 3px #ffd166d9}.chess-square-selected.chess-square-last-move{box-shadow:inset 0 0 0 4px var(--accent)}.chess-piece{pointer-events:none;filter:drop-shadow(0 1px 1px #0006);font-size:min(7vw,2.6rem);line-height:1}.chess-rank-label,.chess-file-label{color:#00000059;pointer-events:none;font-size:.65rem;font-weight:700;position:absolute}.chess-rank-label{top:2px;left:3px}.chess-file-label{bottom:1px;right:3px}.chess-status-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.chess-promotion-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem;display:flex}.chess-promotion-option{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.8rem;display:flex}.chess-promotion-option:hover{border-color:var(--accent)}.rps-score{margin-left:auto;font-size:.8rem}.rps-round-tracker{background:var(--surface-2);border:1px solid var(--border);letter-spacing:.02em;border-radius:999px;margin:.75rem 0;padding:.35rem .9rem;font-size:.85rem;font-weight:700;display:inline-block}.rps-choice-area{margin-top:.5rem}.rps-choice-status{gap:1rem;margin-bottom:1rem;display:flex}.rps-status-card{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);flex-direction:column;flex:1;align-items:center;gap:.4rem;padding:1rem;transition:border-color .2s,box-shadow .2s;display:flex}.rps-status-card-ready{border-color:#2ecc71;box-shadow:0 0 0 1px #2ecc7166}.rps-status-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:700}.rps-move-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem;display:grid}.rps-move-button{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .5rem;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.rps-move-button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-4px);box-shadow:0 8px 20px #0000004d}.rps-move-button:disabled{cursor:default;opacity:.4}.rps-move-label{font-size:.8rem;font-weight:700}.rps-move-remaining{color:var(--text-muted);font-size:.7rem}.rps-move-icon{filter:drop-shadow(0 2px 4px #00000059);background:radial-gradient(circle at 35% 30%,#ffffff2e,#00000026);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.rps-move-icon-sm{width:34px;height:34px;font-size:1.1rem}.rps-move-icon-md{width:48px;height:48px;font-size:1.6rem}.rps-move-icon-lg{width:64px;height:64px;font-size:2.2rem}.rps-move-icon-jupiter{background:radial-gradient(circle at 35% 30%,#ffd16659,#00000026);box-shadow:0 0 14px #ffd16680}.rps-move-icon-diamond{background:radial-gradient(circle at 35% 30%,#4f8cff59,#00000026);box-shadow:0 0 12px #4f8cff73}.rps-move-icon-hidden{color:var(--text-muted);background:repeating-linear-gradient(135deg,#ffffff14,#ffffff14 6px,#0000001f 6px 12px)}.rps-move-icon-thinking{animation:1.1s ease-in-out infinite rps-thinking-pulse}@keyframes rps-thinking-pulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.rps-reveal-overlay{z-index:60;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rps-reveal-banner{border:2px solid var(--accent);background:#1b1f2a;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;padding:1.5rem 2rem;animation:2.6s ease-in-out forwards rps-reveal-pop;display:flex;box-shadow:0 16px 40px #00000080}.rps-reveal-side{flex-direction:column;align-items:center;gap:.4rem;display:flex}.rps-reveal-name{color:var(--text-muted);font-size:.85rem;font-weight:700}.rps-reveal-result{text-align:center;flex-basis:100%;margin:0;font-size:1.1rem;font-weight:800}@keyframes rps-reveal-pop{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1.06)}20%{transform:scale(1)}88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.rps-history{margin-top:1.5rem}.rps-history-list{flex-direction:column;gap:.4rem;display:flex}.rps-history-round{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.rps-history-round-number{color:var(--text-muted);width:2.2rem;font-size:.75rem;font-weight:700}.rps-history-winner{margin-left:auto;font-size:.8rem;font-weight:600}.create-game-visibility{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.create-game-option{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.create-game-option input{margin-top:.2rem}.create-game-option span{flex-direction:column;gap:.15rem;display:flex}.create-game-option-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.create-game-invite-picker{margin-bottom:1rem}.create-game-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.turn-controls{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.turn-actions{gap:.5rem;display:flex}.bust-overlay{z-index:50;pointer-events:none;position:fixed;top:18%;left:50%;transform:translate(-50%)}.bust-card{color:#ffd7d7;text-align:center;background:#2a1618;border:2px solid #ff6b6b;border-radius:14px;padding:1rem 1.75rem;font-size:1.4rem;font-weight:800;animation:2s ease-in-out forwards bust-pop;box-shadow:0 10px 30px #00000073}.bust-emoji{font-size:1.6rem}.bust-subtext{color:#ffb3b3;margin-top:.25rem;font-size:.85rem;font-weight:500}@keyframes bust-pop{0%{opacity:0;transform:scale(.5)rotate(-6deg)}12%{opacity:1;transform:scale(1.15)rotate(3deg)}20%{transform:scale(.97)rotate(-2deg)}28%{transform:scale(1.04)rotate(1deg)}36%{transform:scale(1)rotate(0)}85%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(.92)rotate(0)}}.gofish-bubble-overlay{z-index:50;pointer-events:none;text-align:center;animation:2s ease-in-out forwards bust-pop;position:fixed;top:18%;left:50%;transform:translate(-50%)}.gofish-bubble{color:#0b3d5c;background:#fff;border-radius:999px 999px 999px 4px;align-items:center;gap:.5rem;padding:1rem 1.75rem;font-size:1.4rem;font-weight:800;display:inline-flex;position:relative;box-shadow:0 10px 30px #00000073}.gofish-bubble-fish{font-size:1.6rem}.gofish-bubble-subtext{color:var(--text);background:var(--surface);border-radius:999px;margin-top:.5rem;padding:.25rem .75rem;font-size:.85rem;font-weight:600;display:inline-block;box-shadow:0 4px 12px #00000040}.gofish-catch-bubble{background:var(--success);color:#06210f;border-radius:999px 999px 4px;align-items:center;gap:.5rem;padding:1rem 1.75rem;font-size:1.4rem;font-weight:800;display:inline-flex;position:relative;box-shadow:0 10px 30px #00000073}.gofish-last-action{border-radius:var(--radius-sm);margin:0;padding:.6rem 1rem;font-size:.9rem;font-weight:600}.gofish-last-action-catch{color:var(--success-text);border:1px solid color-mix(in srgb, var(--success-text) 30%, #fff);background:#2ecc712e}.gofish-last-action-go_fish{background:color-mix(in srgb, var(--accent-2) 14%, transparent);color:var(--accent-2);border:1px solid color-mix(in srgb, var(--accent-2) 30%, #fff)}.pair-options{flex-direction:column;gap:.5rem;display:flex}.pair-options-label{color:var(--text-muted);margin:0}.pair-option{align-items:center;gap:.5rem;display:flex}.pair-option-hint{color:var(--text-muted);font-size:.9rem}.pair-option-buttons{gap:.5rem;display:flex}.dashboard-grid{column-count:2;column-gap:1.25rem}.dashboard-grid>.event-section{break-inside:avoid;width:100%;margin-bottom:1.25rem;display:inline-block}@media (width<=780px){.dashboard-grid{column-count:1}}.dashboard-grid .event-section h2{margin-bottom:1.1rem;font-size:1.2rem}.dashboard-item-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.dashboard-item-title{color:var(--accent-3);align-items:center;gap:.5rem;min-width:0;font-size:.95rem;font-weight:600;display:flex}.truncate-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dashboard-item-meta{color:var(--text-muted);font-size:.78rem}.dashboard-item-meta span{margin-bottom:2px}.dashboard-item-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.play-history-item-main{align-items:center;gap:.75rem;min-width:0;display:flex}.play-history-thumb{border-radius:var(--radius-sm);background:var(--surface-2);width:44px;height:44px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex;overflow:hidden}.play-history-thumb img{object-fit:cover;width:100%;height:100%}.play-history-thumb-placeholder{opacity:.5;font-size:1.3rem}.play-winner-pill{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-3);border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;font-weight:600;display:inline-flex}.play-history-player-link{color:inherit;text-decoration:none}.play-history-player-link:hover{text-decoration:underline}.play-history-game-link{color:inherit;text-decoration:none}.play-history-game-link:hover{text-decoration:underline}.play-score{font-variant-numeric:tabular-nums;color:var(--text);font-weight:800}.play-winner-pill .play-score{color:inherit}.dashboard-status-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.dashboard-status-lobby{color:var(--warning-text);background:#ffd1668c;border:1px solid #e3ce9e}.dashboard-status-in_progress,.dashboard-status-won{color:var(--success-text);border:1px solid color-mix(in srgb, var(--success-text) 30%, #fff);background:#2ecc712e}.dashboard-status-lost{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, #fff);background:#ff6b6b29}.dashboard-status-pending{color:var(--warning-text);background:#ffd1668c;border:1px solid #e3ce9e}.dashboard-status-declined{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, #fff);background:#ff6b6b29}.dashboard-status-approved{color:var(--success-text);border:1px solid color-mix(in srgb, var(--success-text) 30%, #fff);background:#2ecc712e}.dashboard-status-rejected{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, #fff);background:#ff6b6b29}.tools-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.tool-card{opacity:.85;align-items:flex-start;gap:1rem;display:flex}.tool-card-icon{font-size:1.8rem;line-height:1}.tool-card-body{flex:1;min-width:0}.tool-card-body h2{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.tool-card-badge{background:var(--surface-3);color:var(--text-muted)}.tool-card-launch{text-align:left;cursor:pointer;opacity:1;width:100%;color:inherit;border:none;text-decoration:none;position:relative}.tool-card-launch:hover{background:var(--surface-2);box-shadow:var(--shadow-md)}.tool-card-launch .tool-card-body{padding-right:2.5rem}.tool-card-launch .game-list-arrow{position:absolute;bottom:1.25rem;right:1.25rem}.tool-card-launch:hover .game-list-arrow{color:#fff;background:var(--accent-gradient);transform:translate(4px)}.first-player-chooser{z-index:500;color:#f5f6fa;background:#0b0d16;flex-direction:column;display:flex;position:fixed;inset:0}.fpc-content{flex-direction:column;flex:1;min-height:0;display:flex}.fpc-content>div{display:contents}.fpc-content>div.fpc-mode-hidden{display:none}.fpc-topbar{border-bottom:1px solid #ffffff1f;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.fpc-tabs{gap:.5rem;display:flex}.fpc-tab{color:#ffffffbf;cursor:pointer;background:#ffffff14;border:none;border-radius:999px;padding:.5rem 1.1rem;font-weight:600;transition:background-color .15s,color .15s}.fpc-tab:hover{background:#ffffff24}.fpc-tab-active{color:#10121a;background:#fff}.fpc-close{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.25rem;transition:background-color .15s;display:flex}.fpc-close:hover{background:#ffffff1f}.fpc-names{flex-direction:column;flex:1;gap:1.25rem;width:100%;max-width:700px;margin:0 auto;padding:1.5rem;display:flex;overflow-y:auto}.fpc-add-row,.fpc-quick-add-row{align-items:flex-start;gap:.6rem;display:flex}.fpc-add-row input,.fpc-quick-add-row textarea{color:#fff;font:inherit;resize:none;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;flex:1;padding:.65rem .85rem}.fpc-add-row input::placeholder,.fpc-quick-add-row textarea::placeholder{color:#fff6}.fpc-add-row button,.fpc-quick-add-row button{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff1f;border:none;border-radius:10px;padding:0 1rem;font-weight:600}.fpc-add-row button:disabled,.fpc-quick-add-row button:disabled{opacity:.4;cursor:not-allowed}.fpc-add-row button:hover:not(:disabled),.fpc-quick-add-row button:hover:not(:disabled){background:#fff3}.fpc-chip-list{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.fpc-chip{background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem .9rem;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s;display:flex}.fpc-chip-remove{color:#fff9;cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.fpc-chip-remove:hover{color:#fff}.fpc-wheel-wrap{aspect-ratio:1;width:min(90vw,520px);margin:.5rem auto 0;position:relative}.fpc-wheel-pointer{filter:drop-shadow(0 2px 4px #0006);z-index:2;border-top:26px solid #fff;border-left:16px solid #0000;border-right:16px solid #0000;width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.fpc-wheel{border-radius:50%;width:100%;height:100%;transition:transform 4s cubic-bezier(.17,.67,.12,1);box-shadow:0 0 0 6px #ffffff24,0 12px 40px #00000080}.fpc-wheel-svg{width:100%;height:100%;display:block}.fpc-wheel-label{fill:#fff;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#00000059;stroke-width:2px;font-size:9px;font-weight:700}.fpc-wheel-hub{fill:#fff;stroke:#0003;stroke-width:1px}.fpc-wheel-slice-winner path{filter:drop-shadow(0 0 10px #ffd166)drop-shadow(0 0 22px #ffd166)}.fpc-spin-controls{flex-direction:column;align-items:center;gap:.75rem;margin-top:auto;padding-top:1rem;display:flex}.fpc-spin-button{min-width:220px}.fpc-winner-announcement{font-size:1.3rem;font-weight:700}@media (width<=640px){.fpc-names{padding-bottom:6rem}.fpc-spin-controls{padding:1rem 1.5rem calc(1rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0b0d16eb;border-top:1px solid #ffffff1f;margin-top:0;position:fixed;bottom:0;left:0;right:0}}.fpc-touch-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.fpc-touch-hint{text-align:center;color:#ffffffa6;flex-shrink:0;padding:.75rem}.fpc-touch-surface{touch-action:none;overscroll-behavior:none;flex:1;transition:background-color .6s;position:relative;overflow:hidden}.fpc-touch-timer-bar{background:#ffd166;width:0%;height:4px;animation:2s linear forwards fpc-timer-fill;position:absolute;top:0;left:0}@keyframes fpc-timer-fill{0%{width:0%}to{width:100%}}.fpc-touch-glow{opacity:.85;pointer-events:none;border-radius:50%;width:140px;height:140px;animation:1.1s ease-in-out infinite fpc-pulse;position:absolute}@keyframes fpc-pulse{0%,to{transform:translate(-50%,-50%)scale(.92)}50%{transform:translate(-50%,-50%)scale(1.08)}}.fpc-touch-glow-losing{opacity:0;transition:opacity .5s,transform .5s;animation:none;transform:translate(-50%,-50%)scale(.4)}.fpc-touch-glow-winner{opacity:1;animation:.7s ease-in-out infinite fpc-pulse-winner}@keyframes fpc-pulse-winner{0%,to{transform:translate(-50%,-50%)scale(1.5)}50%{transform:translate(-50%,-50%)scale(1.7)}}.fpc-touch-winner-hint{text-align:center;color:#ffffffe6;text-shadow:0 2px 8px #0006;font-weight:600;position:absolute;bottom:2rem;left:0;right:0}.ranking-filter-row{flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:.75rem;display:flex}.ranking-radio{cursor:pointer;align-items:center;gap:.5rem;font-size:.92rem;display:flex}.ranking-radio input{accent-color:var(--accent)}.ranking-chip-row{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.ranking-toggle-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:.45rem 1rem;font-size:.88rem}.ranking-toggle-chip-active{background:var(--accent-gradient);color:#fff;border-color:#0000}.ranking-select-label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.ranking-select-label select{color:var(--text);font-weight:400}.ranking-start-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.ranking-compare-section{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.ranking-progress{margin:0}.ranking-compare-row{grid-template-columns:1fr 1fr;gap:1.5rem;width:100%;max-width:560px;margin-top:1rem;display:grid;position:relative}.ranking-compare-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;flex-direction:column;align-items:center;gap:.6rem;padding:1rem;transition:border-color .15s,transform .15s,background-color .15s;display:flex}.ranking-compare-card:hover{border-color:var(--accent);background:var(--surface-3);transform:translateY(-2px)}.ranking-compare-card .library-card-image{border-radius:var(--radius-sm);width:100%}.ranking-compare-card h3{margin:0;font-size:1rem}.ranking-compare-vs{background:var(--surface);box-shadow:var(--shadow-sm);width:34px;height:34px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;margin-top:1rem;font-size:.78rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ranking-results-list{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.ranking-results-item{background:var(--surface-2);border-radius:var(--radius-sm);align-items:center;gap:.85rem;padding:.6rem .9rem;display:flex}.ranking-results-item-first{background:color-mix(in srgb, var(--accent) 12%, var(--surface-2));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent)}.ranking-results-rank{text-align:center;width:28px;color:var(--text-muted);flex-shrink:0;font-weight:700}.ranking-results-image{border-radius:var(--radius-sm);flex-shrink:0;width:44px;height:44px}.ranking-results-name{flex:1;font-weight:600}@media (width<=560px){.ranking-compare-row{grid-template-columns:1fr}}.dashboard-stats{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.dashboard-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;flex:1;gap:.15rem;min-width:140px;padding:.6rem .9rem;display:flex}.dashboard-stat-value{color:var(--accent);font-size:1.2rem;font-weight:800}.dashboard-stat-label{color:var(--text-muted);font-size:.75rem}.collection-value-assumption{margin:-.25rem 0 .9rem;font-size:.75rem}.collection-value-unpriced{margin-top:.5rem;font-size:.8rem}.collection-value-attribution{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:.4rem;margin-top:.9rem;padding:.3rem .7rem;font-size:.75rem;font-weight:600;display:inline-flex}.collection-value-attribution:hover{color:var(--accent);border-color:var(--accent)}.collection-value-attribution img{width:auto;height:16px}.dashboard-filter-tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);gap:.25rem;width:fit-content;margin-bottom:1rem;padding:.3rem;display:flex}.dashboard-filter-tab{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:.4rem .75rem;font-size:.82rem;font-weight:600}.dashboard-filter-tab:hover:not(:disabled){color:var(--text);transform:none}.dashboard-filter-tab-active{color:#fff;background:var(--accent-gradient)}.dashboard-filter-tab-active:hover{color:#fff}.dashboard-see-all{color:var(--text-muted);margin-top:1rem;font-size:.85rem;text-decoration:none;display:inline-block}.section-header-row .dashboard-see-all{margin-top:0}.dashboard-see-all:hover{color:var(--accent-2)}.dashboard-grid>.dashboard-library-section,.dashboard-grid>.dashboard-chart-section{column-span:all;display:block}.dashboard-chart{align-items:flex-end;gap:.6rem;height:140px;margin-top:.75rem;display:flex}.dashboard-chart-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.3rem;height:100%;display:flex}.dashboard-chart-bar-count{color:var(--text-muted);min-height:1em;font-size:.72rem;font-weight:700}.dashboard-chart-bar-track{background:var(--surface-2);border-radius:6px 6px 0 0;flex:1;align-items:flex-end;width:100%;max-width:32px;display:flex;overflow:hidden}.dashboard-chart-bar-fill{background:var(--accent-gradient);border-radius:6px 6px 0 0;width:100%;min-height:2px;transition:height .3s}.dashboard-chart-bar-label{color:var(--text-muted);font-size:.72rem}.dashboard-hbar-row{align-items:center;gap:.6rem;padding:.4rem 0;display:flex}.dashboard-hbar-label{flex-shrink:0;min-width:0}.dashboard-hbar-track{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.dashboard-hbar-fill{background:var(--accent-gradient);border-radius:999px;height:100%}.dashboard-hbar-count{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.78rem}.dashboard-library-link{margin-top:1.25rem;display:inline-block}.page-search{margin-bottom:1.5rem}.page-search input{max-width:360px}.game-history-filter{color:var(--text-muted);align-items:center;gap:.6rem;margin-bottom:1.5rem;font-size:.85rem;font-weight:600;display:flex}.game-history-filter select{font-weight:500}.game-history-load-more{margin:1.5rem auto 0;display:block}.record-play-form{flex-direction:column;gap:1.25rem;display:flex}.record-play-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.record-play-form>button[type=submit]{align-self:flex-start}.record-play-selected-game{align-items:center;gap:.75rem;font-weight:600;display:flex}.record-play-players{flex-direction:column;gap:.6rem;padding:0;list-style:none;display:flex}.record-play-player-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.record-play-player-name{flex:1;font-size:.9rem;font-weight:600}.user-profile-header{align-items:center;gap:1rem;margin:1rem 0 1.5rem;display:flex}.user-profile-header h1{margin:0}.record-play-player-link{min-width:0;color:inherit;flex:1;align-items:center;gap:.75rem;text-decoration:none;display:flex}a.record-play-player-link:hover .record-play-player-name{text-decoration:underline}.record-play-score-input{text-align:right;background:var(--surface-3);width:90px}.record-play-final-score{color:var(--text);text-align:right;min-width:40px;font-size:1rem;font-weight:700}.sum-blocked{color:var(--text-faint);text-decoration:line-through}.help-button-container{z-index:50;position:fixed;bottom:1.5rem;left:1.5rem}.help-button{background:var(--accent-gradient);color:#fff;width:44px;height:44px;box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1.15rem;font-weight:800;display:flex}.help-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;min-width:240px;padding:.5rem;display:flex;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 12px 32px #00000040}.help-menu-title{color:var(--text-muted);margin:.3rem .5rem .5rem;font-size:.82rem;font-weight:700}.help-menu-item{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text);background:0 0;border:none;padding:.6rem .7rem;font-size:.9rem;font-weight:600;display:block}.help-menu-item:hover{background:var(--surface-2)}.tour-dim,.tour-dim-bar{z-index:70;pointer-events:auto;background:#08090eb8;position:fixed}.tour-dim{inset:0}.tour-spotlight-hole{z-index:70;pointer-events:auto;box-shadow:0 0 0 3px var(--accent), 0 0 0 6px #ffffff26, 0 0 40px 6px color-mix(in srgb, var(--accent) 55%, transparent);border-radius:10px;transition:top .15s,left .15s,width .15s,height .15s;position:fixed}.tour-tooltip{z-index:75;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:320px;max-width:calc(100vw - 32px);padding:1.1rem 1.25rem;position:fixed;box-shadow:0 20px 50px #0006}.tour-tooltip-meta{text-transform:uppercase;letter-spacing:.03em;color:var(--accent-3);justify-content:space-between;gap:.75rem;margin-bottom:.5rem;font-size:.72rem;font-weight:700;display:flex}.tour-tooltip h3{margin:0 0 .4rem;font-size:1.05rem}.tour-tooltip p{color:var(--text-muted);margin:0 0 1rem;font-size:.9rem;line-height:1.45}.tour-tooltip-nav{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.tour-tooltip-nav-buttons{gap:.5rem;display:flex}.tour-tooltip-skip{color:var(--text-faint);font-size:.85rem}
