/* Layers Stack: a warm portfolio plate. The complete projects are the layers, driven by an
   automatic sequence. A finite CSS transition moves the chosen sheet forward. No runway,
   image effects or browser frames. Optional autoplay owns one scoped timer. Reduced motion presents the selected site flat. */
html[data-chv="layers-stack"] .site-header { background:#f1eee7; color:#18231f; border-bottom:1px solid #18231f26; }
html[data-chv="layers-stack"] .header-inner { height:80px; }
html[data-chv="layers-stack"] .site-header .wordmark { color:#18231f; }
html[data-chv="layers-stack"] .nav-list { background:none; border:0; box-shadow:none; padding:0; }
html[data-chv="layers-stack"] .nav-list li + li { border:0; }
html[data-chv="layers-stack"] .nav-list a,
html[data-chv="layers-stack"] .nav-list a[aria-current="page"] { background:none; color:#18231f; font:500 15px/1.3 "Funnel Sans",sans-serif; min-height:44px; }
html[data-chv="layers-stack"] .header-cta,
html[data-chv="layers-stack"] .menu-toggle { background:transparent; border:1px solid #6d756f; color:#18231f; box-shadow:none; min-height:44px; font:500 14px/1.3 "Funnel Sans",sans-serif; }
html[data-chv="layers-stack"] .skip-link { background:#18231f; color:#fff; }
html[data-chv="layers-stack"] :is(.site-header,.chv-layers-stack) :focus-visible { outline:2px solid #18231f; outline-offset:4px; }
.chv-layers-stack { --lst-ease-out:cubic-bezier(.23,1,.32,1); --lst-ease-in-out:cubic-bezier(.77,0,.175,1); --lst-motion-duration:1200ms; --lst-paper:#f1eee7; --lst-ink:#18231f; --lst-muted:#59645d; color:var(--lst-ink); background:var(--lst-paper); overflow:clip; font:400 16px/1.5 "Funnel Sans",sans-serif; -webkit-font-smoothing:antialiased; }
.chv-layers-stack * { font-style:normal; }
.chv-layers-stack .lst-wrap { width:calc(100% - 80px); max-width:1180px; margin-inline:auto; padding:42px 0 38px; }
.chv-layers-stack .lst-masthead { display:grid; grid-template-columns:1.32fr 1fr; gap:64px; align-items:end; }
.chv-layers-stack .lst-eyebrow { font-size:14px; color:var(--lst-muted); margin:0 0 23px; }
.chv-layers-stack h1 { margin:0; color:var(--lst-ink); font:500 clamp(45px,5.25vw,76px)/.99 "Funnel Display","Funnel Sans",sans-serif; letter-spacing:-.035em; }
.chv-layers-stack h1 span { display:block; color:inherit; white-space:nowrap; }
.chv-layers-stack .lst-lede { font-size:17px; line-height:1.5; color:var(--lst-muted); max-width:29em; margin:0; }
.chv-layers-stack .lst-actions { display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; margin-top:23px; }
.chv-layers-stack :is(.lst-primary,.lst-secondary) { display:inline-flex; align-items:center; gap:14px; min-height:50px; font-size:15px; font-weight:500; }
.chv-layers-stack .lst-primary { padding:0 20px; color:#fff; background:var(--lst-ink); border:1px solid var(--lst-ink); border-radius:4px; }
.chv-layers-stack .lst-secondary { color:var(--lst-ink); text-decoration:underline; text-underline-offset:6px; text-decoration-color:#6d756f; }
.chv-layers-stack svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; flex-shrink:0; }
.chv-layers-stack .lst-founder { color:var(--lst-muted); margin:18px 0 0; font-size:14px; line-height:1.45; }
.chv-layers-stack .lst-work { margin-top:36px; border-top:1px solid #18231f4d; display:block; }
.chv-layers-stack .lst-figure { min-width:0; max-width:894px; margin:0 auto; }
.chv-layers-stack .lst-stage { position:relative; container-type:inline-size; height:540px; perspective:1700px; perspective-origin:50% 46%; }
.chv-layers-stack .lst-stack { position:absolute; width:84%; aspect-ratio:1.6; left:5%; top:100px; transform-style:preserve-3d; transform:rotateX(49deg) rotateZ(-16deg) scale(.76); }
.chv-layers-stack .lst-sheet { position:absolute; inset:0; transform:translateZ(calc(var(--depth) * 46px)); transform-style:preserve-3d; background:#fff; outline:1px solid #18231f33; }
.chv-layers-stack .lst-shot { display:block; width:100%; height:100%; object-fit:cover; }
.chv-layers-stack .lst-sheet::after { content:''; position:absolute; left:0; right:0; top:100%; height:4px; background:#dedbd3; transform-origin:top; transform:rotateX(-90deg); }
.chv-layers-stack .lst-axis { position:absolute; bottom:14px; right:5px; height:42px; border-left:1px solid #6d756f; padding:12px 0 0 12px; }
.chv-layers-stack .lst-axis::before { content:''; position:absolute; left:-3px; top:0; width:5px; height:1px; background:#6d756f; }
.chv-layers-stack .lst-axis span { color:var(--lst-muted); font-size:12px; }
.chv-layers-stack .lst-caption { display:none; border-top:1px solid #18231f4d; min-height:52px; align-items:center; justify-content:space-between; gap:16px; font-size:14px; }
.chv-layers-stack .lst-caption a { display:inline-flex; gap:8px; align-items:center; min-height:44px; color:var(--lst-ink); text-decoration:underline; text-underline-offset:4px; white-space:nowrap; }
.chv-layers-stack:has(#lst-project-0:checked) .lst-caption-0,
.chv-layers-stack:has(#lst-project-1:checked) .lst-caption-1,
.chv-layers-stack:has(#lst-project-2:checked) .lst-caption-2,
.chv-layers-stack:has(#lst-project-3:checked) .lst-caption-3,
.chv-layers-stack:has(#lst-project-4:checked) .lst-caption-4,
.chv-layers-stack:has(#lst-project-5:checked) .lst-caption-5 { display:flex; }
/* Six projects cycle through the same six physical sheet positions. */
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-0 { --depth:0!important; }
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-1 { --depth:5!important; }
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-2 { --depth:4!important; }
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-3 { --depth:3!important; }
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-4 { --depth:2!important; }
.chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-5 { --depth:1!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-0 { --depth:1!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-1 { --depth:0!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-2 { --depth:5!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-3 { --depth:4!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-4 { --depth:3!important; }
.chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-5 { --depth:2!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-0 { --depth:2!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-1 { --depth:1!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-2 { --depth:0!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-3 { --depth:5!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-4 { --depth:4!important; }
.chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-5 { --depth:3!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-0 { --depth:3!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-1 { --depth:2!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-2 { --depth:1!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-3 { --depth:0!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-4 { --depth:5!important; }
.chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-5 { --depth:4!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-0 { --depth:4!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-1 { --depth:3!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-2 { --depth:2!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-3 { --depth:1!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-4 { --depth:0!important; }
.chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-5 { --depth:5!important; }
@media(prefers-reduced-motion:no-preference) {
 .chv-layers-stack .lst-stack,.chv-layers-stack .lst-sheet { transition:transform 850ms cubic-bezier(.22,1,.36,1); }
}
@media(prefers-reduced-motion:reduce) {
 .chv-layers-stack .lst-stage { height:auto!important; aspect-ratio:1.6; margin-top:24px; }
 .chv-layers-stack .lst-stack { transform:none!important; top:0!important; left:0; width:100%!important; }
 .chv-layers-stack .lst-sheet { transform:none!important; display:none; }
 .chv-layers-stack:has(#lst-project-0:checked) .lst-sheet-0,
 .chv-layers-stack:has(#lst-project-1:checked) .lst-sheet-1,
 .chv-layers-stack:has(#lst-project-2:checked) .lst-sheet-2,
 .chv-layers-stack:has(#lst-project-3:checked) .lst-sheet-3,
 .chv-layers-stack:has(#lst-project-4:checked) .lst-sheet-4,
 .chv-layers-stack:has(#lst-project-5:checked) .lst-sheet-5 { display:block; }
 .chv-layers-stack .lst-sheet::after,.chv-layers-stack .lst-axis { display:none; }
}
@media(max-width:1199px) and (min-width:760px) {
 .chv-layers-stack .lst-wrap { width:calc(100% - 64px); padding-top:42px; }
 .chv-layers-stack .lst-masthead { gap:38px; }
 .chv-layers-stack h1 { font-size:5.25vw; }
 .chv-layers-stack .lst-figure { max-width:780px; }
 .chv-layers-stack .lst-stage { height:550px; }
 .chv-layers-stack .lst-stack { top:125px; }
}
@media(max-width:999px) {
 .chv-layers-stack .lst-masthead { grid-template-columns:1fr 1fr; gap:28px; }
 .chv-layers-stack .lst-lede { font-size:16px; }
 .chv-layers-stack .lst-actions { gap:8px 16px; margin-top:18px; }
 .chv-layers-stack .lst-founder { margin-top:12px; }
 .chv-layers-stack .lst-work { margin-top:32px; }
 .chv-layers-stack .lst-figure { max-width:620px; }
 .chv-layers-stack .lst-stage { height:520px; }
 .chv-layers-stack .lst-stack { width:100%; top:150px; transform:rotateX(49deg) rotateZ(-16deg) scale(.78); }
 .chv-layers-stack .lst-sheet { transform:translateZ(calc(var(--depth) * 39px)); }
}
@media(max-width:759px) {
 html[data-chv="layers-stack"] .site-menu { background:#f1eee7; border-color:#6d756f; box-shadow:0 12px 25px #18231f18; }
 html[data-chv="layers-stack"] .header-inner { height:auto; min-height:80px; }
 html[data-chv="layers-stack"] .nav-list li + li { border-top:1px solid #18231f26; }
 .chv-layers-stack .lst-wrap { width:calc(100% - 40px); padding-top:30px; padding-bottom:30px; }
 .chv-layers-stack .lst-masthead { display:block; }
 .chv-layers-stack .lst-eyebrow { margin-bottom:19px; }
 .chv-layers-stack h1 { font-size:clamp(38px,11.6vw,76px); }
 .chv-layers-stack .lst-intro { margin-top:25px; }
 .chv-layers-stack .lst-lede { max-width:34em; font-size:17px; }
 .chv-layers-stack .lst-actions { gap:10px 21px; margin-top:24px; }
 .chv-layers-stack .lst-primary { padding-inline:18px; }
 .chv-layers-stack .lst-founder { margin-top:21px; }
 .chv-layers-stack .lst-work { display:block; margin-top:30px; }
       .chv-layers-stack .lst-figure { width:100%; }
 .chv-layers-stack .lst-stage { height:330px; }
 .chv-layers-stack .lst-stack { width:95%; top:133px; left:1%; transform:rotateX(49deg) rotateZ(-16deg) scale(.81); }
 .chv-layers-stack .lst-sheet { transform:translateZ(calc(var(--depth) * 29px)); }
 .chv-layers-stack .lst-axis { bottom:7px; right:0; }
 .chv-layers-stack .lst-caption { flex-wrap:wrap; gap:0 16px; padding-top:10px; }
 }
@media(max-width:359px) {
 .chv-layers-stack .lst-wrap { width:calc(100% - 32px); }
 .chv-layers-stack h1 { font-size:10.9vw; }
 .chv-layers-stack .lst-lede { font-size:16px; }
 .chv-layers-stack .lst-actions { gap:8px 18px; }
 .chv-layers-stack :is(.lst-primary,.lst-secondary) { font-size:14px; }
  .chv-layers-stack .lst-stage { height:305px; }
 .chv-layers-stack .lst-stack { top:130px; }
 .chv-layers-stack .lst-sheet { transform:translateZ(calc(var(--depth) * 27px)); }
}

/* Warm the six compositing layers only while the drawing is playing in view. */
.chv-layers-stack[data-lst-running] .lst-sheet { will-change:transform,opacity; }
.chv-layers-stack[data-lst-enhanced] .lst-sheet { transition:none; }

.chv-layers-stack .lst-preview-note { color:var(--lst-muted);white-space:nowrap; }

/* Compact desktop stack; tablet and phone geometry stays unchanged. */
@media (min-width:1000px) {
 .chv-layers-stack .lst-figure { max-width:720px; }
 .chv-layers-stack .lst-stage { height:430px; }
 .chv-layers-stack .lst-stack { top:80px; }
 .chv-layers-stack .lst-sheet { transform:translateZ(calc(var(--depth) * 36px)); }
}
