.login-modal-overlay[data-v-a43f3c35]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px;background:#1b1e2b73}.login-modal[data-v-a43f3c35]{width:min(420px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--air-surface);border:1px solid var(--air-border);border-radius:var(--air-radius-lg);box-shadow:var(--air-shadow-md);padding:24px}.login-header[data-v-a43f3c35]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px}.login-header h2[data-v-a43f3c35]{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:var(--track-cjk)}.login-header h2 i[data-v-a43f3c35]{color:var(--air-brand);font-size:var(--fs-xl)}.login-header p[data-v-a43f3c35]{color:var(--air-muted);font-size:var(--fs-base)}.modal-close[data-v-a43f3c35]{width:32px;height:32px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--air-subtle);cursor:pointer}.modal-close[data-v-a43f3c35]:hover{background:var(--air-brand-fade);color:var(--air-text)}.mode-tabs[data-v-a43f3c35]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;padding:4px;border-radius:var(--r-md);background:var(--air-brand-fade)}.mode-tab[data-v-a43f3c35]{border:0;border-radius:var(--r-sm);padding:8px 4px;background:transparent;color:var(--air-muted);font-size:var(--fs-base);font-weight:600;cursor:pointer}.mode-tab.active[data-v-a43f3c35]{background:#fff;color:var(--air-brand-dark);box-shadow:0 4px 12px -6px #3f348259}.login-form[data-v-a43f3c35]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-a43f3c35]{position:relative;display:flex;flex-direction:column;gap:8px}.form-group label[data-v-a43f3c35]{color:var(--air-muted);font-size:var(--fs-xs);font-weight:600}.form-group label i[data-v-a43f3c35]{color:var(--air-subtle);width:14px;margin-right:4px}.form-group input[data-v-a43f3c35]{width:100%;border:1px solid var(--air-border);border-radius:var(--r-md);padding:12px;background:var(--air-surface-soft);color:var(--air-text);outline:none}.form-group input[data-v-a43f3c35]:focus{border-color:var(--air-brand);box-shadow:var(--brand-ring)}.pwd-toggle[data-v-a43f3c35]{position:absolute;right:10px;bottom:8px;border:0;background:transparent;color:var(--air-subtle);cursor:pointer}.row-code[data-v-a43f3c35]{display:flex;gap:8px}.row-code input[data-v-a43f3c35]{flex:1}.btn-code[data-v-a43f3c35]{flex-shrink:0;width:118px;border:1px solid var(--air-border);border-radius:var(--r-md);background:#fff;color:var(--air-brand-dark);font-weight:600;cursor:pointer}.btn-code[data-v-a43f3c35]:disabled{opacity:.55;cursor:not-allowed}.step-label[data-v-a43f3c35]{margin-top:4px;color:var(--air-brand);font-size:var(--fs-xs);font-weight:700}.agreement-row[data-v-a43f3c35]{display:flex;align-items:flex-start;gap:8px;color:var(--air-muted);font-size:var(--fs-base);line-height:1.4}.agreement-row input[data-v-a43f3c35]{margin-top:2px;accent-color:var(--air-brand)}.btn-login[data-v-a43f3c35]{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:4px;border:0;border-radius:var(--r-md);padding:12px 16px;background:var(--grad-brand);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 12px 26px -10px var(--brand-lift)}.btn-login[data-v-a43f3c35]:disabled{opacity:.55;cursor:not-allowed}.mode-toggle[data-v-a43f3c35]{text-align:center;color:var(--air-subtle);font-size:var(--fs-base)}.mode-toggle a[data-v-a43f3c35]{color:var(--air-brand);font-weight:600;cursor:pointer}.generation-float[data-v-21d062de]{position:fixed;right:20px;bottom:20px;z-index:var(--z-float);width:280px;padding:12px;border-radius:var(--r-md);background:#ffffffeb;border:1px solid var(--air-border);box-shadow:var(--air-shadow-md);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.generation-float.collapsed[data-v-21d062de]{width:auto;min-width:0;padding:8px;border-radius:var(--r-full)}.generation-float.collapsed .generation-float-head[data-v-21d062de]{margin:0;gap:8px}.generation-float.collapsed .float-caption[data-v-21d062de]{display:none}.generation-float-head[data-v-21d062de],.generation-float-task[data-v-21d062de]{display:flex;align-items:center}.generation-float-head[data-v-21d062de]{justify-content:space-between;margin-bottom:8px;color:var(--air-brand);font-size:var(--fs-base);font-weight:700}.generation-float-head strong[data-v-21d062de]{color:var(--air-subtle);font-size:var(--fs-2xs);font-weight:600}.generation-float-head-actions[data-v-21d062de]{display:flex;align-items:center;gap:8px}.generation-float-head-actions button[data-v-21d062de]{width:22px;height:22px;padding:0;border:0;border-radius:var(--r-xs);background:transparent;color:var(--air-subtle);cursor:pointer}.generation-float-task[data-v-21d062de]{position:relative;width:100%;min-height:32px;padding:4px 0 12px;border:0;background:transparent;color:var(--air-text);cursor:pointer;text-align:left}.generation-float-title[data-v-21d062de]{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-base)}.generation-float-progress[data-v-21d062de]{margin-left:8px;color:var(--air-brand);font-size:var(--fs-2xs);font-weight:700}.generation-float-track[data-v-21d062de]{position:absolute;right:0;bottom:0;left:0;height:3px;overflow:hidden;border-radius:var(--r-xs);background:var(--air-brand-soft)}.generation-float-track i[data-v-21d062de]{display:block;height:100%;border-radius:inherit;background:var(--grad-accent);transition:width .3s ease}@media (max-width: 640px){.generation-float[data-v-21d062de]{right:12px;bottom:12px}}.nav-work-name[data-v-29af669d]{margin-left:auto;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:var(--fs-2xs);color:var(--air-muted);font-weight:500}:root{--font-cjk: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font: "DM Sans", var(--font-cjk);--font-display: "Space Grotesk", "DM Sans", var(--font-cjk);--font-mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-lg: 1rem;--fs-xl: 1.125rem;--fs-2xl: 1.5rem;--fs-3xl: 1.875rem;--lh-tight: 1.25;--lh-snug: 1.45;--lh-body: 1.7;--lh-loose: 2;--track-tight: -.02em;--track-cjk: -.01em;--track-none: 0;--track-label: .12em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-full: 999px;--z-below: 0;--z-base: 1;--z-raised: 2;--z-popover: 30;--z-overlay: 3000;--z-modal: 5000;--z-float: 6000;--z-toast: 7000;--air-bg: #eef0fa;--air-surface: #ffffff;--air-surface-soft: #fafaff;--air-border: #e3e5f2;--air-border-strong: #d4d7ea;--air-text: #1b1e2b;--air-muted: #565d75;--air-subtle: #6b7280;--air-brand: #7c6cf0;--air-brand-dark: #4338ca;--air-brand-soft: #e8e6fb;--air-brand-fade: #f7f7fc;--air-accent-2: #4fd6c2;--air-success: #14b8a6;--air-warning: #f59e0b;--air-danger: #e5484d;--air-brand-text: #5b4fd0;--st-success-fg: #0f766e;--st-warn-fg: #b45309;--st-danger-fg: #b42318;--st-info-fg: #3730a3;--st-mute-fg: #4b5563;--st-success-bg: #e7f7ef;--st-success-bd: #a7e0cd;--st-warn-bg: #fff4e5;--st-warn-bd: #f0d0a0;--st-danger-bg: #fdecec;--st-danger-bd: #f3c2c0;--st-info-bg: #eef2ff;--st-info-bd: #c7cdf7;--st-mute-bg: #eef1f6;--st-mute-bd: #d7dce6;--air-brand-btn: #5b4fd0;--air-danger-btn: #dc2626;--grad-brand: linear-gradient(135deg, #5b4fd0, #6d5ae0);--grad-accent: linear-gradient(90deg, #4fd6c2, #7c6cf0);--grad-glow: radial-gradient(circle at 78% 50%, rgba(79, 214, 194, .42), transparent 62%);--grad-cover: linear-gradient(145deg, #ececfb, rgba(79, 214, 194, .25));--grad-tint: linear-gradient(160deg, rgba(124, 108, 240, .16), rgba(79, 214, 194, .08));--grad-avatar: linear-gradient(135deg, #c9c0fb, #a99bf3);--air-avatar-fg: #2d2458;--air-brand-light: #8b7cf6;--air-brand-lighter: #b3a5f6;--brand-ring: 0 0 0 2px rgba(124, 108, 240, .16);--brand-wash: rgba(124, 108, 240, .12);--brand-wash-soft: rgba(124, 108, 240, .08);--brand-edge: rgba(124, 108, 240, .4);--brand-halo: rgba(124, 108, 240, .3);--brand-lift: rgba(124, 108, 240, .8);--brand-veil: rgba(124, 108, 240, .6);--accent-wash: rgba(79, 214, 194, .06);--accent-veil: rgba(79, 214, 194, .55);--air-panel-dark: #0f1020;--air-skeleton: #ececfb;--air-glass: rgba(255, 255, 255, .55);--air-glass-strong: rgba(255, 255, 255, .72);--air-stroke: rgba(255, 255, 255, .7);--air-stroke-soft: rgba(124, 108, 240, .14);--air-shadow-sm: 0 1px 2px rgba(22, 24, 31, .05), 0 2px 8px -4px rgba(22, 24, 31, .06);--air-shadow-md: 0 8px 24px -12px rgba(22, 24, 31, .16);--air-shadow-player: 0 30px 60px -40px rgba(15, 16, 32, .7);--air-radius-sm: var(--r-md);--air-radius-md: var(--r-md);--air-radius-lg: var(--r-lg);--sidebar-width: 236px;--brand: var(--air-brand);--brand-weak: var(--air-brand-soft);--ink: var(--air-text);--ink-2: var(--air-muted);--bg: var(--air-bg);--surface: var(--air-surface);--border: var(--air-border);--danger: var(--air-danger);--success: var(--air-success);--warning: var(--air-warning);--radius: var(--air-radius-sm);--shadow: var(--air-shadow-sm)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#app{min-height:100%;font-family:var(--font);color:var(--air-text);background:var(--air-bg);line-height:1.6}a{color:var(--air-brand-text);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-below);pointer-events:none;overflow:hidden;background:linear-gradient(160deg,#f4f4ff 0%,var(--air-bg) 100%)}.aurora-blob{position:absolute;border-radius:var(--r-full);will-change:transform,opacity}.aurora-purple{left:12%;top:8%;width:40vmax;height:40vmax;background:radial-gradient(circle at center,var(--brand-veil),transparent 62%);animation:aurora-drift-purple 24s ease-in-out infinite alternate}.aurora-green{left:88%;top:12%;width:36vmax;height:36vmax;background:radial-gradient(circle at center,var(--accent-veil),transparent 60%);animation:aurora-drift-green 27s ease-in-out infinite alternate}.aurora-red{left:78%;top:88%;width:46vmax;height:46vmax;background:radial-gradient(circle at center,rgba(255,173,201,.5),transparent 62%);animation:aurora-drift-red 30s ease-in-out infinite alternate}.aurora-blue{left:20%;top:90%;width:42vmax;height:42vmax;background:radial-gradient(circle at center,rgba(126,208,255,.55),transparent 60%);animation:aurora-drift-blue 22s ease-in-out infinite alternate}@keyframes aurora-drift-purple{0%{transform:translate(-50%,-50%) translate(0) scale(1);opacity:.45}50%{transform:translate(-50%,-50%) translate(10vmax,8vmax) scale(1.3);opacity:.78}to{transform:translate(-50%,-50%) translate(4vmax,13vmax) scale(1.08);opacity:.6}}@keyframes aurora-drift-green{0%{transform:translate(-50%,-50%) translate(0) scale(1);opacity:.4}50%{transform:translate(-50%,-50%) translate(-11vmax,9vmax) scale(1.32);opacity:.72}to{transform:translate(-50%,-50%) translate(-5vmax,-3vmax) scale(.9);opacity:.52}}@keyframes aurora-drift-red{0%{transform:translate(-50%,-50%) translate(0) scale(1);opacity:.38}50%{transform:translate(-50%,-50%) translate(-12vmax,-10vmax) scale(1.28);opacity:.68}to{transform:translate(-50%,-50%) translate(-6vmax,4vmax) scale(1.06);opacity:.5}}@keyframes aurora-drift-blue{0%{transform:translate(-50%,-50%) translate(0) scale(1);opacity:.38}50%{transform:translate(-50%,-50%) translate(11vmax,-9vmax) scale(1.3);opacity:.72}to{transform:translate(-50%,-50%) translate(-4vmax,3vmax) scale(.92);opacity:.54}}@media (prefers-reduced-motion: reduce){.aurora-blob{animation:none!important}}.air-shell{position:relative;z-index:var(--z-base);display:grid;grid-template-columns:236px 1fr;height:100vh;min-height:100vh;overflow:hidden;background:transparent}.air-sidebar{display:flex;flex-direction:column;height:calc(100vh - 32px);overflow-y:auto;overflow-x:hidden;margin:16px 0 16px 16px;padding:32px 16px 20px;border-radius:var(--r-lg);background:var(--air-glass);border:1px solid var(--air-stroke);backdrop-filter:blur(26px) saturate(1.5);-webkit-backdrop-filter:blur(26px) saturate(1.5);box-shadow:var(--air-shadow-sm)}.mock-logo{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-8);padding:0 var(--sp-2);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:var(--track-cjk)}.mock-logo>span{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:var(--r-sm);background:var(--grad-brand);color:#fff;font-size:var(--fs-lg);font-weight:800;box-shadow:0 8px 18px -6px #5b4fd073}.mock-logo-copy{display:flex;flex-direction:column;line-height:1.2}.mock-logo-copy strong{color:var(--air-text);font-size:var(--fs-lg);font-weight:700;letter-spacing:var(--track-cjk)}.mock-logo-copy em{margin-top:var(--sp-1);color:var(--air-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs);font-style:normal;letter-spacing:var(--track-label);text-transform:uppercase}.air-profile{position:relative;display:flex;align-items:center;gap:8px;margin:8px 4px 24px;padding:12px;border:1px solid var(--air-stroke);border-radius:var(--air-radius-sm);background:#ffffff80;transition:background .18s ease}.air-profile:hover{background:#ffffffc7}.air-profile-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:0;margin:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.air-profile-avatar{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:var(--r-md);background:var(--grad-avatar);color:#2d2458;font-size:var(--fs-lg);font-weight:700}.air-profile-copy{flex:1;min-width:0}.air-profile-copy strong,.air-profile-copy span{display:block}.air-profile-copy strong{overflow:hidden;color:var(--air-text);font-size:var(--fs-base);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.air-profile-copy span{margin-top:4px;color:var(--air-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs)}.air-nav{display:flex;flex-direction:column;gap:4px}.nav-caption{margin:0 var(--sp-3) var(--sp-2)}.nav-caption-spaced{margin-top:var(--sp-6)}.air-nav a b{margin-left:auto;padding:0 8px;border-radius:var(--r-full);background:var(--air-brand);color:#fff;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500}.air-nav a{display:flex;align-items:center;gap:var(--sp-3);padding:12px var(--sp-3);border-radius:var(--r-md);color:var(--air-muted);font-size:var(--fs-sm);font-weight:500;cursor:pointer;text-decoration:none;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.air-nav a:not(.active):hover{background:#ffffff80;color:var(--air-text)}.air-nav a.active{background:var(--air-surface);color:var(--air-text);font-weight:600;box-shadow:var(--air-shadow-sm)}.air-nav a i{width:16px;text-align:center;color:var(--air-subtle);font-size:var(--fs-sm);transition:color .16s ease}.air-nav a.active i,.air-nav a:not(.active):hover i{color:var(--air-brand)}.air-credit{position:relative;margin-top:auto;padding:var(--sp-4);border-radius:var(--air-radius-sm);background:var(--grad-tint);border:1px solid var(--air-stroke-soft);box-shadow:var(--air-shadow-sm);overflow:hidden}.air-credit-head{position:relative;z-index:var(--z-base);display:flex;align-items:center;gap:var(--sp-2)}.air-credit-badge{width:26px;height:26px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--grad-brand);color:#fff;font-size:var(--fs-xs)}.air-credit-label{color:var(--air-muted);font-size:var(--fs-2xs);font-weight:600}.air-credit-value{position:relative;z-index:var(--z-base);display:flex;align-items:baseline;gap:var(--sp-2);margin-top:var(--sp-3)}.air-credit-value strong{color:var(--air-text);font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums}.air-credit-value em{color:var(--air-subtle);font-size:var(--fs-2xs);font-style:normal}.air-content{height:100vh;overflow-y:auto;overflow-x:hidden;padding:24px 32px var(--sp-10)}@media (min-width: 1440px){.air-content{padding-inline:max(32px,calc((100% - 1280px)/2))}}.air-heading,.page-head,.studio-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);margin:var(--sp-3) 0 var(--sp-6)}.air-heading h2,.page-head h1,.page-head h2,.studio-header h2,.studio-title h2,.hero-title{margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:700;color:var(--air-text);letter-spacing:var(--track-cjk);line-height:var(--lh-tight)}.mini-label{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--air-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--track-none);line-height:var(--lh-snug)}.mini-label.is-latin{letter-spacing:var(--track-label);text-transform:uppercase}.air-create{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border:0;border-radius:var(--r-md);background:var(--grad-brand);color:#fff;font-size:var(--fs-base);font-weight:700;cursor:pointer;box-shadow:0 12px 26px -12px #5b4fd08c;transition:transform .18s ease,box-shadow .18s ease}.air-create:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px #5b4fd0a6}.page-card,.air-card{background:var(--air-surface);border:1px solid var(--air-border);border-radius:var(--air-radius-md);padding:var(--sp-6);box-shadow:var(--air-shadow-sm)}.air-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--sp-6);margin-bottom:var(--sp-8);padding:var(--sp-8);border-radius:var(--air-radius-lg);background-color:var(--air-brand-btn);background-image:var(--grad-glow),var(--grad-brand);background-repeat:no-repeat;color:#fff;box-shadow:var(--air-shadow-md)}.air-hero h3{margin:var(--sp-5) 0 var(--sp-3);font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:var(--track-cjk);line-height:var(--lh-tight)}.air-hero p{margin-bottom:var(--sp-5);font-size:var(--fs-lg);line-height:var(--lh-body);max-width:min(560px,100%)}.hero-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);background:#ffffff38;font-size:var(--fs-xs);letter-spacing:var(--track-none)}.air-hero button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border:0;border-radius:var(--r-md);background:#fff;color:var(--air-brand-dark);font-size:var(--fs-base);font-weight:700;cursor:pointer;box-shadow:0 10px 22px -10px #14103c59}.air-hero-art{position:relative;min-height:160px;border-radius:var(--air-radius-md);background:#ffffff24;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;overflow:hidden}.air-hero-art .hero-art-caption{position:relative;z-index:var(--z-raised);display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 16px;text-align:center}.air-hero-art.has-cover .hero-art-caption{position:absolute;left:18px;right:18px;bottom:16px;align-items:flex-start;padding:0;text-align:left}.hero-art-kicker{font-size:var(--fs-xs);letter-spacing:var(--track-none);line-height:var(--lh-snug)}.hero-art-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;letter-spacing:var(--track-cjk);line-height:var(--lh-tight);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hero-art-sub{font-size:var(--fs-base);letter-spacing:var(--track-none);line-height:var(--lh-snug);opacity:.92}.air-hero-art .art-wave{position:absolute;inset:auto 0 20% 0;height:40%;background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,.35),transparent 50%),radial-gradient(ellipse at 70% 40%,rgba(255,255,255,.28),transparent 45%)}.air-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 0 16px}.air-section-head h3{margin-top:var(--sp-1);font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:var(--track-cjk);line-height:var(--lh-tight)}.air-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.air-project{padding:12px;border-radius:var(--air-radius-md);background:var(--air-surface);border:1px solid var(--air-border);box-shadow:var(--air-shadow-sm);transition:transform .16s ease,box-shadow .16s ease}.air-project:hover{transform:translateY(-2px);box-shadow:var(--air-shadow-md)}.project-cover{position:relative;display:grid;place-items:center;aspect-ratio:16 / 10;margin-bottom:12px;border-radius:var(--r-md);background:var(--grad-cover);overflow:hidden;cursor:pointer}.project-cover-fallback{color:var(--air-brand);font-size:var(--fs-2xl);opacity:.7}.project-cover .play-icon{position:absolute;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-full);background:#ffffffeb;color:var(--air-brand);box-shadow:0 8px 20px -8px #3f348273}.air-project>strong{display:block;margin-bottom:4px;font-size:var(--fs-base);font-weight:700;color:var(--air-text)}.air-project>small{display:block;color:var(--air-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs)}.project-meta{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.air-project .project-info>strong,.air-project .project-info>small{display:block}.air-project .project-info>strong{margin-bottom:4px;font-size:var(--fs-base);font-weight:700}.toast-host{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{min-width:200px;max-width:360px;padding:12px;border-radius:var(--r-md);background:var(--air-surface);border:1px solid var(--air-border);box-shadow:var(--air-shadow-md);color:var(--air-text);pointer-events:auto}.toast.success{border-left:4px solid var(--air-success)}.toast.error{border-left:4px solid var(--air-danger)}.toast.warning{border-left:4px solid var(--air-warning)}.toast.info{border-left:4px solid var(--air-brand)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b1e2b6b;z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:20px}.dialog-panel{width:min(720px,100%);background:var(--air-surface);border-radius:var(--air-radius-lg);border:1px solid var(--air-border);box-shadow:var(--air-shadow-md);overflow:hidden}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--air-border)}.dialog-body{padding:16px;max-height:65vh;overflow:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--air-border)}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--r-md);padding:8px 16px;cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.app-button:disabled{opacity:.55;cursor:not-allowed}.app-button.primary{background:var(--grad-brand);color:#fff;box-shadow:0 10px 22px -12px #5b4fd08c}.app-button.primary:not(:disabled):hover{transform:translateY(-1px)}.app-button.ghost{background:#ffffffb3;border-color:var(--air-border);color:var(--air-text)}.app-button.danger{background:var(--air-danger-btn);color:#fff}.app-button.block{width:100%}.app-input,.app-textarea,.app-select .trigger{border:1px solid var(--air-border);border-radius:var(--r-sm);background:var(--air-surface);color:var(--air-text)}.app-input input,.app-textarea textarea,.app-select .trigger{width:100%;padding:8px 12px;outline:none}.app-input input:focus,.app-textarea textarea:focus,.app-select .trigger:focus{border-color:var(--air-brand);box-shadow:var(--brand-ring)}.app-select .dropdown{border:1px solid var(--air-border);border-radius:var(--r-md);background:var(--air-surface);box-shadow:var(--air-shadow-md)}.app-select .option:hover,.app-select .option.active{background:var(--air-brand-soft);color:var(--air-brand-dark)}.audio-player{background:var(--air-surface);border:1px solid var(--air-border);border-radius:var(--air-radius-md);padding:16px;box-shadow:var(--air-shadow-sm)}.audio-player .play{border:0;background:var(--grad-brand);color:#fff;border-radius:var(--r-full);padding:8px 16px;cursor:pointer;font-weight:600}.status-tag{display:inline-block;padding:4px 8px;border:1px solid transparent;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;line-height:var(--lh-snug);background:var(--air-brand-soft);color:var(--air-brand-text);border-color:var(--st-info-bd)}.status-tag.success{background:var(--st-success-bg);color:var(--st-success-fg);border-color:var(--st-success-bd)}.status-tag.warning{background:var(--st-warn-bg);color:var(--st-warn-fg);border-color:var(--st-warn-bd)}.status-tag.danger{background:var(--st-danger-bg);color:var(--st-danger-fg);border-color:var(--st-danger-bd)}.status-tag.info{background:var(--st-mute-bg);color:var(--st-mute-fg);border-color:var(--st-mute-bd)}.app-table{width:100%;border-collapse:collapse;background:var(--air-surface);border-radius:var(--air-radius-md);overflow:hidden;border:1px solid var(--air-border)}.app-table th,.app-table td{padding:12px;border-bottom:1px solid var(--air-border);text-align:left;font-size:var(--fs-sm)}.app-table th{color:var(--air-muted);font-weight:600;background:var(--air-surface-soft)}.login-page{position:relative;z-index:var(--z-base);min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);background:var(--air-glass-strong);border:1px solid var(--air-stroke);border-radius:var(--air-radius-lg);box-shadow:var(--air-shadow-md);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:28px;display:flex;flex-direction:column;gap:16px}.login-card h2{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:var(--track-cjk);line-height:var(--lh-tight)}.login-card .tip{color:var(--air-muted);font-size:var(--fs-base)}@media (max-width: 900px){.air-shell{grid-template-columns:1fr;height:auto;overflow:visible}.air-sidebar{height:auto;margin:12px;padding:16px 12px}.air-content{height:auto;padding:8px 16px 40px}.air-hero{grid-template-columns:1fr}.air-heading{flex-direction:column;align-items:stretch}}.text-center{text-align:center}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.gap-12{gap:12px}.form-hint{width:100%;color:var(--air-subtle);font-size:var(--fs-base);line-height:1.4;margin-top:4px}.empty-state{padding:40px 16px;text-align:center;color:var(--air-muted);background:var(--air-surface);border:1px dashed var(--air-border-strong);border-radius:var(--air-radius-md)}
