/* Editorial first-screen treatment. The existing content sections stay intact. */
:root { --primary: #a8a2db; --secondary: #7973af; --light: #eeeae4; }
html { background: #131519; scroll-behavior: smooth; }
body { background: #131519; }
[id] { scroll-margin-top: 110px; }
#home, #top { scroll-margin-top: 0; }
.nav-links a[aria-current="location"] { color: #cdc6ed; }
.nav-links a[aria-current="location"]::after { width: 100%; }
.reveal-content { transition: opacity .4s ease-out, transform .4s ease-out; }
.reveal-pending { opacity: 0; transform: translateY(12px); }
.reveal-content:focus-within { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .reveal-pending { opacity: 1; transform: none; }
}
nav { padding: 23px 0; background: linear-gradient(#101114a6, transparent); border-bottom: 1px solid #ffffff12; }
nav .container { width: 100%; max-width: 1440px; padding-inline: 64px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
nav.is-scrolled { padding: 15px 0; background: #101114ed; }
.logo { font-family: Georgia, 'Times New Roman', serif; font-size: 29px; letter-spacing: -1px; font-weight: 400; background: none; -webkit-text-fill-color: currentColor; color: var(--light); }
.logo-dot { color: #b3aacb; }
.nav-links { gap: 32px; }
.nav-links a { font-size: 13px; font-weight: 400; color: #dedbd6; letter-spacing: .06em; }
.nav-links a::after { height: 1px; }
a:focus-visible { outline: 2px solid #cdc6ed; outline-offset: 6px; border-radius: 2px; }
.hero { min-height: 820px; min-height: max(760px, 100svh); padding: 156px 0 140px; isolation: isolate; }
.hero::before { content: none; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, #0b0f1680, transparent 70%), linear-gradient(0deg, #131519, transparent 25%); }
.hero-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% center; z-index: -2; }
.hero > .container { width: 100%; max-width: 1440px; padding-inline: 64px; }
.hero-content { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; }
.hero-portrait { grid-column: 2; grid-row: 1; justify-self: center; margin: 0 42px 0 0; text-align: center; animation: portrait-float 6s ease-in-out infinite; }
.hero-portrait-frame { width: clamp(168px, 17vw, 230px); aspect-ratio: 1; padding: 7px; border: 1px solid #e6e0f14d; border-radius: 50%; background: #171c2980; box-shadow: 0 18px 55px #080d1866, 0 0 35px #b0a6d114; }
.hero-portrait-frame img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.hero-portrait figcaption { margin-top: 20px; font-size: 10px; letter-spacing: .24em; color: #e6e0ea; text-shadow: 0 2px 12px #000; }
.hero-portrait figcaption span { display: block; margin-top: 7px; font-size: 10px; letter-spacing: .1em; color: #bdc0ce; }
.hero-text { grid-column: 1; grid-row: 1; }
@keyframes portrait-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.hero-text { max-width: 700px; min-width: 0; animation: editorial-reveal 900ms ease-out both; }
.hero-text .hero-eyebrow { font-size: 10px; font-weight: 500; letter-spacing: .25em; color: #c1c3cf; margin: 0 0 26px; }
.hero-text h1 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(80px, 9vw, 140px); font-weight: 400; line-height: .95; letter-spacing: -.065em; background: none; -webkit-text-fill-color: currentColor; color: #f0ece6; margin: 0 0 36px; }
.hero-text h1 span { color: #a8a0bc; }
.hero-text h2 { color: #eeeae4; font-size: clamp(25px, 2.7vw, 38px); font-weight: 400; letter-spacing: .08em; line-height: 1.7; margin-bottom: 22px; }
.hero-text .hero-description { font-size: 13px; line-height: 2; color: #b8bcc5; letter-spacing: .08em; margin: 0 0 38px; }
.hero-actions { display: flex; gap: 28px; flex-wrap: wrap; }
.hero-link { min-width: 178px; display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; padding: 14px 0; color: #eeeae4; text-decoration: none; border-bottom: 1px solid #ffffff50; font-size: 13px; letter-spacing: .08em; transition: color .2s, border-color .2s; }
.hero-link span { font-size: 20px; transition: transform .2s; }
.hero-link:hover { color: #c9c1ed; border-color: #c9c1ed; }
.hero-link:hover span { transform: translate(2px, -2px); }
.hero > .hero-footnote { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hero-scroll { display: inline-flex; align-items: center; gap: 12px; color: #b9bac2; font-size: 11px; letter-spacing: .12em; text-decoration: none; }
.hero-scroll span { font-size: 20px; }
.hero-image-note { color: #9a9da9; font-size: 10px; letter-spacing: .12em; }
.hero-image-note span { margin-inline: 12px; color: #636977; }
.photography-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 15px; background: radial-gradient(ellipse at top right, #3f4355, #181a21 75%); }
.photography-placeholder span { font-family: Georgia, serif; letter-spacing: .15em; color: #d2cdda; }
.photography-placeholder small { color: #aaa6b7; letter-spacing: .08em; }
#photography { scroll-margin-top: 110px; }
@keyframes editorial-reveal { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) {
    .hero-content { gap: 24px; }
    .hero-portrait { margin-right: 0; }
    nav .container, .hero > .container { padding-inline: 32px; }
    .nav-links { gap: 22px; }
    .hero::after { background: linear-gradient(90deg, #0b0f16b3, #0b0f1620), linear-gradient(0deg, #131519, transparent 30%); }
    .hero-text { text-align: left; }
    .hero-text p { margin-left: 0; margin-right: 0; }
}
@media (max-width: 600px) {
    .hero-content { grid-template-columns: 1fr; gap: 28px; }
    .hero-portrait { grid-column: 1; grid-row: 1; justify-self: start; display: flex; align-items: center; gap: 18px; margin: 0; text-align: left; }
    .hero-portrait-frame { width: 88px; padding: 4px; }
    .hero-portrait figcaption { margin-top: 0; }
    .hero-text { grid-column: 1; grid-row: 2; }
    nav, nav.is-scrolled { padding: 16px 0 12px; }
    nav .container { padding-inline: 22px; flex-wrap: wrap; gap: 10px; }
    .logo { font-size: 25px; }
    .nav-links { display: flex; width: 100%; justify-content: space-between; gap: 12px; }
    .nav-links a { font-size: 12px; padding-block: 8px; }
    .hero { min-height: max(860px, 100svh); padding-top: 160px; padding-bottom: 110px; }
    .hero > .container { padding-inline: 24px; }
    .hero-backdrop { object-position: 70% center; }
    .hero::after { background: linear-gradient(90deg, #0b0f16bd, #0b0f1660), linear-gradient(0deg, #131519, transparent 35%); }
    .hero-text .hero-eyebrow { font-size: 9px; letter-spacing: .16em; margin-bottom: 30px; }
    .hero-text h1 { font-size: clamp(74px, 19vw, 110px); margin-bottom: 28px; }
    .hero-text h2 { font-size: clamp(23px, 5.8vw, 30px); letter-spacing: .03em; }
    .hero-text .hero-description { font-size: 12px; letter-spacing: .02em; }
    .hero-actions { gap: 20px; }
    .hero-link { min-width: 0; flex: 1; gap: 8px; font-size: 12px; letter-spacing: 0; }
    .hero > .hero-footnote { bottom: 24px; gap: 16px; }
    .hero-image-note { font-size: 9px; letter-spacing: 0; }
    .hero-image-note span { margin-inline: 4px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
