/* Editorial system: five type roles, one page grid, quiet motion. */
:root{--paper:#f7f6f2;--soft:#ebe9e2;--ink:#20201e;--muted:#6b6962;--line:#d8d5cd;--display-xl:clamp(64px,7.2vw,128px);--display-l:clamp(36px,4.2vw,64px);--heading-m:clamp(22px,2.3vw,32px);--body-size:16px;--caption-size:12px;--section-space:clamp(64px,7vw,112px);--ease-out:cubic-bezier(.2,.65,.2,1)}
html{scroll-padding-top:24px}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.eyebrow{text-transform:none;font-size:var(--caption-size)}.skip{z-index:100}
.page-title,.closing h2{font-size:var(--display-l);font-weight:400;letter-spacing:-.045em;line-height:1.2}.prose h2,.process-row h2{font-size:var(--heading-m)}.prose p,.intro{font-size:var(--body-size);line-height:1.9}.text-link{min-height:48px}.text-link span{transition:transform .3s var(--ease-out)}
.campaign-topline,.campaign-baseline,.collection-label{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:var(--caption-size)}
.campaign-hero{padding:24px var(--gutter) 18px}.campaign-topline .eyebrow{margin:0}.campaign-topline a,.campaign-baseline a{min-height:44px;display:inline-flex;align-items:center;gap:22px}
.campaign-composition{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center;margin:24px 0 30px}.campaign-headline{grid-column:1/6;grid-row:1}.campaign-headline h1{font-size:var(--display-xl);line-height:1.04;letter-spacing:-.06em;font-weight:400;margin:0}.campaign-headline h1 span{display:inline-block}html[lang=zh] .campaign-headline h1{line-height:1.18}html[lang=zh] .campaign-headline h1 span{padding-left:.7em;font-weight:500}
.campaign-image{grid-column:6/-1;grid-row:1/3;margin:0}.campaign-image img{display:block;width:100%;height:clamp(350px,55svh,620px);object-fit:cover;background:var(--soft)}.campaign-image figcaption{font-size:var(--caption-size);color:var(--muted);margin-top:10px}.campaign-entry{grid-column:1/5;grid-row:2;max-width:340px}.campaign-entry p{font-size:var(--body-size);line-height:1.8;margin:0 0 12px}.campaign-entry .text-link{width:100%;justify-content:space-between}.campaign-baseline{border-top:1px solid var(--line);padding-top:10px;color:var(--muted)}
.quiet-belief{padding:var(--section-space) var(--gutter);text-align:center}.quiet-belief .eyebrow{margin-bottom:24px}.quiet-belief h2{font-size:var(--heading-m);font-weight:400;line-height:1.5;letter-spacing:-.03em;margin:0}.quiet-belief h2 span{color:var(--muted)}.quiet-note{font-size:var(--caption-size);color:var(--muted);margin:24px 0 0}
.essential-screen{background:#eae7df;padding:32px var(--gutter) var(--section-space)}.collection-label{padding-bottom:22px;border-bottom:1px solid #cfcbc1}.essential-composition{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center;margin-top:36px}.essential-image{grid-column:1/8}.essential-image img{aspect-ratio:4/3;object-fit:contain}.essential-info{grid-column:9/-1}.essential-info h2,.material-heading h2,.founder-campaign-title h2{font-size:var(--display-l);font-weight:400;line-height:1.2;letter-spacing:-.04em;margin:0 0 28px}.essential-description{font-size:var(--body-size);line-height:1.9;color:#57554f}.essential-info .text-link{display:flex;justify-content:space-between;margin-top:24px}.offer-note{font-size:var(--caption-size);line-height:1.8;color:var(--muted)}
.material-screen{padding:var(--section-space) var(--gutter);background:#262824;color:#f5f3ed;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.material-heading{grid-column:1/5;align-self:center}.material-heading .eyebrow,.material-heading>p:last-child,.material-image figcaption{color:#c6c7bd}.material-heading>p:last-child{font-size:var(--body-size);line-height:1.9}.material-image{grid-column:6/-1}.material-image img{aspect-ratio:4/3;object-fit:cover}.material-link{grid-column:6/-1;justify-self:end}.material-link .text-link{border-color:#898c80}
.founder-campaign{padding:var(--section-space) var(--gutter);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}.founder-campaign-title{grid-column:1/5}.founder-campaign-image{grid-column:6/-1;grid-row:1/3}.founder-campaign-image img{aspect-ratio:3/2;object-fit:cover}.founder-campaign-note{grid-column:1/5;grid-row:2;align-self:end}.founder-campaign-note p{font-size:var(--body-size);line-height:1.9}.editorial-photo figcaption{font-size:var(--caption-size);line-height:1.7}
.future-world{margin:0 var(--gutter);padding:40px 0;border-block:1px solid var(--line);display:grid;grid-template-columns:1fr 1.6fr;gap:24px 48px}.future-intro h2{font-size:var(--heading-m);font-weight:400;line-height:1.35;margin:0 0 16px}.future-intro p{font-size:14px;line-height:1.8;color:var(--muted)}.future-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.future-card figure{margin:0}.future-card img{aspect-ratio:4/3;object-fit:cover}.future-card h3{font-size:14px;font-weight:400;margin:12px 0 0}.concept-note{grid-column:1/-1;color:var(--muted);font-size:var(--caption-size);margin:0}
.process-identity{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw;align-items:center;margin-top:64px}.process-identity h2{font-size:var(--display-l);font-weight:400;line-height:1.2}.process-identity p{line-height:1.8}.process-identity .identity-stage{min-height:400px}.process-identity .identity-image.worn{object-fit:contain}.process-material{margin:64px 0}.process-material img{max-height:650px;aspect-ratio:3/2;object-fit:cover}.quote-total{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:20px;border-block:1px solid var(--line);padding:30px 0;margin:36px 0}.quote-total strong{font-size:var(--display-l);font-weight:400;letter-spacing:-.05em}.quote-review>p{line-height:1.85}.quote-review .actions{flex-wrap:wrap}.campaign-composition>*,.essential-composition>*,.material-screen>*,.founder-campaign>*,.future-world>*,.process-identity>*{min-width:0}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.text-link:hover span{transform:translate(3px,-3px)}}
@media(min-width:801px) and (max-width:1100px){.essential-info{grid-column:8/-1}.essential-info h2{font-size:38px}.founder-campaign-title,.founder-campaign-note{grid-column:1/6}}
@media(max-width:800px){
 :root{--display-xl:clamp(52px,12vw,90px);--display-l:clamp(34px,8vw,52px);--heading-m:clamp(24px,5.5vw,32px);--body-size:15px;--caption-size:11px;--section-space:64px}
 .campaign-hero{padding-top:16px}.campaign-topline{font-size:10px;gap:12px}.campaign-topline .eyebrow{font-size:10px}.campaign-topline a{gap:8px;white-space:nowrap}.campaign-composition{grid-template-columns:minmax(0,1fr);gap:22px;margin:18px 0 22px}.campaign-headline,.campaign-image,.campaign-entry{grid-column:1;grid-row:auto}.campaign-image img{height:auto;aspect-ratio:1.42}.campaign-entry{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:none;align-items:center}.campaign-entry p{font-size:13px;margin:0}.campaign-entry .text-link{font-size:14px}.campaign-baseline{font-size:10px;gap:12px}.campaign-baseline>span{max-width:65%}.campaign-baseline a{gap:8px;white-space:nowrap}.quiet-belief{padding-block:48px}.quiet-belief h2{font-size:var(--heading-m)}
 .essential-screen{padding-top:24px}.essential-composition,.material-screen,.founder-campaign{grid-template-columns:minmax(0,1fr);gap:28px}.essential-composition{margin-top:24px}.essential-image,.essential-info,.material-heading,.material-image,.material-link,.founder-campaign-title,.founder-campaign-image,.founder-campaign-note{grid-column:1;grid-row:auto}.essential-info h2,.material-heading h2,.founder-campaign-title h2{margin-bottom:22px}.material-screen{padding-block:48px}.material-image img{aspect-ratio:4/3}.founder-campaign-title{order:0}.founder-campaign-image{order:1}.founder-campaign-note{order:2}.founder-campaign-image img{aspect-ratio:4/3}.founder-campaign-note p{margin-top:0}.founder-campaign-note .text-link{display:flex;justify-content:space-between}
 .future-world{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:32px}.future-grid{gap:10px}.future-card h3{font-size:12px}.future-intro p{margin-bottom:0}.concept-note{font-size:10px}.process-identity{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:40px}.process-identity .identity-stage{min-height:320px}.process-material{margin-block:40px}.process-material img{aspect-ratio:4/3}.closing{padding-top:64px}.quote-review .primary{white-space:normal}
}
@media(max-width:370px){.campaign-topline .eyebrow{max-width:170px}.campaign-entry{gap:12px}.campaign-entry p{font-size:12px}.campaign-baseline>span{max-width:160px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.text-link span{transition:none}}
/* Keep functional and narrative headings in the same scale. */
.brief-header .page-title,.flow h1,.auth h1{font-size:var(--display-l);line-height:1.2}
.story-gallery h2,.split h2{font-size:var(--heading-m)}

/* Images end at the image edge: no reserved development-caption space. */
.about-opening{margin-bottom:56px}
.process-material{margin-block:48px}
.story-gallery{margin-top:64px}
@media(max-width:800px){.about-opening{margin-bottom:36px}.process-material{margin-block:32px}.story-gallery{margin-top:40px}}

/* Identity-led campaign: the person carries the first impression. */
@media(min-width:801px){
 .campaign-headline{grid-column:1/7;z-index:1}
 .campaign-image{grid-column:7/-1}
 .campaign-image img{height:clamp(420px,60svh,660px)}
 .campaign-entry{grid-column:1/6}
 .campaign-composition{align-items:start;row-gap:32px}
 .campaign-headline{align-self:end}
 .quiet-belief{padding-block:calc(var(--section-space)*.86)}
 .founder-campaign{grid-template-rows:auto 1fr;row-gap:8px}
 .founder-campaign-note{align-self:start}
 .founder-campaign-note p{margin-top:0}
 .founder-campaign-title h2{margin-bottom:20px}
}
@media(max-width:800px){
 .campaign-image img{aspect-ratio:4/5;height:auto}
 .campaign-entry{grid-template-columns:minmax(0,1fr);gap:10px}
 .campaign-entry p{font-size:14px;line-height:1.8}
 .campaign-entry .text-link{width:100%;justify-content:space-between}
 html[lang=zh] .campaign-headline h1 span{font-weight:400}
}

/* Final polish: a portrait frame, consistent reading rhythm and focus-only skip link. */
.skip{top:12px;left:var(--gutter);transform:translateY(calc(-100% - 24px));pointer-events:none}
.skip:focus{top:12px;transform:none;pointer-events:auto}
nav a[aria-current=page]{text-decoration-thickness:1px;text-underline-offset:7px}
.campaign-image img{height:auto;aspect-ratio:4/5}
html[lang=zh] .page-title{line-height:1.14}
.process-identity h2{margin:0 0 24px;font-size:clamp(30px,3.4vw,50px);line-height:1.3}
.process-identity>div:last-child{min-height:280px;display:flex;flex-direction:column;justify-content:center}
.process-identity>div:last-child>p:last-child{margin:0;color:var(--muted)}
.brief-item.emphasis dd{font-size:22px;color:var(--ink)}
.brief-item:not(.emphasis) dd{color:#57554f}
@media(min-width:801px){.editorial-essay>p{max-width:36em}}
@media(max-width:800px){
 :root{--gutter:24px;--body-size:16px;--caption-size:12px;--display-l:clamp(32px,8vw,48px)}
 .campaign-composition{row-gap:32px}
 .campaign-entry p{font-size:16px}
 .process-identity>div:last-child{min-height:0}
 .process-identity h2{font-size:32px;margin-bottom:18px}
 .brief-item.emphasis dd{font-size:20px}
 .page-title,.flow h1,.auth h1{line-height:1.14}
}
@media(max-width:370px){:root{--gutter:20px}}

/* Homepage final calibration: controlled lines and a quieter closing gesture. */
.essential-title-line{display:block;white-space:nowrap}
.quiet-belief h2 span,.quiet-note{color:#605e58}
.closing{padding:0}
.closing-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 24px;padding:70px var(--gutter) 110px}
.closing-link>.eyebrow{grid-column:1;margin-bottom:28px}
.closing-link>h2{grid-column:1}
.closing-link>.closing-arrow{grid-column:2;grid-row:1/3;align-self:center}
@media(min-width:801px){
 .quiet-belief{padding-block:calc(var(--section-space)*.774)}
 .founder-campaign-note p{max-width:22em}
 .closing-link{padding-block:64px 101px}
 .closing-arrow{font-size:clamp(51px,7.9vw,123px)}
}
@media(max-width:800px){
 .closing-link{padding:64px var(--gutter) 60px;gap:0 15px}
 .closing-link>.eyebrow{margin-bottom:25px}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.closing-link:hover .closing-arrow{transform:translate(3px,-3px)}}
@media(hover:none),(prefers-reduced-motion:reduce){.closing-link:hover .closing-arrow{transform:none}}
