/* Editorial iteration, 23 October 2026.
   Presentation only: original artwork and the vanilla card morph are retained. */
:root { --paper:#eeece3; --muted:#a6aa9e; --editorial-ease:cubic-bezier(.22,1,.36,1); }
body { font-family:'LM Work Sans',Arial,sans-serif; }
.nav { height:88px; }
.nav-role { letter-spacing:.02em; }
.hero { padding-top:0; }
.hero-stage { display:block; background:transparent; min-height:0; padding-bottom:64px; isolation:isolate; container-type:inline-size; }
.hero-introduction { position:relative; z-index:4; display:flex; justify-content:space-between; padding-top:36px; }
.hero-introduction p { margin:0; font-size:13px; line-height:1.55; color:var(--muted); }
.hero-introduction .hero-role { font:500 18px/1.1 'Helvetica Neue',Arial,sans-serif; color:var(--ink); letter-spacing:-.025em; }
.hero-introduction>p:last-child { text-align:right; }
/* Both name lines share this one size, weight and colour. */
.hero h1 { position:relative; z-index:1; margin:40px 0 32px; padding:0; font-family:'Helvetica Neue',Arial,sans-serif; font-weight:700; font-size:20cqw; line-height:.93; letter-spacing:-.06em; white-space:nowrap; text-align:left; }
.hero h1 .name-first,.hero h1 .name-last { font:inherit; color:var(--ink); margin:0; }
.hero h1>.reveal-mask { display:block; padding-bottom:.04em; }
.hero h1 .reveal-line { display:block; }
.name-letter-mask { display:inline-block; overflow:hidden; vertical-align:top; padding-top:.08em; margin-top:-.08em; }
.name-letter { display:inline-block; transform-origin:20% 100%; }
.intro-playing .name-letter { animation:name-rise 1000ms cubic-bezier(.16,1,.3,1) var(--letter-delay) both; }
@keyframes name-rise { from { transform:translateY(115%) rotate(7deg); } to { transform:translateY(0) rotate(0); } }
.hero .portrait { display:none; }
.hero .portrait.has-portrait { display:block; position:absolute; inset:auto auto 64px 61%; transform:translateX(-50%); width:43%; height:83%; min-height:0; background:transparent; z-index:2; pointer-events:none; }
.hero .portrait img { object-fit:contain; object-position:center bottom; mask-image:linear-gradient(#000 0%,#000 80%,transparent 100%); }
.intro-playing .portrait img { animation:portrait-arrive 1200ms var(--editorial-ease) 180ms both; }
@keyframes portrait-arrive { from { opacity:0; transform:translateY(35px); } to { opacity:1; transform:translateY(0); } }
.hero-bottom { position:absolute; inset:auto 0 0; padding:20px 0; border-top:1px solid var(--line); font-size:10px; color:var(--muted); align-items:center; }
.hero-link { padding:0; border:0; color:var(--ink); gap:28px; font-size:12px; }
.hero-link span { font-size:21px; }
.hero-link:hover { color:var(--lime); }
.selected { padding-top:70px; }
.section-heading { grid-template-columns:1fr 2fr 1fr; margin-bottom:28px; }
.section-heading h2 { font-size:clamp(38px,4.6vw,64px); letter-spacing:-.055em; }
.section-heading p { justify-self:end; }
.reveal-mask { overflow:hidden; }
.reveal-line { display:inline-block; }
.reveal-playing>.reveal-line { animation:curtain-up 900ms var(--editorial-ease) both; }
@keyframes curtain-up { from {transform:translateY(110%);} to {transform:translateY(0);} }

/* Project-page pacing within the established dialog, not a new navigation model. */
.project-window { background:var(--paper); border-radius:3px; }
.project-window :focus-visible { outline-color:#536d17; }
.viewer-bar { background:var(--paper); padding-inline:32px; }
.project-scroll { padding:52px 52px 36px; }
.project-intro { grid-template-columns:1fr 2.25fr; gap:32px; padding-bottom:52px; }
.project-intro>.eyebrow { padding-top:8px; line-height:1.7; }
.project-intro h2 { font-size:clamp(43px,5.3vw,76px); }
.project-intro p { font-size:14px; line-height:1.7; }
.project-tags { gap:10px 22px; font-size:9px; padding-top:10px; }
.project-group { margin-bottom:64px; }
.group-title { padding-top:18px; margin-bottom:24px; font-size:11px; }
.group-description { margin-bottom:30px; }
.gallery { gap:28px; }
.work-frame figcaption { font-size:11px; line-height:1.5; padding-top:13px; }
.project-disclaimer { margin:0; font-size:10px; line-height:1.6; }
.gallery-packaging { gap:36px; align-items:center; }
.packaging-range .work-frame.narrow { grid-column:span 4; }
.packaging-range .work-frame.wide { grid-column:span 8; }
.packaging-range:not(.range-reverse) .work-frame.wide { margin-top:80px; }
.range-reverse .work-frame.narrow { margin-top:80px; }
.gallery-packaging .media-slot { background:transparent; }
[data-project="campaign"] .project-group:nth-of-type(2) { width:84%; margin-left:auto; }
[data-project="campaign"] .project-group:nth-of-type(3) { width:64%; margin-right:auto; }
.gallery-campaign .work-frame.portrait-feature { max-width:100%; }
.ad-featured .work-frame:nth-child(2) { margin-top:90px; }
.ad-featured .work-frame:nth-child(4) { margin-top:50px; }
.gallery-advertising { gap:38px 28px; }
.ad-selected-support { gap:28px 22px; }
.ad-selected-support .work-frame:nth-child(2) { margin-top:36px; }
.social-series .work-frame:first-child { grid-column:1/8; }
.social-series .work-frame:nth-child(2),.social-series .work-frame:nth-child(3) { grid-column:9/-1; }
.gallery-social.social-series { gap:36px 24px; }
.id-section { padding-top:80px; }
.id-mark-hero { padding-block:35px; }
.id-section-heading { margin-bottom:38px; }
.id-application-links { gap:28px; }


@media(max-width:1000px) {
 .hero h1 { margin-top:40px; }
 .hero .portrait.has-portrait { width:48%; height:80%; }
 .section-heading { grid-template-columns:1fr 2fr; }
 .project-scroll { padding:35px 28px; }
}

/* Viewer title motion remains independent of the Selected Work presentation. */
.project-intro h2 { overflow:hidden; }
.project-title-line { display:block; }
.title-prepared .project-title-line { transform:translateY(115%); }
.title-reveal .project-title-line { animation:curtain-up 850ms var(--editorial-ease) both; }
@media(prefers-reduced-motion:reduce) {
 .name-letter,.title-prepared .project-title-line,.project-title-line { animation:none!important; transform:none!important; }
}

@media(max-width:700px) {
 .nav { height:76px; }
 .hero-stage { display:block; min-height:0; padding-bottom:66px; }
 .hero-introduction { padding-top:27px; gap:22px; }
 .hero-introduction .hero-role { font-size:15px; }
 .hero-introduction p { font-size:10px; }
 .hero h1 { margin:38px 0 28px; }
 .hero .portrait.has-portrait { position:relative; inset:auto; transform:none; width:78%; height:340px; max-height:85vw; margin:-15px auto 0; }
 .hero-bottom { padding-block:18px; gap:15px; font-size:8px; }
 .hero-bottom>span { display:block; max-width:130px; line-height:1.6; }
 .hero-bottom .hero-link { display:flex; font-size:10px; gap:12px; }
 .selected { padding-top:45px; }
 .section-heading { grid-template-columns:1fr; gap:15px; }
 .section-heading h2 { font-size:40px; }
 .project-window { border-radius:2px; }
 .viewer-bar { padding-inline:16px; }
 .project-scroll { padding:30px 18px; }
 .project-intro { grid-template-columns:1fr; gap:15px; padding-bottom:30px; }
 .project-intro h2 { font-size:43px; }
 .project-group { margin-bottom:42px; }
 .gallery-packaging { gap:28px; }
 .packaging-range .work-frame.narrow,.packaging-range .work-frame.wide { grid-column:1/-1; }
 .packaging-range .work-frame.narrow { max-width:330px; }
 .packaging-range:not(.range-reverse) .work-frame.wide,.range-reverse .work-frame.narrow { margin-top:0; }
 [data-project="campaign"] .project-group:nth-of-type(n) { width:100%; margin-inline:0; }
 .gallery-advertising { gap:28px; }
 .ad-featured .work-frame:nth-child(n),.ad-selected-support .work-frame:nth-child(n) { margin-top:0; }
 .id-section { padding-top:48px; }
 .id-section-heading { margin-bottom:25px; }
 .id-mark-hero { padding:20px 16px; }
}
@media(max-width:760px) {
 .gallery-social.social-series .work-frame:nth-child(n) { grid-column:1/-1; grid-row:auto; }
}
@media(prefers-reduced-motion:reduce) {
 .reveal-line { animation:none!important; transform:none!important; }
}

/* Reference correction: a gallery rhythm rather than uniform framed panels. */
.project-window,.viewer-bar { background:#faf9f5; }
.project-intro { grid-template-columns:1fr 2fr; padding-top:18px; padding-bottom:80px; }
.project-intro h2 { font-family:Georgia,serif; font-size:clamp(40px,4.5vw,62px); letter-spacing:-.045em; }
.project-scroll { padding-inline:64px; }
.project-group { margin-bottom:100px; }
.group-title { font-size:11px; border-color:#d5d5cd; }
.gallery-packaging.packaging-range { grid-template-columns:repeat(12,minmax(0,1fr)); row-gap:48px; align-items:start; }
.packaging-range .work-frame.narrow { grid-column:1/6; grid-row:1; width:100%; max-width:380px; }
.packaging-range .work-frame.wide { grid-column:5/-1; grid-row:2; margin-top:0!important; }
.range-reverse .work-frame.wide { grid-column:1/9; grid-row:1; }
.range-reverse .work-frame.narrow { grid-column:8/-1; grid-row:2; margin-top:0; justify-self:end; }
.gallery-campaign .media-slot { background:transparent; }
.work-frame figcaption { font-size:10px; border-bottom:1px solid #deded6; padding-bottom:13px; }
@media(max-width:1000px) {
 .project-scroll { padding-inline:28px; }
 .project-intro { padding-bottom:50px; }
 .project-group { margin-bottom:65px; }
}
@media(max-width:700px) {
 .project-scroll { padding-inline:18px; }
 .project-intro { grid-template-columns:1fr; padding-top:0; padding-bottom:35px; }
 .project-group { margin-bottom:45px; }
 .gallery-packaging.packaging-range { gap:30px; }
 .gallery-packaging.packaging-range .work-frame { grid-column:1/-1; grid-row:auto; margin:0; justify-self:center; }
 .gallery-packaging.packaging-range .work-frame.narrow { max-width:300px; }
}
