.hero-without-portrait { grid-template-columns: 1fr; }
.motion-ready .hero [data-reveal]:not(.is-visible) { opacity: 1; transform: none; }
.hero-portrait .portrait-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: 18px; scrollbar-width: thin; scrollbar-color: var(--purple) transparent; overscroll-behavior-x: contain; }
.hero-portrait .portrait-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: center; scroll-snap-stop: always; border-radius: 0; }
.portrait-slide.focus-top > img { object-position: center top; }
.portrait-slide.focus-bottom > img { object-position: center bottom; }
.portrait-slide.focus-left > img { object-position: left center; }
.portrait-slide.focus-right > img { object-position: right center; }
.portrait-controls { display: flex; justify-content: center; align-items: center; gap: 22px; padding-top: 14px; }
.portrait-controls[hidden] { display: none; }
.portrait-controls button { width: 44px; height: 44px; border-radius: 50%; color: var(--text); border: 1px solid var(--line-bright); background: var(--surface); cursor: pointer; }
.portrait-controls button:hover { border-color: var(--purple-light); }
.portrait-controls span { min-width: 44px; text-align: center; font-size: 12px; color: var(--muted); }
.portrait-track:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
@media (min-width: 1121px) {
    .hero > .hero-portrait { width: 78%; max-width: 390px; justify-self: center; }
}
.contact-channels { display: grid; gap: 14px; margin-top: 28px; overflow-wrap: anywhere; }
.contact-channels a { color: var(--purple-light); text-decoration: underline; text-underline-offset: 4px; }
.contact-form-hidden { grid-template-columns: 1fr; }
.social-links { flex-wrap: wrap; gap: 12px 24px; }
.social-links a { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; min-height: 40px; overflow-wrap: anywhere; }
.social-links a span { flex-shrink: 0; }
.page-prose { white-space: pre-line; }
.cookie-preferences-button { color: inherit; border: 0; background: none; text-align: left; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cookie-preferences-button[hidden] { display: none; }
.about-section:not(:has(.about-photo)) { grid-template-columns: 1fr; }
.story-grid:not(:has(.about-photo)), .brand-story:not(:has(.brand-story-logo)) { grid-template-columns: 1fr; }
@media (max-width: 700px) { .portrait-controls { gap: 18px; } }
