/* 映间 YINGJIAN · 语义化设计令牌与组件样式。
   业务颜色、间距、圆角来自 design/tokens.json；组件不写字面十六进制值。
   深浅色通过 [data-theme] 覆盖同一组语义变量实现。 */

:root{
  color-scheme:light;
  --canvas:#ffffff; --surface:#ffffff; --surface-subtle:#f2f6f9; --sidebar-bg:#f8fafc;
  --ink:#162a3b; --muted:#5b7080; --line:#d5e1e8; --control-border:#8ca4b3;
  --primary:#315fe5; --primary-hover:#244bd0; --primary-ink:#ffffff;
  --selected:#eaf0ff; --selected-ink:#234ec3; --focus:#315fe5;
  --danger:#a5352b; --danger-surface:#fbede9;
  --success:#426735; --warning:#7a581d; --warning-surface:#f7f0db;
  --media-bg:#edf3f7;
  /* Workspace glass surfaces. These tokens follow the active theme so the
     cards stay translucent while their text and controls remain legible. */
  /* Keep the glass surfaces light enough to reveal the generated plate
     underneath. Controls stay more opaque so labels and values remain crisp. */
  --glass-panel:rgba(248,252,254,.70);
  --glass-card:rgba(248,252,254,.62);
  --glass-control:rgba(255,255,255,.86);
  --glass-line:rgba(154,181,196,.62);
  --glass-shadow:rgba(4,20,34,.16);
  --radius-sm:8px; --radius-md:14px; --radius-lg:22px;
  --sidebar-w:218px; --topbar-h:79px; --control-h:44px; --content-max:1580px;
  --shadow:0 18px 60px #17364b16;
  --font:"LXGW WenKai","PingFang SC","Microsoft YaHei",sans-serif;
  --font-display:"LXGW WenKai","Songti SC",SimSun,serif;
  --brand-accent:#94ad56;
  --landing-canvas:#F7F8F7; --landing-ink:#1B1D1F; --landing-muted:#697177; --landing-grid:#1B1D1F0d;
  --landing-line:#E5E8E7; --landing-accent:#1B1D1F; --landing-lime:#454B50; --landing-coral:#454B50; --landing-shadow:#E5E8E7; --landing-accent-rgb:27,29,31; --landing-coral-rgb:69,75,80;
  --z-header:20; --z-sidebar:30; --z-mobile-nav:40; --z-modal:80; --z-toast:100;
}

/* 深色主题：完整主题，不只切换变量；图片不调暗、不反相。 */
[data-theme="dark"]{
  color-scheme:dark;
  --canvas:#0e1a28; --surface:#142536; --surface-subtle:#1c3144; --sidebar-bg:#112030;
  --ink:#eaf4f8; --muted:#9eb4c2; --line:#294355; --control-border:#7794aa;
  --primary:#6e9bff; --primary-hover:#94b5ff; --primary-ink:#0e1a28;
  --selected:#20385d; --selected-ink:#b6ceff; --focus:#8eb2ff;
  --danger:#ffb3a8; --danger-surface:#3b2421;
  --success:#b9dba6; --warning:#e6c989; --warning-surface:#352f20;
  --media-bg:#1c3144;
  --glass-panel:rgba(9,23,39,.70);
  --glass-card:rgba(12,29,48,.62);
  --glass-control:rgba(12,30,49,.84);
  --glass-line:rgba(154,193,224,.30);
  --glass-shadow:rgba(0,0,0,.30);
  --brand-accent:#d9f56a;
  --landing-canvas:#171a18; --landing-ink:#f4f0e5; --landing-muted:#aab2a1; --landing-grid:#f4f0e51c;
  --landing-line:#41493d; --landing-accent:#d9f56a; --landing-lime:#d9f56a; --landing-coral:#f3a77d; --landing-shadow:#2c3429; --landing-accent-rgb:217,245,106; --landing-coral-rgb:243,167,125;
  --shadow:0 18px 60px #00000059;
}

*{box-sizing:border-box}
body{margin:0;font-family:var(--font);font-size:14px;line-height:1.6;background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer;color:inherit}
button:disabled{cursor:not-allowed;opacity:.55}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:active:not(:disabled){transform:translateY(1px)}
button,a{transition:background .18s ease,color .18s ease,box-shadow .18s ease}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
h1{letter-spacing:-1.6px;font-size:32px;line-height:1.4;font-weight:600}
h2{font-size:22px;letter-spacing:-.6px;font-weight:600}
h3{font-size:16px;font-weight:600}
small,.small{font-size:12px}
.muted{color:var(--muted)}
.eyebrow{font-size:12px;letter-spacing:2.4px;font-weight:600;color:var(--muted)}
.icon{display:inline-block;width:20px;height:20px;flex-shrink:0;background:currentColor;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* 按钮 */
.btn{border:1px solid var(--line);border-radius:10px;min-height:var(--control-h);display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:9px 16px;font-size:14px;font-weight:600;white-space:nowrap;background:var(--surface)}
.btn:hover{background:var(--surface-subtle)}
.btn.primary{background:var(--primary);border-color:transparent;color:var(--primary-ink)}
.btn.primary:hover{background:var(--primary-hover)}
.btn.ink{background:var(--ink);border-color:var(--ink);color:var(--canvas)}
.btn.ink:hover{background:var(--muted)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.danger{color:var(--danger)}
.btn[disabled]{background:var(--surface-subtle)}
.icon-btn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;background:transparent}
.icon-btn:hover{background:var(--surface-subtle)}
.pill{display:inline-flex;gap:6px;align-items:center;padding:4px 9px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.pill.green{background:var(--selected);color:var(--selected-ink);border-color:transparent}
.pill.warn{background:var(--warning-surface);color:var(--warning);border-color:transparent}
.provider-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:22px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.provider-panel-copy{flex:1;min-width:200px}
.provider-panel-copy strong{font-size:15px}
.provider-panel-copy p{margin-top:3px;color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.provider-panel-copy small{display:block;margin-top:4px;color:var(--muted);font-size:13px}
.provider-setup{flex-basis:100%;font-size:14px;color:var(--muted)}
.provider-setup summary{cursor:pointer;width:fit-content}
.provider-setup p{padding-top:8px;overflow-wrap:anywhere}
.provider-badge{white-space:nowrap}
.admin-route-toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}
.admin-route-toolbar .field{min-width:240px;margin:0}.admin-route-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-top:18px}.admin-route-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}.admin-route-card .field{min-width:180px;margin:0}.admin-route-card select{max-width:260px}
.ok-text{color:var(--success);display:inline-flex;gap:4px;align-items:center}
.warn-text{color:var(--warning);display:flex;gap:6px;align-items:center}
.warn-text .icon{width:14px;height:14px}

/* 品牌 */
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:32px;height:32px;flex-shrink:0;display:block;transform:rotate(-6deg)}
.brand-mark::before{content:"";position:absolute;inset:5px;border:1.5px solid var(--ink);border-radius:5px;opacity:.34}
.brand-mark i{position:absolute;display:block}
.brand-mark i:nth-child(1){left:3px;top:3px;width:11px;height:11px;background:var(--ink);border-radius:7px 2px 2px 2px}
.brand-mark i:nth-child(2){right:3px;bottom:3px;width:11px;height:11px;background:var(--brand-accent);border-radius:2px 2px 7px 2px}
.brand-mark i:nth-child(3){left:14px;top:6px;width:4px;height:20px;background:var(--ink);border-radius:3px;transform:rotate(42deg);transform-origin:center}
.brand-name{font-size:22px;line-height:1.1;font-weight:650;letter-spacing:2px}
.brand-en{font-size:8px;letter-spacing:3.6px;margin-top:6px}
.skip-link{position:fixed;top:-60px;left:16px;z-index:var(--z-toast);background:var(--ink);color:var(--canvas);padding:12px}
.skip-link:focus{top:10px}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
button:focus:not(:focus-visible){outline:none}

/* 应用壳 */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);padding:31px 18px 20px;border-right:1px solid var(--line);background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:var(--z-sidebar);overflow-y:auto}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 4px 30px 13px}
.sidebar .brand{margin:0;min-width:0}
.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:34px;height:34px;flex:0 0 34px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface) 64%,transparent);color:var(--muted);padding:0}
.sidebar-toggle:hover{background:var(--selected);color:var(--selected-ink);border-color:var(--focus)}
.sidebar-toggle .icon{width:17px;height:17px}
.sidebar-toggle-label{font-size:11px;display:none}
.nav-section{font-size:12px;color:var(--muted);padding:0 15px;margin:22px 0 8px}
.nav-item{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;min-height:46px;border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:5px;text-align:left}
.nav-item:hover{background:var(--surface-subtle)}
.nav-item.active{background:var(--selected);color:var(--selected-ink);font-weight:600}
.nav-item .end{margin-left:auto;font-size:12px;font-weight:400;border:1px solid var(--line);border-radius:4px;padding:0 4px}
.side-bottom{margin-top:auto}
.credit-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px;margin:30px 1px 15px}
.credit-card .number{font-size:23px;letter-spacing:-.7px}
.credit-card .btn{width:100%;min-height:34px;font-size:12px;padding:5px;margin-top:12px}
.profile{display:flex;align-items:center;gap:9px;width:100%;padding:11px 9px;border:0;background:transparent;text-align:left;border-top:1px solid var(--line)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--selected);display:grid;place-items:center;font-family:var(--font-display);font-size:17px;color:var(--selected-ink)}
.profile .meta{line-height:1.5;flex:1}
.profile .meta strong{font-size:12px}
.profile .meta small{color:var(--muted)}
html[data-sidebar="collapsed"]{--sidebar-w:76px}
html[data-sidebar="collapsed"] .sidebar{padding:22px 10px 16px}
html[data-sidebar="collapsed"] .sidebar-head{margin:0 0 28px;justify-content:center;flex-direction:column;gap:12px}
html[data-sidebar="collapsed"] .sidebar .brand-name,
html[data-sidebar="collapsed"] .sidebar .brand-en,
html[data-sidebar="collapsed"] .sidebar .nav-label,
html[data-sidebar="collapsed"] .sidebar .nav-section,
html[data-sidebar="collapsed"] .sidebar .nav-item .end,
html[data-sidebar="collapsed"] .sidebar .credit-card,
html[data-sidebar="collapsed"] .sidebar .profile .meta{display:none}
html[data-sidebar="collapsed"] .sidebar .brand{justify-content:center}
html[data-sidebar="collapsed"] .sidebar .brand-mark{width:32px}
html[data-sidebar="collapsed"] .sidebar nav{display:flex;flex-direction:column;align-items:center}
html[data-sidebar="collapsed"] .sidebar .nav-item{justify-content:center;width:48px;height:44px;padding:10px;margin-bottom:6px}
html[data-sidebar="collapsed"] .sidebar .profile{justify-content:center;padding:11px 0}
html[data-sidebar="collapsed"] .sidebar .profile>.icon{display:none}
html[data-sidebar="collapsed"] .sidebar .brand-name,
html[data-sidebar="collapsed"] .sidebar .brand-en{display:none!important}
.app-main{position:relative;z-index:1;margin-left:var(--sidebar-w);min-height:100dvh}
.topbar{min-height:var(--topbar-h);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:8px 38px;gap:20px;flex-wrap:wrap}
.breadcrumb{font-size:12px;display:flex;gap:12px;align-items:center}
.breadcrumb span{color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rain-controls{display:flex;align-items:center;gap:3px;padding:2px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:11px;background:color-mix(in srgb,var(--surface) 54%,transparent);backdrop-filter:blur(10px) saturate(1.08);-webkit-backdrop-filter:blur(10px) saturate(1.08)}
.rain-controls .btn{min-height:34px;padding:6px 9px;font-size:12px;gap:5px;border-radius:8px}
.rain-controls .rain-toggle[aria-pressed="false"]{color:var(--muted);opacity:.82}
.rain-controls .rain-toggle[aria-pressed="true"]{color:var(--selected-ink);background:color-mix(in srgb,var(--selected) 72%,transparent)}
.rain-controls .icon{width:15px;height:15px}
html[data-route="video"] .rain-controls{border-color:rgba(175,203,229,.34);background:rgba(5,18,34,.46)}
html[data-route="video"] .rain-controls .rain-toggle[aria-pressed="true"]{color:#d8eaff;background:rgba(75,126,187,.34)}
html[data-theme="light"][data-route="video"] .rain-controls{border-color:color-mix(in srgb,var(--line) 72%,transparent);background:color-mix(in srgb,var(--surface) 54%,transparent)}
html[data-theme="light"][data-route="video"] .rain-controls .rain-toggle[aria-pressed="true"]{color:var(--selected-ink);background:color-mix(in srgb,var(--selected) 72%,transparent)}
.task-chip{background:var(--selected);color:var(--selected-ink)}
.mobile-brand,.mobile-nav{display:none}
.content{padding:33px 38px 40px;max-width:var(--content-max);margin:auto}
.page-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px}
.page-intro p{color:var(--muted);font-size:14px;margin-top:6px}
.page-intro .quiet-note{font-size:12px;padding-top:12px;color:var(--muted)}

/* 灵感广场 */
.hero{position:relative;min-height:291px;border-radius:18px;overflow:hidden;background:var(--media-bg);margin-bottom:31px;border:1px solid var(--line)}
.hero-art{position:absolute;width:72%;height:100%;right:0;object-fit:cover;object-position:center}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--media-bg) 0%,var(--media-bg) 26%,transparent 63%);pointer-events:none}
.hero-copy{position:relative;z-index:1;padding:32px 35px;width:60%}
.hero .eyebrow{font-size:12px;letter-spacing:2px;margin-bottom:13px}
.hero h2{font-family:var(--font-display);font-weight:500;font-size:39px;line-height:1.4;letter-spacing:1px}
.hero p{font-size:14px;color:var(--muted);margin:12px 0 22px}
.hero .btn{background:var(--surface);border-color:transparent;font-size:12px}
.hero-caption{position:absolute;right:21px;bottom:17px;z-index:2;font-size:12px;letter-spacing:1.2px;color:var(--muted);background:var(--surface);padding:4px 8px;border-radius:4px}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:21px}
.filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.filter{border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;border-radius:8px;min-height:36px;padding:7px 15px;white-space:nowrap}
.filter:hover{background:var(--surface-subtle)}
.filter.active{color:var(--canvas);background:var(--ink)}
.search{display:flex;gap:8px;align-items:center;border:1px solid var(--control-border);background:var(--surface);border-radius:9px;padding:7px 11px;max-width:240px}
.search .icon{width:17px;height:17px;color:var(--muted)}
.search input{width:100%;border:0;outline:none;background:none;min-width:0;font-size:12px;color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}

/* 图卡 */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px}
.art-card{min-width:0}
.art-button{display:block;width:100%;border:0;padding:0;border-radius:13px;background:var(--media-bg);text-align:left;overflow:hidden;position:relative}
.art-image{width:100%;aspect-ratio:4/4.45;object-fit:cover;transition:transform .35s ease}
.art-button:hover .art-image{transform:scale(1.035)}
.art-type{position:absolute;top:12px;left:12px;background:var(--surface);color:var(--ink);font-size:12px;padding:3px 8px;border-radius:5px}
.art-overlay{position:absolute;inset:auto 0 0;padding:40px 16px 15px;background:linear-gradient(transparent,#1a211bbb);color:#fff;display:flex;align-items:center;justify-content:space-between;opacity:0;transition:opacity .2s}
.art-button:hover .art-overlay,.art-button:focus-visible .art-overlay{opacity:1}
.art-overlay span{font-size:12px}
.art-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;min-height:56px}
.art-meta h3{font-size:14px;letter-spacing:.1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:26ch}
.art-meta p{font-size:12px;color:var(--muted);margin-top:2px}
.art-meta .icon-btn{width:34px;height:34px;color:var(--muted)}
.art-meta .icon-btn.saved{color:var(--selected-ink);background:var(--selected)}
.art-meta .icon{width:17px;height:17px}
.art-meta .btn{min-height:32px;font-size:12px;padding:5px 10px;margin:0}

/* 工作台 */
.workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}
.panel-pad{padding:26px}
.form-panel{padding:20px}
.tab-strip{display:flex;border-bottom:1px solid var(--line);gap:19px;margin-bottom:22px}
.tab-strip button{background:none;border:0;min-height:44px;padding:0 0 12px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent}
.tab-strip button.active{border-bottom-color:var(--focus);color:var(--ink);font-weight:600}
.form-panel fieldset{border:0;padding:0;margin:0;min-width:0}
.field{display:block;margin-bottom:19px}
.field-label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:600;margin-bottom:8px}
.field-label small{font-size:12px;color:var(--muted);font-weight:400;text-align:right}
.field select,.field input[type=text],.field input[type=number],textarea{width:100%;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;min-height:var(--control-h);color:var(--ink);font-size:14px}
textarea{resize:vertical;line-height:1.9;min-height:164px;max-height:320px;display:block}
.field select:focus,.field input:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:1px}
.prompt-tools{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;color:var(--muted)}
.text-btn{border:0;background:none;padding:3px 0;color:var(--focus);font-size:12px;text-decoration:underline;text-underline-offset:3px;text-align:left}
.ratio-group,.count-group{display:grid;gap:7px}
.ratio-group{grid-template-columns:repeat(4,1fr)}
.count-group{grid-template-columns:repeat(3,1fr)}
.choice{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);padding:9px 4px;font-size:12px;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;flex-direction:column}
.choice.active{border-color:var(--focus);background:var(--selected);color:var(--selected-ink);font-weight:600}
.choice small{font-size:12px}
.choice.plan-locked{border-style:dashed;background:var(--surface-subtle);color:var(--muted);cursor:pointer}
.choice.plan-locked:hover{border-color:var(--focus);color:var(--ink)}
.choice.plan-locked small{font-size:10px;color:var(--selected-ink);font-weight:600}
.ratio-shape{border:1px solid currentColor;border-radius:2px;width:18px;height:18px}
.ratio-shape[data-ratio="3:4"]{width:14px;height:19px}
.ratio-shape[data-ratio="4:3"]{width:21px;height:15px}
.ratio-shape[data-ratio="16:9"]{width:24px;height:14px}
.style-options{display:flex;flex-wrap:wrap;gap:7px}
.style-options .choice{flex-direction:row;font-size:14px;min-height:44px;padding:6px 12px}
.privacy-note{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center;margin:15px 0;line-height:1.5}
.privacy-note .icon{width:15px;height:15px;color:var(--success)}
.generate-btn{width:100%;min-height:46px;justify-content:space-between;font-size:14px}
.generate-btn small{font-size:12px;font-weight:400}
.generate-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.35;text-align:left}
.generate-copy strong{font-size:14px;font-weight:600;white-space:nowrap}
.generate-copy small{font-size:11px;opacity:.78;white-space:nowrap}
.cost-note{font-size:12px;color:var(--muted);margin-top:8px;text-align:center}
.advanced{border-top:1px solid var(--line);padding-top:13px;margin-bottom:14px;font-size:12px}
.advanced summary{cursor:pointer;margin-bottom:12px;font-weight:600}
.advanced .field{margin:12px 0}
.error-text{display:block;font-size:12px;color:var(--danger);margin:6px 0;min-height:17px}
.error-text.block{background:var(--danger-surface);padding:10px 12px;border-radius:var(--radius-sm);margin:12px 0}

/* 上传 */
.upload-box{border:1px dashed var(--control-border);border-radius:var(--radius-sm);text-align:center;padding:18px 12px;background:var(--surface-subtle);margin-bottom:19px}
.upload-box.filled{border-style:solid}
.upload-drop{display:flex;flex-direction:column;align-items:center;gap:6px}
.upload-drop .icon{width:26px;height:26px;color:var(--muted)}
.upload-drop img{max-height:120px;border-radius:var(--radius-sm)}
.upload-box p{font-size:12px;margin:6px 0}
.upload-actions{display:flex;gap:8px;justify-content:center;margin-top:10px;flex-wrap:wrap}
#reference{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* 报价 */
.quote{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;margin-bottom:14px;background:var(--surface-subtle)}
.quote.current{border-color:var(--focus);background:var(--selected)}
.quote.warn{border-color:var(--warning);background:var(--warning-surface)}
.quote.error{border-color:var(--danger);background:var(--danger-surface)}
.quote strong{display:block;font-size:14px;margin-bottom:6px}
.quote-line{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:3px 0}
.quote-line span:first-child{color:var(--muted)}
.quote .btn{width:100%;margin-top:10px;min-height:38px}
.quote .text-btn{margin-top:8px}

/* 结果画布 */
.output-panel{min-height:674px;display:flex;flex-direction:column}
.output-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.output-head h2{font-size:14px}
.output-content{flex:1;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:420px}
.empty-orbit{width:136px;height:136px;position:relative;margin:0 auto 26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}
.empty-orbit:before{content:"";position:absolute;inset:17px;border:1px dashed var(--line);border-radius:50%}
.empty-orbit .icon{width:38px;height:38px;color:var(--muted)}
.empty-state{text-align:center;max-width:400px;margin:38px auto}
.empty-state h3{font-size:18px;margin-bottom:9px}
.empty-state p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:18px}
.empty-state .btn{margin:4px}
.prompt-example{margin-top:30px;text-align:left;border:1px solid var(--line);padding:14px 16px;border-radius:var(--radius-sm);background:var(--surface-subtle);font-size:12px;color:var(--muted)}
.prompt-example button{display:block;margin-top:9px}
.spinner{width:52px;height:52px;border:2px solid var(--line);border-top-color:var(--focus);border-radius:50%;animation:spin 1.1s linear infinite;margin:0 auto 25px}
@keyframes spin{to{transform:rotate(360deg)}}
.output-footer{padding:13px 20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.progress-message{color:var(--muted);font-size:12px;margin-top:11px}
.results-wrap{width:100%}
.result-headline{font-size:14px;font-weight:600;margin-bottom:16px;text-align:center}
.results-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.results-grid.single{grid-template-columns:minmax(0,1fr);max-width:420px;margin:0 auto}
.result-tile{position:relative;min-width:0}
.result-image{width:100%;max-height:440px;object-fit:contain;background:var(--media-bg);border-radius:10px}
.slot-placeholder{border:1px dashed var(--control-border);border-radius:10px;background:var(--surface-subtle);min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);padding:20px;text-align:center}
.slot-placeholder .icon{width:28px;height:28px}
.slot-placeholder p{font-size:14px;font-weight:600;color:var(--ink)}
.slot-placeholder.small{min-height:220px}
.failed-slot .art-meta{align-items:center}
.billing-summary{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-subtle);padding:14px;margin-top:18px}
.billing-summary .quote-line{font-size:12px}
.result-actions{width:100%;display:flex;gap:8px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.demo-select{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-top:16px}
.demo-select select{flex:1;min-width:0;border:1px solid var(--control-border);background:var(--surface);border-radius:6px;padding:6px;font-size:12px;color:var(--ink)}

/* 作品库 */
.library-tools{display:flex;justify-content:space-between;gap:15px;margin-bottom:24px;flex-wrap:wrap}
.library-empty{padding:45px 20px}

/* 额度与账单 */
.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}
.stat-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:20px;display:flex;flex-direction:column;gap:4px}
.stat-card strong{font-size:34px;letter-spacing:-1px;line-height:1.2}
.stat-card .text-btn{margin-top:6px}
.ledger-panel{overflow:hidden}
.ledger-filters{padding:16px 20px 0}
.table-scroll{overflow-x:auto;padding:16px 20px 0}
.ledger-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}
.ledger-table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ledger-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
.ledger-table .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.ledger-table .num.neg{color:var(--danger)}
.ledger-table .empty-cell{text-align:center;color:var(--muted);padding:32px 12px}

/* Public retail pricing preview. Keep these rules scoped to the price page. */
.retail-pricing{max-width:1140px;margin:auto;letter-spacing:0}
.pricing-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0 24px}
.pricing-kicker{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}
.pricing-header h1{font-size:32px;line-height:1.4;font-weight:600;letter-spacing:0}
.pricing-header p{font-size:15px;color:var(--muted);margin-top:10px;max-width:640px;line-height:1.8}
.pricing-header .btn{flex-shrink:0}
.pricing-preview-note{display:flex;gap:10px;align-items:flex-start;background:var(--surface-subtle);border-left:3px solid var(--control-border);padding:12px 16px;font-size:13px;line-height:1.8}
.pricing-preview-note .icon{flex:none;margin-top:4px}
.pricing-section{margin-top:36px;padding-bottom:32px;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.pricing-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.pricing-section-title h2{font-size:22px;line-height:1.5;letter-spacing:0}
.pricing-section-title .pricing-kicker{margin-bottom:5px}
.pricing-unit{font-size:13px;color:var(--muted)}
.retail-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.subscription-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.retail-pack{border:1px solid var(--line);border-radius:8px;padding:24px;background:var(--surface);display:flex;flex-direction:column;min-width:0}
.retail-pack.is-recommended{border-color:var(--focus);background:var(--selected)}
.retail-pack.is-current-plan{box-shadow:inset 0 0 0 2px var(--focus)}
.pack-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:28px}
.pack-heading h3{font-size:20px;line-height:1.4}
.pack-heading>span{font-size:12px;color:var(--selected-ink);white-space:nowrap}
.pack-description{font-size:13px;line-height:1.8;color:var(--muted);margin-top:9px;min-height:26px}
.pack-price{display:flex;align-items:baseline;gap:10px;margin:15px 0 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pack-price strong{font-size:40px;line-height:1.2;font-weight:600;letter-spacing:0}
.pack-price>span{font-size:12px;color:var(--muted)}
.subscription-comparison{min-height:22px;margin:-2px 0 7px;font-size:12px;color:var(--muted);line-height:1.7}
.subscription-comparison s{text-decoration-thickness:1px}
.pack-credits{font-size:25px;font-variant-numeric:tabular-nums;font-weight:600}
.pack-credits span{font-size:14px;font-weight:400}
.pack-bonus{font-size:13px;color:var(--muted);margin:4px 0 20px;min-height:24px}
.retail-pack ul{list-style:none;padding:18px 0 20px;border-top:1px solid var(--line);margin:0;font-size:13px;line-height:1.8}
.retail-pack li{display:flex;gap:8px;align-items:flex-start;margin-bottom:7px}
.retail-pack li .icon{width:16px;height:16px;flex:none;margin-top:4px;color:var(--success)}
.retail-pack>.btn{width:100%;margin-top:auto;min-height:44px}
.pack-footnote{font-size:12px;color:var(--muted);line-height:1.9;margin-top:14px}
.section-desc{font-size:13px;color:var(--muted);line-height:1.8;margin:-8px 0 16px}
.calculator-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px}
.calculator-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-content:start}
.calculator-fields label{display:flex;flex-direction:column;gap:8px;font-size:13px;min-width:0}
.calculator-model,.calculator-scope{grid-column:1/-1}
.calculator-fields select,.price-filters select{width:100%;min-width:0;min-height:44px;padding:9px 34px 9px 12px;border:1px solid var(--control-border);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}
.calculator-fields select:disabled{color:var(--muted);background:var(--surface-subtle)}
.calculator-scope{font-size:12px;color:var(--muted);line-height:1.9}
.calculator-result{padding:24px;background:var(--surface-subtle);border-left:3px solid var(--focus);min-height:275px;align-self:start}
.calculator-total{display:flex;gap:10px;align-items:baseline;margin:9px 0;font-variant-numeric:tabular-nums}
.calculator-total strong{font-size:44px;line-height:1.3;font-weight:600;letter-spacing:0}
.calculator-total>span{font-size:14px}
.calculator-result p{font-size:13px;color:var(--muted);line-height:1.9}
.calculator-result h3{font-size:23px;line-height:1.5;margin:12px 0}
.calculator-pack{display:flex;flex-direction:column;gap:6px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px;font-size:14px}
.calculator-pack span{font-size:12px;color:var(--muted)}
.token-rates,.rate-details dl{margin-top:14px;font-size:12px}
.token-rates div,.rate-details dl div{display:flex;justify-content:space-between;gap:16px;padding:6px 0}
.token-rates dd,.rate-details dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.price-filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.price-filters .search{flex:1;min-width:220px}
.price-filters>label:not(.search){width:210px}
.model-result-count,.model-pricing-legend{font-size:13px;color:var(--muted);margin:16px 0;line-height:1.8}
.model-rate-list{display:grid;gap:24px}
.model-rate-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}
.model-rate-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px}
.model-rate-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.model-rate-title h3{font-size:20px;margin:0}
.model-rate-heading code,.pricing-pending-summary code{font:12px/1.7 monospace;color:var(--muted);overflow-wrap:anywhere}
.model-rate-scroll{overflow-x:auto;outline-offset:-3px}
.model-rate-table{border-collapse:collapse;width:100%;min-width:580px;font-size:14px;text-align:left;table-layout:fixed}
.model-rate-table th,.model-rate-table td{padding:14px 24px;border-top:1px solid var(--line);line-height:1.6;overflow-wrap:anywhere}
.video-rate-table th:first-child{width:42%}.video-rate-table code{font:11px/1.5 monospace;color:var(--muted)}
.model-rate-table thead{background:var(--surface-subtle);color:var(--muted)}
.model-rate-table th{font-weight:400}.model-rate-table th:first-child{width:36%}
.model-rate-table td strong{font-weight:600;color:var(--selected-ink);font-variant-numeric:tabular-nums}
.model-rate-table tbody tr:hover{background:var(--selected)}
.model-rate-note{padding:15px 24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.9}
.rate-extra{font-size:11px;color:var(--muted)}
.model-rate-pending{color:var(--muted)}
.pricing-pending-summary{margin-top:28px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle)}
.pricing-pending-summary h3{margin:0 0 10px;font-size:18px}
.pricing-pending-summary p{font-size:13px;color:var(--muted);line-height:1.8}
.pricing-pending-summary ul{padding:0;list-style:none;margin:16px 0 0;display:grid;gap:10px}
.pricing-pending-summary li{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}
@media(max-width:700px){.model-rate-heading{align-items:flex-start;padding:18px;flex-direction:column}.model-rate-title h3{font-size:18px}.model-rate-table th,.model-rate-table td{padding:12px 18px}.model-rate-note{padding:14px 18px}.pricing-pending-summary{padding:18px}}
.price-table{border-collapse:collapse;width:100%;font-size:13px;table-layout:fixed}
.price-table th{color:var(--muted);font-weight:400;background:var(--surface-subtle);text-align:left}
.price-table th,.price-table td{padding:16px 12px;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.price-table th:nth-child(1){width:26%}.price-table th:nth-child(2){width:13%}.price-table th:nth-child(3){width:22%}.price-table th:nth-child(4){width:39%}
.price-table td>strong{display:block;font-weight:600;line-height:1.7}
.price-table small{display:block;font-size:11px;color:var(--muted);margin-top:4px;line-height:1.8}
.rate-details summary{cursor:pointer;font-size:13px;line-height:1.8}
.rate-details p{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0}
.price-use-model{margin-top:10px;font-size:12px;gap:5px}
.price-empty{text-align:center;color:var(--muted);padding:35px!important}
.price-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;font-size:12px;color:var(--muted)}
.price-pagination>div{display:flex;gap:8px}
.price-pagination .btn{min-height:40px;font-size:13px}
.pricing-source{font-size:12px;color:var(--muted);line-height:1.9;margin-top:20px;display:flex;flex-wrap:wrap;gap:5px 18px}
.pricing-source a{display:inline-flex;align-items:center;gap:4px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.pricing-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px}
.pricing-rule-grid h3{font-size:16px;margin-bottom:10px}.pricing-rule-grid p{font-size:13px;color:var(--muted);line-height:1.9}
.price-loading{padding:40px 16px;text-align:center;color:var(--muted)}
.workspace-pricing-entry{font-size:13px;margin:8px 0 12px;gap:7px;flex-wrap:wrap}
@media(max-width:1100px){.retail-pack{padding:20px 16px}.pack-heading{flex-wrap:wrap;min-height:48px;align-content:start;gap:3px 8px}.calculator-layout{gap:24px}}
@media(max-width:700px){.pricing-header{align-items:flex-start;flex-direction:column;gap:15px}.pricing-header h1{font-size:28px}.pricing-header p{font-size:14px}.retail-pack-grid{grid-template-columns:1fr}.retail-pack{padding:22px}.pack-heading{min-height:28px;align-content:center}.pack-description{min-height:0}.pack-price{margin-top:22px}.pricing-section-title h2{font-size:20px}.pricing-section{margin-top:28px}.calculator-layout,.pricing-rule-grid{grid-template-columns:1fr}.calculator-result{min-height:240px}.price-filters>label:not(.search){flex:1;min-width:180px}.price-filters .search{flex-basis:100%;min-width:0}.price-table,.price-table tbody,.price-table tr,.price-table td{display:block}.price-table thead{display:none}.price-table tr{padding:14px 0;border-bottom:1px solid var(--line)}.price-table td{border:0;padding:5px 0}.price-table td:nth-child(2){font-size:12px;color:var(--muted)}.price-table td:nth-child(2):before{content:'计费方式：'}.price-table td:nth-child(3){display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.price-pagination{align-items:flex-start;flex-wrap:wrap}.pricing-rule-grid{gap:24px}.calculator-fields{gap:14px}.pricing-preview-note{font-size:12px;padding:12px}.retail-pricing .price-table-wrap{min-width:0}}

/* Legacy mock plan styles, retained for older design fixtures. */
.pricing-intro{text-align:center;padding:23px 0 36px}
.pricing-intro h1{font-size:35px}
.pricing-intro p{font-size:14px;color:var(--muted);margin:12px auto;max-width:500px}
.billing-tabs{display:inline-flex;padding:4px;background:var(--surface-subtle);border-radius:9px;margin-top:12px;gap:3px}
.billing-tabs button{border:0;background:transparent;font-size:12px;padding:7px 22px;border-radius:6px;color:var(--muted)}
.billing-tabs .active{background:var(--surface);color:var(--ink);font-weight:600}
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.plan{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-md);padding:25px 24px;display:flex;flex-direction:column}
.plan.featured{border-color:var(--focus);box-shadow:0 0 0 2px var(--selected)}
.plan .recommended{position:absolute;right:20px;top:23px;font-size:12px;background:var(--selected);color:var(--selected-ink);padding:3px 7px;border-radius:4px}
.plan h2{font-size:19px;margin-bottom:7px}
.plan .description{font-size:12px;color:var(--muted)}
.price{font-size:38px;letter-spacing:-1px;margin-top:20px;font-weight:600}
.price small{font-size:12px;letter-spacing:0;color:var(--muted);font-weight:400}
.plan .annual-note{font-size:12px;color:var(--muted);min-height:36px;margin-top:4px}
.plan .btn{width:100%;margin:14px 0 12px}
.quota-line{font-size:14px;font-weight:600;margin-bottom:16px}
.plan ul{list-style:none;margin:0;padding:0}
.plan li{display:flex;gap:8px;align-items:center;font-size:12px;margin-bottom:11px}
.plan li .icon{width:15px;height:15px;color:var(--success)}
.plan .restrictions{color:var(--warning);margin-bottom:6px}
.price-warning{border:1px dashed var(--control-border);background:var(--warning-surface);border-radius:10px;padding:14px 18px;font-size:12px;color:var(--ink);margin-top:23px}
.faq{max-width:730px;margin:45px auto}
.faq h2{text-align:center;margin-bottom:25px;font-size:20px}
.faq details{padding:17px 0;border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-size:14px;font-weight:600}
.faq p{font-size:14px;color:var(--muted);margin-top:10px}

/* 官网 */
.landing-nav{max-width:1280px;padding:26px 45px;display:flex;align-items:center;justify-content:space-between;margin:auto;gap:20px;flex-wrap:wrap}
.landing-nav .links{display:flex;gap:22px;align-items:center;font-size:14px;flex-wrap:wrap}
.landing{max-width:1280px;padding:35px 45px 60px;margin:auto}
.landing-hero{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:20px 0 65px}
.landing-hero h1{font-family:var(--font-display);font-weight:500;font-size:54px;line-height:1.5;letter-spacing:1px;margin:18px 0}
.landing-hero p{max-width:400px;font-size:14px;color:var(--muted);line-height:1.9;margin-bottom:26px}
.landing-art{border-radius:48% 48% 4px 4px;overflow:hidden;position:relative;background:var(--media-bg);min-height:410px}
.landing-art img{width:100%;height:470px;object-fit:cover;object-position:80% center}
.landing-art .pill{position:absolute;bottom:25px;left:25px}
.landing-section{padding:42px 0;border-top:1px solid var(--line)}
.landing-section>p{font-size:14px;color:var(--muted);margin:8px 0 23px}
.feature-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin:25px 0}
.feature-columns h3{margin-bottom:8px}
.feature-columns p{font-size:14px;color:var(--muted)}
.fineprint{margin-top:28px;font-size:12px;color:var(--muted);display:flex;gap:14px;justify-content:space-between}
.fineprint a{text-decoration:underline;text-underline-offset:3px}

/* 弹窗 */
dialog{padding:0;border:1px solid var(--line);border-radius:18px;max-width:860px;width:calc(100% - 40px);max-height:90dvh;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);overflow:auto;z-index:var(--z-modal)}
dialog::backdrop{background:#17201480;backdrop-filter:blur(4px)}
/* Image previews should show the generated pixels at full visual strength;
   dimming and blurring the page behind the viewer reads as a veil around the
   artwork. Other dialogs retain the standard backdrop treatment. */
dialog.provider-image-dialog::backdrop{background:transparent;backdrop-filter:none}
.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}
.dialog-head h2{font-size:17px}
.dialog-content{padding:25px}
.dialog-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.dialog-content p{font-size:14px;color:var(--muted);margin:0 0 13px}
.dialog-content h3{font-size:14px;margin:16px 0 6px}
.prompt-box{font-size:14px;line-height:1.9;background:var(--surface-subtle);padding:14px;border-radius:var(--radius-sm)}
.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.detail-media img{border-radius:12px;width:100%;max-height:520px;object-fit:contain;background:var(--surface-subtle)}
.detail-media p{margin-top:10px}
.detail-copy{display:flex;flex-direction:column;justify-content:center}
.detail-title{font-size:22px;margin:13px 0 6px}
.detail-copy h3{font-size:14px;margin:19px 0 9px}
.detail-copy .params{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:23px 0 0;font-size:12px}
.params span{color:var(--muted);display:block}
.setting-row{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.setting-row span{color:var(--muted);font-size:12px;text-align:right}
.safety-note{border-left:2px solid var(--focus);padding-left:12px;font-size:12px!important}
.compact-list{font-size:14px;color:var(--muted);padding-left:20px;line-height:2}
.color-list{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.swatch{height:75px;border-radius:9px;border:1px solid var(--line);padding:10px;display:flex;align-items:flex-end;font-size:12px}
.swatch[data-swatch="canvas"]{background:var(--canvas)}
.swatch[data-swatch="ink"]{background:var(--ink);color:var(--canvas)}
.swatch[data-swatch="primary"]{background:var(--primary);color:var(--primary-ink)}
.swatch[data-swatch="selected"]{background:var(--selected);color:var(--selected-ink)}
.check-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:12px}
.check-list li{display:flex;flex-direction:column;gap:3px;font-size:14px;padding-left:16px;position:relative}
.check-list li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--success)}
.check-list span{color:var(--muted);font-size:12px}

/* 系统页（404） */
.system-page{max-width:900px;display:flex;flex-direction:column;justify-content:center;min-height:60dvh}
.system-card{padding:55px 0 40px;text-align:left}
.system-card h1{font-family:var(--font-display);font-weight:500;font-size:42px;margin:16px 0 14px}
.system-card p{font-size:14px;color:var(--muted);max-width:520px;margin-bottom:12px}
.system-actions{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 20px}

/* Toast */
#toast{position:fixed;bottom:25px;left:calc(50% + 109px);transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--canvas);max-width:calc(100vw - 32px);padding:12px 19px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:14px;z-index:var(--z-toast)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 响应式 */
@media(min-width:1600px){
  .gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
  .hero-art{width:66%}
  .hero{min-height:320px}
  .hero-copy{padding:38px 42px}
  .hero h2{font-size:44px}
}
@media(max-width:1200px){
  :root{--sidebar-w:190px}
  .sidebar{padding-left:12px;padding-right:12px}
  .topbar{padding:8px 26px}
  .content{padding:28px 26px}
  .workspace{grid-template-columns:300px minmax(0,1fr);gap:16px}
  .form-panel{padding:17px}
  .hero h2{font-size:33px}
  .hero-copy{padding:32px 28px;width:65%}
  .gallery-toolbar{align-items:flex-start}
  .search{max-width:190px}
  .plan{padding:22px 17px}
  .output-content{padding:18px}
}
@media(max-width:1024px){
  :root{--sidebar-w:190px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-toolbar{flex-wrap:wrap}
  .gallery-toolbar .search{max-width:none;width:100%}
  .workspace{grid-template-columns:280px minmax(0,1fr)}
  .hero{min-height:280px}
  .hero h2{font-size:29px}
  .hero-copy{width:73%;padding:27px 24px}
  .hero:after{background:linear-gradient(90deg,var(--media-bg) 0%,var(--media-bg) 20%,transparent 85%)}
  .plan-grid{gap:12px}
  .plan h2{font-size:17px}
  .price{font-size:30px}
  .landing-hero h1{font-size:42px}
  .landing-art img{height:410px}
  .results-grid{grid-template-columns:1fr}
  .quiet-note{display:none}
  .stat-row{grid-template-columns:1fr}
}
@media(max-width:900px){
  :root{--sidebar-w:0px}
  html[data-sidebar="collapsed"]{--sidebar-w:0px}
  .sidebar{display:none}
  .app-main{margin-left:0}
  .topbar{padding:10px 24px;min-height:auto}
  .breadcrumb{display:none}
  .mobile-brand{display:flex}
  .mobile-brand .brand-name{font-size:18px}
  .mobile-brand .brand-en{font-size:7px}
  .mobile-brand .brand-mark{width:25px;height:27px}
  .mobile-nav{position:fixed;bottom:0;left:0;right:0;padding:6px 7px calc(7px + env(safe-area-inset-bottom));background:var(--canvas);border-top:1px solid var(--line);z-index:var(--z-mobile-nav);display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
  .mobile-nav a,.mobile-nav button{background:none;border:0;min-height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;gap:3px;color:var(--muted);border-radius:8px}
  .mobile-nav .icon{width:19px;height:19px}
  .mobile-nav a.active{color:var(--selected-ink);background:var(--selected)}
  .content{padding-bottom:110px}
  .workspace{grid-template-columns:1fr}
  #toast{left:50%;bottom:92px}
  .landing{padding:20px 25px 90px}
  .landing-nav{padding:23px 25px}
  .landing-hero{gap:25px}
  .landing-hero h1{font-size:36px}
  .fineprint{flex-direction:column;gap:4px}
  .plan-grid{gap:15px}
  .output-panel{min-height:auto}
  .detail-layout{grid-template-columns:1fr}
}
@media(max-width:640px){
  h1{font-size:26px;letter-spacing:-.8px}
  .topbar{padding:10px 19px}
  .top-actions .btn{font-size:12px;min-height:38px;padding:7px 11px}
  .content{padding:25px 19px 110px}
  .page-intro{margin-bottom:22px;gap:10px;flex-wrap:wrap}
  .page-intro p{font-size:14px}
  .hero{min-height:359px;margin-bottom:23px}
  .hero-copy{width:100%;padding:25px 24px}
  .hero h2{font-size:31px}
  .hero-art{width:100%;height:250px;bottom:-21px;object-position:right;right:-44px}
  .hero:after{background:linear-gradient(135deg,var(--media-bg) 0%,var(--media-bg) 20%,transparent 76%)}
  .hero-caption{font-size:12px;bottom:12px;right:12px}
  .filter{font-size:12px;padding:7px 12px}
  .gallery{gap:20px 12px}
  .art-image{aspect-ratio:3/4}
  .art-meta{align-items:flex-start}
  .art-overlay{display:none}
  .form-panel{padding:19px}
  .ratio-group{grid-template-columns:repeat(2,1fr)}
  .output-content{min-height:340px;padding:16px}
  .results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .result-image{max-height:280px}
  .library-tools{flex-wrap:wrap}
  .pricing-intro h1{font-size:28px}
  .plan-grid{grid-template-columns:1fr}
  .plan .recommended{position:absolute;top:24px;right:23px}
  .price{font-size:36px}
  dialog{width:calc(100% - 24px);max-height:92dvh}
  .dialog-head{padding:15px 18px}
  .dialog-content{padding:18px}
  .dialog-head h2{font-size:16px}
  .color-list{grid-template-columns:repeat(2,1fr)}
  .landing-nav .links>a:not(.btn){display:none}
  .landing-hero{grid-template-columns:1fr;padding:15px 0 35px;gap:35px}
  .landing-hero h1{font-size:40px;margin:14px 0}
  .landing-art{min-height:280px;border-radius:42% 42% 5px 5px}
  .landing-art img{height:320px}
  .feature-columns{grid-template-columns:1fr;gap:25px}
  .landing-section h2{font-size:21px}
  .landing .gallery{grid-template-columns:repeat(2,1fr)}
  .setting-row{flex-direction:column;gap:5px}
  .setting-row span{text-align:left}
  .stat-card strong{font-size:28px}
  /* 手机账本：表格转记录列表，不把列压成不可读小字 */
  .table-scroll{overflow-x:visible}
  .ledger-table{min-width:0}
  .ledger-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .ledger-table tr{display:block;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px}
  .ledger-table td{display:flex;justify-content:space-between;gap:12px;border:0;padding:5px 0;font-size:14px}
  .ledger-table td:before{content:attr(data-label);color:var(--muted);font-size:12px}
}
@media(max-width:359px){
  .gallery,.landing .gallery,.results-grid{grid-template-columns:1fr}
  .content{padding:20px 16px 110px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .spinner{border-style:dashed}
  .art-button:hover .art-image{transform:none}
}
/* 强制颜色模式：控件仍然可读 */
@media(forced-colors:active){
  .btn,.choice,.panel,.search{border:1px solid ButtonBorder}
  .nav-item.active,.filter.active{outline:2px solid Highlight}
}

/* 验收整改：持续可见的操作、移动分栏、主题素材与可读性。 */
.page-transition{animation:page-transition-in .42s cubic-bezier(.22,.8,.24,1) both;transform-origin:50% 0}
@keyframes page-transition-in{from{opacity:.35}to{opacity:1}}
.studio-content{padding-bottom:138px}
.studio-submit{position:fixed;z-index:var(--z-mobile-nav);left:var(--sidebar-w);right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:14px 36px calc(14px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:20px}
.submit-summary{display:flex;align-items:baseline;gap:16px;min-width:0}
.submit-summary strong{font-size:20px;font-variant-numeric:tabular-nums}
.submit-summary span{font-size:14px;color:var(--muted)}
.submit-actions{display:flex;gap:12px;align-items:center}
.studio-submit .generate-btn{min-width:188px;width:auto;justify-content:center;min-height:48px;font-size:14px}
.studio-submit .generate-btn .generate-copy{align-items:flex-start}
.pane-shortcut,.studio-tabs{display:none}
.retry-price{display:flex;justify-content:space-between;align-items:center;background:var(--selected);padding:18px;border-radius:var(--radius-sm);margin:18px 0}
.retry-price strong{font-size:26px}
.retry-context{text-align:center;font-size:12px;color:var(--muted);margin-bottom:12px}
.account-links{display:grid;gap:10px;margin-top:20px}
.art-meta>div{min-width:0;flex:1}
.art-meta .icon-btn{flex-shrink:0}
.art-meta h3{max-width:100%}
.art-meta small{overflow-wrap:anywhere}
.error-text:empty{display:none}
.output-head h2{font-size:16px}
.field-label,.choice,.text-btn,.quote-line{font-size:14px}
.choice small,.field-label small{font-size:12px}
.text-btn{min-height:44px}
.choice{min-width:0}
.profile .meta{min-width:0}
.profile .meta small{font-size:12px;line-height:1.6}
.profile>.icon{flex-shrink:0}
.detail-copy .params>div{overflow-wrap:anywhere}
.upload-box.filled>img{max-height:180px;object-fit:contain;margin:0 auto}
[data-route="create"] #toast{bottom:112px}
[data-theme="dark"] .hero-art{width:62%;mask-image:linear-gradient(90deg,transparent,#000 35%)}
[data-theme="dark"] .hero:after{background:linear-gradient(90deg,var(--media-bg) 0%,var(--media-bg) 37%,transparent 72%)}
[data-theme="dark"] .hero-copy{width:54%}
@media(min-width:901px){
 .output-panel{position:sticky;top:24px}
}
@media(min-width:901px) and (max-width:1200px){
 .ratio-group{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .studio-tabs{display:flex;gap:4px;border:1px solid var(--line);padding:4px;background:var(--surface-subtle);border-radius:12px;margin-bottom:18px;scroll-margin-top:16px}
 .studio-tabs button{position:relative;flex:1;border:0;border-radius:8px;background:none;min-height:44px;font-size:14px;color:var(--muted)}
 .studio-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 4px #26341812}
 .tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--focus);margin-left:8px;vertical-align:middle}
 .workspace[data-pane="params"] .output-panel,.workspace[data-pane="results"] .form-panel{display:none}
 [data-route="create"] .mobile-nav,[data-route="create"] .top-actions>a,[data-route="create"] .task-chip{display:none}
 [data-route="create"] .topbar{flex-wrap:wrap;gap:12px}
 [data-route="create"] .top-actions{flex-wrap:wrap;gap:4px}
 .provider-panel{padding:16px;gap:12px}
 .provider-panel-copy{flex-basis:100%;min-width:0}
 [data-route="create"] .page-intro>a{display:none}
 .studio-content{padding-bottom:150px}
 .studio-submit{left:0;bottom:var(--keyboard-offset,0px);padding:10px 20px calc(10px + env(safe-area-inset-bottom));gap:8px}
 .submit-summary{display:flex;flex-direction:column;gap:0}
 .submit-summary strong{font-size:18px}
 .submit-summary span{font-size:12px}
 .submit-actions{gap:6px}
 .studio-submit .generate-btn{min-width:124px;padding:10px 14px}
 .pane-shortcut{display:inline-flex;padding:8px;font-size:12px;min-height:44px}
 .field select,.field input[type=text],.field input[type=number],textarea{font-size:16px;scroll-margin-bottom:140px}
 .ratio-group{grid-template-columns:repeat(4,minmax(0,1fr))}
 .ratio-group .choice{padding:10px 2px}
 .field-label{flex-wrap:wrap;gap:2px 8px}
 .field-label small{text-align:left}
 .mobile-nav .active{color:var(--selected-ink);background:var(--selected)}
 .filter{min-height:44px}
 .btn,.icon-btn{min-height:44px}
 .icon-btn{min-width:44px}
}
@media(max-width:640px){
 .hero{display:flex;flex-direction:column;min-height:0;background:var(--media-bg)}
 .hero:after,[data-theme="dark"] .hero:after{display:none}
 .hero-copy,[data-theme="dark"] .hero-copy{position:relative;order:0;width:100%;padding:24px}
 .hero h2{font-size:30px;line-height:1.45}
 .hero p{font-size:14px;margin:12px 0 18px;max-width:30ch}
 .hero-art,[data-theme="dark"] .hero-art{position:relative;order:1;inset:auto;width:100%;height:190px;object-fit:cover;object-position:center;mask-image:none}
 .hero-caption{font-size:12px;bottom:12px;right:12px}
 .hero-copy .eyebrow{font-size:12px;letter-spacing:1.5px}
 .hero .btn{font-size:14px}
 .topbar{gap:10px}
 .top-actions{gap:6px}
 .page-intro p{font-size:14px}
 .form-panel{padding:18px}
 .ratio-group{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ratio-group .choice{flex-direction:row;gap:8px;flex-wrap:wrap}
 .ratio-group small{flex-basis:100%;text-align:center}
 .output-head{padding:16px}
 .output-footer{font-size:12px}
 .output-content{padding:16px;min-height:360px}
 .empty-state{margin:24px auto}
 .empty-orbit{width:100px;height:100px;margin-bottom:22px}
 .failed-slot .art-meta{flex-direction:column;gap:8px}
 .studio-submit{padding-left:16px;padding-right:16px}
}
@media(max-width:359px){
 .studio-submit .generate-btn{min-width:110px;padding:10px;font-size:14px}
 .submit-actions{gap:2px}
 .pane-shortcut{padding:4px;font-size:12px}
 .hero-copy{padding:22px}
 .hero h2{font-size:28px}
}

/* Real generation and locally persisted artwork. */
.generation-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle);color:var(--muted);font-size:13px}
.generation-notice[hidden]{display:none}
.result-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.result-card>img{display:block;width:100%;max-height:65vh;object-fit:contain;background:var(--surface-subtle)}
.result-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;font-size:12px;color:var(--muted)}
.result-caption{padding:20px 2px 4px;line-height:1.7}
.result-caption strong{display:block;font-size:14px;font-weight:500}
.result-caption p{margin:6px 0 12px;font-size:12px;color:var(--muted)}
.provider-art-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line)}
.provider-art-grid.is-multiple{grid-template-columns:repeat(2,minmax(0,1fr))}
.provider-art-item{min-width:0;background:var(--surface)}
.provider-art-preview{display:block;position:relative;padding:0;width:100%;border:0;background:var(--surface-subtle);cursor:zoom-in;overflow:hidden}
.provider-art-preview img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .22s ease}
.provider-art-preview:hover img{transform:scale(1.018)}
.provider-art-item-actions{display:flex;gap:4px;padding:6px;background:var(--surface)}
.provider-art-item-actions .btn{flex:1;min-width:0;min-height:32px;padding:5px 6px;font-size:11px;gap:4px;justify-content:center;white-space:nowrap}
.provider-art-item-actions .icon{width:14px;height:14px}
.provider-art-actions{display:flex;gap:8px;padding:0 14px 16px;flex-wrap:wrap}
.provider-art-card{break-inside:avoid}
.task-gallery{align-items:start;gap:30px}
.provider-art-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:0 6px 22px color-mix(in srgb,var(--ink) 4%,transparent)}
.task-frame{padding:12px;border-bottom:1px solid var(--line);background:var(--surface)}
.task-carousel{position:relative;min-width:0}
.task-carousel-slide[hidden]{display:none}
.task-carousel .provider-art-preview{aspect-ratio:var(--task-art-ratio,1);background:var(--surface);border:1px solid var(--line);border-radius:0;box-shadow:inset 0 1px 4px color-mix(in srgb,var(--ink) 8%,transparent)}
.task-carousel .provider-art-preview img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;transform:none}
.task-carousel-slide:not([hidden]) img{animation:task-image-in .35s ease both}
.task-carousel .provider-art-item-actions{gap:8px;padding:10px 0 0}
.task-carousel .provider-art-item-actions .btn{font-size:12px;min-height:40px}
.carousel-control{position:absolute;top:calc((100% - 50px)/2);z-index:2;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--ink);box-shadow:0 3px 14px #10283c22;opacity:0;transform:translateY(-50%);transition:opacity .2s ease,background .2s ease}
.task-carousel:hover .carousel-control,.task-carousel:focus-within .carousel-control{opacity:1}
.carousel-control:active:not(:disabled){transform:translateY(-50%)}
.carousel-control:hover{background:var(--selected);border-color:var(--focus);color:var(--focus)}
.carousel-control--prev{left:10px}.carousel-control--next{right:10px}
.carousel-control .icon{width:18px;height:18px}.carousel-control--prev .icon{transform:rotate(180deg)}
.task-carousel-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;min-height:32px}
.task-carousel-dots{display:flex;gap:0;flex-wrap:wrap}
.task-carousel-dot{display:grid;place-items:center;width:28px;height:32px;padding:0;border:0;background:none;border-radius:4px}
.task-carousel-dot>span{width:6px;height:6px;border-radius:50%;background:var(--control-border);transition:width .2s ease,background .2s ease}
.task-carousel-dot[aria-pressed="true"]>span{background:var(--focus);width:18px;border-radius:3px}
.carousel-autoplay{font-size:12px;min-height:32px;padding:4px 8px;border:0;background:none;color:var(--muted);border-radius:4px}
.carousel-autoplay:hover{color:var(--focus);background:var(--selected)}
.provider-art-card .art-meta{padding:14px 16px 10px;min-width:0}.provider-art-card .art-meta>div{min-width:0}.provider-art-card .art-meta h3{max-width:100%}
.task-card .provider-art-actions{padding:0 16px 14px}.task-card .provider-art-actions .btn{min-height:36px;padding:6px 0;color:var(--focus)}
.task-frame>.slot-placeholder{aspect-ratio:1;min-height:0;border:0}
.task-issues{margin:0 16px 12px;color:var(--danger);font-size:12px;overflow-wrap:anywhere}.task-issues summary{cursor:pointer}.task-issues p{margin-top:8px;color:var(--muted)}
.viewer-thumbnails{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}.viewer-thumbnails:empty{display:none}
.viewer-thumbnails button{position:relative;width:64px;height:64px;padding:3px;border:1px solid var(--line);background:var(--surface);border-radius:6px}
.viewer-thumbnails button[aria-pressed="true"]{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
.viewer-thumbnails img{width:100%;height:100%;object-fit:contain;background:var(--surface-subtle)}
.viewer-thumbnails span{position:absolute;right:3px;bottom:3px;padding:0 4px;background:var(--surface);color:var(--ink);font-size:10px}
@keyframes task-image-in{from{opacity:.4}to{opacity:1}}
@media(hover:none),(pointer:coarse){.carousel-control{opacity:1}.task-carousel-dot,.carousel-autoplay{min-width:36px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.task-carousel-slide:not([hidden]) img{animation:none}.task-carousel *{transition:none}}
.video-library-media{position:relative;background:#111;overflow:hidden}.video-library-media video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.video-library-media .cover-count{position:absolute;right:10px;bottom:10px;padding:4px 8px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:12px}
@media(max-width:640px){.result-meta{padding:12px}.result-meta .btn{font-size:12px}.generation-notice{align-items:flex-start}.result-caption{padding-top:16px}.result-card>img{max-height:none}.studio-submit .submit-summary strong{font-size:14px}}

/* Workspace v3: writing room, model capabilities, and stable multi-image cards. */
.provider-workspace{grid-template-columns:minmax(560px,1.12fr) minmax(0,.88fr);gap:24px}
.studio-content{position:relative;isolation:isolate;background:transparent}
.studio-water-layer{display:none;position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:
  url("assets/workspace/image-glass-background.png") center/cover no-repeat,
  #edf3f5}
html[data-route="create"] .studio-water-layer,
html[data-route="video"] .studio-water-layer{display:block}
/* The generated plate is shared by both workspaces; only the active theme
   chooses which plate to show. Keeping the two route selectors together
   prevents create and video from drifting into different visual systems. */
html[data-theme="light"] .studio-water-layer{background:
  url("assets/workspace/image-glass-background.png") center/cover no-repeat,
  #edf3f5}
html[data-theme="dark"] .studio-water-layer{background:
  url("assets/workspace/video-glass-background.png") center/cover no-repeat,
  #071322}
html[data-route="create"] #studio-water-canvas{opacity:.78;mix-blend-mode:normal;filter:saturate(.94) contrast(1.08)}
html[data-route="create"] .studio-water-layer::before{background:linear-gradient(115deg,rgba(255,255,255,.22),transparent 35%,rgba(210,221,227,.12) 68%,transparent)}
html[data-route="create"] .studio-water-layer::after{opacity:.025;mix-blend-mode:multiply}
/* Video workspace uses the generated smoked-glass plate as its base. Keep
   the center quiet for the form/result cards while retaining the wet edges
   and the live canvas water/rain interaction above it. */
html[data-route="video"] .studio-water-layer{display:block}
html[data-theme="dark"][data-route="video"] .studio-water-layer::before{background:linear-gradient(115deg,rgba(196,222,255,.16),transparent 36%,rgba(130,171,225,.15) 68%,transparent);mix-blend-mode:screen}
html[data-theme="dark"][data-route="video"] .studio-water-layer::after{opacity:.035;background:repeating-linear-gradient(102deg,transparent 0 74px,rgba(168,206,255,.13) 76px,transparent 79px 158px)}
html[data-route="video"] #studio-water-canvas{opacity:.92;mix-blend-mode:normal;filter:saturate(1.05) contrast(1.18)}
html[data-route="video"] .studio-water-highlight{border-color:rgba(188,218,255,.25);box-shadow:inset 0 1px 0 rgba(210,232,255,.26),inset 0 0 80px rgba(68,122,188,.2);opacity:.34}
/* Dark mode must not inherit the bright white sheen used by the light plate. */
html[data-theme="dark"] .studio-water-layer::before{background:linear-gradient(115deg,rgba(164,207,255,.07),transparent 35%,rgba(91,150,214,.08) 68%,transparent);mix-blend-mode:screen}
html[data-theme="dark"] .studio-water-layer::after{opacity:.06;background:repeating-linear-gradient(102deg,transparent 0 74px,rgba(168,206,255,.10) 76px,transparent 79px 158px);mix-blend-mode:screen}
html[data-sidebar="collapsed"] .sidebar .brand>span{display:none!important}
html[data-theme="dark"][data-route="video"] .studio-drop{background:linear-gradient(135deg,rgba(236,247,255,.58),rgba(121,169,228,.18) 42%,rgba(28,69,122,.42));border-color:rgba(204,230,255,.52);box-shadow:inset 7px 5px 12px rgba(228,243,255,.34),inset -8px -10px 16px rgba(15,45,88,.34),0 8px 24px rgba(14,45,89,.26)}
html[data-theme="dark"][data-route="video"] .topbar{background:rgba(5,15,29,.74);border-color:rgba(167,201,239,.22);color:#edf5ff;backdrop-filter:blur(18px) saturate(1.15)}
html[data-theme="dark"][data-route="video"] .breadcrumb span{color:#aac2da}
html[data-theme="dark"][data-route="video"] .page-intro h1{color:#f0f6ff}
html[data-theme="dark"][data-route="video"] .page-intro p{color:#b3c8de}
html[data-theme="dark"][data-route="video"] .video-page-actions .btn.ghost{color:#e8f2ff;border-color:rgba(169,202,239,.34);background:rgba(7,20,40,.5)}
html[data-theme="dark"][data-route="video"] .fineprint{color:#abc2d8}
.studio-water-layer::before{content:"";position:absolute;inset:-8%;background:linear-gradient(115deg,rgba(255,255,255,.26),transparent 35%,rgba(255,255,255,.2) 68%,transparent);filter:blur(24px);animation:studio-glass-sheen 16s ease-in-out infinite alternate}
.studio-water-layer::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(102deg,transparent 0 74px,rgba(255,255,255,.06) 76px,transparent 79px 158px);opacity:.22;mix-blend-mode:screen;animation:studio-rain-lines 20s linear infinite}
#studio-water-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.82;z-index:1;mix-blend-mode:normal;filter:saturate(1.1) contrast(1.18)}
/* Keep the generated smoked-glass pixels visible on the video route. This
   comes after the shared canvas rule so the dark plate is not washed out by
   screen blending. */
html[data-route="video"] #studio-water-canvas{opacity:.88;mix-blend-mode:normal;filter:saturate(1.08) contrast(1.2)}
.studio-water-highlight{position:absolute;inset:5% 8% 12%;border:1px solid rgba(255,255,255,.2);border-radius:36px;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 0 80px rgba(183,226,248,.18);opacity:.45}
.studio-drop{position:absolute;display:block;width:clamp(16px,2.3vw,40px);height:clamp(24px,3.8vw,64px);border-radius:57% 43% 63% 37% / 47% 49% 53% 51%;background:radial-gradient(ellipse at 29% 20%,rgba(255,255,255,.92) 0 8%,rgba(206,231,250,.42) 18%,transparent 34%),radial-gradient(ellipse at 56% 60%,rgba(74,119,158,.22),rgba(3,14,30,.64) 82%);border:1px solid rgba(224,242,255,.7);box-shadow:0 6px 16px rgba(0,0,0,.42),inset 3px 2px 7px rgba(255,255,255,.54),inset -6px -8px 12px rgba(0,6,18,.62);filter:blur(.08px);opacity:.76;mix-blend-mode:normal;animation:studio-drop-float 7s ease-in-out infinite;z-index:2}
.studio-drop::after{content:"";position:absolute;left:21%;top:13%;width:29%;height:17%;border-radius:50%;background:rgba(255,255,255,.9);filter:blur(1px);transform:rotate(-24deg);box-shadow:10px 13px 0 -6px rgba(174,219,247,.26)}
.studio-drop--1{left:8%;top:18%;animation-delay:-1s}.studio-drop--2{left:23%;top:67%;transform:scale(.7);animation-delay:-4s}.studio-drop--3{left:42%;top:28%;transform:scale(.52);animation-delay:-2s}.studio-drop--4{left:61%;top:74%;transform:scale(.85);animation-delay:-6s}.studio-drop--5{left:78%;top:19%;transform:scale(.62);animation-delay:-3s}.studio-drop--6{left:91%;top:52%;transform:scale(.48);animation-delay:-5s}.studio-drop--7{left:49%;top:88%;transform:scale(.42);animation-delay:-7s}.studio-drop--8{left:14%;top:43%;transform:scale(.4);animation-delay:-2.5s}
@keyframes studio-drop-float{0%,100%{translate:0 0;rotate:-5deg}50%{translate:8px -13px;rotate:6deg}}
@keyframes studio-glass-sheen{from{transform:translate3d(-3%,0,0) rotate(-2deg);opacity:.55}to{transform:translate3d(4%,2%,0) rotate(2deg);opacity:.9}}
@keyframes studio-rain-lines{from{background-position:0 0}to{background-position:120px 260px}}
.studio-content:before{background:linear-gradient(112deg,rgba(255,255,255,.1),rgba(215,239,250,.05) 48%,rgba(188,222,239,.08));}
.studio-content:after{opacity:.06;backdrop-filter:blur(2px) saturate(1.03);}
.studio-content:before,.studio-content:after{content:"";position:fixed;inset:0;pointer-events:none}
.studio-content:before{z-index:-2;background:
  radial-gradient(circle at 82% 13%,rgba(129,181,210,.1),transparent 28%),
  radial-gradient(circle at 7% 82%,rgba(74,126,162,.07),transparent 31%),
  linear-gradient(112deg,rgba(255,255,255,.18),rgba(222,237,245,.12) 47%,rgba(193,218,232,.1));}
.studio-content:after{z-index:-1;opacity:.08;background:
  repeating-linear-gradient(112deg,transparent 0 22px,rgba(255,255,255,.45) 23px,transparent 24px 76px),
  repeating-linear-gradient(101deg,transparent 0 41px,rgba(78,126,153,.2) 42px,transparent 44px 132px),
  linear-gradient(90deg,rgba(255,255,255,.28),rgba(188,214,228,.14) 48%,rgba(255,255,255,.22));
  backdrop-filter:blur(3px) saturate(1.04);animation:rain-glass-drift 18s linear infinite;}
@keyframes rain-glass-drift{from{background-position:0 0,0 0,0 0}to{background-position:110px 270px,-70px 210px,0 0}}
/* Keep the veil aligned with the selected plate. A bright overlay is useful
   for the light glass, but it makes the dark workspace look washed out. */
html[data-theme="light"] .studio-content::before{background:linear-gradient(112deg,rgba(255,255,255,.07),rgba(226,239,246,.025) 48%,rgba(194,218,231,.05));}
html[data-theme="light"] .studio-content::after{opacity:.035;background:repeating-linear-gradient(112deg,transparent 0 22px,rgba(255,255,255,.22) 23px,transparent 24px 76px);backdrop-filter:none;}
html[data-theme="dark"] .studio-content::before{background:linear-gradient(112deg,rgba(2,9,20,.08),rgba(10,27,48,.035) 48%,rgba(2,8,18,.10));}
html[data-theme="dark"] .studio-content::after{opacity:.025;background:repeating-linear-gradient(112deg,transparent 0 22px,rgba(154,193,224,.11) 23px,transparent 24px 76px);backdrop-filter:none;mix-blend-mode:screen;}
/* The workspace plate already supplies the glass treatment. Do not place a
   second full viewport veil above it: it lowers contrast on generated images
   and makes the preview feel foggy. Rain remains rendered by the dedicated
   water layer/canvas underneath the app content. */
.studio-content::before,.studio-content::after{display:none!important}

/* Keep the decorative sheen quiet so it reads as glass texture rather than a
   white mask. The live canvas still carries the visible rain and ripples. */
.studio-water-layer::before{opacity:.18;animation:studio-glass-sheen-soft 16s ease-in-out infinite alternate}
.studio-water-layer::after{opacity:.10}
html[data-theme="light"] .studio-water-layer::after{opacity:.08}
html[data-theme="dark"] .studio-water-layer::after{opacity:.05}
@keyframes studio-glass-sheen-soft{from{transform:translate3d(-3%,0,0) rotate(-2deg)}to{transform:translate3d(4%,2%,0) rotate(2deg)}}

.provider-workspace .form-panel,.provider-workspace .output-panel,.video-workspace .form-panel,.video-workspace .output-panel{position:relative}
.provider-workspace .form-panel fieldset{display:block}
.provider-workspace .form-panel fieldset>.model-field,.provider-workspace .form-panel fieldset>.provider-route-panel,.provider-workspace .form-panel fieldset>.upload-box,.provider-workspace .form-panel fieldset>.prompt-field,.provider-workspace .form-panel fieldset>.advanced-options,.provider-workspace .form-panel fieldset>.workspace-pricing-entry{grid-column:1 / -1}
.provider-workspace .form-panel fieldset>.field{min-width:0}
.parameter-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.parameter-card{min-width:0;padding:20px;border:1px solid var(--glass-line);border-radius:14px;background:var(--glass-card);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:0 10px 28px var(--glass-shadow)}
.parameter-card-title{margin:0 0 20px;font-size:15px;font-weight:650;letter-spacing:.02em;color:var(--ink);padding-bottom:12px;border-bottom:1px solid var(--line)}
.parameter-card .field,.parameter-card .provider-route-panel,.parameter-card .upload-box,.parameter-card .advanced-options,.parameter-card .workspace-pricing-entry{margin-bottom:22px}
.parameter-card .field:last-child,.parameter-card .provider-route-panel:last-child,.parameter-card .upload-box:last-child,.parameter-card .advanced-options:last-child{margin-bottom:0}
.video-parameter-card{display:block}
.video-parameter-card .parameter-card-title{margin-bottom:22px}
.provider-workspace .form-panel{padding:26px}
.provider-workspace .field{margin-bottom:26px}
.provider-workspace .field-label{font-size:16px;align-items:center}
.provider-workspace .field-label small{font-size:13px}
.provider-workspace select{font-size:16px;min-height:48px}
.model-select-row{display:flex;align-items:stretch;gap:8px}.model-select-row select{flex:1;min-width:0;min-height:48px}.model-search-toggle{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;border:1px solid var(--control-border);background:var(--surface)}.model-search-toggle.active{background:var(--surface-subtle);color:var(--selected-ink)}.model-search-toggle .icon{width:18px;height:18px}.provider-workspace #model-search,.video-workspace #video-model-search{width:100%;margin:8px 0 0;font-size:14px;min-height:var(--control-h)}
.provider-workspace .model-search-toggle,.video-workspace .model-search-toggle,.video-model-select-row .model-search-toggle{height:48px;min-height:48px}
.reference-choice-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.reference-choice-row .btn{min-height:var(--control-h);flex:0 0 auto}
.provider-workspace .upload-box>.btn{display:inline-flex;vertical-align:middle;margin:8px 4px 0;min-height:var(--control-h)}
.provider-workspace .model-note{margin-top:4px;font-size:13px}
.provider-route-panel{margin:-8px 0 24px;padding:14px 16px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:10px}
.provider-route-panel .field{margin-bottom:12px}
.provider-route-panel .field-label{font-size:14px}
.route-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px}
.route-facts span{display:flex;flex-direction:column;gap:3px;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px;color:var(--muted)}
.route-facts strong{font-size:11px;color:var(--ink);font-weight:600}
.route-description{margin:10px 0 0;font-size:12px;line-height:1.7;color:var(--muted)}
.provider-workspace #prompt{min-height:280px;max-height:640px;font-size:17px;line-height:1.85;padding:16px;resize:vertical}
.provider-workspace .prompt-tools{align-items:center;margin-top:10px;font-size:12px}
.provider-workspace .prompt-tools .text-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.resolution-options{display:grid;grid-template-columns:repeat(var(--option-count,4),minmax(0,1fr));gap:8px}
.batch-options{display:grid;grid-template-columns:repeat(var(--option-count,3),minmax(0,1fr));gap:8px}
.provider-workspace .choice{min-width:0;min-height:46px;padding:9px 6px;font-size:15px}
.provider-workspace .ratio-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.provider-workspace .ratio-group .choice{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:9px}
.provider-workspace .style-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.field-hint{margin:8px 0 0;font-size:12px;color:var(--muted)}
.plan-access-note{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plan-access-note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ratio-toggle{min-height:32px;padding:2px 0;font-size:12px;font-weight:400}
.advanced-options{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:22px}
.advanced-options summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px}
.advanced-options summary>span{margin-left:auto;color:var(--muted);font-size:12px}
.plan-feature-locked{background:var(--surface-subtle);padding:14px;border:1px dashed var(--control-border);border-radius:6px}
.locked-feature-heading{display:flex;align-items:center;gap:8px;font-size:14px}
.locked-feature-heading>span{margin-left:auto;color:var(--selected-ink);font-size:12px;font-weight:600}
.plan-feature-locked p{margin:8px 0 10px;color:var(--muted);font-size:12px;line-height:1.7}
.plan-feature-locked .btn{min-height:36px}
.option-toggle{display:flex;gap:10px;align-items:flex-start;margin-top:18px;cursor:pointer}
.option-toggle input,.provider-consent input{accent-color:var(--focus);width:16px;height:16px;flex:0 0 16px;margin:4px 0 0}
.option-toggle strong{display:block;font-size:14px;font-weight:400}.option-toggle small{display:block;color:var(--muted);font-size:12px;line-height:1.7;margin-top:4px}
.provider-option-field{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);align-items:center;gap:12px;margin-top:16px;font-size:14px}
.provider-option-field input,.provider-option-field select{width:100%;min-width:0;min-height:46px;margin:0;font-family:inherit}
.provider-model-options summary>span:last-child{max-width:48%;overflow-wrap:anywhere;text-align:right}
.provider-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--muted);line-height:1.8}
.reference-provider-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.reference-provider-list img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.reference-ideas{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.reference-ideas button,.result-ideas button{border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:5px 8px;color:var(--ink);font:inherit;cursor:pointer}.reference-ideas button:hover,.result-ideas button:hover{border-color:var(--focus)}.result-ideas{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}.result-ideas>span{width:100%;font-size:12px;color:var(--muted)}.result-ideas button{display:inline-flex;align-items:center;gap:5px}.result-ideas .icon{width:14px;height:14px}
.reference-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.reference-library-card{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:6px;color:var(--ink);font:inherit;cursor:pointer}.reference-library-card:hover{border-color:var(--focus);transform:translateY(-1px)}.reference-library-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:var(--surface-subtle)}.reference-library-card span{font-size:11px;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media(max-width:640px){.reference-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.provider-workspace .output-panel{min-height:610px;position:static;overflow:hidden}
.provider-workspace .output-content{justify-content:flex-start;align-items:stretch;padding:20px;min-height:450px}
.provider-workspace .output-content>.empty-state{margin:auto;padding:56px 0}
.provider-workspace .output-head h2{font-size:17px}.provider-workspace .output-head .pill{font-size:12px}
.provider-results{display:grid;gap:16px;width:100%;align-items:start}
.provider-results.single{grid-template-columns:minmax(0,1fr);max-width:600px;margin:0 auto}
.provider-results.multiple{grid-template-columns:repeat(2,minmax(0,1fr))}
.result-image-button{display:block;position:relative;width:100%;border:0;padding:0;background:var(--surface-subtle);cursor:zoom-in}
.result-image-button img{display:block;width:100%;aspect-ratio:1;object-fit:contain}
.provider-results.single .result-image-button img{aspect-ratio:auto;max-height:65vh;min-height:200px}
.result-number{position:absolute;left:10px;top:10px;z-index:1;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:2px 7px;border-radius:5px;font-size:12px;font-variant-numeric:tabular-nums}
.result-card .result-meta{padding:12px;gap:8px;align-items:center;font-size:12px}
.result-actions{display:flex;gap:4px;flex-wrap:wrap}.result-actions .btn{padding:6px 8px;min-height:34px;font-size:12px;gap:5px}.result-actions .icon{width:15px;height:15px}
.result-placeholder .slot-canvas{aspect-ratio:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;background:var(--surface-subtle);text-align:center}
.slot-canvas strong{font-size:14px;font-weight:400;margin:14px 0 7px}.slot-canvas p{font-size:12px;color:var(--muted);line-height:1.8;margin:0;overflow-wrap:anywhere}.slot-canvas .spinner{width:26px;height:26px}
.batch-progress,.result-notice{margin-top:18px;padding:14px 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.batch-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.result-notice p{line-height:1.8}
.result-caption{width:100%;padding:20px 0 0}.result-caption strong{font-weight:400}
.provider-image-dialog{width:min(1120px,calc(100% - 40px));max-width:1120px}
.image-viewer>img{display:block;width:100%;max-height:66dvh;object-fit:contain;background:var(--surface-subtle);border-radius:10px}
.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0;flex-wrap:wrap;font-size:13px}.viewer-toolbar>div{display:flex;gap:6px;flex-wrap:wrap}.viewer-prompt{line-height:1.9}
@media(min-width:1450px){.provider-workspace{grid-template-columns:minmax(640px,1.15fr) minmax(0,.85fr)}}
@media(min-width:901px) and (max-width:1150px){.provider-workspace{grid-template-columns:minmax(350px,1fr) minmax(0,1fr);gap:18px}.provider-workspace .form-panel{padding:20px}.provider-workspace .output-content{padding:14px}.provider-results.multiple{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){.provider-workspace{grid-template-columns:minmax(0,1fr)}.provider-workspace .form-panel{padding:24px}.provider-workspace #prompt{min-height:280px}.provider-workspace .output-content{padding:20px}.provider-results.multiple{grid-template-columns:repeat(2,minmax(0,1fr))}.provider-workspace .choice{min-height:46px}}
@media(max-width:1150px){.parameter-cards{grid-template-columns:1fr}.parameter-card{padding:18px}}
@media(max-width:900px){.provider-workspace .form-panel fieldset>.field,.provider-workspace .form-panel fieldset>.provider-route-panel,.provider-workspace .form-panel fieldset>.upload-box,.provider-workspace .form-panel fieldset>.advanced-options{margin-bottom:22px}}
@media(max-width:520px){.provider-workspace .form-panel{padding:18px}.provider-workspace #prompt{font-size:16px;min-height:270px}.provider-workspace .field-label{font-size:15px}.provider-workspace .field-label small{font-size:11px}.resolution-options{gap:6px}.provider-workspace .choice{font-size:14px}.provider-workspace .output-content{padding:14px}.provider-results.multiple{grid-template-columns:minmax(0,1fr)}.result-actions .btn,.provider-art-item-actions .btn{min-height:44px}.viewer-toolbar .btn{font-size:12px;padding:8px}.studio-submit .submit-summary span{max-width:145px;font-size:11px}.studio-submit .generate-btn{min-width:120px;font-size:13px}.provider-image-dialog .dialog-content{padding:14px}.provider-workspace .output-head{gap:8px}}
.video-workspace{display:grid;grid-template-columns:minmax(360px,.75fr) minmax(0,1.25fr);gap:24px;align-items:start}.video-workspace .form-panel{padding:28px}.video-workspace textarea{min-height:220px;resize:vertical}.video-submit-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.video-output{min-height:520px}.video-result-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}.video-result-card video{display:block;width:100%;max-height:65vh;background:#111}.video-result-card .result-meta{padding:12px 14px}.video-result-dismiss{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(8,15,24,.72);color:#fff;cursor:pointer;backdrop-filter:blur(10px);transition:background .16s ease,transform .16s ease}.video-result-dismiss:hover{background:rgba(8,15,24,.92);transform:scale(1.05)}.video-result-dismiss:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.video-result-dismiss .icon{width:16px;height:16px}.provider-usage-notice{border-top:0;margin-top:0;padding-top:0}@media(max-width:900px){.video-workspace{grid-template-columns:minmax(0,1fr)}.video-output{min-height:360px}}@media(max-width:520px){.video-workspace .form-panel{padding:18px}.video-workspace textarea{min-height:190px}}
/* Light and dark workspaces both use translucent panels so the rain-glass
   texture remains visible around the controls without sacrificing contrast. */
html[data-route="create"] .provider-workspace .form-panel,
html[data-route="create"] .provider-workspace .output-panel,
html[data-route="video"] .video-workspace .form-panel,
html[data-route="video"] .video-workspace .output-panel{background:var(--glass-panel);backdrop-filter:blur(18px) saturate(1.16);-webkit-backdrop-filter:blur(18px) saturate(1.16);border-color:var(--glass-line);box-shadow:0 18px 55px var(--glass-shadow)}
html[data-route="create"] .parameter-card,
html[data-route="video"] .parameter-card{background:var(--glass-card);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);border-color:var(--glass-line);box-shadow:0 10px 28px var(--glass-shadow)}
.video-workspace>section{min-width:0}.video-workspace input:not([type="checkbox"]),.video-workspace select,.video-workspace textarea{max-width:100%}.video-page-actions,.video-result-actions{display:flex;gap:8px;flex-wrap:wrap}.video-result-actions{margin-top:18px}.video-output .result-notice{overflow-wrap:anywhere}.video-output video{object-fit:contain}.video-workspace .error-text:empty{display:none}#video-result{scroll-margin-top:100px}.video-output .video-result-card+.video-result-card{margin-top:18px}.video-submit-row .small{overflow-wrap:anywhere}@media(max-width:520px){[data-route="video"] .page-intro{align-items:flex-start;flex-wrap:wrap;gap:16px}.video-submit-row>.btn{width:100%}.video-page-actions .btn{font-size:12px}.mobile-nav a,.mobile-nav button{font-size:11px;overflow-wrap:anywhere}}
html[data-route="create"] .parameter-card select,
html[data-route="create"] .parameter-card input:not([type="checkbox"]),
html[data-route="create"] .parameter-card textarea,
html[data-route="video"] .parameter-card select,
html[data-route="video"] .parameter-card input:not([type="checkbox"]),
html[data-route="video"] .parameter-card textarea{background:var(--glass-control);border-color:var(--glass-line);backdrop-filter:blur(10px) saturate(1.08);-webkit-backdrop-filter:blur(10px) saturate(1.08)}
html[data-route="create"] .parameter-card .choice,
html[data-route="create"] .parameter-card .upload-box,
html[data-route="video"] .parameter-card .choice,
html[data-route="video"] .parameter-card .upload-box{background:color-mix(in srgb,var(--glass-control) 76%,transparent);border-color:var(--glass-line)}
html[data-route="create"] .parameter-card .btn:not(.primary),
html[data-route="video"] .parameter-card .btn:not(.primary){background:color-mix(in srgb,var(--glass-control) 72%,transparent);border-color:var(--glass-line)}
/* The artwork itself is the background. Do not place a full-screen sheen or
   veil above it: the canvas supplies only localized rain refraction, while
   generated images remain unchanged when users inspect them. */
.studio-content::before,
.studio-content::after,
.studio-water-layer::before,
.studio-water-layer::after,
.studio-water-highlight{display:none!important;animation:none!important}
.video-workspace .upload-box{position:relative}.video-workspace input[type="file"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.result-card .result-actions{width:auto;margin-top:0;justify-content:flex-end}
.cover-count{position:absolute;bottom:8px;right:8px;padding:3px 7px;border-radius:5px;background:var(--surface);color:var(--ink);font-size:11px}

/* Curated landing: theme-aware editorial typography and generated artwork. */
.landing-nav--editorial{max-width:none;width:100%;padding:22px 5vw;background:var(--landing-canvas);color:var(--landing-ink);border-bottom:1px solid var(--landing-line);position:relative;z-index:2}
.landing-nav--editorial .brand{color:var(--landing-ink)}.landing-nav--editorial .brand-en{color:var(--landing-muted)}
.landing-nav-mark{margin:auto;font:9px Arial,sans-serif;letter-spacing:.17em;color:var(--landing-muted)}
.landing-nav--editorial .links{gap:22px;font-size:12px}.landing-nav--editorial .links>a:not(.btn){color:var(--landing-ink);text-decoration:none}
.landing-nav--editorial .btn{min-height:40px;border-radius:2px;font-size:12px;padding:9px 14px}.landing-nav--editorial .btn.primary{background:var(--landing-accent);color:var(--landing-canvas)}.landing-nav--editorial .btn.ghost{color:var(--landing-ink);border-color:var(--landing-line)}
.landing-editorial{max-width:none;margin:0;padding:0 5vw 36px;overflow:hidden;position:relative;background:var(--landing-canvas);color:var(--landing-ink)}
.landing-editorial:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent calc(50% - 1px),var(--landing-grid) 50%,transparent calc(50% + 1px));opacity:.3}
.landing-editorial .eyebrow{font-size:10px;letter-spacing:.16em;color:var(--landing-muted)}
.landing-hero--editorial{max-width:1440px;margin:auto;min-height:650px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:7%;align-items:center;padding:56px 0 64px;position:relative;z-index:1}
.landing-hero-copy{max-width:630px;min-width:0}.landing-hero-copy .eyebrow{display:flex;align-items:center;gap:10px}.landing-hero-copy .eyebrow i{width:6px;height:6px;background:var(--landing-accent);border-radius:50%;box-shadow:0 0 0 5px color-mix(in srgb,var(--landing-accent) 12%,transparent)}
.landing-hero-copy .art-title{margin:32px 0 24px;line-height:1.2;font-size:clamp(50px,5.65vw,88px);letter-spacing:-.065em;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-weight:900;text-wrap:initial}
.art-title>span,.art-title>em{display:block;white-space:nowrap;position:relative}.art-title small{position:absolute;top:-10px;right:0;font:10px Arial,sans-serif;letter-spacing:.05em;color:var(--landing-muted)}
.landing-hero-copy .art-title em{font-family:"LXGW WenKai",KaiTi,serif;font-weight:700;font-style:normal;letter-spacing:-.075em;font-size:1.16em;color:var(--landing-accent);transform:skewX(-7deg);transform-origin:left center;line-height:1.4}
/* Chinese title uses two related handwritten lines, offset by one character. */
.landing-hero-copy .art-title--zh{font-family:"LXGW WenKai",KaiTi,serif;font-weight:700;font-size:clamp(48px,5.5vw,84px);letter-spacing:-.055em;line-height:1.3}
.art-title--zh>span{transform:skewX(-7deg);transform-origin:left center;letter-spacing:-.045em}
.landing-hero-copy .art-title--zh em{margin-left:.91em;font-size:1.06em;letter-spacing:-.06em;line-height:1.38;transform:skewX(-7deg);width:max-content}
.art-title--zh small{transform:skewX(7deg);font-weight:400}
.title-footnote{max-width:385px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--landing-line);padding-top:10px;font:9px Arial,sans-serif;letter-spacing:.24em;color:var(--landing-muted)}.title-footnote>span:last-child{font-size:22px;color:var(--landing-accent)}
.landing-hero-copy>p{font-size:15px;line-height:1.95;color:var(--landing-muted);margin:27px 0;max-width:32em}
.landing-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.landing-cta{border-radius:2px!important;min-height:50px;background:var(--landing-ink);color:var(--landing-canvas);border:1px solid var(--landing-ink);padding:14px 21px!important;font-size:13px!important;transition:transform .3s,background .3s}
.landing-cta:hover{background:var(--landing-accent);color:var(--landing-canvas);border-color:var(--landing-accent);transform:translateY(-3px)}
.landing-text-link{display:inline-flex;align-items:center;gap:9px;color:var(--landing-ink);font-size:12px;text-decoration:none}.landing-text-link:hover{color:var(--landing-accent)}.landing-text-link .icon{width:15px;height:15px}
.landing-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:37px;font-size:10px;color:var(--landing-muted)}.landing-meta span+span:before{content:"/";margin-right:20px;color:var(--landing-line)}
.landing-stage{position:relative;min-width:0;width:100%;max-width:470px;justify-self:end;padding:0 12% 0 5%}
.stage-topline,.stage-bottomline{display:flex;justify-content:space-between;gap:12px;font:8px Arial,sans-serif;letter-spacing:.11em;color:var(--landing-muted);line-height:1.6}.stage-topline{padding-bottom:13px}.stage-bottomline{padding-top:21px;position:relative}
.stage-art{position:relative;aspect-ratio:3/4;transform:translate3d(calc(var(--pointer-x,0) * 5px),calc(var(--pointer-y,0) * 5px),0);transition:transform .7s ease}.stage-portrait{margin:0;width:100%;height:100%;position:relative;background:#152735;box-shadow:0 20px 50px #0002;overflow:hidden}
.stage-art-main{display:block;width:100%;height:100%;object-fit:cover;animation:portrait-drift 18s ease-in-out infinite alternate}.stage-portrait figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:42px 16px 17px;background:linear-gradient(transparent,#0009);color:#fff;font-size:9px;letter-spacing:.09em}
.stage-art-card{margin:0;position:absolute;width:47%;background:var(--landing-canvas);padding:5px;box-shadow:0 14px 32px #0004}.stage-art-card img{width:100%;height:100%;object-fit:cover;display:block}.stage-art-card figcaption{padding:8px 4px 4px;font:8px Arial,sans-serif;letter-spacing:.14em;color:var(--landing-ink)}
.stage-art-card--one{left:-18%;bottom:12%;transform:rotate(-9deg);animation:landscape-float 8s ease-in-out infinite}.stage-art-card--one img{aspect-ratio:4/3;height:auto}.stage-art-card--two{right:-21%;top:7%;width:42%;transform:rotate(9deg);animation:fantasy-float 9s ease-in-out infinite}.stage-art-card--two img{aspect-ratio:3/4;height:auto}
.stage-edition{position:absolute;right:-17%;bottom:7%;font-family:"LXGW WenKai",serif;font-size:clamp(25px,3.5vw,54px);font-weight:700;line-height:1.05;color:var(--landing-accent);transform:rotate(7deg)}
.landing-signal{position:relative;max-width:1440px;margin:auto;border-top:1px solid var(--landing-line);border-bottom:1px solid var(--landing-line);padding:23px 0;display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--landing-muted)}.signal-genres{display:flex;align-items:center;gap:25px;font:10px Arial,sans-serif;letter-spacing:.15em}.signal-genres i{font-style:normal;font-size:19px;color:var(--landing-accent);animation:asterisk-turn 25s linear infinite}
.landing-editorial .landing-section{max-width:1440px;margin:auto;padding:100px 0;position:relative;border-top:0}.section-heading{display:grid;grid-template-columns:.65fr 1.4fr 1fr;align-items:end;gap:26px;margin-bottom:45px}.section-heading h2{font-size:clamp(30px,3.4vw,52px);line-height:1.4;font-weight:700;margin:0;letter-spacing:-.04em}.section-heading h2 em{font-style:normal;color:var(--landing-accent)}.section-heading p{font-size:12px;line-height:1.9;color:var(--landing-muted);margin:0}
.landing-works-grid{columns:3;column-gap:28px}.collection-card{min-width:0;break-inside:avoid;display:inline-block;width:100%;margin:0 0 36px}.collection-image{position:relative;overflow:hidden;background:var(--landing-line)}.collection-image img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.collection-card--wide .collection-image img{aspect-ratio:3/4}.collection-card:hover img{transform:scale(1.045)}.collection-tag{position:absolute;left:13px;top:13px;padding:7px 9px;background:#1119;color:white;font:8px Arial,sans-serif;letter-spacing:.13em;backdrop-filter:blur(10px)}
.collection-caption{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:18px}.collection-caption h3{font-size:22px;font-weight:700;letter-spacing:-.03em;margin:0}.collection-caption>span{font-size:9px;color:var(--landing-muted)}.collection-card>p{font-size:12px;color:var(--landing-muted);margin:7px 0}.collection-note{border-top:1px solid var(--landing-line);margin-top:42px;padding-top:18px;display:flex;justify-content:space-between;gap:20px}.collection-note>span{font-size:9px;letter-spacing:.08em;color:var(--landing-muted)}
.landing-editorial .landing-section--manifesto{display:grid;grid-template-columns:1fr 1fr;gap:10%;border-top:1px solid var(--landing-line);padding-top:75px}.landing-section--manifesto h2{font-size:clamp(36px,4vw,60px);line-height:1.4;font-weight:700;letter-spacing:-.05em;margin-top:25px}.manifesto-list article{display:grid;grid-template-columns:35px 1fr;gap:10px;padding:20px 0;border-bottom:1px solid var(--landing-line)}.manifesto-list article:first-child{padding-top:0}.manifesto-list article>span{color:var(--landing-accent);font:11px Arial,sans-serif;padding-top:8px}.manifesto-list h3{font-size:22px;margin:0;font-weight:700}.manifesto-list p{grid-column:2;font-size:13px;line-height:1.9;color:var(--landing-muted);margin:0}
.landing-final{max-width:1440px;margin:auto;padding:75px 0 90px;border-top:1px solid var(--landing-line)}.landing-final h2{font-size:clamp(38px,5.5vw,82px);letter-spacing:-.06em;margin:25px 0 35px;line-height:1.3}.landing-final h2 em{font-style:normal;color:var(--landing-accent);display:inline-block}.landing-editorial .fineprint{margin:0;border-top:1px solid var(--landing-line);padding-top:22px;color:var(--landing-muted)}.landing-editorial .fineprint a{color:var(--landing-ink)}
.landing-editorial.motion-ready [data-reveal]{opacity:0;clip-path:inset(0 0 12% 0);transition:opacity .55s ease,clip-path .7s cubic-bezier(.2,.7,.2,1)}.landing-editorial.motion-ready [data-reveal].is-visible{opacity:1;clip-path:inset(-60px -60px -60px -60px)}
@keyframes portrait-drift{from{transform:scale(1)}to{transform:scale(1.055)}}
@keyframes landscape-float{0%,100%{transform:translateY(0) rotate(-9deg)}50%{transform:translateY(-10px) rotate(-7deg)}}
@keyframes fantasy-float{0%,100%{transform:translateY(0) rotate(9deg)}50%{transform:translateY(9px) rotate(7deg)}}
@keyframes asterisk-turn{to{transform:rotate(360deg)}}
@media(min-width:1500px){.landing-hero--editorial{padding-top:95px;padding-bottom:115px}.art-title small{right:35px}}
@media(max-width:1050px){.landing-nav-mark{display:none}.landing-nav--editorial .links{margin-left:auto}.landing-hero--editorial{gap:4%;min-height:620px}.landing-hero-copy .art-title{font-size:5.6vw}.landing-stage{padding-left:8%}.section-heading{grid-template-columns:1fr 2fr}.section-heading p{grid-column:2}.landing-works-grid{column-gap:18px}.collection-caption{align-items:start;flex-direction:column;gap:4px}.stage-bottomline{font-size:7px}}
@media(max-width:760px){.landing-hero--editorial{grid-template-columns:1fr;padding:50px 0 55px;gap:48px}.landing-hero-copy{max-width:600px}.landing-hero-copy .art-title{font-size:clamp(55px,11vw,82px);max-width:520px}.art-title small{right:8%}.landing-stage{width:90%;max-width:480px;justify-self:center}.landing-signal{flex-direction:column;gap:17px}.signal-genres{justify-content:space-between;gap:12px}.landing-works-grid{columns:2;column-gap:20px}.collection-card{margin-bottom:26px}.section-heading{grid-template-columns:1fr;gap:15px}.section-heading p{grid-column:auto}.landing-editorial .landing-section{padding:65px 0}.landing-editorial .landing-section--manifesto{grid-template-columns:1fr;gap:22px}.landing-section--manifesto h2{margin-bottom:15px}.landing-final h2 em{display:block}}
@media(max-width:520px){.landing-nav--editorial{padding:17px 5vw}.landing-nav--editorial .links{gap:6px}.landing-nav--editorial .links>a:not(.btn){display:none}.landing-nav--editorial .btn{font-size:10px;padding:8px}.landing-nav--editorial .brand-en{display:none}.landing-nav--editorial .brand{font-size:19px}.landing-hero-copy .art-title{font-size:12vw}.landing-hero-copy>p{font-size:13px}.landing-hero-actions{gap:18px}.landing-meta{gap:13px;font-size:9px}.landing-meta span+span:before{margin-right:13px}.landing-stage{width:94%;padding-right:14%;padding-left:8%}.stage-topline,.stage-bottomline{font-size:7px}.stage-edition{font-size:34px}.signal-genres{font-size:8px}.landing-works-grid{columns:1}.collection-card{margin-bottom:30px}.collection-caption{flex-direction:row;align-items:center}.collection-caption h3{font-size:19px}.collection-caption>span{font-size:8px}.collection-card>p{font-size:11px}.collection-note{flex-direction:column;gap:15px}.section-heading h2{font-size:31px}}

/* Asymmetric art direction: the collection should feel pinned by hand, not set in a grid. */
@media(min-width:1060px){
  .stage-portrait{transform:rotate(-1.8deg) translate(-2px,4px);box-shadow:18px 25px 48px #0003}
  .stage-art-card--one{left:-24%;bottom:15%;transform:rotate(-13deg);z-index:2}
  .stage-art-card--two{right:-27%;top:1%;width:42%;transform:rotate(12deg);z-index:3}
  .stage-edition{right:-22%;bottom:5%;transform:rotate(9deg)}
  .landing-works-grid{column-gap:34px;padding:0 1.5vw}
  .collection-card:nth-child(2){transform:translate(13px,34px) rotate(1.6deg)}
  .collection-card:nth-child(3){transform:translate(-15px,-18px) rotate(-1.2deg)}
  .collection-card:nth-child(4){transform:translate(21px,48px) rotate(-2deg)}
  .collection-card:nth-child(5){transform:translate(-8px,-4px) rotate(1.4deg)}
  .collection-card:nth-child(6){transform:translate(15px,28px) rotate(-1.6deg)}
  .collection-card:nth-child(7){transform:translate(-19px,-30px) rotate(1.2deg)}
  .collection-card:nth-child(8){transform:translate(11px,22px) rotate(-1deg)}
  .collection-card:nth-child(9){transform:translate(-12px,-12px) rotate(1.8deg)}
  .collection-card:hover{z-index:4;transform:translateY(-8px) rotate(0deg) scale(1.015)}
  .collection-card:nth-child(2):hover,.collection-card:nth-child(4):hover,.collection-card:nth-child(6):hover,.collection-card:nth-child(8):hover{transform:translate(13px,25px) rotate(0deg) scale(1.015)}
}
@media(min-width:761px) and (max-width:1059px){
  .stage-art-card--one{left:-21%;bottom:14%;transform:rotate(-11deg)}
  .stage-art-card--two{right:-23%;top:3%;transform:rotate(10deg)}
  .collection-card:nth-child(2n){transform:translateY(20px) rotate(1deg)}
  .collection-card:nth-child(3n){transform:translateX(-8px) rotate(-1deg)}
}
@media(max-width:760px){
  .stage-art-card--one{left:-12%;bottom:9%;transform:rotate(-8deg)}
  .stage-art-card--two{right:-12%;top:4%;transform:rotate(8deg)}
  .collection-card:nth-child(2n){transform:translateX(7px) rotate(.7deg)}
  .collection-card:nth-child(3n){transform:translateX(-5px) rotate(-.7deg)}
}
@media(max-width:520px){
  .stage-art-card--one{left:-5%;bottom:8%;transform:rotate(-5deg)}
  .stage-art-card--two{right:-5%;top:2%;transform:rotate(5deg)}
  .landing-works-grid .collection-card{transform:none;margin-left:0;margin-right:0}
}
@media(prefers-reduced-motion:reduce){.landing-editorial *, .landing-editorial *:before{animation:none!important;transition:none!important}.landing-editorial.motion-ready [data-reveal]{opacity:1;clip-path:none}}

/* Failed results leave room for actionable guidance and the next idea. */
.result-placeholder:not(.is-pending) .slot-canvas{aspect-ratio:auto;min-height:220px;gap:6px}.result-placeholder:not(.is-pending) .slot-canvas p{max-width:440px}.provider-results.single{width:100%}.reference-library-grid{max-height:60vh;overflow-y:auto;padding:2px}.provider-workspace .result-ideas{padding:18px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}

@media(max-width:760px){.landing-hero-copy .art-title--zh{font-size:clamp(49px,10.5vw,76px)}}
@media(max-width:520px){.landing-hero-copy .art-title--zh{font-size:11.2vw}}

/* Desktop direction pass: cool gallery, clear spacing, and larger visual masses. */
:root{
  --landing-canvas:#eef3f6;
  --landing-ink:#142638;
  --landing-muted:#5d7180;
  --landing-grid:#17364b16;
  --landing-line:#c6d5de;
  --landing-accent:#315fe5;
  --landing-lime:#79d6e8;
  --landing-coral:#416f9b;
  --landing-shadow:#afc4d2;
  --landing-accent-rgb:49,95,229;
  --landing-coral-rgb:65,111,155;
}
[data-theme="dark"]{
  --landing-canvas:#0e1a28;
  --landing-ink:#eaf4f8;
  --landing-muted:#9eb4c2;
  --landing-grid:#b9d6e51c;
  --landing-line:#294355;
  --landing-accent:#6e9bff;
  --landing-lime:#73d7e7;
  --landing-coral:#8db9e1;
  --landing-shadow:#081522;
  --landing-accent-rgb:110,155,255;
  --landing-coral-rgb:141,185,225;
}
.landing-nav--editorial,.landing-editorial{background:var(--landing-canvas);color:var(--landing-ink)}
.landing-editorial:before{opacity:.24}
.landing-editorial:after{background:radial-gradient(circle at 88% 15%,rgba(var(--landing-accent-rgb),.12),transparent 25%),radial-gradient(circle at 8% 58%,rgba(var(--landing-coral-rgb),.08),transparent 24%);mix-blend-mode:normal}
.landing-nav-mark,.landing-meta,.title-footnote,.stage-topline,.stage-bottomline{display:none}
.art-title small{display:none}
.landing-hero--editorial{min-height:610px;grid-template-columns:minmax(0,.86fr) minmax(540px,1.14fr);gap:5%;padding:54px 0 64px}
.landing-hero-copy .art-title--zh{font-size:clamp(58px,6.3vw,98px);margin-top:24px;margin-bottom:18px}
.landing-hero-copy .art-title--zh em{font-family:"STKaiti","KaiTi","FangSong",serif;font-weight:500;letter-spacing:-.07em;color:var(--landing-accent)}
.landing-hero-copy>p{font-size:16px;line-height:1.8;margin:20px 0 28px;max-width:31em}
.landing-stage{max-width:590px;padding:0;justify-self:end}
.stage-art{aspect-ratio:auto;min-height:600px;display:block;transform:translate3d(calc(var(--pointer-x,0) * 3px),calc(var(--pointer-y,0) * 3px),0)}
.stage-portrait{position:absolute;left:0;top:0;width:61%;height:100%;transform:rotate(-.7deg);box-shadow:18px 22px 50px #0c25351f}
.stage-art-card{width:34%;padding:6px;box-shadow:0 16px 34px #0c253524}
.stage-art-card--one{left:auto;right:0;top:0;bottom:auto;transform:rotate(1.4deg);animation:card-settle-one 8s ease-in-out infinite}
.stage-art-card--two{right:0;top:auto;bottom:0;width:34%;transform:rotate(-1.2deg);animation:card-settle-two 9s ease-in-out infinite}
.stage-edition{display:none}
.stage-art-card figcaption{font-size:9px;letter-spacing:.08em;padding:9px 3px 3px}
@keyframes card-settle-one{0%,100%{transform:translateY(0) rotate(1.4deg)}50%{transform:translateY(-5px) rotate(.8deg)}}
@keyframes card-settle-two{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(5px) rotate(-.4deg)}}
.landing-signal{padding:17px 0;font-size:14px;border-color:var(--landing-line)}
.signal-genres{font-size:11px;gap:18px;color:var(--landing-ink)}
.signal-genres i{color:var(--landing-accent)}
.landing-editorial .landing-section{padding:78px 0}
.section-heading{grid-template-columns:.55fr 1.45fr .9fr;gap:42px;margin-bottom:38px}
.section-heading h2{font-family:"STKaiti","KaiTi","FangSong",serif;font-size:clamp(36px,4vw,64px);line-height:1.22;letter-spacing:-.065em}
.section-heading p{font-size:14px;line-height:1.75}
.landing-works-grid{column-gap:42px;padding:0}
.collection-card{margin-bottom:44px}
.collection-card:nth-child(2),.collection-card:nth-child(3),.collection-card:nth-child(4),.collection-card:nth-child(5),.collection-card:nth-child(6),.collection-card:nth-child(7),.collection-card:nth-child(8),.collection-card:nth-child(9){transform:none}
.collection-card:nth-child(2n){transform:translateY(18px)}
.collection-card:nth-child(3n){transform:translateY(-10px)}
.collection-card:hover,.collection-card:nth-child(2n):hover,.collection-card:nth-child(3n):hover{transform:translateY(-6px) scale(1.01);z-index:4}
.collection-image{background:var(--landing-line)}
.collection-image img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.collection-tag{font-size:9px;letter-spacing:.1em;background:#152638d9;padding:7px 9px}
.collection-caption{margin-top:14px}.collection-caption h3{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:24px;letter-spacing:-.04em}.collection-caption>span{font-size:11px}.collection-card>p{font-size:13px}
.collection-note{margin-top:26px;padding-top:13px}.collection-note>span{font-size:10px}
.landing-editorial .landing-section--manifesto{padding-top:62px;gap:14%}
.landing-section--manifesto h2{font-family:"STSong","Songti SC",serif;font-size:clamp(42px,4.4vw,70px);line-height:1.25}
.manifesto-list h3{font-family:"STKaiti","KaiTi",serif;font-size:27px}.manifesto-list p{font-size:14px;line-height:1.75}
.landing-final h2{font-family:"STSong","Songti SC",serif}
@media(min-width:1500px){.landing-hero--editorial{min-height:650px;padding-top:70px;padding-bottom:78px}.stage-art{min-height:640px}}
@media(max-width:1059px){.landing-hero--editorial{grid-template-columns:minmax(0,1fr) minmax(410px,1fr);gap:4%;min-height:580px}.stage-art{min-height:520px}.stage-portrait{width:60%}.stage-art-card{width:36%}.section-heading{gap:24px}.landing-works-grid{column-gap:24px}}
@media(max-width:760px){.landing-hero--editorial{grid-template-columns:1fr;min-height:0;padding:50px 0 55px;gap:48px}.landing-hero-copy .art-title--zh{font-size:clamp(49px,10.5vw,76px)}.landing-hero-copy>p{font-size:14px}.landing-stage{width:90%;max-width:480px}.stage-art{min-height:500px}.landing-signal{font-size:12px}.landing-editorial .landing-section{padding:65px 0}.section-heading h2{font-size:36px}.collection-card:nth-child(2n),.collection-card:nth-child(3n){transform:none}.collection-card:hover{transform:none}.stage-portrait{width:61%}.stage-art-card{width:35%}}
/* Prompt to picture: a quiet editorial stage, with motion controlled by the reader. */
.landing-nav--editorial{position:sticky;top:0;z-index:var(--z-header);transition:transform .3s cubic-bezier(.22,.8,.24,1),background .25s}
.landing-nav--editorial.nav-away:not(:focus-within){transform:translateY(-100%)}
.landing-scroll-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--landing-accent);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none}
.landing-text-link{position:relative;width:max-content;max-width:100%}
.landing-text-link:after{content:"";position:absolute;bottom:-5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.landing-text-link:hover:after,.landing-text-link:focus-visible:after{transform:scaleX(1)}
.landing-cta .icon,.landing-text-link .icon{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.landing-cta:hover .icon,.landing-text-link:hover .icon{transform:translate(3px,-3px)}
.landing-editorial .prompt-showcase{padding:88px 0 100px;border-top:1px solid var(--landing-line);scroll-margin-top:100px}
.prompt-showcase-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:42px}
.prompt-showcase-heading h2{font-family:"STSong","Songti SC",serif;font-size:clamp(36px,3.65vw,60px);line-height:1.3;letter-spacing:-.045em;font-weight:600}
.prompt-showcase-heading h2 em{font-style:normal;color:var(--landing-accent)}
.story-tabs{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,1fr);flex:0 0 270px;padding:4px;border:1px solid var(--landing-line);border-radius:4px}
.story-tab-indicator{position:absolute;z-index:-1;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/3);background:var(--landing-ink);border-radius:2px;transform:translateX(calc(var(--story-index,0)*100%));transition:transform .35s cubic-bezier(.22,.8,.24,1)}
.story-tabs button{min-height:42px;padding:8px 12px;border:0;background:none;color:var(--landing-muted);font-size:14px;white-space:nowrap}
.story-tabs button[aria-selected="true"]{color:var(--landing-canvas)}
.story-tabs button:not([aria-selected="true"]):hover{color:var(--landing-accent)}
.story-panel{display:grid;grid-template-columns:minmax(0,.68fr) minmax(0,1.55fr);gap:6%;align-items:center}
.story-panel[hidden]{display:none}
.story-copy{min-width:0;padding:0 0 36px;align-self:center}
.story-kicker{display:block;color:var(--landing-muted);font:12px "Microsoft YaHei",sans-serif;letter-spacing:.08em}
.story-copy blockquote{margin:24px 0 16px;font-family:"LXGW WenKai",KaiTi,serif;font-size:clamp(25px,2.5vw,39px);font-weight:400;line-height:1.65;letter-spacing:-.045em;text-wrap:pretty;animation:story-copy-in .55s ease both}
.story-prompt-note{font-size:12px;color:var(--landing-muted)}
.story-copy .story-use{display:flex;margin-top:48px;padding:0;border:0;background:none;font:14px "Microsoft YaHei",sans-serif;color:var(--landing-accent);min-height:44px}
.story-artwork{min-width:0}
.story-image-stage{position:relative;aspect-ratio:4/3;isolation:isolate;overflow:hidden;border:1px solid var(--landing-line);background:var(--landing-canvas)}
.story-image-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(0 calc(100% - var(--story-reveal,100%)) 0 0)}
.story-paper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:24px;background:linear-gradient(90deg,var(--landing-grid) 1px,transparent 1px),linear-gradient(var(--landing-grid) 1px,transparent 1px);background-size:40px 40px;color:var(--landing-muted);font-family:"STSong","Songti SC",serif;font-size:clamp(26px,3vw,48px);line-height:1.5}
.story-paper i{font-style:normal;font-size:1.3em;color:var(--landing-accent)}
.story-reveal-edge{position:absolute;left:var(--story-reveal,100%);top:0;bottom:0;width:2px;background:#eaf3ff;box-shadow:0 0 20px #a2c8ff99;pointer-events:none}
.story-image-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.story-image-caption strong{font-size:18px;font-weight:500}.story-image-caption>span{font-size:11px;color:var(--landing-muted)}
.story-controls{display:flex;align-items:center;gap:18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--landing-line);font:12px "Microsoft YaHei",sans-serif;color:var(--landing-muted)}
.story-controls label{white-space:nowrap}
.story-controls input[type="range"]{flex:1;min-width:40px;max-width:none;margin:0;padding:0;min-height:36px;height:36px;background:transparent;accent-color:var(--landing-accent);cursor:ew-resize;appearance:none;-webkit-appearance:none}
.story-controls input::-webkit-slider-runnable-track{height:2px;background:var(--landing-line)}
.story-controls input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-8px;border:4px solid var(--landing-canvas);border-radius:50%;background:var(--landing-accent);box-shadow:0 0 0 1px var(--landing-accent)}
.story-controls input::-moz-range-track{height:2px;background:var(--landing-line)}
.story-controls input::-moz-range-thumb{width:10px;height:10px;border:4px solid var(--landing-canvas);border-radius:50%;background:var(--landing-accent);box-shadow:0 0 0 1px var(--landing-accent)}
.story-replay{display:flex;align-items:center;gap:7px;border:0;background:none;color:var(--landing-ink);padding:5px 0 5px 8px;min-height:44px;white-space:nowrap;font:inherit}
.story-replay .icon{width:16px;height:16px;transition:transform .4s}.story-replay:hover .icon{transform:rotate(-45deg)}
.prompt-showcase :is(button,input):focus-visible{outline:2px solid var(--landing-accent);outline-offset:4px}
@keyframes story-copy-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.story-panel{grid-template-columns:minmax(0,.66fr) minmax(0,1.55fr)}.story-copy blockquote{font-size:40px}.story-image-stage{max-height:620px}}
@media(max-width:1059px){.prompt-showcase-heading{align-items:start}.prompt-showcase-heading h2 em{display:block}.story-tabs{flex-basis:240px}.story-panel{gap:4%;grid-template-columns:minmax(0,.75fr) minmax(0,1.3fr)}.story-copy blockquote{font-size:26px}.story-copy .story-use{margin-top:24px}.story-controls{gap:12px}}
@media(max-width:760px){.landing-editorial .prompt-showcase{padding:48px 0 56px}.prompt-showcase-heading{display:block;margin-bottom:24px}.prompt-showcase-heading h2{font-size:36px}.prompt-showcase-heading h2 em{display:block}.story-tabs{margin-top:24px;max-width:330px}.story-panel{grid-template-columns:1fr;gap:24px}.story-copy{padding:0}.story-kicker,.story-prompt-note{font-size:11px}.story-copy blockquote{font-size:25px;margin:14px 0 10px;line-height:1.6}.story-copy .story-use{margin-top:12px;font-size:13px}.story-image-caption{margin-top:14px;gap:8px}.story-image-caption strong{font-size:17px}.story-image-caption>span{font-size:10px}.story-controls{gap:10px;font-size:11px}.story-paper{font-size:28px}}
@media(prefers-reduced-motion:reduce){.landing-nav--editorial{transition:none}.landing-nav--editorial.nav-away{transform:none}.story-copy blockquote{animation:none}.story-tab-indicator,.story-replay .icon,.landing-text-link:after,.landing-cta .icon,.landing-text-link .icon{transition:none}}

/* An independent, edge-to-edge moving exhibition. Two equal groups make the seam invisible. */
.landing-editorial .landing-filmstrip{padding:72px 0 88px;border-top:1px solid var(--landing-line);margin:0;max-width:none}
.filmstrip-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:36px}
.filmstrip-heading .eyebrow{display:block;margin-bottom:14px;color:var(--landing-muted)}
.filmstrip-heading h2{font-family:"LXGW WenKai",serif;font-weight:400;font-size:clamp(34px,3.6vw,58px);letter-spacing:-.04em;line-height:1.3}
.filmstrip-tools{display:flex;align-items:center;gap:20px;color:var(--landing-muted);font-size:13px}
.filmstrip-toggle{border:1px solid var(--landing-line);background:transparent;color:var(--landing-ink);padding:11px 18px;min-height:44px;cursor:pointer;font:inherit;white-space:nowrap;transition:background .2s,border-color .2s}
.filmstrip-toggle:hover{border-color:var(--landing-accent);background:color-mix(in srgb,var(--landing-accent) 7%,transparent)}
.filmstrip-stage{position:relative}
.filmstrip-step{position:absolute;top:calc(50% - 42px);z-index:2;display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--landing-line);border-radius:50%;background:var(--surface);color:var(--landing-ink);box-shadow:0 4px 18px #102c4524;cursor:pointer;transition:color .2s,background .2s,box-shadow .2s}
.filmstrip-step--prev{left:calc(-5vw + 22px)}.filmstrip-step--next{right:calc(-5vw + 22px)}
.filmstrip-step--prev .icon{transform:rotate(180deg)}
.filmstrip-step:hover{background:var(--landing-ink);color:var(--landing-canvas);box-shadow:0 6px 24px #102c4530}
.filmstrip-viewport{margin:0 -5vw;overflow:hidden;padding:10px 0 24px}
.filmstrip-track{display:flex;position:relative;width:max-content;animation:filmstrip-flow 112s linear infinite;will-change:transform}
.filmstrip-group{display:flex;align-items:center;justify-content:space-around;gap:40px;padding-right:40px;min-width:100vw;flex-shrink:0}
.film-card{--frame-height:clamp(380px,39vw,540px);position:relative;display:block;flex:0 0 auto;width:calc(var(--frame-height)*.75 + 28px);padding:13px 13px 0;border:1px solid var(--landing-line);text-align:left;cursor:zoom-in;background:var(--surface);color:var(--landing-ink);box-shadow:0 8px 20px #102c4510}
.film-card--wide{width:calc(var(--frame-height)*1.333333 + 28px)}
.film-card-image{display:block;height:var(--frame-height);overflow:hidden;background:var(--landing-line)}
.film-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.film-card:hover img{transform:scale(1.035)}
.film-card-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 8px 22px;pointer-events:none}
.film-card-caption small{display:block;font-size:11px;letter-spacing:.1em;color:var(--landing-muted);margin-bottom:7px}
.film-card-caption strong{font-family:"STSong","Songti SC",serif;font-size:24px;font-weight:500;line-height:1.3}
.film-card-open{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--landing-line);border-radius:50%;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.film-card:hover .film-card-open,.film-card:focus-visible .film-card-open{opacity:1;transform:none}
.landing-filmstrip[data-paused="true"] .filmstrip-track,.landing-filmstrip[data-idle="true"] .filmstrip-track,body:has(dialog[open]) .filmstrip-track{animation-play-state:paused}
@media(hover:hover){.filmstrip-viewport:hover .filmstrip-track{animation-play-state:paused}}
.landing-filmstrip :is(button):focus-visible{outline:3px solid var(--landing-accent);outline-offset:4px}
@keyframes filmstrip-flow{to{transform:translate3d(-50%,0,0)}}
dialog.landing-art-dialog{width:min(1220px,94vw);max-width:94vw;max-height:92dvh}
.landing-art-dialog .dialog-content{padding:0}
.landing-art-detail{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr)}
.landing-art-image{display:grid;place-items:center;min-width:0;background:#090f1a;padding:20px}
.landing-art-image img{display:block;max-width:100%;width:auto;max-height:74dvh;object-fit:contain}
.landing-art-brief{padding:32px;align-self:center;min-width:0}
.landing-art-brief .eyebrow{font-size:11px;color:var(--muted);letter-spacing:.06em}
.landing-art-brief h3{font-size:19px;margin:26px 0 12px}
.landing-art-brief p{line-height:1.85;font-size:14px}
.landing-art-prompt{border-block:1px solid var(--line);padding:16px 0;margin:24px 0 18px}
.landing-art-prompt summary{cursor:pointer;font-size:13px;min-height:24px}
.landing-art-prompt p{margin:16px 0 0;font-size:12px;overflow-wrap:anywhere;max-height:220px;overflow:auto}
.landing-art-spec{display:block;font-size:11px;color:var(--muted);margin-bottom:22px}
@media(max-width:760px){
 .landing-editorial .landing-filmstrip{padding:48px 0 52px}
 .filmstrip-heading{align-items:start;gap:20px;margin-bottom:24px;flex-direction:column}
 .filmstrip-tools{width:100%;justify-content:space-between;font-size:12px}
 .filmstrip-heading h2{font-size:34px}
 .filmstrip-group{gap:22px;padding-right:22px}
 .filmstrip-step{width:44px;height:44px}.filmstrip-step--prev{left:calc(-5vw + 10px)}.filmstrip-step--next{right:calc(-5vw + 10px)}
 .film-card{--frame-height:340px;padding:9px 9px 0;width:275px}.film-card--wide{width:400px}.film-card-caption{padding:16px 5px 18px}.film-card-caption strong{font-size:23px}
 .film-card-open{opacity:1;transform:none}
 .landing-art-detail{grid-template-columns:1fr}.landing-art-image{padding:12px}.landing-art-image img{max-height:55dvh}.landing-art-brief{padding:24px}
}
@media(prefers-reduced-motion:reduce){
 .filmstrip-viewport{overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:5vw;padding:8px 5vw 18px}
 .filmstrip-track{animation:none;transform:none;will-change:auto}
 .filmstrip-group{min-width:0;justify-content:flex-start}.filmstrip-group[aria-hidden]{display:none}
 .film-card{scroll-snap-align:start}.film-card img,.film-card-open{transition:none}.film-card:hover img{transform:none}
 .filmstrip-toggle{display:none}
}
