/* A continuous photographic sequence, with native page scrolling. */
html:has(body.homepage) { overflow-x:clip; }
body.homepage { overflow-x:clip; }
.homepage .hero-section::after { background:linear-gradient(180deg,transparent,#070c10); height:110px; }
.home-craft { scroll-margin-top:var(--header-height,80px); --hc-accent:#ff6134; position:relative; background:#070c10; color:#fff; }
.hc-stage { position:relative; background:#070c10; }
.hc-top { position:absolute; z-index:5; top:32px; left:5vw; right:5vw; display:flex; justify-content:space-between; align-items:center; color:#fff; font-size:14px; letter-spacing:.06em; pointer-events:none; }
.hc-position { font-size:12px; font-variant-numeric:tabular-nums; letter-spacing:.2em; }
.hc-scene { position:relative; height:calc(100svh - var(--header-height,80px)); min-height:570px; overflow:hidden; isolation:isolate; }
.hc-scene picture,.hc-scene img,.hc-shade { position:absolute; inset:0; width:100%; height:100%; }
.hc-scene picture { z-index:-2; }
.hc-scene img { display:block; object-fit:cover; object-position:center 60%; transform:scale(1.025); }
.hc-shade { z-index:-1; background:linear-gradient(0deg,#070c10 0%,#070c10b0 20%,transparent 58%),linear-gradient(90deg,#070c1070,transparent 66%),linear-gradient(180deg,#070c1050,transparent 25%); }
.hc-copy { position:absolute; left:5vw; right:5vw; bottom:130px; display:grid; grid-template-columns:40px 1fr auto; gap:25px; align-items:end; }
.hc-number { color:var(--hc-accent); font-size:15px; align-self:start; padding-top:20px; font-variant-numeric:tabular-nums; }
.homepage .hc-copy h2 { color:white; margin:0; font-size:clamp(64px,7.5vw,116px); line-height:1.13; font-weight:550; letter-spacing:-.055em; text-align:left; }
.hc-copy p { color:#d2d9dd; margin:22px 0 0; font-size:17px; line-height:1.65; }
.hc-copy a { display:flex; align-items:center; justify-content:space-between; gap:60px; min-height:56px; padding:0 0 12px; border-bottom:1px solid #ffffff70; color:#fff; text-decoration:none; font-size:15px; transition:border-color .2s; }
.hc-copy a span { font-size:28px; transition:transform .25s; }
.hc-copy a:hover { border-color:var(--hc-accent); }
.hc-copy a:hover span { transform:translate(4px,-4px); color:var(--hc-accent); }
.hc-caption { position:absolute; right:5vw; top:100px; font-size:12px; letter-spacing:.22em; color:#ffffffb0; writing-mode:vertical-rl; }
.hc-nav { display:none; }
.home-craft.is-enhanced { height:260svh; }
.is-enhanced .hc-stage { position:sticky; top:var(--header-height,80px); height:calc(100svh - var(--header-height,80px)); min-height:570px; overflow:hidden; }
.is-enhanced .hc-scenes,.is-enhanced .hc-scene { position:absolute; inset:0; height:100%; min-height:0; }
.is-enhanced .hc-scene { opacity:0; visibility:hidden; transition:opacity .65s ease,visibility .65s; }
.is-enhanced .hc-scene.is-current { opacity:1; visibility:visible; z-index:1; }
.is-enhanced .hc-scene img { transform:scale(1.025); transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.is-enhanced .hc-scene.is-current img { transform:scale(1); }
.is-enhanced .hc-copy { transform:translateY(22px); transition:transform .75s cubic-bezier(.2,.7,.2,1); }
.is-enhanced .is-current .hc-copy { transform:none; }
.is-enhanced .hc-nav { position:absolute; z-index:6; bottom:30px; left:5vw; right:5vw; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.hc-nav button { position:relative; display:flex; gap:20px; align-items:center; padding:20px 0; min-height:64px; border:0; border-top:1px solid #ffffff40; border-radius:0; background:none; color:#b9c2c8; font:inherit; text-align:left; cursor:pointer; }
.hc-nav button span { font-size:12px; font-variant-numeric:tabular-nums; }
.hc-nav button strong { font-size:17px; font-weight:500; }
.hc-nav button[aria-current=true] { color:white; }
.hc-nav button[aria-current=true] span { color:var(--hc-accent); }
.hc-nav i { position:absolute; top:-1px; left:0; height:2px; width:100%; background:var(--hc-accent); transform:scaleX(0); transform-origin:left; }
.hc-nav button[aria-current=true] i { transform:scaleX(var(--hc-fill,0)); }
.hc-nav button:hover { color:white; }
.hc-nav button:focus-visible,.hc-copy a:focus-visible { outline:2px solid var(--hc-accent); outline-offset:6px; }
@media(max-width:820px),(max-height:640px) {
 .hc-top { position:relative; top:auto; left:auto; right:auto; padding:26px 20px; border-top:1px solid #ffffff20; }
 .hc-scene { height:76svh; min-height:540px; max-height:780px; border-bottom:1px solid #ffffff26; }
 .hc-copy { left:22px; right:22px; bottom:35px; grid-template-columns:1fr; gap:20px; }
 .hc-number { display:none; }
 .homepage .hc-copy h2 { font-size:clamp(42px,11vw,62px); line-height:1.12; }
 .hc-copy p { font-size:15px; margin-top:16px; }
 .hc-copy a { width:100%; min-height:48px; padding-bottom:6px; }
 .hc-copy a span { font-size:24px; }
 .hc-caption { right:22px; top:25px; font-size:10px; }
 .hc-scene img { transform:none; object-position:center; }
 .hc-shade { background:linear-gradient(0deg,#070c10f0, #070c1066 40%,transparent 72%); }
 .hc-scene:nth-child(1) img { object-position:center 65%; }
}
@media(prefers-reduced-motion:reduce) {
 .hc-scene,.hc-scene img,.hc-copy,.hc-copy a span { transition:none!important; transform:none!important; }
}

@media(max-width:820px) and (prefers-reduced-motion:no-preference) {
 .hc-scene img { transform:scale(1.035); transition:transform 1.3s cubic-bezier(.2,.7,.2,1); }
 .hc-scene.is-inview img { transform:scale(1); }
}

.home-about { display:grid; grid-template-columns:1fr 1.25fr; gap:8vw; padding:90px 7vw; background:#f0f1ed; color:#13252e; border-top:1px solid #c9d1d0; }
.home-about-heading > p { margin:0 0 24px; font-size:14px; color:#9b4229; }
.home-about-heading h2 { margin:0 0 26px; font-size:clamp(40px,4.4vw,66px); line-height:1.15; font-weight:550; letter-spacing:-.04em; }
.home-about-heading > span { color:#54656d; font-size:14px; }
.home-about-copy h3 { margin:0 0 24px; font-size:23px; font-weight:550; line-height:1.5; }
.home-about-copy > p { font-size:17px; color:#465b65; line-height:1.9; margin:0 0 12px; }
.home-about-links { display:flex; flex-wrap:wrap; gap:30px; margin-top:30px; }
.home-about-links a { display:flex; gap:35px; align-items:center; padding:14px 0; border-bottom:1px solid #8c9b9f; color:#19333f; font-size:15px; text-decoration:none; }
.home-about-links a:hover { color:#a34225; border-color:#a34225; }
@media(max-width:820px) { .home-about { grid-template-columns:1fr; gap:32px; padding:52px 22px; } .home-about-heading h2 { margin-bottom:16px; } .home-about-copy h3 { font-size:21px; } .home-about-copy > p { font-size:16px; } }
