:root,[data-theme=light]{color-scheme:light;--bg:#fff8f0;--bg-blob-a:rgba(255,214,140,0.55);--bg-blob-b:rgba(120,220,200,0.35);--bg-blob-c:rgba(255,160,180,0.28);--bg-gradient:linear-gradient(152deg,#fff8f0,#e8faf5 38%,#fff4e0 72%,#fdeef6);--panel:rgba(255,255,255,0.78);--panel-elevated:rgba(255,255,255,0.94);--glass:rgba(255,255,255,0.52);--glass-border:rgba(255,255,255,0.65);--border:rgba(45,52,60,0.1);--border-subtle:rgba(45,52,60,0.06);--text:#1e2933;--text-muted:#5a6a78;--accent:#ff6b4a;--accent-hover:#e85a3d;--accent-soft:rgba(255,107,74,0.16);--accent-2:#2ec4a6;--accent-2-soft:rgba(46,196,166,0.14);--danger:#e5484d;--success:#1fa97a;--shadow-sm:0 2px 8px rgba(30,41,51,0.06);--shadow-md:0 16px 48px rgba(30,41,51,0.1);--shadow-pop:0 4px 0 rgba(30,41,51,0.06);--radius:18px;--radius-sm:12px}[data-theme=dark]{color-scheme:dark;--bg:#141820;--bg-blob-a:rgba(255,180,90,0.08);--bg-blob-b:rgba(80,200,180,0.07);--bg-blob-c:rgba(255,120,160,0.06);--bg-gradient:linear-gradient(158deg,#161d28,#121820 45%,#1a1424);--panel:rgba(32,38,48,0.72);--panel-elevated:rgba(40,48,60,0.92);--glass:rgba(36,44,56,0.6);--glass-border:rgba(255,255,255,0.1);--border:rgba(255,255,255,0.1);--border-subtle:rgba(255,255,255,0.06);--text:#eef2f6;--text-muted:#9aa8b8;--accent:#ff8f76;--accent-hover:#ff7a5c;--accent-soft:rgba(255,143,118,0.18);--accent-2:#5ee4c8;--accent-2-soft:rgba(94,228,200,0.12);--danger:#ff7b7b;--success:#5ee4a8;--shadow-sm:0 2px 10px rgba(0,0,0,0.28);--shadow-md:0 20px 56px rgba(0,0,0,0.42);--shadow-pop:0 4px 0 rgba(0,0,0,0.25)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:var(--font-app-body),"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--bg);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text)}body:before{background:radial-gradient(ellipse 70% 55% at 8% 12%,var(--bg-blob-a) 0,transparent 55%),radial-gradient(ellipse 55% 50% at 92% 18%,var(--bg-blob-b) 0,transparent 50%),radial-gradient(ellipse 45% 40% at 50% 88%,var(--bg-blob-c) 0,transparent 45%);opacity:1}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}body:after{opacity:.45;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E")}a{color:var(--accent)}a:hover{color:var(--accent-hover)}.glass-panel{background:var(--glass);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}@media (prefers-reduced-motion:reduce){.app-brand-mark,.app-hero-pill,.app-panel,.btn,.draft-chip,.glass-panel,.history-list-item,.photo-filmstrip-thumb,.preview-toolbar-btn,.theme-toggle{transition:none!important;animation:none!important}.app-brand-mark:hover,.app-hero-pill:hover,.btn:hover:not(:disabled),.draft-chip:hover,.history-list-item:hover,.photo-filmstrip-thumb:hover,.theme-toggle:hover{transform:none!important}.app-brand-kicker-dot,.app-hydrate-loader__face,.app-unlocked-shell .app-aside.app-panel,.app-unlocked-shell .app-header,.app-unlocked-shell .app-preview-section,.app-unlocked-shell .app-stack-col>.app-panel,.preview-empty__icon{animation:none!important}}.app-shell{max-width:1200px;margin:0 auto;padding:24px 16px 48px;transition:margin-right .25s ease}.app-shell--history-open{margin-right:min(380px,92vw)}@media (max-width:900px){.app-shell--history-open{margin-right:0}}.app-hero{margin-bottom:28px}.app-brand-title,.app-hero h1{font-family:var(--font-app-display),var(--font-app-body),sans-serif;font-size:1.5rem;font-weight:700;margin:0 0 8px;letter-spacing:-.02em;color:var(--text)}.app-brand-title{font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:800;line-height:1.15;background:linear-gradient(105deg,var(--accent) 0,#ffb347 42%,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.app-brand-mark{flex-shrink:0;width:52px;height:52px;border-radius:16px;overflow:hidden;border:2px solid var(--border);box-shadow:var(--shadow-sm),var(--shadow-pop);background:var(--panel-elevated);transition:transform .35s cubic-bezier(.34,1.4,.64,1),box-shadow .25s ease}.app-brand-mark:hover{transform:rotate(-4deg) scale(1.04);box-shadow:var(--shadow-md)}.app-brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.app-brand-row{display:flex;align-items:flex-start;gap:16px}.app-brand-kicker{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);margin-bottom:6px}.app-brand-kicker-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px var(--accent-2-soft);animation:appKickerPulse 2.4s ease-in-out infinite}@keyframes appKickerPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}.app-hero-lede{margin:0;color:var(--text-muted);font-size:15px;line-height:1.6;max-width:56ch}.app-hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.app-hero-pill{display:inline-flex;align-items:center;padding:5px 11px;font-size:12px;font-weight:600;color:var(--text);background:var(--accent-2-soft);border:1px dashed rgba(46,196,166,.35);border-radius:999px;transition:transform .2s cubic-bezier(.34,1.4,.64,1),background .2s ease}.app-hero-pill:hover{transform:translateY(-2px);background:rgba(46,196,166,.22)}.app-hero-pill--warm{background:var(--accent-soft);border-color:rgba(255,107,74,.35)}.app-hero-pill--warm:hover{background:rgba(255,107,74,.22)}.app-hero p{margin:0;color:var(--text-muted);font-size:15px;line-height:1.55;max-width:52ch}.app-grid{display:grid;grid-gap:20px;gap:20px;align-items:start}@media (min-width:960px){.app-grid--main{grid-template-columns:minmax(0,1fr) minmax(320px,380px)}}.app-aside{position:-webkit-sticky;position:sticky;top:16px;align-self:start}@media (max-width:959px){.app-aside{position:static}}.app-panel{background:var(--panel);backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm);transition:background .25s ease,border-color .25s ease,box-shadow .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:no-preference){.app-panel:hover{box-shadow:var(--shadow-md);border-color:rgba(255,107,74,.18);transform:translateY(-2px)}}.app-panel h2,.app-section-title{font-family:var(--font-app-display),var(--font-app-body),sans-serif;font-size:1.05rem;font-weight:700;margin:0 0 16px;color:var(--text);letter-spacing:-.01em}.app-section-title{display:flex;align-items:center;gap:10px}.app-section-title:before{content:"";width:4px;height:1.1em;border-radius:4px;background:linear-gradient(180deg,var(--accent) 0,var(--accent-2) 100%);flex-shrink:0}.app-label{display:block;font-weight:600;margin-bottom:8px;font-size:14px;color:var(--text)}.app-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:15px;font-family:inherit;background:var(--panel-elevated);color:var(--text)}.app-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app-input--narrow{max-width:400px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;font-size:15px;font-weight:600;font-family:var(--font-app-display),var(--font-app-body),inherit;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background .2s ease,transform .22s cubic-bezier(.34,1.4,.64,1),box-shadow .2s ease}.btn:disabled{cursor:not-allowed;opacity:.65}.btn--primary{color:#fff;background:linear-gradient(165deg,#ff7a5c 0,var(--accent) 48%,#e85a3d 100%);box-shadow:var(--shadow-pop),0 8px 24px rgba(255,107,74,.28)}.btn--primary:hover:not(:disabled){background:linear-gradient(165deg,#ff8a6e 0,var(--accent-hover) 50%,#d94f32 100%);transform:translateY(-2px);box-shadow:0 6px 0 rgba(30,41,51,.08),0 14px 32px rgba(255,107,74,.35)}.btn--primary:active:not(:disabled){transform:translateY(1px) scale(.99);box-shadow:0 2px 0 rgba(30,41,51,.06),0 6px 16px rgba(255,107,74,.22)}.btn--secondary{color:var(--text);background:var(--panel-elevated);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--bg);border-color:rgba(46,196,166,.35);transform:translateY(-1px)}.btn--secondary:active:not(:disabled){transform:translateY(0) scale(.99)}.btn--danger{color:#fff;background:linear-gradient(165deg,#f06b6f 0,var(--danger) 52%,#c93a40 100%);border:1px solid rgba(0,0,0,.08);box-shadow:var(--shadow-pop),0 6px 18px rgba(229,72,77,.28)}.btn--danger:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.btn--danger:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn--lg{padding:12px 24px;font-size:16px;border-radius:10px}.text-error{color:var(--danger);font-size:14px;margin-top:12px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border-radius:14px;border:1px solid var(--border);background:var(--panel-elevated);color:var(--text);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}.theme-toggle:hover{background:var(--panel);border-color:var(--accent-soft);transform:rotate(-8deg) scale(1.06);box-shadow:0 6px 20px rgba(255,180,120,.25)}.theme-toggle:active{transform:rotate(0deg) scale(.96)}@keyframes appVaultReveal{0%{opacity:.92;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.app-unlocked-shell{animation:appVaultReveal .45s cubic-bezier(.22,1,.36,1) forwards}@keyframes appBlockRise{0%{opacity:0;transform:translateY(14px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:no-preference){.app-unlocked-shell .app-header{animation:appBlockRise .52s cubic-bezier(.22,1,.36,1) both;animation-delay:.04s}.app-unlocked-shell .app-stack-col>.app-panel:first-child{animation:appBlockRise .55s cubic-bezier(.22,1,.36,1) both;animation-delay:.1s}.app-unlocked-shell .app-stack-col>.app-panel:nth-child(2){animation:appBlockRise .55s cubic-bezier(.22,1,.36,1) both;animation-delay:.16s}.app-unlocked-shell .app-aside.app-panel{animation:appBlockRise .55s cubic-bezier(.22,1,.36,1) both;animation-delay:.12s}.app-unlocked-shell .app-preview-section{animation:appBlockRise .58s cubic-bezier(.22,1,.36,1) both;animation-delay:.2s}}@media (prefers-reduced-motion:reduce){.app-unlocked-shell{animation:none}}.rich-editor-wrap{margin-bottom:16px}.rich-editor-surface{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-elevated);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);transition:border-color .2s ease,box-shadow .25s ease}[data-theme=dark] .rich-editor-surface{box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}.rich-editor-wrap:focus-within .rich-editor-surface{border-color:rgba(46,196,166,.45);box-shadow:inset 0 1px 2px rgba(0,0,0,.04),0 0 0 3px var(--accent-2-soft)}[data-theme=dark] .rich-editor-wrap:focus-within .rich-editor-surface{box-shadow:inset 0 1px 2px rgba(0,0,0,.25),0 0 0 3px var(--accent-2-soft)}.app-header .theme-toggle{flex-shrink:0}.draft-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid var(--border);background:var(--panel-elevated);max-width:min(100%,360px);box-shadow:var(--shadow-sm);transition:transform .28s cubic-bezier(.34,1.4,.64,1),box-shadow .25s ease,border-color .2s ease}.draft-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(46,196,166,.28)}.draft-chip__icon{color:var(--accent);flex-shrink:0;display:flex;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.draft-chip:hover .draft-chip__icon{transform:rotate(-6deg) scale(1.06)}.history-list-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-elevated);transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .2s ease}.history-list-item:hover{border-color:rgba(255,107,74,.22);box-shadow:var(--shadow-sm);transform:translateX(-3px)}.photo-filmstrip-thumb{flex:0 0 auto;width:88px;height:56px;padding:0;border:none;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--bg);transition:transform .28s cubic-bezier(.34,1.4,.64,1),box-shadow .25s ease,outline-color .2s ease}.photo-filmstrip-thumb:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 20px rgba(30,41,51,.12)}.photo-filmstrip-thumb[aria-selected=true]{box-shadow:0 0 0 2px var(--accent),0 8px 22px rgba(255,107,74,.2)}.app-hydrate-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:40vh;padding:32px}.app-hydrate-loader__face{font-size:2.5rem;line-height:1;animation:appHydrateWobble 1.1s ease-in-out infinite}@keyframes appHydrateWobble{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg) translateY(-4px)}}.app-hydrate-loader__text{margin:0;font-size:16px;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.preview-scroll-well{max-height:70vh;overflow:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 88%,white) 0,var(--bg) 100%);padding:12px 0 20px}[data-theme=dark] .preview-scroll-well{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 85%,transparent) 0,var(--bg) 100%)}.preview-toolbar-btn{transition:transform .22s cubic-bezier(.34,1.4,.64,1),box-shadow .2s ease}.preview-toolbar-btn:hover:not(:disabled){transform:translateY(-2px)}.preview-toolbar-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.preview-empty__icon{font-size:2.25rem;line-height:1;margin-bottom:14px;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:previewEmptySpark 2.8s ease-in-out infinite}@keyframes previewEmptySpark{0%,to{transform:rotate(-8deg) scale(1);filter:brightness(1)}50%{transform:rotate(8deg) scale(1.08);filter:brightness(1.08)}}.preview-empty__title{margin:0 0 8px;font-family:var(--font-app-display),var(--font-app-body),sans-serif;font-weight:700;font-size:1.05rem;color:var(--text)}.preview-empty__hint{margin:0;font-size:14px;color:var(--text-muted);line-height:1.65;max-width:360px;margin-inline:auto}.photo-filmstrip-thumb:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.history-sidebar-backdrop{position:fixed;inset:0;z-index:180;margin:0;padding:0;border:none;background:rgba(0,0,0,.25);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}@media (min-width:901px){.history-sidebar-backdrop{display:none}}.history-sidebar{position:fixed;top:0;right:0;z-index:200;width:min(380px,100vw);height:100vh;height:100dvh;margin:0;padding:20px;overflow:hidden auto;border-radius:0;border-left:1px solid var(--border);transform:translateX(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}.history-sidebar--open{transform:translateX(0)}.history-sidebar-toggle.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.history-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;border-radius:999px;background:var(--accent-soft);color:var(--accent)}@media (prefers-reduced-motion:reduce){.history-sidebar{transition:none}}.photo-preview-stage{position:-webkit-sticky;position:sticky;top:8px;z-index:3;margin-bottom:12px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-elevated);box-shadow:var(--shadow-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.session-unlock-theme{--unlock-cream:#fff8f0;--unlock-sun:#ffcb47;--unlock-mint:#6ed4a0;--unlock-coral:#ff6b6b;--unlock-sky:#4db8e8;--unlock-grape:#b07fd4;--unlock-ink:#2a2d35;--unlock-ink-muted:#5a5e6a;font-family:var(--font-unlock-fredoka),"ZCOOL KuaiLe","PingFang SC","Hiragino Sans GB",sans-serif}.session-unlock-overlay{--unlock-axis-x:50vw;--unlock-origin-y:48vh;position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:radial-gradient(ellipse 100% 80% at 50% -20%,rgba(255,203,71,.45) 0,transparent 55%),radial-gradient(ellipse 60% 50% at 0 100%,rgba(110,212,160,.35) 0,transparent 50%),radial-gradient(ellipse 55% 45% at 100% 90%,rgba(77,184,232,.32) 0,transparent 50%),linear-gradient(168deg,#fef6e4,#fde8d4 38%,#f8e0ec);backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);transition:background .45s ease,-webkit-backdrop-filter .45s ease;transition:background .45s ease,backdrop-filter .45s ease;transition:background .45s ease,backdrop-filter .45s ease,-webkit-backdrop-filter .45s ease}.session-unlock-overlay:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:0}[data-theme=dark] .session-unlock-overlay{background:radial-gradient(ellipse 90% 70% at 50% -15%,rgba(255,180,90,.12) 0,transparent 50%),linear-gradient(168deg,#1a1d26,#12151c 45%,#18122a)}[data-theme=dark] .session-unlock-theme{--unlock-cream:#232730;--unlock-ink:#f0f2f5;--unlock-ink-muted:#9aa3b5}.session-unlock-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.session-unlock-blob{position:absolute;border-radius:50%;filter:blur(.5px);opacity:.55;animation:sessionUnlockBlobDrift 18s ease-in-out infinite}.session-unlock-blob--a{width:min(42vw,320px);height:min(42vw,320px);left:-8%;top:8%;background:radial-gradient(circle at 35% 35%,#ffe566,var(--unlock-sun));animation-delay:0s}.session-unlock-blob--b{width:min(50vw,360px);height:min(50vw,360px);right:-12%;bottom:-5%;background:radial-gradient(circle at 60% 40%,#8df0c0,var(--unlock-mint));animation-delay:-6s;animation-duration:22s}.session-unlock-blob--c{width:min(30vw,200px);height:min(30vw,200px);left:35%;bottom:15%;background:radial-gradient(circle at 50% 50%,#a8e4ff,var(--unlock-sky));opacity:.4;animation-delay:-12s;animation-duration:20s}[data-theme=dark] .session-unlock-blob{opacity:.2}@keyframes sessionUnlockBlobDrift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12px,-18px) scale(1.04)}66%{transform:translate(-10px,8px) scale(.98)}}.session-unlock-float{position:absolute;font-size:clamp(1.4rem,3.2vw,2rem);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1;animation:sessionUnlockFloaty 5.5s ease-in-out infinite;text-shadow:0 1px 0 rgba(255,255,255,.5);filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}.session-unlock-float--1{top:12%;left:8%;animation-delay:0s}.session-unlock-float--2{top:20%;right:10%;animation-delay:-1.2s;font-size:clamp(1.6rem,3.5vw,2.1rem)}.session-unlock-float--3{bottom:18%;left:6%;animation-delay:-2.4s}.session-unlock-float--4{bottom:22%;right:7%;animation-delay:-3.1s}@keyframes sessionUnlockFloaty{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(4deg)}}.session-unlock-overlay--splitting{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.session-unlock-overlay--splitting:before{opacity:0}.session-unlock-burst-flash{position:fixed;inset:0;z-index:25;pointer-events:none;background:radial-gradient(ellipse 75% 55% at var(--unlock-axis-x) var(--unlock-origin-y),rgba(255,255,255,.88) 0,rgba(255,220,140,.4) 38%,rgba(120,200,255,.12) 65%,transparent 100%);animation:sessionUnlockBurstFlash .55s ease-out forwards}@keyframes sessionUnlockBurstFlash{0%{opacity:1}to{opacity:0}}.session-unlock-confetti{position:fixed;inset:0;z-index:8;pointer-events:none;overflow:hidden}.session-unlock-confetti--victory{z-index:10000}.session-unlock-confetti-piece{--ch:200;--cd:2s;--cdelay:0s;--dx:0px;--rot:720deg;position:absolute;top:-6vh;border-radius:3px;background:linear-gradient(135deg,hsl(var(--ch,200),88%,58%) 0,hsl(calc(var(--ch, 200) + 18),90%,48%) 100%);box-shadow:0 0 0 1px rgba(0,0,0,.07),1px 2px 0 rgba(0,0,0,.06);animation:sessionUnlockConfettiFall var(--cd,2s) cubic-bezier(.22,.8,.18,1) forwards;animation-delay:var(--cdelay,0s);will-change:transform}.session-unlock-confetti-piece--round{border-radius:50%;background:radial-gradient(circle at 32% 30%,hsl(var(--ch,200),95%,70%),hsl(var(--ch,200),80%,48%))}@keyframes sessionUnlockConfettiFall{0%{transform:translateZ(0) rotate(0deg);opacity:1}to{transform:translate3d(var(--dx,0),115vh,0) rotate(var(--rot,2turn));opacity:.96}}.session-unlock-fireworks{position:fixed;left:var(--unlock-axis-x);top:var(--unlock-origin-y);transform:translate(-50%,-50%);width:0;height:0;z-index:19;pointer-events:none;overflow:visible}.session-unlock-spark{position:absolute;left:0;top:0;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.95),hsl(var(--hue,210),92%,68%));box-shadow:0 0 8px hsl(var(--hue,210),100%,62%),0 0 18px hsla(var(--hue,210),95%,58%,.55);animation:sessionUnlockSparkFly 1.08s cubic-bezier(.12,.82,.22,1) forwards}.session-unlock-spark--late{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;animation-name:sessionUnlockSparkFlyLate;animation-duration:1.02s}.session-unlock-spark--wide{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:35%;animation:sessionUnlockSparkFlyWide 1.2s cubic-bezier(.1,.7,.12,1) forwards;box-shadow:0 0 10px hsl(var(--hue,210),100%,62%),0 0 22px hsla(var(--hue,210),95%,55%,.55)}@keyframes sessionUnlockSparkFly{0%{transform:rotate(var(--ang)) translateY(0) scale(1);opacity:1;filter:brightness(1.3) saturate(1.3)}40%{opacity:.95}to{transform:rotate(var(--ang)) translateY(-220px) scale(.1);opacity:0}}@keyframes sessionUnlockSparkFlyLate{0%{transform:rotate(var(--ang)) translateY(2px) scale(.25);opacity:0}10%{opacity:1}to{transform:rotate(var(--ang)) translateY(-190px) scale(.07);opacity:0}}@keyframes sessionUnlockSparkFlyWide{0%{transform:rotate(var(--ang)) translateY(0) scale(.6);opacity:.85}20%{transform:rotate(var(--ang)) translateY(-40px) scale(1.1)}to{transform:rotate(var(--ang)) translateY(-320px) scale(.04);opacity:0}}.session-unlock-flash-ring{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid rgba(255,215,130,.95);box-shadow:0 0 16px rgba(255,200,90,.75),0 0 36px rgba(255,180,60,.35);animation:sessionUnlockRingFlash .92s ease-out forwards;pointer-events:none}.session-unlock-flash-ring--b{animation-delay:.14s;border-color:rgba(130,200,255,.88);box-shadow:0 0 18px rgba(120,190,255,.55),0 0 40px rgba(80,160,255,.3)}.session-unlock-flash-ring--c{animation-delay:.3s;animation-duration:1.12s;border-color:rgba(255,140,210,.78);box-shadow:0 0 20px rgba(255,120,190,.45),0 0 44px rgba(255,100,180,.25)}.session-unlock-flash-ring--d{animation-delay:.2s;animation-duration:1.2s;border-color:rgba(180,255,200,.75);box-shadow:0 0 22px rgba(120,255,180,.5),0 0 50px rgba(60,200,120,.28)}.session-unlock-flash-ring--e{animation-delay:.45s;animation-duration:1.15s;border-color:rgba(255,255,255,.9);box-shadow:0 0 26px rgba(255,255,255,.55),0 0 60px rgba(200,220,255,.25)}@keyframes sessionUnlockRingFlash{0%{transform:scale(.2);opacity:.95}to{transform:scale(24);opacity:0}}.session-unlock-curtain{position:fixed;top:0;height:100%;z-index:5;background:linear-gradient(180deg,rgba(255,248,240,.94),rgba(253,232,212,.97));backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);transition:transform .68s cubic-bezier(.22,1,.36,1);will-change:transform}[data-theme=dark] .session-unlock-curtain{background:linear-gradient(180deg,rgba(24,27,36,.96),rgba(12,14,20,.98))}.session-unlock-curtain--left{left:0;width:var(--unlock-axis-x);transform:translateX(0);transform-origin:100% 50%}.session-unlock-curtain--right{left:var(--unlock-axis-x);width:calc(100vw - var(--unlock-axis-x));transform:translateX(0);transform-origin:0 50%}.session-unlock-overlay--splitting .session-unlock-curtain--left{transform:translateX(-100%)}.session-unlock-overlay--splitting .session-unlock-curtain--right{transform:translateX(100%)}.session-unlock-loading{position:relative;z-index:2;padding:32px 40px;max-width:340px;text-align:center;background:var(--unlock-cream);border:3px solid var(--unlock-ink);border-radius:28px 18px 24px 22px;box-shadow:4px 6px 0 rgba(42,45,53,.12),8px 12px 0 rgba(255,107,107,.15);transform:rotate(-.5deg)}.session-unlock-loading-emoji{display:block;font-size:2.5rem;line-height:1.2;margin-bottom:8px;animation:sessionUnlockLoadingWiggle 1.1s ease-in-out infinite}@keyframes sessionUnlockLoadingWiggle{0%,to{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(6deg) translateY(-3px)}}.session-unlock-loading-text{margin:0;font-size:1.1rem;color:var(--unlock-ink);line-height:1.45}.session-unlock-card{position:relative;z-index:12;width:100%;max-width:540px;text-align:center;padding:28px 26px 22px;background:var(--unlock-cream);border:3px solid var(--unlock-ink);border-radius:32px 20px 28px 24px;box-shadow:6px 8px 0 rgba(42,45,53,.1),12px 16px 0 rgba(77,184,232,.12);transform:rotate(.4deg);transition:opacity .32s ease,transform .32s ease}.session-unlock-card--exit{opacity:0;pointer-events:none;transform:scale(.98) rotate(0deg)}.session-unlock-sticker{position:absolute;top:-8px;right:12%;margin:0;z-index:1;transform:rotate(8deg);filter:drop-shadow(2px 2px 0 rgba(0,0,0,.08))}.session-unlock-sticker-inner{display:inline-block;padding:6px 12px;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--unlock-coral) 0,#ff8f70 100%);border:2px solid var(--unlock-ink);border-radius:8px 4px 10px 6px;box-shadow:2px 3px 0 var(--unlock-ink)}.session-unlock-brand{margin:0 0 10px;display:flex;flex-direction:column;align-items:center;gap:4px}.session-unlock-brand-en{font-family:var(--font-unlock-fredoka),"Fredoka",cursive,sans-serif;font-size:clamp(1.5rem,4vw,1.9rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;background:linear-gradient(120deg,var(--unlock-coral) 0,var(--unlock-grape) 50%,var(--unlock-sky) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 rgba(255,255,255,.4))}.session-unlock-brand-sub{font-size:1.02rem;font-weight:500;color:var(--unlock-ink);line-height:1.35;max-width:22em}.session-unlock-hint{margin:0 0 24px;font-size:.9rem;color:var(--unlock-ink-muted);line-height:1.6}.session-unlock-bar{display:flex;align-items:stretch;min-height:56px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 2px var(--unlock-ink),0 4px 0 var(--unlock-ink),0 8px 20px rgba(77,184,232,.15);border:none;overflow:hidden;transform-origin:50% 50%;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}.session-unlock-bar:hover{box-shadow:inset 0 0 0 2px var(--unlock-ink),0 5px 0 var(--unlock-ink),0 10px 24px rgba(255,107,107,.12)}[data-theme=dark] .session-unlock-bar{background:#2a2f3a;box-shadow:inset 0 0 0 2px rgba(240,242,245,.4),0 4px 0 rgba(0,0,0,.45),0 6px 20px rgba(0,0,0,.3)}.session-unlock-bar--shake{animation:sessionUnlockShake .45s cubic-bezier(.36,.07,.19,.97) both}@keyframes sessionUnlockShake{0%,to{transform:translateX(0) rotate(0deg)}15%{transform:translateX(-7px) rotate(-.6deg)}30%{transform:translateX(7px) rotate(.6deg)}45%{transform:translateX(-5px) rotate(-.4deg)}60%{transform:translateX(5px) rotate(.3deg)}75%{transform:translateX(-2px) rotate(0)}}.session-unlock-keyhole-wrap{position:relative;flex:0 0 60px;display:flex;align-items:center;justify-content:center;margin-left:2px}.session-unlock-keyhole-ring{position:absolute;width:50px;height:50px;border-radius:50%;background:conic-gradient(from 220deg,var(--unlock-coral),var(--unlock-sun),var(--unlock-mint),var(--unlock-sky),var(--unlock-grape),var(--unlock-coral));box-shadow:inset 0 2px 3px rgba(255,255,255,.5),0 3px 0 rgba(42,45,53,.15);opacity:.98}.session-unlock-keyhole-ring--pulse{animation:session-unlock-keyhole-pulse .6s ease-out .1s 2}@keyframes session-unlock-keyhole-pulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.05)}}@media (prefers-reduced-motion:reduce){.session-unlock-keyhole-ring--pulse{animation:none}}.session-unlock-keyhole-face{position:relative;z-index:1;width:36px;height:36px;background:linear-gradient(145deg,rgba(255,255,255,.35),rgba(0,0,0,.08));color:#fff8f0;box-shadow:inset 0 1px 2px rgba(255,255,255,.6),inset 0 -2px 6px rgba(0,0,0,.2)}.session-unlock-keyhole-face,.session-unlock-mascot-photo{border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden}.session-unlock-mascot-photo{width:32px;height:32px;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.session-unlock-mascot-photo--unlocking{animation:session-unlock-mascot-bounce .65s ease-out .15s both}@keyframes session-unlock-mascot-bounce{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1.05)}}.session-unlock-mascot-img{width:32px;height:32px;object-fit:cover;object-position:50% 28%;display:block;border-radius:50%}@media (prefers-reduced-motion:reduce){.session-unlock-mascot-photo--unlocking{animation:none}}.session-unlock-field{flex:1 1;min-width:0;border:none;background:transparent;padding:0 12px;font-size:1rem;font-family:inherit;color:var(--unlock-ink);letter-spacing:.1em}.session-unlock-field::placeholder{color:var(--unlock-ink-muted);letter-spacing:.04em;opacity:.85}.session-unlock-field:focus{outline:none}.session-unlock-submit{flex:0 0 58px;display:flex;align-items:center;justify-content:center;border:none;border-left:2px dashed rgba(42,45,53,.15);background:linear-gradient(180deg,rgba(255,203,71,.2),rgba(255,203,71,.05));color:var(--unlock-ink-muted);cursor:pointer;transition:color .15s ease,background .15s ease,transform .2s ease}[data-theme=dark] .session-unlock-submit{border-left-color:rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(255,180,90,.08),transparent);color:var(--unlock-ink-muted)}.session-unlock-submit:hover{color:var(--unlock-coral);background:rgba(255,107,107,.1);transform:scale(1.05)}.session-unlock-submit--unlocking{color:var(--unlock-mint);background:rgba(110,212,160,.15)}.session-unlock-submit svg{filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}.session-unlock-error{display:flex;align-items:center;justify-content:center;gap:6px;margin:16px 0 0;font-size:.95rem;line-height:1.4;color:var(--unlock-coral);font-weight:500}.session-unlock-error-emoji{flex-shrink:0;font-size:1.1rem}.session-unlock-whisper{margin:16px 0 0;font-size:.8rem;color:var(--unlock-ink-muted);opacity:.85}.session-unlock-whisper span{display:inline-block;padding:4px 10px;background:rgba(77,184,232,.12);border-radius:999px;border:1px dashed rgba(77,184,232,.35)}.session-unlock-passkey-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px;width:100%}.session-unlock-passkey-btn{width:100%;padding:12px 16px;font-size:.92rem;font-weight:600;color:var(--unlock-ink);background:rgba(255,255,255,.65);border:2px dashed rgba(176,127,212,.45);border-radius:14px;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease}.session-unlock-passkey-btn:hover:not(:disabled){background:rgba(255,255,255,.88);border-color:rgba(176,127,212,.75)}.session-unlock-passkey-btn:disabled{opacity:.55;cursor:not-allowed}.session-unlock-passkey-btn--primary{border-style:solid;border-color:rgba(110,212,160,.65);background:linear-gradient(135deg,rgba(110,212,160,.22),rgba(77,184,232,.18))}.session-unlock-passkey-btn--primary:hover:not(:disabled){border-color:rgba(110,212,160,.95)}.session-unlock-passkey-msg{margin:12px 0 0;padding:10px 14px;font-size:.88rem;line-height:1.45;color:var(--unlock-ink);background:rgba(110,212,160,.2);border-radius:12px;border:1px solid rgba(110,212,160,.35)}[data-theme=dark] .session-unlock-passkey-btn{color:var(--unlock-cream);background:rgba(42,45,53,.55);border-color:rgba(176,127,212,.5)}[data-theme=dark] .session-unlock-passkey-btn--primary{background:linear-gradient(135deg,rgba(110,212,160,.25),rgba(77,184,232,.2))}[data-theme=dark] .session-unlock-passkey-msg{background:rgba(110,212,160,.18);color:var(--unlock-cream)}@media (prefers-reduced-motion:reduce){.session-unlock-blob,.session-unlock-float,.session-unlock-loading-emoji{animation:none!important}.session-unlock-blob{transform:none}.session-unlock-burst-flash,.session-unlock-confetti,.session-unlock-confetti--victory,.session-unlock-confetti-piece{animation:none!important;display:none!important}.session-unlock-bar--shake{animation:none!important}.session-unlock-flash-ring,.session-unlock-flash-ring--b,.session-unlock-flash-ring--c,.session-unlock-flash-ring--d,.session-unlock-flash-ring--e,.session-unlock-spark,.session-unlock-spark--late,.session-unlock-spark--wide{animation:none!important;opacity:0!important}.session-unlock-curtain{transition:none!important}}.app-toast{font-family:var(--font-app-body),"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-md)!important}.app-toast__title{font-weight:600!important;font-size:.95rem!important}.app-toast__desc{font-size:.8125rem!important;opacity:.92!important}.confirm-dialog-backdrop{position:fixed;inset:0;z-index:22000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(20,24,32,.45);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.confirm-dialog-panel{width:100%;max-width:400px;padding:22px 22px 20px;border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--glass-border)}.confirm-dialog-title{margin:0 0 10px;font-size:1.1rem;font-weight:700;color:var(--text);line-height:1.35}.confirm-dialog-desc{margin:0 0 20px;font-size:.9rem;line-height:1.55;color:var(--text-muted)}.confirm-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}