/* v0.41: one layout system; colors from AppColors, no historical overrides. */
:root{--ink:#192a39;--muted:#6a7079;--tertiary:#929ba5;--blue:#426b92;--brand:#487fae;--pressed:#355775;--bar:#edf4fa;--line:#e0e4e9;--line-strong:#d4e0e9;--white:#fff;--copy:18px;--utility:16px;--display:clamp(44px,5.3vw,76px);--group:40px;--ease:cubic-bezier(.16,1,.3,1);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--white);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:var(--copy);line-height:1.65}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}[hidden]{display:none!important}::selection{background:#426b9240;color:var(--ink)}
:is(a,button,input,textarea,summary):focus-visible{outline:2px solid var(--blue);outline-offset:5px}main:focus{outline:none}
.container{width:calc(100% - 112px);max-width:1200px;margin-inline:auto}.skip{position:absolute;left:20px;top:-100px;background:white;padding:12px;z-index:30}.skip:focus{top:10px}
/* Navigation: one compact control family. */
.header{min-height:96px;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:10px;width:max-content;font-size:24px;font-weight:650;letter-spacing:-.035em;line-height:1.2}.brand img{width:40px;height:40px;object-fit:contain}
.nav-shell{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;background:var(--bar);border:1px solid var(--line-strong);border-radius:28px}
.nav-shell a{display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;min-height:44px;border-radius:24px;white-space:nowrap;color:var(--blue);font-size:var(--utility);transition:background-color 150ms,color 150ms}
.nav-shell a:hover{background:#fff}.nav-shell a[aria-current=page]{background:var(--blue);color:#fff;font-weight:600}.nav-shell a[aria-current=page]:hover{background:var(--pressed)}
.language-control{position:relative;justify-self:end;width:118px;height:44px;color:var(--muted)}
.language-toggle{display:flex;align-items:center;justify-content:flex-end;gap:8px;list-style:none;width:100%;height:44px;padding:0 8px;border-radius:8px;font-size:var(--utility);font-weight:500;line-height:1.2;cursor:pointer}
.language-toggle::-webkit-details-marker{display:none}.language-toggle:hover,.language-control[open]>.language-toggle{background:var(--bar);color:var(--ink)}
.language-control svg{flex:none;pointer-events:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.language-globe{width:18px;height:18px}.language-chevron{width:12px;height:12px}.language-control[open] .language-chevron{transform:rotate(180deg)}
.language-menu{position:absolute;top:52px;right:0;z-index:20;min-width:148px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:10px}
.language-menu button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:var(--utility);text-align:left}
.language-menu button:hover{background:var(--bar)}.language-menu button[aria-pressed=true]{color:var(--blue);font-weight:600}.language-check{width:14px;height:14px;visibility:hidden}.language-menu button[aria-pressed=true] .language-check{visibility:visible}
/* Retained bilingual reserve-space contract. */
.locale-block{display:grid!important}.locale-inline{display:inline-grid!important;vertical-align:baseline;max-width:100%}.locale-block,.locale-inline{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:0}
.locale-block>.locale-copy,.locale-inline>.locale-copy{grid-area:1/1;font:inherit;letter-spacing:inherit;color:inherit;min-width:0}.locale-copy[aria-hidden=true]{visibility:hidden;pointer-events:none;user-select:none}
.locale-prose{display:grid;grid-template-columns:minmax(0,1fr)}.locale-prose>.locale-prose-content,.locale-prose>.locale-copy{grid-area:1/1;font:inherit;letter-spacing:inherit;color:inherit;min-width:0}.locale-copy:lang(zh-CN){letter-spacing:0}
/* Prose follows the active language's natural height; controls retain reserves. */
:is(.welcome-lead,.story-lines p,.beta-intro .lead,.invite-download,.preview-note,.fine-print,.next p) .locale-copy[aria-hidden=true]{display:none}
/* One headline, one reading measure, one action group. */
.welcome{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;row-gap:24px;padding:72px 0 64px}
.eyebrow{font-size:var(--copy);font-weight:600;line-height:1.65;color:var(--blue)}.welcome>.eyebrow,.welcome>h1{grid-column:1/-1}
.welcome>.eyebrow{font-size:clamp(22px,2.15vw,28px)}
h1{font-size:var(--display);font-weight:600;letter-spacing:-.045em;line-height:1.16;text-wrap:balance}
.welcome h1{white-space:normal;margin-bottom:16px}.welcome h1>.locale-copy{white-space:inherit;text-wrap:inherit}
.welcome-lead{max-width:60ch;font-size:var(--copy);color:var(--muted);text-wrap:pretty}.welcome-cta{max-width:100%;padding-top:4px}.welcome .actions{justify-content:center}
.actions{display:flex;gap:12px;align-items:stretch}
.button,.download-placeholder{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 24px;border:1px solid var(--blue);border-radius:10px;font-size:var(--utility);font-weight:500;line-height:1.3;text-align:center}
.actions>.button,.download-placeholder{width:184px;max-width:100%;white-space:nowrap}
.button{background:var(--blue);color:#fff;transition:background-color 150ms,box-shadow 150ms}.button:hover{background:var(--pressed);border-color:var(--pressed);box-shadow:0 3px 10px #192a3914}.button:active{box-shadow:none}
.download-placeholder{background:var(--bar);border-color:var(--line-strong);color:var(--muted);cursor:default}
.text-link{display:inline-flex;align-items:center;min-height:44px;color:var(--blue);font-size:var(--copy)}.text-link:hover{text-decoration:underline;text-underline-offset:4px}
/* The film is the only spatial-motion focal point. Its player stays native. */
.overview-visual{margin:0 0 96px}.film-stage{position:relative;aspect-ratio:16/9;border:1px solid var(--line-strong);border-radius:20px;background:var(--bar);overflow:hidden;transform-origin:50% 50%}
.film-stage video{display:block;width:100%;height:100%;object-fit:contain}.film-error{position:absolute;inset:auto 0 0;padding:16px;background:#fff;font-size:var(--copy)}.film-error a{color:var(--blue);text-decoration:underline}
@supports(animation-timeline:view()){@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .motion-ready .film-stage{animation:space-unfold linear both;animation-timeline:view();animation-range:entry 0% cover 38%}
 .motion-ready .film-stage:is(:hover,:focus-within,.is-engaged){animation:none;transform:none}
}}
@keyframes space-unfold{from{transform:scale(.94)}to{transform:scale(1)}}
/* Three equal ideas, not fake steps. Text is always readable. */
.story-lines{padding-bottom:96px}.story-lines article{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;padding:48px 0;border-top:1px solid var(--line)}
.story-lines article::before{content:"";position:absolute;top:-1px;left:0;width:72px;height:2px;background:var(--blue);transform-origin:left}
.story-lines article.is-entered::before{animation:reading-rule 580ms var(--ease) both}
@keyframes reading-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.story-lines h2{font-size:var(--group);font-weight:550;line-height:1.25;letter-spacing:-.035em}.story-lines h2 span{font:inherit;letter-spacing:inherit;color:inherit}
.story-lines p{font-size:var(--copy);color:var(--muted);max-width:53ch;text-wrap:pretty;padding-top:4px}
/* Application: single-column task surface. */
.beta-wrap{max-width:680px;margin:auto;padding:64px 0 96px}.beta-intro{display:grid;gap:24px;margin-bottom:32px}.beta-intro h1{font-size:clamp(40px,4.1vw,56px);line-height:1.2}
.beta-intro .lead{max-width:60ch;font-size:var(--copy);color:var(--muted);text-wrap:pretty}.invite-download{font-size:var(--copy);color:var(--muted);margin-bottom:24px}
.preview-note{font-size:var(--copy);color:var(--muted);padding:20px 24px;background:var(--bar);border-radius:10px;margin-bottom:32px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;font-size:var(--copy)}.field>span{font-weight:500}.field span small{font-size:var(--copy);font-weight:400;color:var(--muted)}
.field input,.field textarea{width:100%;min-height:54px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--ink);padding:12px 16px;line-height:1.65;font-size:var(--copy)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.field textarea{min-height:144px;resize:vertical}
.identity{border:0;margin:0 0 24px;padding:0}.identity legend{font-size:var(--copy);font-weight:500;margin-bottom:8px}.identity-options{display:flex;gap:32px;flex-wrap:wrap}.identity label{display:flex;gap:10px;align-items:center;font-size:var(--copy);min-height:44px;cursor:pointer}input[type=radio]{accent-color:var(--blue);width:18px;height:18px;margin:0}
.fine-print{font-size:var(--copy);color:var(--muted);line-height:1.65}.fine-print a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.submit{width:100%;margin-top:24px}.submit:disabled{cursor:not-allowed;opacity:.6}
.form-result{font-size:var(--copy);color:var(--blue);margin-top:16px}.form-result:empty{margin:0}.next{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}.next h3{font-size:var(--copy);font-weight:600;margin-bottom:12px}.next p{font-size:var(--copy);color:var(--muted)}
.field-error{margin:-16px 0 24px}
.utility{padding:80px 0 120px;min-height:65vh;display:grid;gap:24px;align-content:start}
/* Footer: aligned groups, one utility type size. */
.footer{border-top:1px solid var(--line);padding:36px 0 24px}
.footer-top{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr);gap:20px clamp(20px,4vw,48px);align-items:start}
.footer-contact{justify-self:start;min-width:0}
.footer-contact h2{font-size:var(--utility);font-weight:500;line-height:1.6;color:var(--muted);margin-bottom:8px}
.footer-email{display:flex;align-items:center;gap:8px}
.footer-email>a{display:flex;flex:1;align-items:center;min-width:0;min-height:44px;font-size:var(--utility);overflow-wrap:anywhere}
.email-copy{display:grid;place-items:center;flex:none;min-width:44px;min-height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--blue)}
.email-copy svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.email-copy:hover{background:var(--bar)}
.email-copy[data-copied]{background:var(--pressed);color:var(--white)}
.email-copy-status{font-size:14px;color:var(--muted)}
.email-copy-status:not([data-error]){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.footer-legal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;width:min(100%,320px)}
.footer-legal a{display:flex;align-items:center;min-height:44px;font-size:var(--utility);color:var(--muted)}
.footer a:hover{text-decoration:underline;text-underline-offset:4px;color:var(--blue)}.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:24px;padding-top:24px;font-size:var(--utility);line-height:1.6;color:var(--muted)}
@media(max-width:1100px){.welcome-lead{max-width:64ch}.welcome-cta{padding-top:0}.story-lines article{gap:48px}}
@media(max-width:760px){
 .container{width:calc(100% - 48px)}.header{grid-template-columns:1fr auto;gap:16px;padding:20px 0}.header>.brand{grid-column:1;grid-row:1}.header>.language-control{grid-column:2;grid-row:1}.nav-shell{grid-column:1/-1;justify-self:start}
 .welcome{padding:48px 0 40px;row-gap:24px}.welcome h1{margin:0;font-size:clamp(40px,6.8vw,52px);white-space:pre-line}.overview-visual{margin-bottom:56px}.film-stage{border-radius:12px}
 .story-lines{padding-bottom:48px}.story-lines article{grid-template-columns:1fr;gap:24px;padding:32px 0}.story-lines h2{font-size:32px}.story-lines p{padding:0;max-width:58ch}
 .beta-wrap{padding:48px 0 64px}.beta-intro h1{font-size:40px}.footer-top{grid-template-columns:minmax(0,1fr)}.footer{padding-top:32px}.footer-bottom{flex-direction:column;gap:8px}
}
@media(max-width:460px){.container{width:calc(100% - 40px)}.brand{font-size:24px}.brand img{width:34px;height:34px}.welcome h1{font-size:40px}.welcome-cta{min-width:0;width:100%}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions>.button,.download-placeholder{width:100%;min-height:50px;padding:0 10px;white-space:normal}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
