@font-face{font-family:Josefin Sans;src:url(/fonts/JosefinSans-Variable.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Josefin Sans;src:url(/fonts/JosefinSans-Italic-Variable.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:Bodoni Moda;src:url(/fonts/BodoniModa-Variable.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Bodoni Moda;src:url(/fonts/BodoniModa-Italic-Variable.woff2) format("woff2");font-weight:400 900;font-style:italic;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/CormorantGaramond-Variable.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/CormorantGaramond-Italic-Variable.woff2) format("woff2");font-weight:400 600;font-style:italic;font-display:swap}:root{--bg: #080c16;--bg-card: #0c1018;--bg-elevated: #121620;--bg-input: #0e121c;--border: #1c2030;--border-light: #2a3040;--text: #ede9df;--text-warm: #b8b4ad;--text-muted: #7a7a85;--text-faint: #6b6b75;--red: #b91c1c;--red-bright: #ef4444;--red-light: #f5c6c3;--red-dim: #280808;--red-glow: rgba(185, 28, 28, .2);--gold: #c9a045;--gold-dim: #221a06;--gold-glow: rgba(201, 160, 69, .18);--purple: #a855f7;--purple-dim: #1a0a2e;--blue: #2563eb;--blue-dim: #0d1830;--teal: #0d9488;--teal-dim: #071e1c;--teal-glow: rgba(13, 148, 136, .15);--radius: 5px;--radius-lg: 9px;--font-display: "Bodoni Moda", "Didot", "Playfair Display", Georgia, serif;--font-body: "Josefin Sans", "Inter", system-ui, -apple-system, sans-serif;--font-serif: "Cormorant Garamond", "Crimson Text", Georgia, serif;--transition: .14s ease;--transition-slow: .28s ease;--card-highlight: inset 0 1px 0 rgba(255, 255, 255, .04);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9998}body:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(4,8,18,.55) 100%);pointer-events:none;z-index:9997}a{color:var(--gold);text-decoration:none}a:hover{color:#d9b458}h1,h2{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--text);letter-spacing:-.01em;margin-bottom:16px}h3,h4{font-family:var(--font-body);font-weight:600;line-height:1.25;color:var(--text);margin-bottom:12px}input,select,textarea{background:var(--bg-input);border:1px solid var(--border-light);color:var(--text);border-radius:var(--radius);padding:.6rem .75rem;font-size:15px;font-family:var(--font-body);width:100%;transition:border-color var(--transition),box-shadow var(--transition);outline:none}input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-glow)}input::placeholder{color:var(--text-faint)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}input[type=number]{width:64px;text-align:center}input:disabled{opacity:.5;cursor:not-allowed}input[type=file]{cursor:pointer;padding:0}input[type=file]::file-selector-button{background:var(--surface-alt, #2a2a2e);color:var(--text);border:1px solid var(--border-light);border-radius:var(--radius);padding:.6rem 1rem;font-size:14px;font-family:var(--font-body);cursor:pointer;margin-right:.75rem;transition:background var(--transition)}input[type=file]::file-selector-button:hover{background:var(--surface-hover, #353538)}label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:5px;margin-top:14px}label:first-child{margin-top:0}.app-shell{display:flex;flex-direction:column;min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0);background:#080c16;z-index:9999;pointer-events:none}.app-main{flex:1;max-width:900px;width:100%;margin:0 auto;padding:28px 16px}app-nav-menu{display:block;position:sticky;top:0;z-index:150}.top-bar{position:relative;background:#080c16eb;border-bottom:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:0 24px;padding-top:env(safe-area-inset-top,0);height:calc(54px + env(safe-area-inset-top,0));display:grid;grid-template-columns:auto 1fr auto;align-items:center}.top-bar-actions{display:flex;align-items:center;gap:12px;justify-self:end}.top-bar-nav{display:flex;align-items:center;gap:24px;justify-self:center}.top-bar-nav .nav-link{font-size:13px;font-weight:500;color:var(--text-muted);transition:color var(--transition)}.top-bar-nav .nav-link:hover,.top-bar-nav .nav-link.active{color:var(--gold)}.burger-btn{display:none;background:none;border:none;color:var(--text-muted);cursor:pointer;width:28px;height:28px;padding:2px;transition:color var(--transition)}.burger-btn:hover{color:var(--gold)}.burger-btn:focus-visible{outline:none}.nav-drawer-backdrop{position:fixed;inset:0;z-index:150;background:transparent;cursor:default}.nav-drawer{position:absolute;top:calc(100% + 6px);right:12px;min-width:180px;background:linear-gradient(180deg,#12161ffa,#0a0d14fa);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px;box-shadow:0 12px 32px #0000007a;z-index:200;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;flex-direction:column}.nav-drawer-link{display:flex;align-items:center;padding:9px 12px;border-radius:6px;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--text-warm);transition:color var(--transition),background var(--transition)}.nav-drawer-link:hover{color:var(--text);background:#ffffff0f}.nav-drawer-link.active{color:var(--gold)}.nav-drawer-divider{height:1px;background:#ffffff14;margin:4px 8px}.nav-coffee{justify-self:center;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-faint);transition:color var(--transition);white-space:nowrap;position:relative;top:2px}.nav-coffee:hover{color:var(--gold)}.nav-coffee:hover .nav-coffee-icon{color:#e25555;opacity:1}.nav-coffee-icon{width:12px;height:12px;flex-shrink:0;opacity:.6;transition:all var(--transition)}.nav-coffee-label{display:inline}.user-menu{display:flex;align-items:center}.user-menu-signin{font-size:12px;font-weight:600;color:var(--text-muted);padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius);letter-spacing:.04em;transition:color var(--transition),border-color var(--transition),background var(--transition)}.user-menu-signin:hover{color:var(--gold);border-color:var(--gold);background:#c9a0450f}.user-menu-profile{position:relative}.user-menu-backdrop{position:fixed;inset:0;z-index:150;border:none;padding:0;margin:0;background:transparent;cursor:default}.user-menu-toggle{display:flex;align-items:center;gap:8px;min-height:36px;background:linear-gradient(180deg,#121620eb,#0a0e16eb);border:1px solid var(--border);border-radius:999px;color:var(--text-warm);cursor:pointer;padding:5px 10px 5px 11px;font-size:12px;font-weight:600;box-shadow:inset 0 1px #ffffff08;transition:color var(--transition),border-color var(--transition),background var(--transition),box-shadow var(--transition),transform var(--transition)}.user-menu-toggle:hover{color:var(--gold);border-color:var(--gold);background:linear-gradient(180deg,#191810f2,#0f0e0af2);box-shadow:0 0 0 3px #c9a04514,inset 0 1px #ffffff0a}.user-menu-toggle.is-open{color:var(--gold);border-color:#c9a04585;background:linear-gradient(180deg,#1f1c12fa,#0f0e0afa);box-shadow:0 12px 28px #00000052,0 0 0 1px #c9a0451f,inset 0 1px #ffffff0d}.user-icon{width:18px;height:18px;flex-shrink:0;opacity:.78}.user-name{max-width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-chevron{width:14px;height:14px;flex-shrink:0;opacity:.72;transition:transform var(--transition),opacity var(--transition)}.user-menu-toggle.is-open .user-menu-chevron{transform:rotate(180deg);opacity:1}.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:232px;background:radial-gradient(circle at top,rgba(201,160,69,.08),transparent 38%),linear-gradient(180deg,#12161ffa,#0a0d14fa);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px;box-shadow:0 24px 48px #0000007a,inset 0 1px #ffffff0a;z-index:200;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.user-dropdown:before{content:"";position:absolute;top:-7px;right:20px;width:13px;height:13px;background:linear-gradient(180deg,#161922fa,#0a0d14fa);border-top:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08);transform:rotate(45deg)}.user-dropdown-header{padding:6px 6px 10px;display:flex;flex-direction:column;gap:4px}.user-dropdown-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#ffffff57}.user-dropdown-name{font-size:1.1rem;font-weight:700;color:var(--text);line-height:1.2}.user-dropdown-divider{border:none;border-top:1px solid rgba(255,255,255,.08);margin:0 0 8px}.user-dropdown-form{margin:0}.user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:var(--text-warm);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer;appearance:none;transition:color var(--transition),background var(--transition),border-color var(--transition),transform var(--transition)}.user-dropdown-item:hover{color:var(--text);background:linear-gradient(90deg,#ffffff0f,#ffffff05)}.user-dropdown-item-icon{width:16px;height:16px;flex-shrink:0;opacity:.84}.user-dropdown-signout{color:#d1a7a7}.user-dropdown-signout:hover{color:#f3d4d4;background:linear-gradient(90deg,#b91c1c29,#b91c1c0d)}@media(max-width:640px){.user-dropdown{min-width:210px;right:-2px}}.install-app{position:relative;display:flex;align-items:center;animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.install-btn{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:color var(--transition),border-color var(--transition),background var(--transition);line-height:0}.install-btn:hover{color:var(--gold);border-color:var(--gold);background:#c9a0450f}.install-icon{width:18px;height:18px}.install-ios-hint{position:absolute;top:100%;right:0;margin-top:8px;background:#0f121cf5;border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:12px;color:var(--text-warm);white-space:normal;min-width:180px;max-width:240px;box-shadow:0 8px 24px #0006;z-index:200}.language-switcher{position:relative;display:flex;align-items:center}.lang-toggle{display:flex;align-items:center;gap:3px;background:none;border:none;color:var(--gold);cursor:pointer;padding:4px 6px;border-radius:3px;font-size:11px;font-weight:600;letter-spacing:.06em;transition:color var(--transition),background var(--transition)}.lang-toggle:hover{background:#c9a0451a}.lang-chevron{width:12px;height:12px;opacity:.6;transition:transform var(--transition)}.lang-chevron.is-open{transform:rotate(180deg)}.lang-backdrop{position:fixed;inset:0;z-index:150;border:none;padding:0;margin:0;background:transparent;cursor:default}.lang-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:120px;background:linear-gradient(180deg,#12161ffa,#0a0d14fa);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px;box-shadow:0 12px 32px #0000007a;z-index:200;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lang-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:transparent;color:var(--text-warm);font:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;text-align:left;transition:color var(--transition),background var(--transition)}.lang-option:hover{color:var(--text);background:#ffffff0f}.lang-option.active{color:var(--gold)}.lang-option-name{font-weight:400;color:var(--text-faint);font-size:11px}.top-bar:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 40%,transparent);opacity:.15}.top-bar .brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--gold);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color var(--transition)}@media(max-width:639px){.top-bar{padding:0 12px;gap:0;grid-template-columns:1fr auto}.top-bar .brand{font-size:14px;gap:6px}.brand-icon{width:16px;height:16px}.nav-coffee-label{display:none}.top-bar-actions{gap:6px}.top-bar-nav{display:none}.burger-btn{display:block}.user-menu-toggle{gap:5px;padding:4px 8px 4px 9px}.user-name{max-width:56px}}.top-bar .brand:hover{color:var(--text)}.brand-icon{width:20px;height:20px;flex-shrink:0;opacity:.85}.btn-primary,.btn-secondary,.btn-danger,.btn-link,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:.6rem 1.4rem;border-radius:var(--radius);font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;border:1px solid transparent;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;background:none;letter-spacing:.03em}.btn-primary{background:var(--gold);color:#09090b;border-color:var(--gold);box-shadow:0 0 16px var(--gold-glow),0 1px 3px #0006}.btn-primary:hover:not(:disabled){background:#d9b458;color:#09090b;border-color:#d9b458;box-shadow:0 0 24px #c9a0454d,0 2px 6px #0006}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border-light)}.btn-secondary:hover:not(:disabled){border-color:var(--text-muted);background:var(--bg-elevated)}.btn-danger{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 0 12px var(--red-glow)}.btn-danger:hover:not(:disabled){background:var(--red-bright);border-color:var(--red-bright);box-shadow:0 0 20px #ef444440}.btn-link{background:transparent;color:var(--text-muted);border-color:transparent;padding:.4rem .6rem;font-weight:400}.btn-link:hover:not(:disabled){color:var(--text)}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border);padding:.4rem .9rem;font-size:13px}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--border-light)}button:disabled,.btn-primary:disabled{opacity:.3;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-loading{position:relative;pointer-events:none;opacity:.7;cursor:not-allowed;transform:none!important}.btn-loading .btn-text{visibility:hidden}.btn-spinner{position:absolute;display:block;flex-shrink:0;width:18px;height:18px;animation:btn-spin .7s linear infinite}.btn-spinner circle,.btn-spinner path{stroke:currentColor}@keyframes btn-spin{to{transform:rotate(360deg)}}.error-banner{background:var(--red-dim);border:1px solid var(--red);color:var(--red-light);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;box-shadow:0 0 12px var(--red-glow)}.error-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:16px;padding:0 4px;opacity:.7}.error-banner button:hover{opacity:1}.lobby-container{max-width:480px;margin:40px auto 0;text-align:center}.landing-hero-art .sky-skyline{height:95%}@media(min-width:768px){.landing-hero-art .sky-skyline{height:72%}}.lobby-container h1{font-size:52px;font-weight:900;font-variation-settings:"opsz" 96;color:var(--gold);margin-bottom:6px;text-shadow:0 0 40px var(--gold-glow);cursor:default;-webkit-user-select:none;user-select:none}.lobby-container .subtitle{color:var(--text-muted);font-style:italic;font-family:var(--font-serif);font-size:17px;margin-bottom:36px;cursor:default;-webkit-user-select:none;user-select:none}.action-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.action-buttons .btn-primary,.action-buttons .btn-secondary{min-width:160px;padding:.75rem 1.5rem;font-size:16px}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;text-align:left;box-shadow:var(--card-highlight),0 4px 24px #0006}.play-intro{color:var(--text-muted);font-size:14px;line-height:1.5;margin-bottom:var(--space-md)}.form-card h2{font-family:var(--font-display);font-size:22px;margin-bottom:16px;color:var(--text)}.form-card .btn-primary{width:100%;margin-top:20px;padding:.75rem}.form-card .btn-link{display:block;text-align:center;margin-top:10px;width:100%}.code-input{text-transform:uppercase;letter-spacing:.2em;font-size:18px;font-family:monospace;text-align:center}.active-sessions{margin-bottom:28px;text-align:left}.active-sessions h3{font-family:var(--font-display);font-size:15px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;text-align:center}.active-session-card{display:flex;align-items:center;gap:12px;width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:8px;cursor:pointer;transition:border-color .15s;text-align:left;color:var(--text);font-family:inherit;font-size:inherit}.active-session-card:hover{border-color:var(--gold)}.active-session-card .session-code{font-family:var(--font-display);font-size:16px;color:var(--gold);letter-spacing:.08em;flex-shrink:0}.active-session-card .session-detail{flex:1;font-size:13px;color:var(--text-muted)}.active-session-card .session-action{font-size:13px;color:var(--gold);font-weight:600;flex-shrink:0}.hint{font-size:13px;color:var(--text-faint);font-style:italic;margin:8px 0;line-height:1.5;cursor:default;-webkit-user-select:none;user-select:none}.hint-warning{color:var(--red-bright)}.connecting-state{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 0 8px;animation:connecting-fade-in .4s ease-out}.connecting-state p{color:var(--text-muted);font-size:14px;font-weight:500;letter-spacing:.04em}.connecting-spinner{width:32px;height:32px;color:var(--gold);animation:connecting-spin .9s linear infinite}.connecting-spinner svg{width:100%;height:100%}@keyframes connecting-spin{to{transform:rotate(360deg)}}@keyframes connecting-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.landing{width:100%}.landing-hero{position:relative;text-align:center;padding-bottom:48px}.landing-hero-art{width:100vw;max-width:100vw;margin-left:calc(-50vw + 50%);margin-top:-28px;overflow:hidden;position:relative}.landing-hero-art:after{content:"";position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,var(--bg) 0%,transparent 100%);pointer-events:none}.landing-hero-art .sky-animation{height:auto;aspect-ratio:1200 / 380;min-height:160px;max-height:320px;border:none;border-radius:0;box-shadow:none}.landing-hero-content{position:relative;z-index:2;max-width:680px;margin:-40px auto 0;padding:0 24px;text-align:center}.landing-title{font-family:var(--font-display);font-size:64px;font-weight:900;font-variation-settings:"opsz" 96;color:var(--gold);text-shadow:0 0 60px var(--gold-glow),0 0 120px rgba(201,160,69,.08);margin-bottom:12px;letter-spacing:-.01em;line-height:1.05;cursor:default;-webkit-user-select:none;user-select:none}.landing-tagline{font-family:var(--font-serif);font-size:22px;color:var(--text);font-style:italic;margin-bottom:14px;line-height:1.4;cursor:default;-webkit-user-select:none;user-select:none}.landing-subtitle{font-size:16px;color:var(--text-muted);max-width:520px;margin:0 auto 32px;line-height:1.6;cursor:default;-webkit-user-select:none;user-select:none}.landing-hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.btn-hero{min-width:200px;padding:.85rem 2.2rem;font-size:17px;letter-spacing:.02em;animation:hero-btn-glow 2.5s ease-in-out infinite}@keyframes hero-btn-glow{0%,to{box-shadow:0 0 16px var(--gold-glow),0 1px 3px #0006}50%{box-shadow:0 0 32px #c9a04580,0 0 64px #c9a04540,0 0 96px #c9a0451a,0 2px 6px #0006}}.landing-players-hint{font-size:13px;color:var(--text-faint);margin-top:14px;font-style:italic;cursor:default;-webkit-user-select:none;user-select:none}.landing-section{max-width:900px;margin:0 auto;padding:56px 24px;border-top:1px solid var(--border)}.landing-section-title{font-family:var(--font-display);font-size:32px;text-align:center;margin-bottom:12px;color:var(--text);cursor:default;-webkit-user-select:none;user-select:none}.guide-page-title{font-family:var(--font-display);font-size:36px;font-weight:900;text-align:center;margin-bottom:12px;color:var(--gold);text-shadow:0 0 30px var(--gold-glow);cursor:default;-webkit-user-select:none;user-select:none}.landing-section-intro{text-align:center;color:var(--text-muted);font-size:16px;max-width:600px;margin:0 auto 36px;line-height:1.6;cursor:default;-webkit-user-select:none;user-select:none}.landing-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.landing-step{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 20px;text-align:center;box-shadow:var(--card-highlight),0 4px 20px #0000004d;transition:border-color var(--transition),transform var(--transition)}.landing-step:hover{border-color:var(--border-light);transform:translateY(-2px)}.landing-step-icon{width:48px;height:48px;margin:0 auto 14px;color:var(--gold)}.landing-step-icon svg{width:100%;height:100%}.landing-step h3{font-size:15px;font-weight:600;margin-bottom:8px;color:var(--text)}.landing-step p{font-size:14px;color:var(--text-muted);line-height:1.55}.landing-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:900px;margin:0 auto}.landing-showcase-item{display:flex;flex-direction:column;align-items:center;gap:16px}.landing-phone-frame{position:relative;width:100%;max-width:230px;aspect-ratio:460 / 1024;border-radius:20px;border:2px solid var(--border);overflow:hidden;background:var(--bg);box-shadow:0 4px 24px #0006,0 0 0 1px #c9a04514}.landing-phone-frame video{width:100%;height:100%;object-fit:cover;display:block}.landing-showcase-caption{font-family:var(--font-serif-accent);font-size:16px;font-style:italic;color:var(--gold);text-align:center;letter-spacing:.02em}.landing-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.landing-role{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 20px;position:relative;box-shadow:var(--card-highlight),0 4px 20px #0000004d;transition:border-color var(--transition),transform var(--transition)}.landing-role:hover{transform:translateY(-2px)}.landing-role--village{border-left:3px solid var(--teal)}.landing-role--village:hover{border-color:var(--teal)}.landing-role--mafia{border-left:3px solid var(--red)}.landing-role--mafia:hover{border-color:var(--red)}.landing-role-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:2px 8px;border-radius:3px;margin-bottom:10px}.landing-role-badge--village{background:var(--teal-dim);color:var(--teal);border:1px solid rgba(13,148,136,.25)}.landing-role-badge--mafia{background:var(--red-dim);color:var(--red-bright);border:1px solid rgba(185,28,28,.25)}.landing-role--neutral{border-left:3px solid var(--purple)}.landing-role--neutral:hover{border-color:var(--purple)}.landing-role-badge--neutral{background:var(--purple-dim);color:var(--purple);border:1px solid rgba(168,85,247,.25)}.landing-role h3{font-family:var(--font-display);font-size:18px;font-weight:700;margin-bottom:8px;color:var(--text)}.landing-role p{font-size:15px;color:var(--text-muted);line-height:1.55}.landing-roles-link{text-align:center;color:var(--text-muted);font-size:16px;margin-top:var(--space-md)}.landing-flow{max-width:560px;margin:0 auto;position:relative;padding-left:32px}.landing-flow:before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:var(--border);border-radius:1px}.landing-flow-step{display:flex;gap:16px;align-items:flex-start;padding-bottom:28px;position:relative}.landing-flow-step:last-child{padding-bottom:0}.landing-flow-marker{width:22px;height:22px;min-width:22px;border-radius:50%;border:2px solid var(--border-light);position:absolute;left:-32px;top:2px;background:var(--bg)}.landing-flow-marker--night{border-color:var(--blue);box-shadow:0 0 8px #2563eb4d}.landing-flow-marker--dawn{border-color:var(--gold);box-shadow:0 0 8px var(--gold-glow)}.landing-flow-marker--day{border-color:var(--teal);box-shadow:0 0 8px var(--teal-glow)}.landing-flow-marker--vote{border-color:var(--red);box-shadow:0 0 8px var(--red-glow)}.landing-flow-body h4{font-size:15px;font-weight:600;margin-bottom:4px;color:var(--text)}.landing-flow-body p{font-size:15px;color:var(--text-muted);line-height:1.55}.landing-features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.landing-feature{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 20px;box-shadow:var(--card-highlight),0 4px 20px #0000004d}.landing-feature h4{font-size:15px;font-weight:600;margin-bottom:6px;color:var(--gold)}.landing-feature p{font-size:15px;color:var(--text-muted);line-height:1.55}.landing-cta{max-width:600px;margin:0 auto;padding:60px 24px;text-align:center;border-top:1px solid var(--border)}.landing-cta h2{font-family:var(--font-display);font-size:36px;font-weight:900;font-variation-settings:"opsz" 96;margin-bottom:12px;color:var(--gold);text-shadow:0 0 40px var(--gold-glow)}.landing-cta p{color:var(--text-muted);font-size:16px;margin-bottom:28px;line-height:1.6}.landing-updates-section{border-top:1px solid var(--border)}.landing-updates{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:640px;margin:0 auto}@media(max-width:560px){.landing-updates{grid-template-columns:1fr}}.landing-update-column{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--card-highlight),0 4px 20px #0000004d}.landing-update-heading{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--gold);margin-bottom:14px;letter-spacing:.02em}.landing-update-list{list-style:none;padding:0;margin:0 0 12px}.landing-update-list li{font-size:14px;color:var(--text-muted);line-height:1.6;padding-left:18px;position:relative}.landing-update-list li:before{content:"+";position:absolute;left:0;color:var(--success);font-weight:700}.landing-update-list--roadmap li:before{content:"\2192";color:var(--gold)}.landing-update-link{font-size:13px;color:var(--gold);transition:opacity var(--transition)}.landing-update-link:hover{opacity:.75}.landing-social-proof{font-size:13px;color:var(--text-faint);margin-top:8px;font-style:italic;cursor:default;-webkit-user-select:none;user-select:none}.landing-community{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:700px;margin:0 auto}.landing-community--single{grid-template-columns:1fr;max-width:480px}@media(max-width:600px){.landing-community{grid-template-columns:1fr}}.landing-community-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;box-shadow:var(--card-highlight),0 4px 20px #0000004d;display:flex;flex-direction:column;gap:var(--space-md)}.landing-community-card--supporter{border-color:#c9a04533;text-align:center;align-items:center}.landing-benefit-list{list-style:none;padding:0;margin:0}.landing-benefit-list li{font-size:15px;color:var(--text-muted);line-height:1.6;padding-left:22px;position:relative;margin-bottom:8px}.landing-benefit-list li:last-child{margin-bottom:0}.landing-benefit-list li:before{content:"\2713";position:absolute;left:0;color:var(--teal);font-weight:700}.landing-community-btn{margin-top:auto;align-self:center;font-size:14px;padding:.6rem 1.4rem}.landing-supporter-star{width:32px;height:32px;color:var(--gold)}.landing-supporter-star svg{width:100%;height:100%}.landing-supporter-desc{font-size:15px;color:var(--text-muted);line-height:1.55}.landing-cta-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.btn-hero-secondary{min-width:180px;padding:.85rem 2.2rem;font-size:17px;letter-spacing:.02em}.supporter-star{width:12px;height:12px;color:var(--gold);flex-shrink:0;vertical-align:middle;margin-left:1px;margin-top:-1px}.user-menu-toggle .supporter-star,.header-stat-pill .supporter-star{margin-left:2px}.player-chip .supporter-star,.roster-name .supporter-star{margin-left:1px;margin-top:-2px}.roster-row .supporter-star-tip{flex-shrink:0;margin-left:-6px}.roster-row>.roster-you{flex-shrink:0;margin-left:-6px}.supporter-star-tip{position:relative;display:inline-flex;cursor:help}.supporter-star-tip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) scale(.95);background:var(--surface-2, #1e1e2e);color:var(--text-primary, #e8e8e8);border:1px solid var(--gold, #d4a843);font-size:.72rem;line-height:1.35;padding:6px 10px;border-radius:6px;white-space:normal;width:max-content;max-width:200px;text-align:center;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:100;box-shadow:0 4px 12px #0006}.supporter-star-tip:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--gold, #d4a843);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:101}.supporter-star-tip:hover:after,.supporter-star-tip:focus-within:after{opacity:1;transform:translate(-50%) scale(1)}.supporter-star-tip:hover:before,.supporter-star-tip:focus-within:before{opacity:1}.profile-badge.supporter{color:var(--gold);display:inline-flex;align-items:center;gap:3px}.profile-badge.supporter .supporter-star{width:10px;height:10px;margin-right:0;margin-top:-2px}.form-card-heading{font-family:var(--font-display);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin:0 0 14px}.profile-name-row{display:flex;gap:8px;align-items:center}.profile-name-row input{flex:1;min-width:0}.btn-compact{width:auto!important;padding:.55rem 1.2rem!important;margin-top:0!important;white-space:nowrap;flex-shrink:0}.profile-reset-link{display:inline-block;margin-top:14px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:color var(--transition)}.profile-reset-link:hover{color:var(--gold)}.profile-section-label{display:block;margin-top:var(--space-md)}.profile-inline-alert{margin-top:var(--space-sm)}.profile-supporter-card{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:#d4af370f;border:1px solid rgba(212,175,55,.2);border-radius:var(--radius)}.profile-supporter-card-star{width:24px;height:24px;color:var(--gold);flex-shrink:0;margin-top:1px}.profile-supporter-card-content{display:flex;flex-direction:column;gap:4px}.profile-supporter-card-content strong{color:var(--gold);font-size:14px}.profile-supporter-card-content span{color:var(--text-muted);font-size:13px;line-height:1.4}.profile-supporter-card-content small{color:var(--text-muted);font-size:12px;opacity:.7;margin-top:2px}.profile-supporter-cta{display:flex;align-items:center;gap:14px;padding:14px 18px;background:#d4af370f;border:1px solid rgba(212,175,55,.2);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition),background var(--transition);text-decoration:none;color:inherit}.profile-supporter-cta:hover{border-color:var(--gold);background:#d4af371a}.profile-supporter-cta-star{width:24px;height:24px;color:var(--gold);flex-shrink:0}.profile-supporter-cta-text{display:flex;flex-direction:column;gap:2px}.profile-supporter-cta-text strong{color:var(--gold);font-size:14px}.profile-supporter-cta-text small{color:var(--text-muted);font-size:12px}.profile-stats-empty{color:var(--text-muted);font-size:14px;text-align:center;padding:24px 0}.supporter-result{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}.supporter-result-card{text-align:center;max-width:400px}.supporter-result-card h1{font-family:var(--font-display);font-size:28px;color:var(--text);margin-bottom:12px}.supporter-result-card p{font-size:15px;color:var(--text-muted);line-height:1.6;margin-bottom:28px}.supporter-badge-large{width:56px;height:56px;color:var(--gold);margin:0 auto 20px}.supporter-badge-large svg{width:100%;height:100%}.supporter-badge-pulse{animation:supporter-pulse 1.5s ease-in-out infinite}@keyframes supporter-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.92)}}.supporter-page{max-width:600px;margin:0 auto;padding:48px 24px 40px}.supporter-hero,.supporter-thankyou{text-align:center;margin-bottom:var(--space-lg);padding:var(--space-xl) var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:12px}.supporter-hero h1,.supporter-thankyou h1{font-family:var(--font-display);font-size:26px;color:var(--text);margin-bottom:8px}.supporter-hero-sub{font-size:14px;color:var(--text-muted);line-height:1.6;max-width:440px;margin:0 auto}.supporter-thankyou p{font-size:14px;color:var(--text-muted);line-height:1.6}.supporter-since{display:inline-block;font-size:13px;font-weight:500;color:var(--gold);background:#d4af371f;border:1px solid rgba(212,175,55,.25);border-radius:20px;padding:4px 14px;margin-top:12px;margin-bottom:var(--space-md)}.supporter-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-lg)}.supporter-compare-table{width:100%;border-collapse:collapse;font-size:13px}.supporter-compare-table th,.supporter-compare-table td{padding:10px 12px;text-align:center;border-bottom:1px solid var(--border)}.supporter-compare-table th:first-child,.supporter-compare-table td:first-child{text-align:left;color:var(--text-muted);font-size:13px}.supporter-compare-table thead th{font-family:var(--font-display);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);padding-bottom:12px}.supporter-col-highlight{background:#d4af370f}thead .supporter-col-highlight{color:var(--gold)!important;display:table-cell;align-items:center;gap:4px}thead .supporter-col-highlight .supporter-star{width:11px;height:11px;margin-right:2px;vertical-align:-1px}.supporter-compare-table .check{color:var(--text);font-weight:600}.supporter-compare-table .muted{color:var(--text-muted);opacity:.4}.supporter-cta-section{text-align:center;margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:12px}.supporter-cta-note{font-size:12px;color:var(--text-muted);margin-bottom:16px}.supporter-cta-btn{min-width:220px}.supporter-bmc-link{margin-top:var(--space-md)}.contact-supporter-badge{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--gold);font-size:13px;font-weight:600;background:#d4af371a;border:1px solid rgba(212,175,55,.25);border-radius:20px;padding:var(--space-xs) var(--space-sm);cursor:default;-webkit-user-select:none;user-select:none}.contact-bmc-link{display:block;margin-top:8px;font-size:12px}.support-banner-action{color:var(--gold);cursor:pointer;transition:opacity var(--transition)}.support-banner-action:hover{opacity:.75}.landing-footer{padding:40px 24px;margin-top:40px;text-align:center;border-top:1px solid var(--border)}.landing-footer-links{display:flex;gap:16px 24px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:16px}.landing-footer-links a{font-size:13px;color:var(--text-faint);white-space:nowrap;transition:color var(--transition)}.landing-footer-links a:hover{color:var(--gold)}.landing-footer-sep{color:var(--border-light);-webkit-user-select:none;user-select:none}.footer-discord{display:inline-flex;align-items:center;gap:4px}.footer-discord svg{width:16px;height:16px}.charity-link{display:inline-flex;align-items:center;gap:5px}.charity-icon{width:13px;height:13px;color:var(--gold);opacity:.6;transition:opacity var(--transition)}.charity-link:hover .charity-icon{opacity:1}.game-container{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:14px}.game-page-sky{position:fixed;inset:calc(54px + env(safe-area-inset-top,0px)) 0 0 0;z-index:-1;pointer-events:none;overflow:hidden;opacity:0}.game-page-sky.sky-visible{animation:sky-fade-in 1.2s ease-in-out forwards}@keyframes sky-fade-in{0%{opacity:0}to{opacity:1}}.game-page-sky:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,rgba(100,140,200,.07),transparent 34%);z-index:1}.game-page-sky:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#060a1605,#070c1a05 55%,#080c180a 68%,#070a141f 76%,#0609126b,#080c16d1 84%,#080c16 87% 100%);z-index:2}.game-page-sky .sky-animation{position:absolute;inset:0;width:100%;height:100%;min-height:100%;border:none;border-radius:0;box-shadow:none}.game-page-sky .sky-skyline{bottom:10%;left:0;width:100%;height:240px;color:#080c16;opacity:1}.game-page-sky .sky-orbit-guide{top:56%;width:74cqw;height:44cqh;opacity:.3}.game-page-sky .sky-body{transform:translate(calc(var(--body-x, 50cqw) - 50%),calc(var(--body-y, 26cqh) - 50%)) translateY(clamp(-80px,-7vh,-46px))}.game-page-sky .sky-stars{z-index:3;opacity:1}.game-page-sky .sky-stars svg{filter:none}.game-page-sky .sky-horizon-mask{display:none}.game-page-sky .sky-sun-body{width:180px;height:180px}.game-page-sky .sky-moon-body{width:160px;height:160px}.game-page-sky .sky-stars svg{transform:none}.game-page-sky .sky-horizon-line{display:none}.game-hero{position:relative;overflow:hidden;border-radius:calc(var(--radius-lg) + 2px);border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#0e101cd6,#0a0a10e0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--card-highlight),0 14px 34px #00000038;isolation:isolate;transition:background 1.2s ease-in-out,border-color 1.2s ease-in-out}.game-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 28%);z-index:1;pointer-events:none}.game-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.05),transparent 44%);z-index:1;pointer-events:none}.game-hero.with-sky{border-color:#ffffff17}.game-hero.lobby{background:linear-gradient(180deg,#12121ae6,#0a0a10f0)}.game-header{display:flex;flex-direction:column;gap:14px;position:relative;z-index:2;padding:16px 18px 14px}.game-header-top{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}.game-header-room{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.game-header-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.game-code{font-family:monospace;font-size:17px;color:var(--gold);letter-spacing:.14em;text-shadow:0 0 12px var(--gold-glow)}.game-room-state{color:var(--text-muted);font-size:12px}.game-room-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.game-room-divider{width:4px;height:4px;border-radius:50%;background:#ffffff2e;flex:0 0 auto}.game-header-badges{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.header-stat-pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;background:#11121c6b;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:0 10px;color:var(--text);font-size:13px;line-height:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-stat-pill strong{font-size:13px;color:var(--text);line-height:1}.current-player-pill{justify-content:flex-start;max-width:min(100%,260px)}.current-player-pill .header-stat-label{font-size:13px;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--text-muted)}.current-player-pill strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-stat-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;line-height:1}.game-header-summary{color:var(--text-warm);font-size:12px;line-height:1.4}.phase-overview-shell{display:flex;flex-direction:column;gap:6px;margin-top:2px}.phase-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 0 0;border-top:1px solid rgba(255,255,255,.06)}.phase-ready-status{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;padding-left:14px;border-left:1px solid rgba(255,255,255,.08);overflow:hidden}.phase-ready-label{color:var(--text-muted);font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.phase-ready-count{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.phase-timer-inline{display:flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap}.phase-timer-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.phase-overview{display:grid;gap:12px;align-items:center;padding:4px 0 2px;border:none;border-radius:var(--radius-lg);background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.phase-overview.has-side{grid-template-columns:minmax(0,1fr) auto}.phase-overview.no-side{grid-template-columns:1fr}.phase-overview.lobby{border-color:var(--border)}.phase-overview.rolereveal,.phase-overview.night{box-shadow:none}.phase-overview.dawn{border-color:#4a3008}.phase-overview.day{border-color:#153530}.phase-overview.dusk{border-color:#4a2808}.phase-overview.gameover{box-shadow:none}.phase-overview-main{display:flex;flex-direction:column;gap:6px;min-width:0}.phase-overview-topline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.phase-overview-side{display:flex;flex-direction:column;gap:8px}.phase-overview-card{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:0;padding:10px 12px;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);background:#0c0d16ad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.phase-overview-card-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.phase-overview-status{display:flex;flex-direction:column;gap:6px;margin-top:0}.phase-overview-status-copy{display:flex;align-items:baseline;justify-content:flex-start;gap:10px;flex-wrap:wrap}.phase-overview-status-label{color:var(--text-muted);font-size:12px;font-weight:600}.phase-overview-status-count{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.08em}.phase-track-progress{position:relative;overflow:hidden;height:7px;border-radius:999px;background:#ffffff14;box-shadow:inset 0 1px 2px #00000073}.phase-track-progress.compact{height:5px;flex:1 1 0;max-width:160px;min-width:40px}.phase-track-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1bb391e6,#c9a045eb);box-shadow:0 0 10px #1bb39140,0 0 14px #c9a0452e;transition:width var(--transition-slow)}.game-header-roles{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.header-role-list{display:flex;flex-wrap:wrap;gap:8px}.round-indicator{font-size:12px;color:var(--text-faint);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:3px 10px;border-radius:20px;letter-spacing:.03em}.phase-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:4px 12px;border-radius:20px;border:1px solid transparent}.phase-badge.lobby{background:var(--bg-elevated);color:var(--text-faint);border-color:var(--border)}.phase-badge.rolesassigned,.phase-badge.rolereveal{background:var(--gold-dim);color:var(--gold);border-color:#4a3408;box-shadow:0 0 8px var(--gold-glow)}.phase-badge.night{background:#0c0c28;color:#818cf8;border-color:#252560;box-shadow:0 0 8px #818cf826}.phase-badge.dawn{background:#221508;color:#f59e0b;border-color:#4a3008}.phase-badge.day{background:var(--teal-dim);color:var(--teal);border-color:#143530}.phase-badge.voting,.phase-badge.dusk{background:#221008;color:#fb923c;border-color:#4a2808}.phase-badge.gameover{background:var(--red-dim);color:var(--red-bright);border-color:#4a1010;box-shadow:0 0 8px var(--red-glow)}.overview-dashboard{background:linear-gradient(135deg,#0d0d14fa,#101018f5);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--card-highlight),0 8px 28px #00000047}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.overview-card{display:flex;flex-direction:column;gap:8px;min-height:124px;background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius);padding:16px}.overview-card-wide{grid-column:span 2}.overview-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.overview-value{font-size:24px;font-weight:700;line-height:1.1;color:var(--text)}.overview-code{font-family:monospace;letter-spacing:.14em;color:var(--gold);text-shadow:0 0 12px var(--gold-glow)}.overview-meta{color:var(--text-muted);font-size:13px;line-height:1.5}.overview-role-list{display:flex;flex-wrap:wrap;gap:8px}.overview-role{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid rgba(201,160,69,.24);background:#c9a0451a;color:var(--gold);font-size:12px;font-weight:600}.role-reveal-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0 6px;margin-bottom:-14px;border-top:1px solid rgba(255,255,255,.06);cursor:pointer;-webkit-user-select:none;user-select:none}.role-reveal-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}.role-reveal-hint{flex:1;text-align:right;font-size:11px;color:var(--text-muted);opacity:.5;font-style:italic}.role-reveal-chevron{width:16px;height:16px;color:var(--gold);opacity:.6;transition:transform var(--transition);display:flex}.role-reveal-chevron.open{transform:rotate(180deg)}.role-reveal-chevron svg{width:100%;height:100%}.role-reveal-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-slow)}.role-reveal-body.open{grid-template-rows:1fr}.role-reveal-body>.role-reveal-body-inner{overflow:hidden}.role-reveal-body-inner>.role-card{margin-top:10px;margin-bottom:6px}.role-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;position:relative;overflow:hidden;box-shadow:var(--card-highlight)}.role-card.villager{background:linear-gradient(135deg,var(--bg-card) 0%,var(--gold-dim) 100%);border-color:#c9a0454d;box-shadow:var(--card-highlight),0 0 20px var(--gold-glow)}.role-card.doctor{background:linear-gradient(135deg,var(--bg-card) 0%,#08160e 100%);border-color:#1e3828;box-shadow:var(--card-highlight),0 0 20px var(--teal-glow)}.role-card.detective{background:linear-gradient(135deg,var(--bg-card) 0%,var(--blue-dim) 100%);border-color:#648cff4d;box-shadow:var(--card-highlight),0 0 20px #2563eb26}.role-card.mafia{background:linear-gradient(135deg,var(--bg-card) 0%,#160808 100%);border-color:#3a1010;box-shadow:var(--card-highlight),0 0 20px var(--red-glow)}.role-card.jester{background:linear-gradient(135deg,var(--bg-card) 0%,var(--purple-dim) 100%);border-color:#a855f74d;box-shadow:var(--card-highlight),0 0 20px #a855f726}.role-card h3{font-size:16px;margin-bottom:6px;font-family:var(--font-body);font-weight:600}.role-card.villager h3{color:var(--gold)}.role-card.doctor h3{color:var(--teal)}.role-card.detective h3{color:#8aa8ff}.role-card.mafia h3{color:var(--red-bright)}.role-card.jester h3{color:var(--purple)}.role-card h3 strong{font-family:var(--font-display);font-size:22px}.role-card p{color:var(--text-muted);font-style:italic;font-family:var(--font-serif);font-size:16px}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}@media(max-width:480px){.card-grid{grid-template-columns:1fr}}.toggle-card{display:flex;align-items:flex-start;gap:var(--space-sm);padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);cursor:pointer;transition:opacity var(--transition),border-color var(--transition),box-shadow var(--transition),background var(--transition);position:relative;user-select:none;-webkit-user-select:none}.toggle-card:hover:not(.readonly){border-color:var(--border-light)}.toggle-card.off{opacity:.4;filter:saturate(.3)}.toggle-card.off:hover:not(.readonly){opacity:.6}.toggle-card.readonly{cursor:default}.toggle-card-icon{width:28px;height:28px;flex-shrink:0;color:var(--text-muted);margin-top:1px}.toggle-card:not(.off) .toggle-card-icon{color:inherit}.toggle-card-body{flex:1;min-width:0}.toggle-card-name{font-size:14px;font-weight:600;line-height:1.3;color:var(--text)}.toggle-card-desc{font-size:12px;color:var(--text-muted);line-height:1.4;margin-top:2px}.toggle-pill{width:32px;height:18px;border-radius:9px;background:#ffffff14;border:1px solid var(--border);flex-shrink:0;position:relative;transition:background var(--transition),border-color var(--transition);margin-top:3px}.toggle-pill:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:transform var(--transition),background var(--transition)}.toggle-card:not(.off) .toggle-pill{background:var(--gold-dim);border-color:var(--gold)}.toggle-card:not(.off) .toggle-pill:after{transform:translate(14px);background:var(--gold)}.toggle-card.core-role{cursor:default}.toggle-card.mafia.core-role{background:linear-gradient(135deg,var(--bg-elevated) 0%,#160808 100%);border-color:#3a1010}.toggle-card.mafia.core-role .toggle-card-icon,.toggle-card.mafia.core-role .toggle-card-name{color:var(--red-bright)}.toggle-card.villager.core-role{background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--gold-dim) 100%);border-color:#c9a0454d}.toggle-card.villager.core-role .toggle-card-icon,.toggle-card.villager.core-role .toggle-card-name{color:var(--gold)}.toggle-card.don:not(.off){background:linear-gradient(135deg,var(--bg-elevated) 0%,#160808 100%);border-color:#3a1010;box-shadow:0 0 12px var(--red-glow)}.toggle-card.don:not(.off) .toggle-card-icon,.toggle-card.don:not(.off) .toggle-card-name{color:var(--red-bright)}.toggle-card.don:not(.off) .toggle-pill{background:#b4282833;border-color:var(--red)}.toggle-card.don:not(.off) .toggle-pill:after{background:var(--red-bright)}.toggle-card.detective:not(.off){background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--blue-dim) 100%);border-color:#648cff4d;box-shadow:0 0 12px #2563eb26}.toggle-card.detective:not(.off) .toggle-card-icon,.toggle-card.detective:not(.off) .toggle-card-name{color:#8aa8ff}.toggle-card.detective:not(.off) .toggle-pill{background:#648cff26;border-color:#8aa8ff}.toggle-card.detective:not(.off) .toggle-pill:after{background:#8aa8ff}.toggle-card.doctor:not(.off){background:linear-gradient(135deg,var(--bg-elevated) 0%,#08160e 100%);border-color:#1e3828;box-shadow:0 0 12px var(--teal-glow)}.toggle-card.doctor:not(.off) .toggle-card-icon,.toggle-card.doctor:not(.off) .toggle-card-name{color:var(--teal)}.toggle-card.doctor:not(.off) .toggle-pill{background:#1bb39126;border-color:var(--teal)}.toggle-card.doctor:not(.off) .toggle-pill:after{background:var(--teal)}.toggle-card.jester:not(.off){background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--purple-dim) 100%);border-color:#a855f74d;box-shadow:0 0 12px #a855f726}.toggle-card.jester:not(.off) .toggle-card-icon,.toggle-card.jester:not(.off) .toggle-card-name{color:var(--purple)}.toggle-card.jester:not(.off) .toggle-pill{background:#a855f726;border-color:var(--purple)}.toggle-card.jester:not(.off) .toggle-pill:after{background:var(--purple)}.toggle-card.house-rule:not(.off){background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--gold-dim) 100%);border-color:#c9a0454d;box-shadow:0 0 12px var(--gold-glow)}.toggle-card.house-rule:not(.off) .toggle-card-icon{color:var(--gold)}.mafia-team{margin-top:12px;padding-top:12px;border-top:1px solid #2e1010;font-size:13px;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.mafia-member{background:var(--red-dim);color:var(--red-light);border:1px solid #4a1010;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.detective-result{margin-top:12px;padding:10px 14px;border-radius:var(--radius);font-weight:600;font-size:14px}.detective-result.is-mafia{background:var(--red-dim);border:1px solid var(--red);color:var(--red-bright);box-shadow:0 0 10px var(--red-glow)}.detective-result.not-mafia{background:var(--teal-dim);border:1px solid var(--teal);color:var(--teal);box-shadow:0 0 10px var(--teal-glow)}.detective-intel{margin-bottom:16px}.detective-intel .transition-icon,.detective-intel .transition-title{color:#7eb8da}.detective-intel-summary{color:var(--text);font-family:var(--font-serif);font-size:16px;line-height:1.6;padding:14px 16px;border-radius:var(--radius);text-align:center}.detective-intel-summary.is-mafia{border:1px solid rgba(220,50,50,.3);background:linear-gradient(180deg,#3c0f0ff5,#280a0af5);box-shadow:inset 0 1px #ffffff08,0 0 20px var(--red-glow)}.detective-intel-summary.not-mafia{border:1px solid rgba(45,212,191,.2);background:linear-gradient(180deg,#0a2823f5,#081e19f5);box-shadow:inset 0 1px #ffffff08,0 0 20px var(--teal-glow)}.detective-intel-name{display:block;color:var(--red-bright);font-weight:700;font-style:normal;font-size:1.4em;margin:4px 0}.detective-intel-summary.not-mafia .detective-intel-name{color:var(--teal)}.detective-intel-context{display:block;font-size:.95em;opacity:.8}.phase-panel{background:linear-gradient(135deg,#101014eb,#0c0c10e6);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:24px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--card-highlight),0 2px 16px #00000047}.phase-message{color:var(--text-muted);font-family:var(--font-serif);font-style:italic;font-size:20px;text-align:center;padding:16px 0 24px;line-height:1.5}.phase-message.success{color:var(--teal);font-style:normal;font-family:var(--font-body);font-size:14px;background:var(--teal-dim);border:1px solid #1a4030;border-radius:var(--radius);padding:10px 14px;text-align:left;font-weight:600;margin-bottom:0;box-shadow:0 0 10px var(--teal-glow)}.vote-inline-msg{font-size:12px;padding:6px 12px;margin-top:2px}.transition-panel{text-align:center;animation:transition-fade-in .6s ease both}@keyframes transition-fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.transition-icon{width:56px;height:56px;margin:0 auto 12px;opacity:.7}.transition--dawn .transition-icon{color:#e8b84a}.transition--dusk .transition-icon{color:#b07040}.transition-title{font-family:var(--font-serif);font-size:20px;font-weight:400;letter-spacing:.02em;margin-bottom:16px}.transition--dawn .transition-title{color:#e8b84a}.transition--dusk .transition-title{color:#c08050}.transition-dead-name{display:block;color:var(--red-bright);font-weight:700;font-style:normal;font-size:1.4em;margin:4px 0}.transition-context{display:block;font-size:.95em;opacity:.8}.phase-transition-summary{color:var(--text);font-family:var(--font-serif);font-size:16px;line-height:1.6;padding:14px 16px;border-radius:var(--radius);border:1px solid rgba(201,160,69,.18);background:linear-gradient(180deg,#1a1816f5,#12100ef5);box-shadow:inset 0 1px #ffffff08,0 8px 20px #00000029}.phase-ready-progress{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--border-light);border-radius:var(--radius);background:linear-gradient(180deg,#202329f5,#121418f5);box-shadow:inset 0 1px #ffffff08,0 8px 20px #0000002e}.phase-ready-progress-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.phase-ready-progress-label{color:var(--text);font-size:14px;font-weight:600;letter-spacing:.01em}.phase-ready-progress-count{color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.08em}.phase-ready-progress-bar{position:relative;overflow:hidden;height:8px;border-radius:999px;background:#ffffff14;box-shadow:inset 0 1px 2px #00000073}.phase-ready-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1bb391e6,#c9a045eb);box-shadow:0 0 10px #1bb39140,0 0 14px #c9a0452e;transition:width var(--transition-slow)}.lobby-panel{text-align:center}.share-code{font-family:monospace;font-size:42px;font-weight:700;letter-spacing:.25em;color:var(--gold);background:var(--bg-elevated);border:1px dashed var(--border-light);border-radius:var(--radius-lg);padding:14px 28px;display:inline-block;margin:12px 0 8px;cursor:pointer;transition:all var(--transition);-webkit-user-select:all;user-select:all;text-shadow:0 0 20px var(--gold-glow)}.share-code:hover{border-color:var(--gold);border-style:solid;box-shadow:0 0 20px var(--gold-glow)}.share-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-bottom:var(--space-sm)}.share-actions .btn-sm{font-size:13px;padding:4px 12px}.player-count{color:var(--text-muted);font-size:14px;margin-bottom:20px}.config-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin:16px 0;text-align:left}.config-section h4{font-size:11px;margin-bottom:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.config-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;gap:12px}.config-row:last-child{border-bottom:none;padding-bottom:0}.config-row label{margin:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--text);font-weight:400}.count-picker{display:flex;align-items:center;gap:0;background:#0c0e16cc;border:1px solid var(--border);border-radius:8px;padding:3px;flex-shrink:0}.count-picker-option{display:flex;align-items:center;justify-content:center;width:36px;height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-muted);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition)}.count-picker-option:hover:not(:disabled):not(.active){color:var(--text);background:#ffffff0d}.count-picker-option.active{color:var(--gold);background:#c9a0451f;border-color:#c9a04566;box-shadow:0 0 8px #c9a0451a}.joined-players{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.waiting-panel{text-align:center;padding:20px 0}.waiting-icon{width:40px;height:40px;margin:0 auto 10px;color:var(--gold);opacity:.5;animation:waiting-pulse 2s ease-in-out infinite}@keyframes waiting-pulse{0%,to{opacity:.3}50%{opacity:.7}}.waiting-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px}.waiting-subtitle{font-size:14px;color:var(--text-muted)}.section-header-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.section-header-toggle h3{margin-bottom:0}.section-toggle-hint{flex:1;text-align:right;font-size:11px;font-family:var(--font-body);color:var(--text-muted);opacity:.5;font-style:italic;font-weight:400}.section-chevron{width:16px;height:16px;color:var(--gold);opacity:.5;transition:transform var(--transition);display:flex;flex-shrink:0}.section-chevron.open{transform:rotate(180deg)}.section-chevron svg{width:100%;height:100%}.section-collapsible{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-slow)}.section-collapsible.open{grid-template-rows:1fr}.section-collapsible>.section-collapsible-inner{overflow:hidden}.section-collapsible.open>.section-collapsible-inner{padding-top:14px;overflow:visible}.players-section{background:linear-gradient(135deg,#101014eb,#0c0c10e6);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:20px 24px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--card-highlight),0 2px 16px #00000047}.players-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:700}.player-grid{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.player-avatar-card{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:72px;padding:10px 8px 8px;border-radius:var(--radius);transition:all var(--transition)}.player-avatar{position:relative;overflow:visible;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;font-family:var(--font-serif);background:var(--bg-elevated);border:2px solid var(--border-light);color:var(--text);transition:all var(--transition)}.player-avatar-card.me .player-avatar{border-color:var(--gold);box-shadow:0 0 10px var(--gold-glow)}.player-avatar-card.dead .player-avatar{opacity:.4;border-color:var(--border);background:#12141a}.avatar-status-dead{position:absolute;inset:0;color:var(--red-bright);opacity:.85;pointer-events:none;filter:drop-shadow(0 0 6px rgba(220,60,60,.6));animation:kill-cross-in .4s cubic-bezier(.34,1.56,.64,1) both}@keyframes kill-cross-in{0%{opacity:0;transform:scale(0) rotate(-90deg)}60%{opacity:1;transform:scale(1.35) rotate(8deg)}to{opacity:.85;transform:scale(1.2) rotate(0)}}.player-avatar-name{font-size:11px;font-weight:600;color:var(--text);text-align:center;line-height:1.2;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-avatar-name.dimmed{opacity:.45}.player-avatar-role{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:1px 6px;border-radius:4px;background:var(--bg);color:var(--text-faint);border:1px solid var(--border)}.player-avatar.mafia,.player-avatar.don{border-color:#b91c1c}.player-avatar.villager{border-color:#31433b}.player-avatar.doctor{border-color:var(--teal)}.player-avatar.detective{border-color:#5b8def}.player-avatar.jester{border-color:#a855f7}.player-avatar-role.mafia,.player-avatar-role.don{color:var(--red-bright);background:var(--red-dim);border-color:#4a1010}.player-avatar-role.villager{color:#80d3c7;background:#0d94881a;border-color:#1a4030}.player-avatar-role.doctor{color:var(--teal);background:#0d94881a;border-color:#1a4030}.player-avatar-role.detective{color:#7cb8ff;background:#5c8def1a;border-color:#1a3060}.player-avatar-role.jester{color:#c084fc;background:#a855f71a;border-color:#2d1854}.player-roster{display:flex;flex-direction:column}.roster-row{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid rgba(255,255,255,.04)}.roster-row:last-child{border-bottom:none}.roster-row.me{background:#c9a0450a}.roster-row.dead{opacity:.5}.roster-status{font-size:10px;width:14px;text-align:center;flex-shrink:0;line-height:1}.roster-status.alive{color:var(--teal)}.roster-status.dead{color:var(--red-bright);font-size:11px}.roster-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.roster-name.dimmed{color:var(--text-faint)}.roster-you{color:var(--text-muted);font-weight:400;font-size:11px;margin-left:4px}.roster-role{margin-left:auto;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;flex-shrink:0;background:#ffffff0a;color:var(--text-faint);border:1px solid rgba(255,255,255,.06)}.roster-role.hidden{font-style:italic;font-weight:600;border-color:transparent;background:none;color:var(--text-faint);opacity:.5}.roster-role.mafia{color:var(--red-bright);background:var(--red-dim);border-color:#4a1010}.roster-role.don{color:#ff6b6b;background:#b4282826;border-color:#5a1515}.roster-role.villager{color:var(--gold);background:var(--gold-dim);border-color:#c9a04540}.roster-role.doctor{color:var(--teal);background:#0d94881a;border-color:#1a4030}.roster-role.detective{color:#7cb8ff;background:#5c8def1a;border-color:#1a3060}.roster-role.jester{color:#c084fc;background:#a855f71a;border-color:#2d1854}.player-badges{display:grid;grid-template-columns:1fr 1fr;gap:6px}@media(min-width:600px){.player-badges{grid-template-columns:1fr 1fr 1fr}}@media(min-width:900px){.player-badges{grid-template-columns:1fr 1fr 1fr 1fr}}.player-badge{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius);border:1px solid var(--border);background:#101218b3;transition:all var(--transition)}.player-badge.me{border-color:#ffffff1f}.player-badge.dead{opacity:.7}.player-badge-avatar{position:relative;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:var(--font-serif);background:#ffffff0f;border:1.5px solid var(--border-light);color:var(--text-muted);flex-shrink:0}.player-badge-you{color:var(--text-faint);font-weight:400;font-size:10px}.player-badge.dead .player-badge-avatar{border-color:var(--border);background:#0c0e14cc}.player-badge-dead-x{position:absolute;inset:-2px;color:var(--red-bright);opacity:.8;pointer-events:none}.player-badge-avatar.mafia,.player-badge-avatar.don{border-color:#dc3c3c80;color:var(--red-bright)}.player-badge-avatar.detective{border-color:#648cff80;color:#8aa8ff}.player-badge-avatar.doctor{border-color:#3cc88c80;color:var(--teal)}.player-badge-avatar.villager{border-color:#c9a04559;color:var(--gold)}.player-badge-avatar.jester{border-color:#a855f780;color:#c084fc}.player-badge-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.player-badge-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-badge-name.dimmed{color:var(--text-faint);text-decoration:line-through;text-decoration-color:#dc3c3c59}.player-badge-role{align-self:flex-start;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:4px;color:var(--text-faint);background:#ffffff0d;border:1px solid var(--border)}.player-badge-role.mafia{color:var(--red-bright);background:var(--red-dim);border-color:#4a1010}.player-badge-role.don{color:#ff6b6b;background:#b4282826;border-color:#5a1515}.player-badge-role.villager{color:var(--gold);background:var(--gold-dim);border-color:#c9a04540}.player-badge-role.doctor{color:var(--teal);background:#0d94881a;border-color:#1a4030}.player-badge-role.detective{color:#7cb8ff;background:#5c8def1a;border-color:#1a3060}.player-badge-role.jester{color:#c084fc;background:#a855f71a;border-color:#2d1854}.player-badge-role.hidden{color:var(--text-faint);font-style:italic;font-weight:600}.player-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);font-size:14px;font-weight:600;border:1px solid var(--border-light);background:var(--bg-elevated);color:var(--text)}.player-chip.me{border-color:var(--gold);background:var(--gold-dim);box-shadow:0 0 8px var(--gold-glow)}.kick-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:12px;padding:0 2px;margin-left:2px;line-height:1;transition:color var(--transition)}.kick-btn:hover{color:var(--red-bright, #e05252)}.host-tag,.dead-tag,.role-tag{font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.06em}.host-tag{background:var(--gold-dim);color:var(--gold);border:1px solid #4a3408}.dead-tag{background:var(--red-dim);color:var(--red-bright);border:1px solid #4a1010}.role-tag{background:var(--bg);color:var(--text-faint);border:1px solid var(--border)}.narrator-log{background:linear-gradient(135deg,#101014eb,#0c0c10e6);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-md);font-family:var(--font-serif);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--card-highlight),0 2px 16px #00000047;position:relative}.narrator-log .section-collapsible-inner,.narrator-log .section-collapsible.open>.section-collapsible-inner{max-height:420px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(201,160,69,.35) transparent}.narrator-log .section-collapsible-inner::-webkit-scrollbar{width:6px}.narrator-log .section-collapsible-inner::-webkit-scrollbar-track{background:#ffffff0a;border-radius:3px}.narrator-log .section-collapsible-inner::-webkit-scrollbar-thumb{background:#c9a04559;border-radius:3px}.narrator-log .section-collapsible-inner::-webkit-scrollbar-thumb:hover{background:#c9a0458c}.narrator-log h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:700}.log-round-separator{display:flex;align-items:center;gap:10px;margin:10px 0 6px;font-family:var(--font-body);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);font-weight:700}.log-round-separator:before,.log-round-separator:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(201,160,69,.3),transparent)}.log-entry{font-family:inherit;padding:6px 10px;border-radius:var(--radius);margin-bottom:3px;font-size:13px;line-height:1.45;border-left:2px solid transparent;animation:log-slide-in .22s ease both}@keyframes log-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.log-entry:last-child{margin-bottom:8px}.log-entry.info{border-left-color:var(--border-light);color:var(--text-muted);opacity:.75}.log-entry.death{border-left-color:var(--red);color:var(--red-light);background:#160606}.log-entry.phasechange{border-left-color:var(--gold);color:var(--gold);font-family:var(--font-serif);font-style:italic;font-weight:600;font-size:13px;letter-spacing:.015em;background:linear-gradient(90deg,rgba(201,160,69,.08),transparent);text-shadow:0 0 8px var(--gold-glow)}.log-entry.voteresult{border-left-color:#fb923c;color:#fed7aa;background:#170e04}.log-entry.jestervictory{border-left-color:#a855f7;color:#d8b4fe;background:#a855f70f;font-weight:600}.log-entry.gameover{border-left-color:var(--red-bright);color:var(--red-bright);font-weight:700;font-size:14px;background:var(--red-dim)}.voting-panel{display:flex;flex-direction:column;gap:14px}.voting-panel>h3,.action-prompt>h3{margin:0;font-size:18px;font-family:var(--font-serif);color:var(--text)}.action-panel-copy{margin:-2px 0 2px;color:var(--text-muted);font-size:14px;line-height:1.55;max-width:62ch}.phase-action-row{display:flex;justify-content:center;margin-top:4px}.phase-timer-ghost{position:absolute;width:0;height:0;overflow:hidden;opacity:0;pointer-events:none}.phase-action-row .btn-primary,.phase-action-row .btn-danger,.phase-action-row .btn-secondary{min-width:220px}.voting-panel.ghost-voting{margin-top:14px}.ghost-vote-actions{gap:10px}.ghost-vote-skipped{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 0}.ghost-vote-skipped .phase-message{margin:0;font-size:13px}.u-text-center{text-align:center}.night-panel{display:flex;flex-direction:column;gap:16px}.night-action-frame{display:flex;flex-direction:column;gap:14px}.night-phase-intro{display:flex;align-items:center;gap:16px;padding:14px 18px;background:#080820;border:1px solid #1a1a50;border-radius:var(--radius-lg);box-shadow:inset 0 1px #6464c80f,0 0 30px #3232b414}.night-phase-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.night-phase-copy>h3{margin:0;color:#d9dcff;font-family:var(--font-serif);font-size:18px;line-height:1.35}.night-phase-copy>.action-panel-copy{margin:0;color:#dee2ffb8;max-width:56ch}.night-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.night-secret-panel{display:flex;flex-direction:column;gap:14px;padding:14px;border:1px solid rgba(200,160,70,.25);border-radius:var(--radius-lg);background:#c8a0460a;animation:panel-fade-in .25s ease both}.night-secret-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.night-secret-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);opacity:.7}.night-role-icon{width:18px;height:18px;flex-shrink:0}.night-role-badge{text-align:center;margin:10px 0 4px}.night-role-badge-label{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 16px;border-radius:var(--radius-sm);color:var(--gold);background:#c9a0451a;border:1px solid rgba(201,160,69,.25)}.night-secret--mafia .night-role-badge-label{color:var(--red-bright);background:#dc3c3c1a;border-color:#dc3c3c4d}.night-secret--doctor .night-role-badge-label{color:var(--teal);background:#3cc88c1a;border-color:#3cc88c4d}.night-secret--detective .night-role-badge-label{color:#8aa8ff;background:#648cff1a;border-color:#648cff4d}.night-secret--villager .night-role-badge-label{color:var(--gold);background:#c9a0451a;border-color:#c9a0454d}.night-secret--mafia{border-color:#dc3c3c4d;background:#dc3c3c0d}.night-secret--mafia .night-secret-label{color:var(--red-bright)}.night-secret--doctor{border-color:#3cc88c4d;background:#3cc88c0d}.night-secret--doctor .night-secret-label{color:var(--teal)}.night-secret--detective{border-color:#648cff4d;background:#648cff0d}.night-secret--detective .night-secret-label{color:#8aa8ff}.night-secret--jester .night-role-badge-label{color:var(--purple);background:#a855f71a;border-color:#a855f74d}.night-secret--villager{border-color:#c9a0454d;background:#c9a0450d}.night-secret--villager .night-secret-label{color:var(--gold)}.night-secret--jester{border-color:#a855f74d;background:#a855f70d}.night-secret--jester .night-secret-label{color:var(--purple)}.night-toolbar-label{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.night-moon{width:56px;height:56px;flex-shrink:0}.night-reveal-overlay{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;animation:panel-fade-in .25s ease both}@keyframes panel-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.night-reveal-overlay .btn-primary{position:relative}.night-reveal-overlay .btn-primary:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 28px #c9a04580,0 0 48px #c9a04533;opacity:0;animation:pulse-glow 2s ease-in-out infinite;pointer-events:none}@keyframes pulse-glow{0%,to{opacity:0}50%{opacity:1}}.reveal-hint{color:var(--text-muted);font-size:14px;text-align:center}.villager-explain{color:var(--text-muted);font-size:13px;font-style:italic;text-align:center;margin-bottom:12px;line-height:1.5;opacity:.8}.villager-hint{color:var(--text-muted);font-size:14px;text-align:center;margin-bottom:8px}.target-list{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.target-btn{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text);font-size:15px;cursor:pointer;transition:all var(--transition);text-align:left;font-family:var(--font-body);width:100%}.target-btn:hover{border-color:var(--text-muted);background:#202026}.target-btn.selected{border-color:var(--gold);background:var(--gold-dim);color:var(--text);box-shadow:0 0 10px var(--gold-glow)}.voting-panel .target-list{margin-bottom:0}.voting-panel .phase-action-row{margin-top:0}.voting-panel .target-btn.submitted{border-color:#3cc88c66;background:#3cc88c14}.night-secret--mafia .target-btn.selected{border-color:var(--red-bright);background:#dc3c3c1f;box-shadow:0 0 10px #dc3c3c33}.night-secret--mafia .target-btn.submitted{border-color:#dc3c3c66;background:#dc3c3c0f}.team-vote-indicator{font-size:11px;color:var(--red-bright);font-weight:700;letter-spacing:.04em}.night-secret--detective .target-btn.selected{border-color:#8aa8ff;background:#648cff1f;box-shadow:0 0 10px #648cff33}.night-secret--doctor .target-btn.selected{border-color:var(--teal);background:#3cc88c1f;box-shadow:0 0 10px #3cc88c33}.target-btn:disabled{opacity:.3;cursor:not-allowed}.vote-bar-wrap{display:flex;align-items:center;justify-content:flex-end;margin-left:12px}.voter-names{font-size:11px;color:var(--text-muted, #999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;margin-right:6px}.vote-count{font-size:11px;font-weight:700;color:var(--gold);white-space:nowrap;min-width:56px;text-align:right}.chat-panel{display:flex;flex-direction:column;background:linear-gradient(135deg,#101014eb,#0c0c10e6);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--card-highlight),0 2px 16px #00000047}.chat-header{display:flex;align-items:center;gap:.5rem;padding:12px 20px;border-bottom:1px solid var(--border)}.chat-header h4{margin:0;font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.chat-header-dot{display:block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--teal)}.chat-messages{display:flex;flex-direction:column;gap:6px;padding:14px 20px;max-height:260px;overflow-y:auto;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#ffffff0a;border-radius:3px;margin:8px 0}.chat-messages::-webkit-scrollbar-thumb{background:#c9a04559;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#c9a0458c}.chat-empty{color:var(--text-faint);font-size:13px;text-align:center;margin:12px 0}.chat-bubble{max-width:85%;padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius) var(--radius-lg) var(--radius-lg) var(--radius-lg);animation:panel-fade-in .15s ease both;line-height:1.45}.chat-bubble--me{align-self:flex-end;background:var(--gold-dim);border-color:#c9a04540;border-radius:var(--radius-lg) var(--radius) var(--radius-lg) var(--radius-lg)}.chat-author{font-size:12px;font-weight:700;color:var(--gold);margin-right:.4em}.chat-text{font-size:14px;color:var(--text);word-break:break-word}.chat-input-row{display:flex;align-items:center;gap:0;border-top:1px solid var(--border)}.chat-input{flex:1;padding:10px 20px;background:transparent;border:none;color:var(--text);font-size:14px;font-family:var(--font-body);outline:none}.chat-input::placeholder{color:var(--text-faint)}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:transparent;border:none;color:var(--gold);cursor:pointer;transition:color var(--transition);flex-shrink:0}.chat-send-btn:hover{color:#d9b458}.chat-send-btn:disabled{color:var(--text-faint);cursor:default}.config-hint{color:var(--text-faint);font-size:12px;margin:4px 0 0;line-height:1.5}.config-desc{color:var(--text-faint);font-weight:400}.phase-timer{display:inline-flex;align-items:center;font-family:monospace;font-size:22px;font-weight:700;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:5px 14px;min-width:72px;justify-content:center;letter-spacing:.05em}.phase-timer.warning{color:var(--red-bright);border-color:var(--red);box-shadow:0 0 10px var(--red-glow);animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.timer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}@media(max-width:640px){.phase-overview{grid-template-columns:1fr}.phase-overview-side,.phase-action-row .btn-primary,.phase-action-row .btn-danger,.phase-action-row .btn-secondary{width:100%}}.host-controls{display:flex;gap:10px;flex-wrap:wrap;padding-top:16px;margin-top:16px;border-top:1px solid var(--border)}.host-dashboard{background:var(--bg-card);border:1px solid #2e2200;border-radius:var(--radius-lg);padding:20px 24px;box-shadow:inset 0 1px #c9a0450a,0 0 20px #c9a0450d}.host-badge{font-size:10px;font-weight:700;color:var(--gold);background:#c9a0451f;padding:3px 10px;border-radius:20px;border:1px solid rgba(201,160,69,.24);letter-spacing:.08em}.dashboard-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:14px;display:flex;align-items:center;gap:8px}.dashboard-title:before{content:"";display:block;flex-shrink:0;width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 6px var(--gold-glow)}.host-table{width:100%;border-collapse:collapse;font-size:13px}.host-table th{text-align:left;padding:6px 10px;color:var(--text-faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);font-weight:700}.host-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.host-table tr:last-child td{border-bottom:none}.host-table tr.dead-row td{opacity:.35}.role-pill{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.role-pill.mafia,.role-pill.don{background:var(--red-dim);color:var(--red-bright);border:1px solid #4a1010}.role-pill.detective{background:var(--blue-dim);color:#60a5fa;border:1px solid #152a50}.role-pill.doctor{background:var(--teal-dim);color:var(--teal);border:1px solid #153530}.role-pill.villager{background:var(--gold-dim);color:var(--gold);border:1px solid rgba(201,160,69,.3)}.role-pill.jester{background:var(--purple-dim);color:var(--purple);border:1px solid rgba(168,85,247,.3)}.role-pill.hidden{background:transparent;color:#4d4d82;border:1px dashed #1e1e54}.night-action-cell{color:var(--text-faint);font-style:italic;font-size:12px}.night-action-cell.submitted{color:var(--teal);font-style:normal;font-weight:600}.consensus-indicator{font-size:12px;color:var(--red-bright);font-weight:600;margin-top:6px}.spectator-view{background:#06061a;border:1px solid #18184a;border-radius:var(--radius-lg);padding:20px 24px;box-shadow:inset 0 1px #818cf80d}.spectator-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}.spectator-ghost-icon{width:40px;height:40px;color:#818cf8;flex-shrink:0;opacity:.6}.spectator-message{color:var(--text-muted);font-size:13px;line-height:1.5;margin-top:6px}.spectator-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#818cf8;background:#0e0e30;border:1px solid #28286a;padding:3px 10px;border-radius:20px;margin-bottom:14px}.spectator-view h3{font-size:14px;margin-bottom:10px;color:#818cf8}.spectator-view p{max-width:60ch}.spectator-players{display:flex;flex-direction:column;gap:6px}.spectator-player-card{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius);border:1px solid #18184a;background:#0e0e3080;transition:background var(--transition)}.spectator-player-card.me{border-color:#28286a;background:#14143cb3}.spectator-player-card.dead{opacity:.55}.spectator-player-avatar{width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(129,140,248,.3);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--text-muted);position:relative;flex-shrink:0}.spectator-player-avatar.mafia,.spectator-player-avatar.don{border-color:#dc3c3c80;color:var(--red-bright)}.spectator-player-avatar.detective{border-color:#648cff80;color:#8aa8ff}.spectator-player-avatar.doctor{border-color:#3cc88c80;color:var(--teal)}.spectator-player-avatar.villager{border-color:#c9a0454d;color:var(--gold)}.spectator-player-avatar.jester{border-color:#a855f780;color:#c084fc}.spectator-player-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.spectator-player-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spectator-player-name.dimmed{color:var(--text-faint)}.spectator-you{color:var(--text-muted);font-weight:400;font-size:12px}.spectator-player-role{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.spectator-player-role.mafia,.spectator-player-role.don{color:var(--red-bright)}.spectator-player-role.detective{color:#8aa8ff}.spectator-player-role.doctor{color:var(--teal)}.spectator-player-role.villager{color:var(--gold)}.spectator-player-role.jester{color:#c084fc}.spectator-player-role.hidden{color:var(--text-faint);font-style:italic}.spectator-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.spectator-status.alive{color:var(--teal)}.spectator-status.eliminated{color:var(--red-bright)}.phase-panel>app-spectator-panel:not(:last-child){display:block;margin-bottom:16px}.game-over-panel{text-align:center}.winner-art{display:block;margin:0 auto 20px;opacity:.85}.winner{padding:32px;border-radius:var(--radius-lg);margin-bottom:24px;position:relative;overflow:hidden;text-align:center}.winner:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.04;pointer-events:none}.winner h2{font-size:44px;margin-bottom:8px;position:relative}.winner p{font-family:var(--font-serif);font-style:italic;font-size:18px;position:relative}.winner.village{background:linear-gradient(135deg,#060d08,#0a1e10);border:1px solid #1e3828;box-shadow:0 0 40px #0d94881f,inset 0 1px #0d948814}.winner.village h2{color:var(--teal);text-shadow:0 0 30px var(--teal-glow)}.winner.village p{color:#5eead4}.winner.mafia{background:linear-gradient(135deg,#0d0404,#1a0606);border:1px solid #4a1010;box-shadow:0 0 40px #b91c1c26,inset 0 1px #b91c1c0f}.winner.mafia h2{color:var(--red-bright);text-shadow:0 0 30px var(--red-glow)}.winner.mafia p{color:#fca5a5}.winner.jester{background:linear-gradient(135deg,#0a0515,#150a2e);border:1px solid #2d1854;box-shadow:0 0 40px #a855f71f,inset 0 1px #a855f714}.winner.jester h2{color:var(--purple);text-shadow:0 0 20px rgba(168,85,247,.2)}.winner.jester p{color:#d8b4fe}.game-over-panel .final-roles-heading{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin:24px 0 14px;text-align:left}.gameover-specials-heading{text-align:center;font-family:var(--font-serif);font-size:15px;color:var(--text-muted);margin-bottom:12px;letter-spacing:.02em}.gameover-specials{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px}.gameover-special{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;min-width:90px;border-radius:var(--radius);border:1px solid var(--border);background:#101218cc}@media(max-width:480px){.gameover-special{flex:1 1 calc(50% - 8px)}}.gameover-special-name{font-size:14px;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:2px}.gameover-special-role{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.gameover-special.mafia,.gameover-special.don{border-color:#dc3c3c4d}.gameover-special.mafia .gameover-special-role,.gameover-special.don .gameover-special-role{color:var(--red-bright)}.gameover-special.detective{border-color:#648cff4d}.gameover-special.detective .gameover-special-role{color:#8aa8ff}.gameover-special.doctor{border-color:#3cc88c4d}.gameover-special.doctor .gameover-special-role{color:var(--teal)}.gameover-special.jester{border-color:#a855f74d}.gameover-special.jester .gameover-special-role{color:var(--purple)}.gameover-badges{margin-bottom:28px}.game-over-panel .waiting-for-host{color:var(--text-muted);font-size:14px;font-style:italic;margin-top:var(--space-md)}.game-over-panel .btn-ghost{margin-top:var(--space-sm)}@keyframes shimmer-sweep{0%{transform:translate(0)}to{transform:translate(300%)}}@keyframes supporter-star-glow{0%,to{filter:drop-shadow(0 0 2px rgba(201,160,69,.3))}50%{filter:drop-shadow(0 0 8px rgba(201,160,69,.7))}}.shimmer-panel{position:relative;overflow:hidden}.shimmer-panel:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(120deg,transparent 10%,rgba(201,160,69,.1) 40%,rgba(201,160,69,.18) 50%,rgba(201,160,69,.1) 60%,transparent 90%);animation:shimmer-sweep 2.5s linear infinite;pointer-events:none}.supporter-cta-panel{padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,#101014eb,#0c0c10e6);border:1px solid rgba(201,160,69,.2);border-radius:var(--radius-lg);text-align:center}.supporter-cta-star{width:24px;height:24px;color:var(--gold);margin-bottom:var(--space-xs);animation:supporter-star-glow 3s ease-in-out infinite}.supporter-cta-text{font-size:14px;color:var(--text-muted);margin:0 0 var(--space-md);line-height:1.4}.supporter-cta-text+.supporter-cta-text{margin-top:calc(-1 * var(--space-sm))}.supporter-cta-link{display:inline-block;font-size:14px;font-weight:600;color:var(--gold);text-decoration:none;padding:var(--space-xs) var(--space-md);border:1px solid rgba(201,160,69,.3);border-radius:var(--radius);transition:background .2s,border-color .2s}.supporter-cta-link:hover{background:#c9a0451a;border-color:#c9a04580}.supporter-cta-dismiss{position:absolute;top:var(--space-xs);right:var(--space-xs);background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:14px;padding:var(--space-xs);line-height:1;opacity:.6;transition:opacity .2s}.supporter-cta-dismiss:hover{opacity:1}.play-supporter-nudge{margin:var(--space-2xl) var(--space-md) 0}.guest-badge{font-size:10px;font-weight:700;color:var(--text-faint);background:#ffffff0f;padding:3px 10px;border-radius:20px;border:1px solid rgba(255,255,255,.08);letter-spacing:.08em}.qr-join{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px auto}.qr-image{border-radius:var(--radius);border:1px solid var(--border-light);background:var(--bg);padding:4px;display:block;image-rendering:pixelated}.qr-hint{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.config-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.config-section-header h4{margin-bottom:0}.suggest-btn{font-size:11px;padding:3px 10px;color:var(--gold);border-color:#4a3408;background:var(--gold-dim)}.suggest-btn:hover:not(:disabled){background:#c9a0452e;border-color:var(--gold)}.timer-hint{font-size:12px;color:var(--text-faint);font-style:italic;margin-bottom:12px}.timer-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.timer-preset-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);font-family:var(--font-body);color:var(--text)}.timer-preset-btn:hover{border-color:var(--text-muted);background:var(--bg-elevated)}.timer-preset-btn.active{border-color:var(--gold);background:var(--gold-dim);box-shadow:0 0 10px var(--gold-glow)}.preset-name{font-size:14px;font-weight:600}.preset-detail{font-size:11px;color:var(--text-faint);font-family:monospace;letter-spacing:.02em}.recap-section{margin:24px 0;text-align:left}.recap-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-slow)}.recap-body.open{grid-template-rows:1fr}.recap-body>.recap-body-inner{overflow:hidden}.recap-toggle{background:none;border:none;color:var(--text-faint);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;padding:0;font-family:var(--font-body);transition:color var(--transition);display:flex;align-items:center;gap:6px;margin-bottom:14px}.recap-toggle:hover{color:var(--text-muted)}.recap-timeline{display:flex;flex-direction:column;gap:16px}.recap-round{border-left:2px solid var(--border-light);padding-left:16px;position:relative}.recap-round:before{content:"";position:absolute;left:-5px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--border-light);border:1px solid var(--bg)}.recap-round-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:8px}.recap-event{font-size:13px;padding:5px 0;color:var(--text-muted);line-height:1.5;border-bottom:1px solid var(--border)}.recap-event:last-child{border-bottom:none}.recap-event.death{color:var(--red-light)}.recap-event.voteresult{color:#fed7aa}.recap-event.phasechange{color:var(--gold);font-family:var(--font-serif);font-style:italic;font-weight:600;letter-spacing:.015em}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.stats-container{max-width:720px;margin:40px auto 0}.stats-container h1{font-family:var(--font-display);font-size:36px;font-weight:900;color:var(--gold);margin-bottom:12px;text-align:center;text-shadow:0 0 30px var(--gold-glow)}.stats-loading-text{color:var(--text-muted, rgba(255,255,255,.5));text-align:center}.stats-empty-state{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;padding:34px 28px;margin-bottom:24px;text-align:center;background:radial-gradient(circle at top,rgba(201,160,69,.12),transparent 40%),linear-gradient(180deg,#0f131cfa,#0a0d14fa);border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:var(--card-highlight),0 18px 40px #00000057;overflow:hidden}.stats-empty-state:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(201,160,69,.5),transparent);opacity:.7}.stats-empty-state-loading{min-height:240px;justify-content:center}.stats-empty-icon{width:84px;height:84px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--gold);background:radial-gradient(circle,#c9a04524,#c9a0450a);border:1px solid rgba(201,160,69,.24);box-shadow:0 0 36px #c9a04514}.stats-empty-icon svg{width:42px;height:42px}.stats-empty-content{max-width:480px}.stats-empty-eyebrow{display:inline-block;margin-bottom:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#ffffff73}.stats-empty-content h2{font-family:var(--font-display);font-size:28px;line-height:1.15;color:var(--text);margin-bottom:10px}.stats-empty-copy{max-width:38ch;margin:0 auto;color:var(--text-muted);font-size:15px}.stats-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.stats-page-actions{display:flex;justify-content:center;margin-top:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:24px}.stats-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--card-highlight)}.stats-card.village-card{border-color:#1e3828}.stats-card.mafia-card{border-color:#3a1010}.stats-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.stats-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}.stats-meta{font-size:13px;color:var(--text-muted)}.win-rate-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:24px;box-shadow:var(--card-highlight)}.win-rate-bar{display:flex;height:32px;border-radius:var(--radius);overflow:hidden;margin-top:10px}.win-rate-fill{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;transition:width .5s ease;min-width:0;overflow:hidden;white-space:nowrap}.win-rate-fill.village{background:var(--teal);color:#041210}.win-rate-fill.mafia{background:var(--red);color:#fff}.recent-games{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--card-highlight);overflow-x:auto}.recent-games h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:14px;font-weight:700}.stats-table{width:100%;border-collapse:collapse;font-size:13px}.stats-table th{text-align:left;padding:6px 10px;color:var(--text-faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);font-weight:700}.stats-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.stats-table tr:last-child td{border-bottom:none}.game-code-cell{font-family:monospace;letter-spacing:.1em;color:var(--gold)}.date-cell{color:var(--text-muted);font-size:12px}.winner-pill{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.winner-pill.village{background:var(--teal-dim);color:var(--teal);border:1px solid #153530}.winner-pill.mafia{background:var(--red-dim);color:var(--red-bright);border:1px solid #4a1010}@media(max-width:640px){.stats-container{margin-top:28px}.stats-container h1{font-size:30px}.stats-empty-state{padding:28px 18px;border-radius:16px}.stats-empty-icon{width:72px;height:72px}.stats-empty-content h2{font-size:24px}.stats-empty-actions,.stats-page-actions{flex-direction:column;align-items:stretch}.stats-empty-actions .btn-primary,.stats-empty-actions .btn-secondary,.stats-page-actions .btn-secondary{width:100%}}.profile-header{display:flex;align-items:center;gap:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--card-highlight)}.profile-header+.form-card,.profile-header+.profile-cta,.profile-header+.profile-supporter-card,.profile-header+.profile-supporter-cta,.form-card+.profile-supporter-card,.form-card+.profile-supporter-cta,.form-card+.form-card,.profile-supporter-card+.form-card,.profile-supporter-cta+.form-card{margin-top:var(--space-md)}.profile-avatar{width:48px;height:48px;border-radius:50%;background:var(--gold-dim);color:var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--gold)}.profile-avatar.guest{background:var(--bg-elevated);color:var(--text-muted);border-color:var(--border)}.profile-avatar svg{width:28px;height:28px}.profile-info{display:flex;flex-direction:column;gap:2px}.profile-name{font-size:18px;font-weight:700;font-family:var(--font-display);color:var(--text)}.profile-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}.profile-badge.guest{color:var(--text-faint)}.profile-cta{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:var(--space-md);text-align:center;box-shadow:var(--card-highlight)}.profile-cta p{color:var(--text-muted);font-size:14px;margin-bottom:16px;line-height:1.5}.profile-link-banner{background:var(--teal-dim);border:1px solid #153530;border-radius:var(--radius);padding:10px 16px;margin-bottom:20px;font-size:13px;color:var(--teal);text-align:center}.stats-section-heading{margin-top:var(--space-xl)}.recent-games+.recent-games,.stats-grid+.recent-games{margin-top:var(--space-md)}.danger-zone{border-color:#b91c1c4d;background:#b91c1c0a}.danger-zone .form-card-heading{color:var(--red-bright)}.delete-confirm-prompt{margin-top:var(--space-sm)}.delete-error{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--red-dim);border:1px solid rgba(185,28,28,.4);border-radius:var(--radius);color:var(--red-light);font-size:14px;line-height:1.5}.delete-error p{margin:0}button.btn-text{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:13px;cursor:pointer;padding:0;text-decoration:underline;text-decoration-color:transparent;transition:color var(--transition),text-decoration-color var(--transition)}button.btn-text:hover{color:var(--text);text-decoration-color:var(--text-muted)}#components-reconnect-modal,#blazor-error-ui{z-index:10000}#components-reconnect-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 14%,rgba(201,160,69,.18),transparent 32%),radial-gradient(circle at 50% 0%,rgba(255,244,214,.06),transparent 18%),#050506c2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#components-reconnect-modal.components-reconnect-show,#components-reconnect-modal.components-reconnect-failed,#components-reconnect-modal.components-reconnect-rejected{display:flex}.connection-status-card{position:relative;width:min(100%,34rem);padding:30px;border-radius:20px;border:1px solid rgba(201,160,69,.28);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 26%),linear-gradient(135deg,rgba(201,160,69,.14),transparent 40%),linear-gradient(180deg,#181208d1,#0c0c0ef7);box-shadow:0 32px 90px #00000094,0 0 48px #c9a04514,inset 0 1px #ffffff0a;overflow:hidden;animation:connection-status-enter .18s ease-out}.connection-status-card:before{content:"";position:absolute;top:0;left:28px;right:28px;height:1px;background:linear-gradient(90deg,transparent,rgba(201,160,69,.55),transparent)}.connection-status-card:after{content:"";position:absolute;inset:16px;border:1px solid rgba(255,255,255,.03);border-radius:12px;pointer-events:none}.connection-status-card-error:after,#blazor-error-ui .connection-status-card:after{border-color:#ffffff06}.connection-status-card::selection{background:#c9a04540}.connection-status-card h2{font-size:clamp(1.75rem,4vw,2.3rem);color:var(--text);margin-bottom:10px;max-width:12ch;text-wrap:balance}.connection-status-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--gold);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em}.connection-status-kicker:before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}.connection-status-copy{display:none;margin:0;max-width:31ch;color:var(--text-warm);font-size:15px;line-height:1.65}.connection-status-attempts{display:none;align-items:center;gap:10px;margin-top:18px;color:#9c8d6d;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.connection-status-pulse{width:10px;height:10px;border-radius:999px;background:var(--gold);box-shadow:0 0 #c9a04580;animation:connection-status-pulse 1.4s ease-out infinite}.connection-status-divider{color:var(--border-light)}.connection-status-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.connection-status-actions .btn-primary,.connection-status-actions .btn-secondary{min-width:120px}#components-reconnect-current-attempt,#components-reconnect-max-retries{min-width:1ch;color:var(--text)}#components-reconnect-modal.components-reconnect-show .connection-status-copy-waiting,#components-reconnect-modal.components-reconnect-failed .connection-status-copy-failed,#components-reconnect-modal.components-reconnect-rejected .connection-status-copy-rejected,#blazor-error-ui .connection-status-copy{display:block}#components-reconnect-modal.components-reconnect-show .connection-status-attempts,#components-reconnect-modal.components-reconnect-failed .connection-status-attempts{display:inline-flex}#blazor-error-ui{position:fixed;right:24px;bottom:24px;left:24px;display:none;max-width:34rem;margin-left:auto}#blazor-error-ui .connection-status-card{border-color:#ef444442;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 24%),linear-gradient(135deg,rgba(185,28,28,.26),transparent 42%),linear-gradient(180deg,#1c0a0af0,#100a0afa);box-shadow:0 28px 80px #0000008f,0 0 42px #ef444414,inset 0 1px #ffffff08}#blazor-error-ui .connection-status-kicker{color:#fca5a5}#blazor-error-ui .connection-status-copy{color:#e6b1b1}#blazor-error-ui .connection-status-card:before{background:linear-gradient(90deg,transparent,rgba(239,68,68,.6),transparent)}#blazor-error-ui .dismiss{cursor:pointer}#components-reconnect-modal.components-reconnect-show~#blazor-error-ui,#components-reconnect-modal.components-reconnect-failed~#blazor-error-ui,#components-reconnect-modal.components-reconnect-rejected~#blazor-error-ui{display:none!important}@keyframes connection-status-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes connection-status-pulse{0%{transform:scale(.95);box-shadow:0 0 #c9a04561}70%{transform:scale(1);box-shadow:0 0 0 12px #c9a04500}to{transform:scale(.95);box-shadow:0 0 #c9a04500}}@property --sky-sun-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@property --sky-moon-angle{syntax: "<angle>"; inherits: false; initial-value: 180deg;}@property --sky-sun-opacity{syntax: "<number>"; inherits: false; initial-value: 1;}@property --sky-moon-opacity{syntax: "<number>"; inherits: false; initial-value: 0;}@property --sky-stars-opacity{syntax: "<number>"; inherits: false; initial-value: 0;}.sky-animation{--sky-sun-angle: 0deg;--sky-moon-angle: 180deg;--sky-sun-opacity: 1;--sky-moon-opacity: 0;--sky-stars-opacity: 0;--sky-gradient: linear-gradient(180deg, #78bcff 0%, #a8ddff 38%, #ffd17e 100%);--sky-halo: radial-gradient(circle at 50% 22%, rgba(255, 247, 218, .18) 0%, rgba(255, 247, 218, 0) 38%), radial-gradient(circle at 50% 110%, rgba(255, 184, 87, .18) 0%, rgba(255, 184, 87, 0) 34%);--sky-veil: linear-gradient(180deg, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, .04) 28%, rgba(7, 12, 22, .12) 100%);--sky-mask: linear-gradient(180deg, rgba(12, 14, 22, 0) 0%, rgba(12, 14, 22, .18) 28%, rgba(7, 8, 12, .92) 100%);--sky-orbit-stroke: rgba(255, 235, 174, .18);position:relative;width:100%;height:160px;overflow:hidden;isolation:isolate;contain:layout paint style;container-type:size;border-radius:var(--radius-lg);border:1px solid #5b4420;box-shadow:var(--card-highlight),0 18px 40px #00000047;transition:border-color 1.6s ease,box-shadow 1.6s ease}.sky-animation.sky-day{border-color:#7d5b24;box-shadow:var(--card-highlight),0 18px 40px #78541a33;--sky-gradient: linear-gradient(180deg, #1a3d6e 0%, #2c5a8a 34%, #5a85a8 68%, #9a7a48 100%);--sky-halo: radial-gradient(circle at 50% 22%, rgba(241, 245, 255, .12) 0%, rgba(241, 245, 255, 0) 36%), radial-gradient(circle at 50% 110%, rgba(196, 157, 95, .15) 0%, rgba(196, 157, 95, 0) 34%);--sky-veil: linear-gradient(180deg, rgba(214, 227, 255, .12) 0%, rgba(255, 255, 255, .03) 28%, rgba(10, 16, 28, .22) 100%);--sky-mask: linear-gradient(180deg, rgba(8, 12, 20, 0) 0%, rgba(8, 12, 20, .14) 28%, rgba(8, 10, 16, .92) 100%);--sky-orbit-stroke: rgba(226, 234, 255, .14)}.sky-animation.sky-afternoon{border-color:#784325;box-shadow:var(--card-highlight),0 18px 44px #8a471447;--sky-gradient: linear-gradient(180deg, #4f80cf 0%, #f0a159 50%, #d56f34 100%);--sky-halo: radial-gradient(circle at 62% 26%, rgba(255, 223, 162, .16) 0%, rgba(255, 223, 162, 0) 34%), radial-gradient(circle at 50% 112%, rgba(169, 76, 25, .16) 0%, rgba(169, 76, 25, 0) 36%);--sky-veil: linear-gradient(180deg, rgba(255, 236, 207, .14) 0%, rgba(255, 219, 174, .06) 34%, rgba(20, 12, 10, .18) 100%);--sky-mask: linear-gradient(180deg, rgba(12, 11, 14, 0) 0%, rgba(12, 11, 14, .2) 28%, rgba(14, 8, 8, .94) 100%);--sky-orbit-stroke: rgba(255, 213, 150, .16)}.sky-animation.sky-evening{border-color:#6f2b28;box-shadow:var(--card-highlight),0 18px 44px #5c192257;--sky-gradient: linear-gradient(180deg, #183560 0%, #7a2952 44%, #f27d42 100%);--sky-halo: radial-gradient(circle at 72% 32%, rgba(255, 191, 110, .16) 0%, rgba(255, 191, 110, 0) 30%), radial-gradient(circle at 50% 112%, rgba(112, 36, 59, .18) 0%, rgba(112, 36, 59, 0) 38%);--sky-veil: linear-gradient(180deg, rgba(255, 220, 179, .06) 0%, rgba(255, 183, 126, .04) 30%, rgba(18, 12, 24, .28) 100%);--sky-mask: linear-gradient(180deg, rgba(12, 11, 17, 0) 0%, rgba(12, 11, 17, .26) 32%, rgba(8, 8, 14, .95) 100%);--sky-orbit-stroke: rgba(255, 178, 104, .18)}.sky-animation.sky-night{border-color:#253a72;box-shadow:var(--card-highlight),0 18px 44px #0a122a66;--sky-gradient: linear-gradient(180deg, #08101f 0%, #111c3c 42%, #1d234c 100%);--sky-halo: radial-gradient(circle at 50% 20%, rgba(102, 124, 255, .08) 0%, rgba(102, 124, 255, 0) 42%), radial-gradient(circle at 50% 112%, rgba(32, 38, 90, .16) 0%, rgba(32, 38, 90, 0) 40%);--sky-veil: linear-gradient(180deg, rgba(104, 124, 255, .06) 0%, rgba(255, 255, 255, .02) 24%, rgba(2, 5, 14, .28) 100%);--sky-mask: linear-gradient(180deg, rgba(6, 8, 18, 0) 0%, rgba(6, 8, 18, .24) 28%, rgba(4, 4, 10, .95) 100%);--sky-orbit-stroke: rgba(144, 164, 255, .16)}.sky-animation.sky-dawn{border-color:#5d3753;box-shadow:var(--card-highlight),0 18px 44px #582a464d;--sky-gradient: linear-gradient(180deg, #13182d 0%, #4b2752 48%, #f39d61 100%);--sky-halo: radial-gradient(circle at 24% 34%, rgba(255, 196, 123, .16) 0%, rgba(255, 196, 123, 0) 30%), radial-gradient(circle at 50% 112%, rgba(205, 103, 70, .18) 0%, rgba(205, 103, 70, 0) 38%);--sky-veil: linear-gradient(180deg, rgba(166, 178, 255, .06) 0%, rgba(255, 203, 149, .04) 28%, rgba(18, 10, 20, .24) 100%);--sky-mask: linear-gradient(180deg, rgba(11, 11, 18, 0) 0%, rgba(11, 11, 18, .22) 30%, rgba(7, 6, 11, .94) 100%);--sky-orbit-stroke: rgba(255, 189, 122, .18)}.sky-animation.sky-gameover{border-color:#6c1730;box-shadow:var(--card-highlight),0 20px 46px #4d0b186b;--sky-gradient: linear-gradient(180deg, #0a0612 0%, #2a0c25 48%, #240715 100%);--sky-halo: radial-gradient(circle at 50% 22%, rgba(123, 28, 61, .12) 0%, rgba(123, 28, 61, 0) 34%), radial-gradient(circle at 50% 112%, rgba(91, 9, 31, .16) 0%, rgba(91, 9, 31, 0) 36%);--sky-veil: linear-gradient(180deg, rgba(199, 40, 72, .06) 0%, rgba(255, 255, 255, .01) 20%, rgba(7, 2, 8, .3) 100%);--sky-mask: linear-gradient(180deg, rgba(10, 5, 10, 0) 0%, rgba(10, 5, 10, .26) 30%, rgba(5, 2, 6, .96) 100%);--sky-orbit-stroke: rgba(184, 63, 93, .18)}.sky-gradient{--sky-layer-gradient: linear-gradient(180deg, #78bcff 0%, #a8ddff 34%, #ffe7b8 72%, #f5bb6d 100%);--sky-layer-halo: radial-gradient(circle at 50% 22%, rgba(255, 247, 218, .18) 0%, rgba(255, 247, 218, 0) 38%), radial-gradient(circle at 50% 110%, rgba(255, 185, 95, .2) 0%, rgba(255, 185, 95, 0) 34%);--sky-layer-veil: linear-gradient(180deg, rgba(255, 255, 255, .22) 0%, rgba(255, 255, 255, .04) 30%, rgba(16, 20, 34, .12) 100%);position:absolute;inset:0;background:var(--sky-layer-gradient);z-index:0}.sky-gradient-overlay{opacity:0;pointer-events:none}.sky-gradient:before,.sky-gradient:after{content:"";position:absolute;inset:0;pointer-events:none}.sky-gradient:before{inset:-12%;background:var(--sky-layer-halo);opacity:.7}.sky-gradient:after{background:var(--sky-layer-veil)}.sky-orbit-guide{position:absolute;left:50%;top:76%;width:76cqw;height:54cqh;transform:translate(-50%,-50%);border:1px solid var(--sky-orbit-stroke);border-radius:999px;opacity:.85;-webkit-mask-image:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.15) 70%,transparent 100%);mask-image:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.15) 70%,transparent 100%);z-index:1;transition:border-color 1.8s ease,opacity 1.8s ease}.sky-stars{position:absolute;inset:0;z-index:1;opacity:0;pointer-events:none}.sky-stars svg{width:100%;height:100%}.sky-star-1{opacity:.9}.sky-star-2{opacity:.6}.sky-star-3{opacity:.35}.sky-skyline{position:absolute;bottom:0;left:0;width:100%;height:140px;z-index:4;color:#0a0a10;transition:color 2s ease}.sky-animation.sky-day .sky-skyline,.sky-animation.sky-afternoon .sky-skyline{color:#1a1510}.sky-animation.sky-evening .sky-skyline{color:#120810}.sky-animation.sky-dawn .sky-skyline{color:#0e0810}.sky-animation.sky-night .sky-windows{opacity:.7}.sky-animation.sky-dawn .sky-windows{opacity:.5}.sky-animation.sky-day .sky-windows{opacity:.15}.sky-animation.sky-afternoon .sky-windows{opacity:.25}.sky-animation.sky-evening .sky-windows{opacity:.55}.sky-body{position:absolute;left:0;top:0;z-index:2;pointer-events:none;will-change:transform,opacity;transform:translate(calc(var(--body-x, 50cqw) - 50%),calc(var(--body-y, 26cqh) - 50%))}.sky-sun-body{width:64px;height:64px;opacity:1}.sky-moon-body{width:56px;height:56px;opacity:0}.sky-sun,.sky-moon{width:100%;height:100%;display:block;transition:opacity 1.6s ease}.sky-sun{filter:drop-shadow(0 0 12px rgba(251,191,36,.36))}.sky-moon{filter:drop-shadow(0 0 10px rgba(129,140,248,.26))}.sky-animation.sky-day .sky-sun{filter:drop-shadow(0 0 14px rgba(251,191,36,.42))}.sky-animation.sky-afternoon .sky-sun{filter:drop-shadow(0 0 14px rgba(249,115,22,.38))}.sky-animation.sky-evening .sky-sun{filter:drop-shadow(0 0 16px rgba(248,113,113,.34))}.sky-animation.sky-night .sky-sun{filter:drop-shadow(0 0 6px rgba(251,191,36,.14))}.sky-animation.sky-dawn .sky-sun{filter:drop-shadow(0 0 14px rgba(251,146,60,.38))}.sky-animation.sky-gameover .sky-sun{filter:drop-shadow(0 0 8px rgba(239,68,68,.16))}.sky-animation.sky-day .sky-moon{filter:drop-shadow(0 0 4px rgba(129,140,248,.06))}.sky-animation.sky-afternoon .sky-moon{filter:drop-shadow(0 0 5px rgba(129,140,248,.1))}.sky-animation.sky-evening .sky-moon{filter:drop-shadow(0 0 8px rgba(129,140,248,.18))}.sky-animation.sky-night .sky-moon{filter:drop-shadow(0 0 14px rgba(148,163,255,.34))}.sky-animation.sky-dawn .sky-moon{filter:drop-shadow(0 0 10px rgba(148,163,255,.22))}.sky-animation.sky-gameover .sky-moon{filter:drop-shadow(0 0 10px rgba(248,113,113,.14))}.sky-horizon-mask{position:absolute;inset:auto 0 0;height:42%;z-index:3;background:var(--sky-mask);pointer-events:none;transition:background 1.8s ease}@media(prefers-reduced-motion:reduce){.sky-gradient,.sky-stars,.sky-sun,.sky-moon,.sky-animation,.sky-skyline,.sky-horizon-mask,.sky-orbit-guide{transition:none}.sky-stars svg,.sky-gradient:before{animation:none}.connecting-spinner,.connection-status-pulse,.connection-status-card,.log-entry,.connecting-state{animation:none}.connecting-spinner{opacity:.5}}.sky-animation.sky-day .sky-horizon-line{color:#c9a045;opacity:.2}.sky-animation.sky-evening .sky-horizon-line{color:#c04830;opacity:.3}.sky-animation.sky-night .sky-horizon-line{color:#818cf8;opacity:.12}@media(max-width:600px){.app-main{padding:16px 12px}.lobby-container{margin-top:24px}.lobby-container h1{font-size:36px}.share-code{font-size:30px;letter-spacing:.15em;padding:12px 16px}.form-card{padding:20px}.phase-panel,.players-section,.chat-panel,.narrator-log,.host-dashboard,.overview-dashboard{padding:16px}.chat-header{padding:10px 16px}.chat-messages{padding:12px 16px}.chat-input{padding:10px 16px}.game-header{padding:11px 14px 8px}.game-header-main,.private-panel-header,.night-toolbar{flex-direction:column;align-items:stretch}.game-header-badges{justify-content:flex-start}.game-code{font-size:20px}.header-stat-pill{justify-content:space-between}.phase-overview{grid-template-columns:1fr;padding:2px 0 0}.game-header-roles{flex-direction:column;gap:10px}.host-table,.spectator-roles-table{font-size:12px}.night-phase-intro{flex-direction:column;text-align:center;align-items:center}.night-moon{width:44px;height:44px}.game-page-sky{inset:54px 0 0}.game-page-sky .sky-animation{height:100%;min-height:100%}.game-page-sky .sky-skyline{bottom:12%;height:200px}.game-page-sky .sky-orbit-guide{top:54%;width:84cqw;height:38cqh}.game-page-sky .sky-body{transform:translate(-50%,-50%) translateY(-46px)}.game-page-sky .sky-sun-body{width:100px;height:100px}.game-page-sky .sky-moon-body{width:86px;height:86px}.game-page-sky .sky-stars svg{transform:scale(1.08)}.sky-animation{height:110px}.sky-sun-body{width:56px;height:56px}.sky-moon-body{width:48px;height:48px}.overview-card-wide{grid-column:span 1}#components-reconnect-modal{padding:16px}.connection-status-card{padding:22px 20px}.connection-status-card:before{left:20px;right:20px}.connection-status-card:after{inset:12px}.connection-status-card h2,.connection-status-copy{max-width:none}.connection-status-actions>*{flex:1 1 100%}#blazor-error-ui{right:12px;bottom:12px;left:12px;max-width:none}}.dev-page{max-width:1080px;margin:0 auto;padding:32px 20px 56px;display:flex;flex-direction:column;gap:32px}.dev-header{display:flex;flex-direction:column;gap:8px}.dev-title{font-family:var(--font-display);color:var(--gold);margin-bottom:0}.dev-copy{max-width:72ch;color:var(--text-muted)}.dev-card{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:#ffffff08}.dev-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dev-section-header h2{font-size:24px}.dev-section-header p{color:var(--text-muted)}.dev-info{display:flex;gap:12px;align-items:center;font-family:var(--font-body);color:var(--text-muted);flex-wrap:wrap}.dev-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dev-metric{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);background:#ffffff05;min-width:0}.dev-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dev-value{color:var(--gold);font-weight:600;font-size:16px}.dev-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.dev-btn{padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);font-family:var(--font-body);font-size:13px;cursor:pointer;transition:border-color .15s,background .15s}.dev-btn:hover{border-color:var(--gold-dim);background:var(--bg-elevated)}.dev-btn-active{border-color:var(--gold);color:var(--gold);background:var(--bg-elevated)}.dev-btn-cycle{border-color:var(--teal-dim);color:var(--teal)}.dev-btn-cycle:hover{border-color:var(--teal)}.dev-preview-frame{margin:4px -4px 0}.dev-sky-frame{overflow:hidden;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.06)}@media(max-width:900px){.dev-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dev-page{padding:24px 12px 40px}.dev-card{padding:10px 12px}.dev-section-header{flex-direction:column}.dev-info-grid{grid-template-columns:1fr}}.monitor-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.monitor-header h1{font-family:var(--font-display);font-size:22px;color:var(--gold);margin:0}.monitor-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.monitor-dot{width:8px;height:8px;border-radius:50%}.dot-ok{background:#22c55e;box-shadow:0 0 6px #22c55e80}.dot-err{background:#ef4444;box-shadow:0 0 6px #ef444480}.monitor-status-text{font-weight:600}.monitor-ts{opacity:.6;font-size:12px}.monitor-section{display:flex;flex-direction:column;gap:16px}.monitor-section h2{font-size:17px;font-family:var(--font-display);color:var(--text);margin:0;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.monitor-sub-section{margin-top:4px;display:flex;flex-direction:column;gap:12px}.monitor-sub-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.monitor-hero-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.monitor-hero-card{text-align:center;padding:var(--space-lg) var(--space-md)}.monitor-hero-value{font-size:32px}.monitor-table-wrap{overflow-x:auto}.monitor-table{width:100%;border-collapse:collapse;font-size:13px}.monitor-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.monitor-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text)}.monitor-table tbody tr:hover{background:#ffffff05}.monitor-empty{text-align:center;padding:32px 20px;color:var(--text-muted)}.monitor-footer{text-align:center;padding-top:16px}.monitor-footer a{color:var(--text-muted);font-size:13px}.monitor-footer a:hover{color:var(--gold)}.phase-bars{display:flex;flex-direction:column;gap:10px}.phase-row{display:grid;grid-template-columns:100px 1fr 40px;align-items:center;gap:10px;font-size:13px}.phase-name{color:var(--text-muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.phase-bar-track{height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.phase-bar-fill{height:100%;background:var(--gold-dim);border-radius:4px;transition:width .3s ease}.phase-count{text-align:right;color:var(--text-muted)}.phase-pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:#ffffff0f;color:var(--text-muted)}.monitor-games-list{display:flex;flex-direction:column;gap:var(--space-sm)}.monitor-game-card{border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:#ffffff05;overflow:hidden}.monitor-game-card.game-expanded{border-color:#ffffff1f}.monitor-game-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);width:100%;border:none;background:transparent;color:var(--text);font-family:var(--font-body);font-size:13px;cursor:pointer;transition:background .15s}.monitor-game-header:hover{background:#ffffff08}.game-code-cell{font-family:var(--font-mono, monospace);letter-spacing:.04em;font-weight:600;color:var(--gold)}.game-round{color:var(--text-muted);font-size:12px}.conn-indicator{font-size:12px;padding:2px 6px;border-radius:8px}.conn-ok{background:#22c55e26;color:#22c55e}.conn-partial{background:#fbbf2426;color:#fbbf24}.game-age{color:var(--text-muted);font-size:12px;margin-left:auto}.game-expand-icon{color:var(--text-muted);font-size:16px;font-weight:600;width:20px;text-align:center}.monitor-player-list{border-top:1px solid rgba(255,255,255,.06);padding:0 var(--space-xs)}.monitor-player-list .monitor-table td{padding:8px 12px}.player-dead td{opacity:.5}.player-spectator td{opacity:.6;font-style:italic}.player-badge{display:inline-block;font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;margin-left:6px;vertical-align:middle}.host-badge{background:var(--gold-dim);color:var(--gold)}.role-text{font-size:12px}.spectator-role{color:var(--text-muted);font-style:italic}.waiting-role{color:var(--text-dim)}.status-badge{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600}.alive-status{background:#22c55e26;color:#22c55e}.dead-status{background:#ef444426;color:#ef4444}.spectator-status{background:#ffffff0f;color:var(--text-muted)}.status-badge.status-ok{background:#22c55e26;color:#22c55e}.conn-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.monitor-completed-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.monitor-completed-header h2{margin:0}.timeframe-selector{display:flex;gap:var(--space-xs)}.timeframe-btn{padding:4px 12px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:transparent;color:var(--text-muted);font-size:12px;font-family:var(--font-body);cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.timeframe-btn:hover{background:#ffffff0d;color:var(--text)}.timeframe-btn.timeframe-active{background:#ffffff14;border-color:var(--gold);color:var(--gold)}.monitor-hero-value.completed-village{color:#22c55e}.monitor-hero-value.completed-mafia{color:#ef4444}.monitor-hero-value.completed-neutral{color:#a78bfa}.pill-village{background:#22c55e26;color:#22c55e}.pill-mafia{background:#ef444426;color:#ef4444}.pill-neutral{background:#a78bfa26;color:#a78bfa}.monitor-game-details{border-top:1px solid rgba(255,255,255,.06);padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.monitor-game-detail-row{display:flex;gap:var(--space-md);font-size:13px}.detail-label{color:var(--text-muted);min-width:80px}.detail-value{color:var(--text)}.monitor-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-md)}.pagination-info{color:var(--text-muted);font-size:13px}.game-meta{color:var(--text-muted);font-size:12px}@media(max-width:640px){.monitor-header{flex-direction:column;align-items:flex-start}.monitor-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-hero-value{font-size:24px}.monitor-game-header{flex-wrap:wrap;gap:var(--space-sm)}.phase-row{grid-template-columns:80px 1fr 30px}}.privacy-container{max-width:720px;margin:0 auto;padding:40px 20px 60px;color:var(--text)}.privacy-container h1{font-family:var(--font-display);color:var(--gold);margin-bottom:4px}.privacy-updated{color:var(--text-muted);font-size:14px;margin-bottom:32px}.privacy-container section{margin-bottom:28px}.privacy-container h2{font-family:var(--font-display);font-size:20px;color:var(--text);margin-bottom:8px}.privacy-container h3{font-size:16px;color:var(--text-muted);margin:12px 0 6px}.privacy-container ul{padding-left:20px;margin:6px 0}.privacy-container li{margin-bottom:4px;color:var(--text-muted);line-height:1.6}.privacy-container p{color:var(--text-muted);line-height:1.6}.privacy-container a{color:var(--gold)}.privacy-back{margin-top:32px;text-align:center}.changelog-container{max-width:720px;margin:0 auto;padding:40px 20px 60px;color:var(--text)}.changelog-container h1{font-family:var(--font-display);color:var(--gold);margin-bottom:4px}.changelog-subtitle{color:var(--text-muted);font-size:14px;margin-bottom:36px}.changelog-release{margin-bottom:36px;border-left:2px solid var(--gold-dim, rgba(212, 175, 55, .25));padding-left:20px}.changelog-version-row{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.changelog-version-row h2{font-family:var(--font-display);font-size:22px;color:var(--text);margin:0}.changelog-date{font-size:13px;color:var(--text-muted)}.changelog-section{margin-bottom:12px}.changelog-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:4px;margin-bottom:6px}.changelog-badge--added{background:#3cc88c26;color:#3cc88c}.changelog-badge--changed{background:#d4af3726;color:var(--gold)}.changelog-badge--fixed{background:#64a0ff26;color:#64a0ff}.changelog-container ul{padding-left:20px;margin:6px 0}.changelog-container li{margin-bottom:4px;color:var(--text-muted);line-height:1.6}.changelog-back{margin-top:32px;text-align:center}.contact-container{max-width:840px;margin:0 auto;padding:40px 20px 60px;color:var(--text)}.contact-container h1{font-family:var(--font-display);font-size:36px;font-weight:900;color:var(--gold);margin-bottom:12px;text-align:center;text-shadow:0 0 30px var(--gold-glow)}.contact-intro{color:var(--text-muted);font-size:16px;line-height:1.6;margin-bottom:32px;text-align:center}.contact-cards{display:grid;gap:20px;margin-bottom:36px}@media(min-width:640px){.contact-cards{grid-template-columns:repeat(3,1fr)}}.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 20px;display:flex;flex-direction:column}.contact-card-icon{width:40px;height:40px;color:var(--gold);margin-bottom:14px}.contact-card h2{font-family:var(--font-display);font-size:18px;color:var(--text);margin-bottom:6px}.contact-card p{color:var(--text-muted);font-size:14px;line-height:1.5;margin-bottom:12px;flex:1}.contact-link{color:var(--gold);font-size:14px;text-decoration:none;word-break:break-all;cursor:pointer}.contact-link:hover{text-decoration:underline}.contact-creator{text-align:center;margin-bottom:32px}.contact-creator h2{font-family:var(--font-display);font-size:20px;color:var(--text);margin-bottom:8px}.contact-creator-name{font-family:var(--font-display);font-size:18px;color:var(--text);margin-bottom:2px}.contact-creator-role{color:var(--accent);font-size:14px;margin-bottom:12px}.contact-creator-bio{color:var(--text-muted);line-height:1.7;max-width:560px;margin:0 auto;font-size:15px}.contact-bug-form{max-width:480px;margin:0 auto 32px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}.contact-bug-form h2{font-family:var(--font-display);font-size:20px;color:var(--text);margin-bottom:16px}.bug-form-field{margin-bottom:14px}.bug-form-field label{display:block;font-size:14px;color:var(--text-muted);margin-bottom:6px}.bug-form-field textarea{resize:vertical;min-height:100px}.contact-bug-form .btn-primary{width:100%;margin-top:8px}.bug-form-success{color:#4ade80;text-align:center;padding:12px 16px;border:1px solid rgba(74,222,128,.3);border-radius:8px;background:#4ade8014}.bug-form-error{color:#f87171;font-size:14px;padding:12px 16px;border:1px solid rgba(248,113,113,.3);border-radius:8px;background:#f8717114;margin-bottom:8px}.bug-form-hint{font-size:12px;color:#9ca3af;margin-top:4px}.bug-form-file-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}.bug-form-file-list li{display:flex;align-items:center;gap:8px;font-size:13px;color:#d1d5db;padding:4px 8px;background:#ffffff0d;border-radius:4px}.bug-form-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bug-form-file-remove{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.bug-form-file-remove:hover{color:#f87171;background:#f871711a}.contact-company{text-align:center;margin-bottom:8px}.contact-company h2{font-family:var(--font-display);font-size:20px;color:var(--text);margin-bottom:8px}.contact-company p{color:var(--text-muted);line-height:1.6;margin-bottom:4px}.contact-company .contact-link{display:inline-block;margin-top:4px}@media(max-width:640px){.contact-container h1{font-size:30px}}.contact-back{margin-top:32px;text-align:center}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:60vh;padding:40px 20px}.not-found-icon{width:120px;height:120px;margin-bottom:24px}.not-found h1{font-family:var(--font-display);color:var(--gold);font-size:28px;margin-bottom:8px}.not-found p{color:var(--text-muted);font-size:16px;max-width:400px;line-height:1.6}.not-found-actions{margin-top:28px}.support-banner{background:#080c16eb;border-bottom:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:9px 48px 9px 24px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-muted);position:sticky;top:calc(54px + env(safe-area-inset-top,0px));z-index:99;animation:banner-slide-in .3s ease-out}@keyframes banner-slide-in{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:60px;padding-top:9px;padding-bottom:9px}}.support-banner-heart{width:11px;height:11px;flex-shrink:0;color:var(--gold);margin-right:5px}.support-banner a{color:var(--gold);transition:opacity var(--transition)}.support-banner a:hover{opacity:.75}.support-banner-dismiss{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:14px;line-height:1;padding:4px 6px;transition:color var(--transition)}.support-banner-dismiss:hover{color:var(--text-muted)}.cookie-consent{position:fixed;bottom:0;left:0;right:0;background:var(--bg-elevated);border-top:1px solid var(--border);padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:16px;z-index:1000;font-size:14px}.cookie-consent p{margin:0;color:var(--text-muted)}.cookie-consent a{color:var(--gold)}.btn-small{padding:6px 16px;font-size:13px}.account-container{max-width:420px;margin:60px auto 0;padding:0 var(--space-md);text-align:center}.account-container h1{font-family:var(--font-display);font-size:36px;color:var(--gold);margin-bottom:var(--space-lg);text-shadow:0 0 30px var(--gold-glow)}.account-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-lg);text-align:left;box-shadow:0 4px 24px #0006}.account-card .social-login-buttons{margin-bottom:0}.account-register-cta{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-md);text-align:center}.account-register-cta p{margin:0 0 var(--space-sm);color:var(--text-muted);font-size:14px}.account-register-cta .btn-secondary{display:inline-block;text-decoration:none}.account-field{text-align:left;margin-bottom:var(--space-md)}.account-card label{font-size:12px}.account-desc{color:var(--text-muted);font-size:14px;margin:0 0 var(--space-md)}.account-success{background:#4caf501a;border:1px solid rgba(76,175,80,.4);color:#81c784;border-radius:var(--radius);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);font-size:14px;text-align:center}.account-error{background:var(--red-dim);border:1px solid var(--red);color:var(--red-bright);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);font-size:14px;text-align:left}.account-submit{width:100%;margin-top:var(--space-md);padding:.75rem}.account-links{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border);text-align:center;font-size:14px;color:var(--text-muted)}.account-links a{color:var(--gold);text-decoration:none}.account-links a:hover{text-decoration:underline}.account-alt{margin-top:var(--space-md);font-size:14px;color:var(--text-muted)}.account-alt a{color:var(--gold);text-decoration:none}.account-alt a:hover{text-decoration:underline}.social-login-buttons{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.btn-social{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 16px;border-radius:var(--radius);font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;cursor:pointer;border:1px solid var(--border)}.btn-google{background:#fff;color:#3c4043}.btn-google:hover{background:#f7f8f8;border-color:#dadce0}.btn-apple{background:#000;color:#fff;border-color:#333}.btn-apple:hover{background:#1a1a1a}.account-divider{display:flex;align-items:center;margin:var(--space-md) 0;color:var(--text-muted);font-size:12px}.account-divider:before,.account-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.account-divider span{padding:0 var(--space-md);white-space:nowrap}.profile-verify-notice{background:#ffb74d1a;border:1px solid rgba(255,183,77,.3);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);margin-bottom:var(--space-sm);text-align:left}.profile-verify-notice p{color:#ffb74d;font-size:13px;margin:0 0 var(--space-sm)}.profile-linked-accounts{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-sm)}.profile-linked-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#805ad526;border:1px solid rgba(128,90,213,.3);border-radius:var(--radius);font-size:13px;color:var(--text-secondary)}.validation-message{color:var(--red-bright);font-size:12px;margin-top:2px}@media(max-width:900px){.landing-steps{grid-template-columns:repeat(2,1fr)}.landing-showcase{gap:24px}.landing-phone-frame{max-width:180px}}@media(max-width:640px){.landing-title{font-size:42px}.landing-tagline{font-size:18px}.landing-subtitle{font-size:14px}.landing-hero-content{margin-top:-24px}.landing-section{padding:40px 16px}.landing-section-title{font-size:26px}.guide-page-title{font-size:30px}.landing-steps{grid-template-columns:1fr;gap:14px}.landing-showcase{grid-template-columns:1fr;gap:40px;max-width:260px;margin:0 auto}.landing-phone-frame{max-width:100%}.landing-roles,.landing-features{grid-template-columns:1fr}.landing-cta h2{font-size:28px}.landing-cta{padding:40px 16px}.landing-milestone{flex-direction:column;align-items:center;text-align:center}.landing-milestone-goal{flex-direction:row;gap:8px;width:auto}}.dev-preview{position:relative;min-height:100vh}.dev-fab{position:fixed;bottom:20px;right:20px;z-index:1100;width:44px;height:44px;border-radius:50%;border:1px solid var(--gold);background:#0a0d14eb;color:var(--gold);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #00000080;transition:background var(--transition),transform var(--transition)}.dev-fab:hover{background:#c9a04526;transform:scale(1.08)}.dev-panel-backdrop{position:fixed;inset:0;z-index:1050}.dev-panel{position:fixed;bottom:74px;right:20px;z-index:1100;width:260px;background:#0a0d14f5;border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dev-panel-title{font-size:13px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;margin:0}.dev-control{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-secondary)}.dev-control span{white-space:nowrap}.dev-control select,.dev-control input[type=range]{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-radius:4px;padding:4px 8px;font-size:12px;flex:1;min-width:0}.dev-control select option{background:#12161f;color:#e8e0d0}.dev-toggles{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px;color:var(--text-secondary)}.dev-toggles label{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}
