:root{--bg-primary:#0e1014;--bg-secondary:#181a1f;--bg-tertiary:#22242a;--bg-card:#1d1f26;--surface-1:color-mix(in srgb, var(--bg-secondary) 82%, black 18%);--surface-2:color-mix(in srgb, var(--bg-card) 86%, black 14%);--surface-3:color-mix(in srgb, var(--bg-tertiary) 88%, black 12%);--panel-glass:linear-gradient(180deg, #ffffff0a, transparent 44%), #10131ad6;--panel-glass-strong:linear-gradient(180deg, #ffffff0d, transparent 42%), #0e1118e6;--panel-solid:color-mix(in srgb, var(--bg-card) 88%, black 12%);--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--accent:#f78166;--accent-hover:#ffa28b;--accent-narrative:#c9956a;--accent-narrative-hover:#dba87c;--success:#3fb950;--warning:#d4a017;--danger:#f85149;--info:#58a6ff;--border:#30363d;--hp-full:#3fb950;--hp-mid:#d29922;--hp-low:#f85149;--hp-critical:#da3633;--momentum-high:#a371f7;--momentum-positive:#3fb950;--momentum-zero:#8b949e;--momentum-negative:#f85149;--stat-guts:#f85149;--stat-smarts:#58a6ff;--stat-heart:#f778ba;--stat-edge:#d29922;--stat-custom:#a371f7;--radius:8px;--radius-lg:12px;--radius-xl:20px;--border-soft:color-mix(in srgb, var(--text-primary) 10%, transparent);--border-strong:color-mix(in srgb, var(--text-primary) 18%, transparent);--border-accent:color-mix(in srgb, var(--accent) 40%, transparent);--shadow:0 2px 8px #0000004d;--shadow-soft:0 12px 32px #0000003d;--shadow-elevated:0 18px 48px #00000057;--shadow-accent:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 16px 36px #c864322e;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-brand:"Cinzel", "Georgia", serif;--gradient-ember:linear-gradient(135deg, #f78166 0%, #c9956a 100%);--border-glow:#f7816640;--shadow-warm:0 2px 8px #c8643226;--ambient-top:radial-gradient(circle at top, #f7816624, transparent 28%);--ambient-side:radial-gradient(circle at 85% 12%, #c9956a1f, transparent 22%);--ambient-cool:radial-gradient(circle at 15% 80%, #58a6ff1a, transparent 26%)}@font-face{font-family:Cinzel;src:url(/static/fonts/Cinzel-Variable.woff2)format("woff2");font-weight:400 900;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}:where(button,[role=button],input,select,textarea,a,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.icon{vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px;display:inline-block}.icon-sm{width:12px;height:12px}.icon-lg{width:20px;height:20px}#app{isolation:isolate;position:relative}#app:before{content:"";display:none}.setup-step,.login-section,.overlay-content,.hud,.game-header,.vow-bar,.narration-panel,.input-area,.input-panel,.dice-panel,.mobile-hud,.advanced-options,.session-resume-card{border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.setup-step,.login-section,.overlay-content,.advanced-options,.session-resume-card{background:var(--panel-glass)}.hud,.game-header,.vow-bar,.narration-panel,.input-area,.input-panel,.dice-panel,.mobile-hud{background:linear-gradient(180deg, #ffffff08, transparent 50%), var(--surface-1)}.setup-step,.login-section{border-radius:calc(var(--radius-lg) + 8px)}.btn,.google-button,.btn-secondary{border-radius:14px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s,color .18s;position:relative;overflow:hidden}.btn:hover,.google-button:hover,.btn-secondary:hover{transform:translateY(-1px)}.btn-primary{background:var(--gradient-ember);box-shadow:var(--shadow-accent)}.btn-primary:hover{background:linear-gradient(135deg, var(--accent-hover) 0%, #e0b287 100%)}.btn-secondary,.google-button{background:linear-gradient(180deg, #ffffff0a, transparent 50%), color-mix(in srgb, var(--surface-3) 92%, black 8%);border:1px solid var(--border-soft)}.btn-secondary:hover,.google-button:hover{border-color:var(--border-accent);box-shadow:var(--shadow-soft)}.btn-choice,.btn-choice-hint-toggle,.cmd-btn,.auth-tab{transition:transform .18s,border-color .18s,background .18s,color .18s,box-shadow .18s}.btn-choice,.btn-choice-hint-toggle,.cmd-btn{background:linear-gradient(180deg, #ffffff08, transparent 55%), color-mix(in srgb, var(--surface-2) 94%, black 6%);border-color:var(--border-soft)}.btn-choice:hover,.btn-choice-hint-toggle:hover,.cmd-btn:hover,.cmd-audio.audio-active,.auth-tab--active{border-color:var(--border-accent)}.card,.landing-visual-card,.proof-card,.landing-feature-card,.landing-play-card,.landing-create-card,.landing-flares-card,.landing-future-card{border-color:var(--border-soft);box-shadow:var(--shadow-soft)}.card{background:linear-gradient(180deg, #ffffff08, transparent 50%), var(--panel-solid);align-content:start;gap:12px;min-height:100%;display:grid}.card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-accent);transform:translateY(-1px)}.card.selected{border-color:var(--border-accent);box-shadow:var(--shadow-accent)}.session-resume-card:hover{box-shadow:var(--shadow-soft);transform:none}.card-grid,.trait-cards-grid{container-type:inline-size}.setup-card-cover{background:radial-gradient(circle at 18% 16%,#f781662e,#0000 34%),radial-gradient(circle at 82% 24%,#58a6ff21,#0000 38%),linear-gradient(#ffffff0a,#0000);border-radius:18px;align-content:end;gap:10px;min-height:102px;padding:16px;display:grid}.setup-character-card{gap:8px;padding:12px}.setup-character-card .setup-card-cover{min-height:0;padding:10px 12px}.setup-character-card .setup-card-body{gap:6px}.setup-card-body{gap:10px;display:grid}.setup-card-title{color:var(--text-primary);margin:0;font-size:1.05rem;line-height:1.3}.setup-card-badges,.card-meta,.feature-legend{flex-wrap:wrap;gap:8px;display:flex}.feature-legend{align-items:center;margin-bottom:8px}.tag,.badge,.landing-session-pill,.pacing-badge,.mobile-pacing-label{border:1px solid var(--border-soft);background:linear-gradient(180deg, #ffffff0a, transparent 60%), color-mix(in srgb, var(--surface-3) 90%, black 10%)}.tag,.badge{min-height:28px;color:var(--text-secondary);letter-spacing:.02em;border-radius:12px;align-items:center;padding:4px 10px;font-size:.7rem;font-weight:600;line-height:1.2;display:inline-flex}.universe-feature-badge{text-transform:none;isolation:isolate;gap:6px;position:relative;overflow:hidden}.universe-feature-badge>*{z-index:1;position:relative}.universe-loader{--loader-size:clamp(144px, 20vw, 200px);text-align:center;width:min(100%,440px);color:var(--text-primary);justify-items:center;gap:18px;margin:0 auto;display:grid}.notification-area{right:max(16px, env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom) + var(--audio-bar-height,0px));z-index:140;pointer-events:none;flex-direction:column;align-items:stretch;gap:12px;width:min(396px,100vw - 24px);max-width:none;display:flex;position:fixed;left:auto;transform:none}.notification{border:1px solid var(--notification-border,var(--border-soft));background:var(--panel-glass-strong);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;padding:14px 14px 14px 15px;animation:.26s cubic-bezier(.2,.8,.2,1) notification-slide-in;display:grid;position:relative;overflow:hidden}.notification:before{content:"";background:var(--notification-edge,var(--border-soft));width:1px;position:absolute;inset:0 auto 0 0}.notification:after{display:none}.notification-icon{background:color-mix(in srgb, var(--surface-2) 96%, black 4%);width:34px;height:34px;color:var(--notification-icon,var(--text-secondary));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--notification-icon,var(--text-secondary)) 8%, var(--border-soft));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.notification-icon .icon{width:16px;height:16px}.notification-body{gap:5px;min-width:0;padding-top:2px;display:grid}.notification-title{letter-spacing:.015em;color:var(--text-primary);font-size:.84rem;font-weight:600}.notification-text{color:var(--text-secondary);overflow-wrap:anywhere;font-size:.95rem;line-height:1.5}.notification-dismiss{appearance:none;width:32px;height:32px;color:var(--text-secondary);cursor:pointer;opacity:.72;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;margin:-2px -4px 0 0;transition:background .18s,border-color .18s,color .18s,opacity .18s,transform .18s;display:inline-flex}.notification-dismiss .icon{width:16px;height:16px}.notification-dismiss:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover){.notification-dismiss:hover{background:color-mix(in srgb, var(--surface-2) 96%, black 4%);border-color:var(--border-soft);color:var(--text-primary);opacity:1;transform:translateY(-1px)}}.notification-success{--notification-border:color-mix(in srgb, var(--border-soft) 92%, var(--success) 8%);--notification-edge:color-mix(in srgb, var(--border-soft) 72%, var(--success) 28%);--notification-icon:color-mix(in srgb, var(--text-secondary) 64%, var(--success) 36%)}.notification-error{--notification-border:color-mix(in srgb, var(--border-soft) 90%, var(--danger) 10%);--notification-edge:color-mix(in srgb, var(--border-soft) 68%, var(--danger) 32%);--notification-icon:color-mix(in srgb, var(--text-secondary) 58%, var(--danger) 42%)}.notification-warning{--notification-border:color-mix(in srgb, var(--border-soft) 90%, var(--warning) 10%);--notification-edge:color-mix(in srgb, var(--border-soft) 68%, var(--warning) 32%);--notification-icon:color-mix(in srgb, var(--text-secondary) 58%, var(--warning) 42%)}.notification-info{--notification-border:color-mix(in srgb, var(--border-soft) 92%, var(--info) 8%);--notification-edge:color-mix(in srgb, var(--border-soft) 74%, var(--info) 26%);--notification-icon:color-mix(in srgb, var(--text-secondary) 64%, var(--info) 36%)}@keyframes notification-slide-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}.notification.slide-out{animation:.18s forwards notification-slide-out}@media (prefers-reduced-motion:reduce){.notification,.notification.slide-out{animation-duration:1ms}}@media (width<=640px){.notification-area{width:auto;max-width:none;left:12px;right:12px;transform:none}.notification{border-radius:18px;padding:13px 12px 13px 14px}}.universe-loader[hidden]{display:none}.universe-loader--turn{--loader-size:clamp(128px, 26vw, 176px);width:min(100%,360px)}.universe-loader__visual{width:var(--loader-size);aspect-ratio:1;filter:drop-shadow(0 0 32px #f7816629);place-items:center;display:grid;position:relative}.universe-loader__ripple,.universe-loader__orbit,.universe-loader__particles,.universe-loader__core{position:absolute;inset:0}.universe-loader__ripple{border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);border-radius:50%;animation:3.4s ease-in-out infinite universe-loader-ripple}.universe-loader__ripple--inner{border-color:color-mix(in srgb, var(--info) 30%, transparent);animation-delay:-1.1s;inset:16%}.universe-loader__orbit{border:1px solid color-mix(in srgb, var(--accent-narrative) 32%, transparent);border-radius:50%;animation:12s linear infinite universe-loader-orbit-spin;inset:10%}.universe-loader__orbit--beta{border-color:color-mix(in srgb, var(--info) 22%, transparent);animation-duration:9s;animation-direction:reverse;inset:18%;transform:rotate(28deg)}.universe-loader__orbit--gamma{border-color:color-mix(in srgb, var(--accent) 28%, transparent);animation-duration:7.4s;inset:24%;transform:rotate(62deg)}.universe-loader__satellite{background:radial-gradient(circle, #ffffffeb 0%, #ffffff3d 40%, transparent 75%), var(--accent);width:8px;height:8px;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 44%, transparent);border-radius:999px;margin-left:-4px;position:absolute;top:-3px;left:50%}.universe-loader__particles{pointer-events:none}.universe-loader__particle{background:color-mix(in srgb, var(--text-primary) 84%, var(--accent) 16%);width:6px;height:6px;box-shadow:0 0 16px color-mix(in srgb, var(--info) 22%, transparent);border-radius:999px;animation:3.8s ease-in-out infinite universe-loader-particle;position:absolute}.universe-loader__particle--1{animation-delay:-.1s;top:8%;left:52%}.universe-loader__particle--2{animation-delay:-1.1s;top:18%;left:80%}.universe-loader__particle--3{animation-delay:-1.8s;top:46%;left:92%}.universe-loader__particle--4{animation-delay:-.6s;top:78%;left:76%}.universe-loader__particle--5{animation-delay:-2.2s;top:88%;left:46%}.universe-loader__particle--6{animation-delay:-1.4s;top:74%;left:14%}.universe-loader__particle--7{animation-delay:-2.9s;top:40%;left:4%}.universe-loader__particle--8{animation-delay:-.9s;top:12%;left:20%}.universe-loader__core{place-items:center;display:grid;inset:30%}.universe-loader__core-ring,.universe-loader__core-glow,.universe-loader__core-star{border-radius:50%;position:absolute}.universe-loader__core-ring{border:1px solid color-mix(in srgb, var(--accent) 44%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 20%, transparent);animation:2.8s ease-in-out infinite universe-loader-core-ring;inset:0}.universe-loader__core-glow{background:radial-gradient(circle at 40% 38%, #fffffff2 0%, #fff6 20%, transparent 54%), radial-gradient(circle, color-mix(in srgb, var(--accent) 72%, white 28%) 0%, color-mix(in srgb, var(--accent-narrative) 82%, transparent) 45%, transparent 78%);filter:blur(1px);animation:2.1s ease-in-out infinite universe-loader-core-glow;inset:18%}.universe-loader__core-star{box-shadow:0 0 26px #ffffff7a, 0 0 42px color-mix(in srgb, var(--info) 24%, transparent);background:radial-gradient(circle,#fffffffa 0%,#ffffff38 42%,#0000 72%);animation:1.8s ease-in-out infinite universe-loader-star;inset:34%}@keyframes universe-loader-ripple{0%,to{opacity:.42;transform:scale(.92)}50%{opacity:.9;transform:scale(1.04)}}@keyframes universe-loader-orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes universe-loader-particle{0%,to{opacity:.44;transform:translate(0,0)scale(.8)}50%{opacity:.98;transform:translateY(-10px)scale(1.3)}}@keyframes universe-loader-core-ring{0%,to{opacity:.78;transform:scale(.96)}50%{opacity:1;transform:scale(1.08)}}@keyframes universe-loader-core-glow{0%,to{opacity:.78;transform:scale(.92)}50%{opacity:1;transform:scale(1.14)}}@keyframes universe-loader-star{0%,to{opacity:.84;transform:scale(.86)}50%{opacity:1;transform:scale(1.16)}}@media (prefers-reduced-motion:reduce){.universe-loader__ripple,.universe-loader__orbit,.universe-loader__particle,.universe-loader__core-ring,.universe-loader__core-glow,.universe-loader__core-star{animation:none}.universe-loader__visual{filter:drop-shadow(0 0 24px #f781661a)}}.universe-feature-badge .icon{width:14px;height:14px}:is(.tag-featured,.badge-featured){color:#ffc782;border-color:color-mix(in srgb, var(--accent) 34%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 10px 24px #c864321f;background:linear-gradient(135deg,#f7816633,#c9956a29 52%,#58a6ff1a),linear-gradient(#ffffff0f,#0000 72%);animation:3.8s ease-in-out infinite feature-pin-breathe}:is(.tag-featured,.badge-featured):before,:is(.tag-featured,.badge-featured):after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}:is(.tag-featured,.badge-featured):before{mix-blend-mode:screen;opacity:.5;background:radial-gradient(circle at 26% 26%,#fff3,#0000 34%),radial-gradient(circle at 78% 72%,#58a6ff24,#0000 40%),radial-gradient(circle,#f781661f,#0000 58%);animation:4.8s ease-in-out infinite feature-pin-glow}:is(.tag-featured,.badge-featured):after{opacity:.72;border:1px solid #ffc28738;animation:4.4s ease-in-out infinite feature-pin-ring;inset:1px;box-shadow:inset 0 0 0 1px #ffffff0a}.tag-music,.badge-music{border-color:color-mix(in srgb, var(--momentum-high) 40%, transparent)}.tag-tts,.badge-tts{border-color:color-mix(in srgb, var(--info) 42%, transparent)}.universe-card{border:1px solid color-mix(in srgb, var(--text-primary) 10%, transparent);background:linear-gradient(180deg, #ffffff08, transparent 48%), var(--bg-card);min-height:204px;box-shadow:var(--shadow);border-radius:12px;gap:14px;padding:18px;display:grid;position:relative;overflow:hidden}.universe-card-featured{box-shadow:0 0 0 1px #f7816614, var(--shadow-warm);border-color:#f781663d}.universe-card-cover{background:radial-gradient(circle at 20% 20%,#f7816629,#0000 34%),radial-gradient(circle at 80% 30%,#58a6ff24,#0000 38%),linear-gradient(#ffffff08,#0000);border-radius:18px;flex-direction:column;justify-content:space-between;gap:12px;min-height:68px;padding:14px;display:flex}.universe-card-cover-head{justify-content:flex-end;min-height:0;display:flex}.universe-card-cover-title{color:var(--text-primary);max-width:16ch;margin:0;font-size:1.05rem;line-height:1.35}.universe-card-summary{color:var(--text-secondary);margin:0;line-height:1.6}.universe-card-badges{flex-wrap:wrap;align-self:end;gap:8px;display:flex}.badge-featured{color:#ffc782;background:#f7816624}.badge-community{color:#c7d2db}.badge-locale{color:#d5d0ff}.badge-detail{color:var(--text-secondary)}.badge-music{color:#ffc782}.badge-tts{color:#9ac7ff}@keyframes feature-pin-breathe{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 10px 24px #c864321f}50%{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-hover) 22%, transparent), 0 12px 26px #c8643229}}@keyframes feature-pin-glow{0%{opacity:.42;transform:scale(.98)}50%{opacity:.72;transform:scale(1.01)}to{opacity:.42;transform:scale(.98)}}@keyframes feature-pin-ring{0%,to{opacity:.56;transform:scale(1)}50%{opacity:.82;transform:scale(1.015)}}.setup-universe-card{cursor:pointer;gap:10px;min-height:0;padding:14px;transition:transform .18s,border-color .18s,box-shadow .18s}.setup-universe-card .universe-card-cover{gap:8px;min-height:0;padding:10px 12px}.setup-universe-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-accent);transform:translateY(-1px)}.setup-universe-card.selected{border-color:var(--border-accent);box-shadow:var(--shadow-accent)}.setup-universe-card .universe-card-cover-title{max-width:none}.setup-step h2,.login-title,.header-title,.game-header .character-name,.overlay-small h3{text-transform:uppercase;letter-spacing:.08em}.setup-step h2,.overlay-small h3{color:var(--text-primary)}.setup-field input,.setup-field select,#shared-email-group input,#login-form input,#magic-link-form input,#password-form input,#register-form input,#password-set-form input,#change-password-form input,.setting-row select,#free-text-area{border:1px solid var(--border-soft);background:linear-gradient(180deg, #ffffff08, transparent 60%), color-mix(in srgb, var(--surface-3) 92%, black 8%);border-radius:14px;box-shadow:inset 0 1px #ffffff05}.setup-field input:focus,.setup-field select:focus,#shared-email-group input:focus,#login-form input:focus,#magic-link-form input:focus,#password-form input:focus,#register-form input:focus,#password-set-form input:focus,#change-password-form input:focus,.setting-row select:focus,#free-text-area:focus{border-color:var(--border-accent);box-shadow:inset 0 1px 0 #ffffff05, 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent);outline:none}.login-confirmation{border-color:color-mix(in srgb, var(--success) 45%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent)}@container (width<=620px){.setup-universe-card .setup-card-cover{min-height:84px;padding:14px}}@media (prefers-reduced-motion:reduce){:is(.tag-featured,.badge-featured),:is(.tag-featured,.badge-featured):before,:is(.tag-featured,.badge-featured):after{animation:none}}.overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:60;background:#0d1117cc;justify-content:center;align-items:center;min-height:100dvh;padding:24px;animation:.2s fade-in;display:none;position:fixed;inset:0;overflow-y:auto}.overlay.visible{display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.overlay-content{background:var(--panel-glass-strong);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:80vh;box-shadow:var(--shadow-elevated);margin:auto;overflow-y:auto}.overlay-small{text-align:center;max-width:320px;padding:24px}.overlay-small h3{font-family:var(--font-brand);margin-bottom:8px;font-size:1.1rem;font-weight:700}.overlay-small p{color:var(--text-secondary);margin-bottom:16px;font-size:.9rem}.overlay-actions{justify-content:center;gap:12px;display:flex}.help-body{padding:16px}.help-section{margin-bottom:16px}.help-section:last-child{margin-bottom:0}.help-title{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-hover);margin-bottom:8px;font-size:.75rem;font-weight:600}.help-row{color:var(--text-secondary);align-items:center;gap:10px;padding:6px 0;font-size:.9rem;display:flex}.help-row span:last-child{flex:1}.help-icon{text-align:center;width:28px;font-size:1rem}kbd{font-size:.8rem;font-family:var(--font-mono);background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);text-align:center;border-radius:4px;min-width:28px;padding:2px 8px;display:inline-block}.inventory-legend{color:var(--text-secondary);border-top:1px solid var(--border-soft);opacity:.6;padding:8px 12px;font-size:.7rem}.setting-row{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-row label{color:var(--text-primary);font-size:.9rem;font-weight:600}.setting-row select{background:var(--surface-3);border:1px solid var(--border-soft);color:var(--text-primary);cursor:pointer;border-radius:14px;padding:6px 12px;font-size:.85rem}#password-set-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}#password-set-form input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);flex:1;min-width:140px;padding:6px 10px;font-size:.85rem}#password-set-form input:focus{border-color:var(--accent)}#password-set-form input:disabled{opacity:.5;cursor:not-allowed}.btn-set-password{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:6px 12px;font-size:.85rem;transition:background .15s,color .15s}.btn-set-password:hover{background:var(--bg-tertiary);color:var(--accent);border-color:var(--accent)}.btn-set-password:disabled{opacity:.5;cursor:not-allowed}#setting-row-password .login-error,#setting-row-change-password .login-error{color:var(--danger);width:100%;min-height:0;font-size:.8rem}#setting-row-password .login-confirmation,#setting-row-change-password .login-confirmation{color:var(--success);border:1px solid color-mix(in srgb, var(--success) 50%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--success) 10%, transparent);text-align:center;width:100%;padding:6px 10px;font-size:.85rem}#setting-row-change-password{flex-direction:column;align-items:flex-start;gap:8px}#change-password-form{flex-direction:column;gap:6px;width:100%;display:flex}#change-password-form input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);width:100%;padding:6px 10px;font-size:.85rem}#change-password-form input:focus{border-color:var(--accent)}.status-legend{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.status-legend-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:600}.status-legend-row{color:var(--text-secondary);padding:4px 0;font-size:.8rem;line-height:1.5}.status-legend-item{align-items:center;gap:4px;margin-right:12px;display:inline-flex}.status-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.mobile-hud{display:none}.dice-reveal{z-index:45;cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 18% 16%,#f781661f,#0000 28%),radial-gradient(circle at 82% 12%,#58a6ff14,#0000 22%),#0e1118fa;flex-direction:column;justify-content:center;align-items:center;animation:.2s fade-in;display:none;position:absolute;inset:0}.dice-reveal.visible{display:flex}.dice-reveal-content{flex-direction:column;align-items:center;gap:16px;display:flex}.dice-reveal-stat{text-transform:uppercase;letter-spacing:.3em;color:var(--text-secondary);opacity:0;font-size:1rem;font-weight:700;transition:opacity .3s}.dice-reveal-faces{letter-spacing:.5em;opacity:0;font-size:2.5rem;transition:opacity .2s}.dice-reveal-total{font-family:var(--font-brand);letter-spacing:.1em;color:var(--text-primary);opacity:0;font-size:3rem;font-weight:700;transition:opacity .2s,transform .4s cubic-bezier(.34,1.56,.64,1);transform:scale(.5)}.dice-reveal-total.visible{opacity:1;transform:scale(1)}.dice-reveal-outcome{text-transform:uppercase;letter-spacing:.15em;opacity:0;font-size:1.2rem;font-weight:700;transition:opacity .3s}.dice-reveal-outcome.full_success{color:var(--success)}.dice-reveal-outcome.partial_success{color:var(--warning)}.dice-reveal-outcome.failure{color:var(--danger)}.dice-reveal-breakdown{color:var(--text-secondary);font-size:.95rem;font-family:var(--font-mono,monospace);opacity:0;margin-bottom:4px;transition:opacity .3s}.dice-reveal-breakdown.visible{opacity:1}.dice-reveal-thresholds{color:var(--text-muted);letter-spacing:.05em;opacity:0;margin-top:12px;font-size:.7rem;transition:opacity .3s}.dice-reveal-thresholds.visible{opacity:1}.dice-reveal-thresholds span.active{color:var(--text-primary);font-weight:700}.dice-reveal-hint{color:var(--text-muted);opacity:0;margin-top:24px;font-size:.75rem;transition:opacity .5s}.dice-reveal-stat.visible,.dice-reveal-faces.visible,.dice-reveal-outcome.visible,.dice-reveal-hint.visible{opacity:1}.stat-reveal-overlay{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));box-sizing:border-box;z-index:65;cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 18% 16%,#f781661f,#0000 28%),radial-gradient(circle at 82% 12%,#58a6ff14,#0000 22%),#0e1118fa;flex-direction:column;justify-content:center;align-items:center;animation:.2s fade-in;display:none;position:fixed;inset:0}.stat-reveal-overlay.visible{display:flex}.stat-reveal-content{flex-direction:column;align-items:center;gap:16px;width:80%;max-width:420px;display:flex}.stat-reveal-title{font-family:var(--font-brand);text-transform:uppercase;letter-spacing:.3em;color:var(--text-secondary);opacity:0;font-size:.75rem;font-weight:600;transition:opacity .3s}.stat-reveal-title.visible{opacity:1}.stat-reveal-rows{flex-direction:column;gap:12px;width:100%;display:flex}.stat-reveal-row{opacity:0;transition:opacity .35s,transform .4s cubic-bezier(.34,1.56,.64,1);transform:translateY(12px)}.stat-reveal-row.visible{opacity:1;transform:translateY(0)}.stat-reveal-line{align-items:center;gap:8px;font-size:.85rem;font-weight:600;line-height:1.35;display:flex}.stat-reveal-icon .icon,.stat-reveal-line .icon{flex-shrink:0;width:18px;height:18px}.stat-reveal-next{color:var(--text-secondary);margin-top:2px;padding-left:26px;font-size:.72rem;line-height:1.4}.stat-reveal-pips{letter-spacing:.15em;margin-top:2px;padding-left:26px;font-size:.85rem}.stat-reveal-rule{color:var(--text-muted);letter-spacing:.02em;margin-top:4px;padding-left:26px;font-size:.66rem;line-height:1.35}.stat-reveal-overflow{color:var(--text-muted);margin-top:6px;font-size:.72rem}.stat-reveal-hint{color:var(--text-muted);opacity:0;margin-top:24px;font-size:.75rem;transition:opacity .5s}.stat-reveal-hint.visible{opacity:1}@media (prefers-reduced-motion:reduce){.stat-reveal-overlay{animation:none}.stat-reveal-row{transition:none}}.cmd-btn.has-update{border-color:var(--accent);position:relative}.cmd-btn.has-update:after{content:"";border-radius:var(--radius);border:1px solid var(--accent);pointer-events:none;animation:2s ease-in-out infinite cmd-pulse;position:absolute;inset:-2px}@keyframes cmd-pulse{0%,to{opacity:.4}50%{opacity:.9}}.stat-changed{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius);animation:4s ease-out forwards stat-flash}@keyframes stat-flash{0%{background:color-mix(in srgb, var(--accent) 25%, transparent)}to{background:0 0}}.session-card-list{flex-direction:column;gap:16px;display:flex}.session-resume-card{cursor:default;border-radius:18px;flex-direction:column;gap:10px;padding:18px;display:flex}.session-resume-card:hover{border-color:var(--border-soft);transform:none}.session-card-meta{color:var(--text-secondary);flex-wrap:wrap;gap:8px;font-size:.85rem;display:flex}.session-card-char{color:var(--text-primary);font-weight:600}.session-card-turn{color:var(--text-secondary)}.session-card-time{color:var(--text-muted);margin-left:auto}.session-card-actions{gap:8px;display:flex}.session-resume-btn{flex:1;min-height:44px}.session-delete-btn{min-height:44px;color:var(--danger);border-color:var(--danger)}.session-delete-btn:hover{background:color-mix(in srgb, var(--danger) 12%, transparent)}.overlay-ads-consent,.overlay-ads-interstitial{z-index:70}.overlay-ads-consent--banner{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:linear-gradient(#0000 0%,#05080c33 100%);justify-content:stretch;align-items:stretch;min-height:0;padding:0;inset:auto 0 0;overflow:visible}.overlay-ads-consent--banner .ads-consent-panel{pointer-events:auto}.ads-consent-panel{background:var(--panel-glass);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-elevated);color:var(--text-primary);flex-direction:column;gap:12px;padding:24px;display:flex}.ads-consent-panel--banner{border-color:color-mix(in srgb, var(--border-soft) 88%, var(--accent) 12%);width:100%;max-width:none;padding:10px 0 calc(6px + env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:0;gap:8px;box-shadow:inset 0 -1px #ffffff0a,0 12px 30px #0000003d}.ads-consent-panel--banner .ads-consent-body{max-width:64ch}.ads-consent-options{align-items:start;gap:3px 10px;display:grid}.overlay-ads-consent--modal .ads-consent-panel{animation:.24s cubic-bezier(.22,1,.36,1) consent-panel-pop}.overlay-ads-consent--banner .ads-consent-panel{animation:.24s cubic-bezier(.22,1,.36,1) consent-banner-rise}.overlay-ads-consent--emphasis .ads-consent-panel--banner{box-shadow:0 -1px 0 #ffffff0d inset, 0 16px 38px #00000052, 0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent);animation:.24s cubic-bezier(.22,1,.36,1) consent-banner-rise,.72s ease-out consent-banner-emphasis}.ads-consent-title{font-family:var(--font-brand);letter-spacing:.03em;text-transform:uppercase;color:var(--text-primary);margin:0;padding:0 12px;font-size:1.05rem;font-weight:700}.ads-consent-body{color:var(--text-secondary);margin:0 0 4px;padding:0 12px;font-size:.84rem;line-height:1.5}.ads-consent-checkbox{min-height:28px;color:var(--text-primary);cursor:pointer;align-items:center;gap:10px;padding:0;font-size:.82rem;line-height:1.4;display:flex}.ads-consent-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:0}.ads-consent-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:2px;padding:0 12px;display:flex}.ads-consent-panel--banner .ads-consent-actions{justify-content:space-between}.ads-consent-panel--banner .ads-consent-options{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width>=621px) and (width<=959px){.ads-consent-panel--banner .ads-consent-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=960px){.overlay-ads-consent--banner{justify-content:stretch;align-items:stretch;width:min(420px,100vw - 32px);padding:0;inset:auto 16px 16px auto}.ads-consent-panel--banner{width:100%;max-width:none;box-shadow:0 16px 40px #00000047, 0 0 0 1px color-mix(in srgb, var(--border-soft) 88%, var(--accent) 12%);border-radius:20px;gap:10px;padding:14px 14px 12px}.ads-consent-title,.ads-consent-body,.ads-consent-actions{padding-left:0;padding-right:0}.ads-consent-panel--banner .ads-consent-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.ads-consent-btn{border:1px solid var(--border);cursor:pointer;border-radius:999px;min-height:40px;padding:7px 16px;font-family:inherit;font-size:.84rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.ads-consent-btn-accept{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.ads-consent-btn-accept:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ads-consent-btn-accept:disabled{opacity:.45;cursor:not-allowed}.ads-consent-btn-decline{color:var(--text-secondary);border-color:var(--border);background:0 0}.ads-consent-btn-decline:hover{background:color-mix(in srgb, var(--bg-tertiary) 80%, transparent);color:var(--text-primary);border-color:var(--border-strong)}.ads-consent-panel--banner .ads-consent-btn-decline{margin-right:auto}@keyframes consent-panel-pop{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes consent-banner-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translate(0,0)}}@keyframes consent-banner-emphasis{0%{transform:translate(0,0)scale(1)}40%{transform:translateY(-2px)scale(1.005)}to{transform:translate(0,0)scale(1)}}@media (width<=620px){.ads-consent-panel--banner{width:100%;padding:8px 0 calc(6px + env(safe-area-inset-bottom));gap:8px}.ads-consent-panel--banner .ads-consent-options{grid-template-columns:1fr;gap:3px}.ads-consent-title,.ads-consent-body,.ads-consent-actions{padding-left:10px;padding-right:10px}.ads-consent-title{font-size:1rem}.ads-consent-body{font-size:.8rem}.ads-consent-checkbox{min-height:24px;font-size:.8rem}.ads-consent-btn{min-height:38px;padding:6px 14px;font-size:.8rem}}.ads-interstitial-panel{background:var(--panel-glass);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-elevated);color:var(--text-primary);flex-direction:column;align-items:stretch;gap:16px;padding:24px;display:flex}.ads-interstitial-title{font-family:var(--font-brand);color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.ads-interstitial-subtitle{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.4}.ads-interstitial-slot{background:color-mix(in srgb, var(--bg-tertiary) 92%, black 8%);border:1px dashed var(--border-soft);border-radius:var(--radius);justify-content:center;align-items:center;min-height:240px;padding:12px;display:flex;overflow:hidden}.ads-interstitial-slot ins.adsbygoogle{width:100%;min-height:240px;display:block}.ads-interstitial-dismiss{align-self:flex-end}.turn-loading-ad-panel{box-sizing:border-box;height:100%;min-height:100%;color:var(--text-primary);align-content:center;gap:16px;padding:24px;display:grid;overflow:hidden}.turn-loading-ad-pill{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-3) 90%, black 10%);width:fit-content;min-height:28px;color:var(--accent-narrative);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;font-size:.72rem;font-weight:700;display:inline-flex}.turn-loading-ad-title{font-family:var(--font-brand);margin:0;font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.25}.turn-loading-ad-copy{color:var(--text-secondary);margin:0;line-height:1.55}.turn-loading-ad-slot{border:1px dashed var(--border-soft);border-radius:var(--radius-lg);background:linear-gradient(180deg, #ffffff08, transparent 55%), color-mix(in srgb, var(--bg-tertiary) 94%, black 6%);justify-content:center;align-items:center;min-width:0;min-height:250px;padding:14px;display:flex;overflow:hidden}.turn-loading-ad-slot ins.adsbygoogle{width:100%;min-height:220px;display:block}.turn-loading-ad-actions{justify-content:flex-end;display:flex}.ads-rewarded-btn{background:var(--accent);min-height:40px;color:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;margin-left:8px;padding:6px 14px;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.ads-rewarded-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ads-rewarded-btn:disabled{opacity:.55;cursor:not-allowed}html,body{height:100%}body{background:radial-gradient(circle at top, #f781662e, transparent 28%), radial-gradient(circle at 82% 10%, #c9956a24, transparent 22%), radial-gradient(circle at 18% 82%, #58a6ff1a, transparent 26%), var(--bg-primary)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 24px;display:flex}.login-title{font-family:var(--font-brand);color:#ffc782;letter-spacing:.12em;margin-bottom:6px;font-size:clamp(2.5rem,6vw,3.6rem);font-weight:800}.login-subtitle{color:var(--text-secondary);text-align:center;max-width:32rem;margin-bottom:28px;font-size:1rem}.login-section{width:100%;max-width:420px;padding:24px}#login-form,#magic-link-form,#password-form,#register-form{flex-direction:column;gap:12px;width:100%;display:flex}#login-form input,#magic-link-form input,#password-form input,#register-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-primary);padding:12px 16px;font-size:1rem;transition:border-color .15s}#login-form input:focus,#magic-link-form input:focus,#password-form input:focus,#register-form input:focus{border-color:var(--accent)}#login-form button,#magic-link-form button,#password-form button,#register-form button{border-radius:var(--radius);background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;padding:12px 16px;font-size:1rem;font-weight:600;transition:background .15s}#login-form button:hover,#magic-link-form button:hover,#password-form button:hover,#register-form button:hover{background:var(--accent-hover)}#login-form button:active,#magic-link-form button:active,#password-form button:active,#register-form button:active{transform:scale(.98)}.login-error{color:var(--danger);text-align:center;min-height:1.2em;font-size:.85rem}.login-divider{color:var(--text-muted);align-items:center;gap:12px;margin:20px 0;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.google-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);width:100%;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:1rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.google-button:hover{border-color:var(--accent);background:var(--bg-secondary)}.google-button:active{transform:scale(.98)}.login-info{color:var(--text-muted);text-align:center;margin-top:16px;font-size:.8rem}.login-confirmation{text-align:center;color:var(--success);border-radius:var(--radius);background:#2386361a;border:1px solid #3bb95066;padding:16px;font-size:.95rem}#shared-email-group{margin-bottom:4px}#shared-email-group input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);width:100%;color:var(--text-primary);padding:12px 16px;font-size:1rem;transition:border-color .15s}#shared-email-group input:focus{border-color:var(--accent)}.auth-tabs{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-3) 90%, black 10%);border-radius:999px;gap:6px;margin-bottom:14px;padding:4px;display:flex}.auth-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:10px 0;font-size:.9rem;font-weight:600}.auth-tab:hover{color:var(--text-primary)}.auth-tab--active{color:var(--bg-primary);background:var(--gradient-ember);box-shadow:var(--shadow-warm)}.btn-secondary{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;background:0 0;width:100%;padding:12px 16px;font-size:1rem;font-weight:600;transition:border-color .15s,background .15s}.btn-secondary:hover{border-color:var(--accent);background:var(--bg-secondary)}.btn-secondary:active{transform:scale(.98)}.forgot-password-link{text-align:center;color:var(--text-secondary);cursor:pointer;margin-top:10px;font-size:.85rem;text-decoration:none;transition:color .15s;display:block}.forgot-password-link:hover{color:var(--accent);text-decoration:underline}#forgot-password-confirmation{margin-top:8px}
