/* ARTECHOUSE edition; the shared portfolio design remains intact. */
header .brand{display:flex;align-items:center;gap:14px;min-width:0;white-space:nowrap}
header .brand .edition-name{font-size:inherit;letter-spacing:inherit;vertical-align:baseline;margin:0}
header .brand .edition-times{font-size:20px;font-weight:300;letter-spacing:0;vertical-align:baseline;margin:0;color:var(--muted)}
.edition-logo{display:block;width:clamp(140px,calc(var(--type-vw) * 15),150px);height:auto;filter:brightness(0);opacity:.86}
@media(max-width:760px){
 header{grid-template-columns:1fr;row-gap:20px;padding:22px 0}
 header .brand{font-size:14px;gap:12px;justify-self:start}
 .edition-logo{width:145px}
 header nav{justify-self:start;gap:28px}
 .hero{min-height:calc(94svh - 132px)}
}
@media(max-width:370px){
 header .brand{font-size:12px;gap:9px}
 header .brand .edition-times{font-size:16px}
 .edition-logo{width:116px}
}

/* Cool paper, natural portrait colour, and a silhouette anchored to the viewport. */
:root{--paper:rgb(213,228,242);--ink:#202730;--muted:#3f4a55;--line:rgba(32,43,55,.23)}
.backdrop{background:rgb(185,207,231)}
.glass{background:rgba(216,232,245,.539)}
.backdrop.static .glass{background:rgba(216,232,245,.70)}
.backdrop.abstract .glass{background:rgba(216,232,245,.57)}
.shape-a{background:#7f98ad}.shape-b{background:#a0acb8}.shape-c{background:#718a9b}
.cv-name-dot{color:#687c8c}.cursor-preview{background:var(--paper)}
.contact-only{padding:52px 0}
.contact-only .contact-grid{align-items:center}
@media(max-width:760px){
 .contact-only{padding:36px 0}
 .contact-only .contact-grid{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
 .contact-only .contact-grid .text-link{margin-top:0}
}
/* Match the original full-height camera composition. The frame itself is fixed;
   each portrait retains its own shoulders instead of sharing a cutout. */
.home .portrait-stack{top:0;bottom:0;right:-3vw;width:min(112svh,90vw);height:100%;aspect-ratio:auto;overflow:visible;transform:scale(1);transform-origin:50% 100%;isolation:isolate;filter:blur(clamp(11.333px,1.3222vw,17px)) saturate(1.03) brightness(.94) contrast(.92);mask-image:linear-gradient(90deg,transparent,#000 13%,#000 89%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 13%,#000 89%,transparent)}
.home .portrait-silhouette{position:absolute;inset:0;mask-image:none;-webkit-mask-image:none}
.home .portrait-stack img{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:none;transform-origin:50% 100%;mask-image:none}
/* Stationary screen-wide fog, denser over the text on the left. */
.home .glass{background:linear-gradient(90deg,rgba(216,232,245,.95) 0%,rgba(216,232,245,.82) 25%,rgba(216,232,245,.45) 56%,rgba(216,232,245,.42) 100%)}
@media(max-width:760px){
 .home .portrait-stack{right:-34vw;width:145vw}
 .home .glass{background:linear-gradient(90deg,rgba(216,232,245,.87),rgba(216,232,245,.48))}
}

/* Gentle horizontal diffusion between coordinated orbit frames. */
:root{--portrait-stitch-strength:8}
.portrait-motion{position:absolute;inset:0}
.portrait-filter-defs{position:absolute;pointer-events:none}
@media(prefers-reduced-motion:reduce){.portrait-motion{filter:none!important}}

/* The Work anchor receives focus for navigation, but is not an interactive control. */
#work:focus{outline:none}

/* The positioning statement is the single hero headline. */
.home .hero h1.hero-statement{max-width:1100px;font-size:clamp(40px,calc(var(--type-vw) * 5.7),90px);line-height:1.08;letter-spacing:-.055em;font-weight:300;margin:64px 0}
@media(max-width:760px){.home .hero h1.hero-statement{font-size:clamp(34px,calc(var(--type-vw) * 7.4),54px);margin:44px 0;letter-spacing:-.045em}}

/* Uniform base diffusion replaces the old blur baked into each generated frame. */
.home .portrait-stack img{transform-origin:50% 0;filter:blur(clamp(10px,1.2vw,16px))}

/* The locked landing contains only the hero; protected content is served after entry. */
html:has(.access-locked){height:100%;overflow:hidden}
body.access-locked{height:100svh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}
.access-locked main{min-height:0}
.access-locked .hero{height:100%;min-height:0;padding-bottom:24px}
.access-locked .hero h1.hero-statement{margin:28px 0;font-size:clamp(32px,calc(var(--type-vw) * 5.7),90px)}
.access-form{grid-column:9/13;min-width:0;width:100%;max-width:340px;justify-self:end}
.access-form label{display:block;margin-bottom:10px}
.access-entry{display:flex;align-items:center;border-bottom:1px solid var(--ink)}
.access-entry input{min-width:0;width:100%;border:0;background:transparent;border-radius:0;padding:10px 0;color:var(--ink);font:inherit;font-size:18px}
.access-entry button{border:0;background:transparent;cursor:pointer;color:var(--ink);font-size:27px;padding:5px 8px}
.access-entry .password-toggle{flex:0 0 44px;min-height:44px;display:grid;place-items:center;padding:8px}
.access-entry .password-toggle[hidden]{display:none}
.password-toggle .eye-slash{display:none}
.password-toggle[aria-pressed="true"] .eye-slash{display:block}
.access-entry input:focus{outline:none}.access-entry:focus-within{outline:2px solid #245d70;outline-offset:5px}
#access-error{font-size:12px;line-height:1.4;min-height:2.8em;margin:10px 0 0}
.lock-form{margin:0}.lock-form button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.access-locked .hero h1.hero-statement{font-size:clamp(29px,calc(var(--type-vw) * 7.4),54px);margin:24px 0}.access-form{grid-column:1/5;max-width:none}.access-locked .hero{padding-top:24px;padding-bottom:14px}}
@media(max-height:600px){.access-locked header{padding-block:12px}.access-locked .hero{padding-top:12px;gap:8px}.access-locked .hero h1.hero-statement{font-size:clamp(25px,calc(var(--type-vw) * 4),48px);margin:12px 0}.access-locked #access-error{min-height:1.4em;margin-top:6px}}

/* Approved hero hierarchy, shared by the landing and password screen. */
.hero-copy{margin:clamp(24px,4svh,48px) 0}
.home .hero .hero-copy h1.hero-statement{margin:0;max-width:1100px}
.access-locked .hero-copy{margin:18px 0}
@media(max-height:600px){.access-locked .hero-copy{margin:8px 0}}
