/* Rustique House — extras on top of the hill-country template: "Up under the roof" A-frame window scene. */
.attic { position: relative; height: 320vh; height: 320svh; background: var(--ink); color: #fff; }
.af-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.af-window { position: absolute; inset: 0; clip-path: polygon(50% 34%, 70% 74%, 30% 74%); will-change: clip-path; }
.af-window img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s var(--ease); }
.af-window img.on { opacity: 1; }
.af-window::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 0% 100%, rgb(0 0 0 / .55), rgb(0 0 0 / 0) 70%), linear-gradient(to top, rgb(0 0 0 / .7), rgb(0 0 0 / 0) 52%); }
.af-frame { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.af-frame polygon { fill: none; stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; }
.af-head { position: absolute; left: 0; right: 0; top: calc(var(--header-h) + 2vh); text-align: center; padding-inline: var(--gutter); transition: opacity .5s var(--ease); }
.af-head .eyebrow { justify-content: center; }
.af-head .section-title { margin-inline: auto; max-width: 16ch; }
.af-head.gone { opacity: 0; }
.af-steps { position: absolute; left: var(--gutter); right: var(--gutter); bottom: clamp(28px, 6vh, 64px); max-width: 520px; }
.af-step { position: absolute; left: 0; bottom: 0; opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); pointer-events: none; }
.af-step.on { opacity: 1; transform: none; pointer-events: auto; }
.af-no { font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); }
.af-step h3 { margin-top: 6px; font-family: var(--font-h); font-size: clamp(30px, 4vw, 48px); line-height: 1.08; font-weight: 400; }
.af-step p { margin-top: 10px; color: rgb(255 255 255 / .82); max-width: 44ch; }
.af-step blockquote { margin: 14px 0 0; font-family: var(--font-h); font-style: italic; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.35; }
.af-step cite { display: block; margin-top: 6px; font: 500 13px var(--font-b); font-style: normal; color: rgb(255 255 255 / .7); }
.af-step .btn { margin-top: 18px; }
.af-step { text-shadow: 0 1px 12px rgb(0 0 0 / .45); }
@media (max-width: 767px) { .af-steps { bottom: 104px; } }
@media (prefers-reduced-motion: reduce) { .af-window img, .af-step, .af-head { transition: none; } }
