/* Shared visual direction with Angry Anubis; scoped to the personal homepage. */
.personal-site { --paper:#f5f3ee; --ink:#24241f; --muted:#66655d; --line:#d8d5cc; --gold:#987331; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; line-height:1.7; -webkit-font-smoothing:antialiased; }
.personal-site.motion-ready::before { display:none; }
.personal-site .site-nav { position:fixed; inset:0 0 auto; z-index:50; display:flex; justify-content:space-between; min-height:100px; padding:20px 48px; background:rgba(245,243,238,.94); border:0; backdrop-filter:blur(18px); opacity:0; pointer-events:none; transform:translateY(-100%); transition:opacity 220ms ease,transform 320ms cubic-bezier(.22,1,.36,1); }
.personal-site.homepage-nav-visible .site-nav { opacity:1; pointer-events:auto; transform:translateY(0); }
.personal-site .wordmark { font-family:"Space Grotesk","Arial Narrow",Arial,sans-serif; font-size:clamp(22px,3vw,42px); font-weight:800; letter-spacing:-.06em; line-height:.9; text-transform:none; }
.personal-site .wordmark span { font-size:9px; font-weight:400; letter-spacing:.04em; margin-top:7px; text-transform:none; }
.personal-site .nav-links { font-size:12px; text-transform:none; color:var(--ink); gap:24px; }
.personal-site h1,.personal-site h2,.personal-site h3 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.04em; line-height:1.1; }
.personal-site h2 { font-size:clamp(34px,4.1vw,62px); max-width:920px; }
.personal-site h3 { font-size:clamp(23px,2.5vw,34px); }
.personal-site .eyebrow { color:var(--muted); font-size:10px; font-weight:400; letter-spacing:.14em; }
.personal-site .section { padding:85px 48px; }
.personal-site a:focus-visible,.personal-site button:focus-visible,.personal-site video:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.personal-site .personal-skip { position:fixed; top:8px; left:8px; padding:12px; background:var(--paper); z-index:100; transform:translateY(-200%); }
.personal-site .personal-skip:focus { transform:none; }
.personal-site .film-opening { position:relative; isolation:isolate; width:100%; height:100svh; min-height:470px; margin:0; overflow:hidden; background:#34342f; color:white; }
.personal-site .film-opening video,.personal-site .film-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:57% center; }
.personal-site .film-opening video { z-index:-2; }
.personal-site .film-shade { z-index:-1; background:linear-gradient(180deg,#0005,transparent 35%,#0001 45%,#000a); }
.personal-site .film-kicker { position:absolute; top:30px; left:30px; margin:0; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.personal-site .film-bottom { position:absolute; inset:auto 40px 36px; display:flex; justify-content:space-between; align-items:end; gap:24px; }
.personal-site .film-opening h1 { max-width:650px; font-size:clamp(28px,3vw,42px); line-height:1.1; }
.personal-site .film-actions { display:flex; flex-direction:column; gap:17px; align-items:end; }
.personal-site .film-actions a { border-bottom:1px solid #fff9; padding-block:8px; font-size:12px; }
.personal-site .video-toggle { color:white; background:transparent; border:1px solid #fff8; border-radius:0; padding:10px 14px; font-size:10px; min-height:38px; cursor:pointer; }
.personal-site .video-toggle:hover { background:#fff2; }
.personal-site .film-credit { display:flex; justify-content:space-between; gap:20px; margin:0 48px; padding-block:20px; color:var(--muted); font-size:10px; }
.personal-site .personal-intro { display:grid; grid-template-columns:1.5fr .65fr; align-items:center; gap:10vw; border-top:0; padding-block:110px; }
.personal-site .personal-intro p:not(.eyebrow) { color:var(--muted); max-width:590px; font-size:16px; margin-top:24px; }
.personal-site .personal-intro p a { color:var(--ink); border-bottom:1px solid var(--line); }
.personal-site .personal-intro img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }
.personal-site .button { font-size:12px; font-weight:400; text-transform:none; border-radius:0; min-height:44px; padding:11px 17px; }
.personal-site .button.secondary { border:0; border-bottom:1px solid var(--line); padding-inline:0; }
.personal-site .repertoire { padding:0 48px 65px; gap:28px; }
.personal-site .rep-card { min-height:0; padding:22px 0; background:transparent; border:0; border-top:1px solid var(--line); box-shadow:none; transform:none; }
.personal-site .rep-card .eyebrow { margin-top:0; }
.personal-site .rep-card h3 { font-size:25px; }
.personal-site .rep-card p { font-size:13px; }
.personal-site .rep-card a { display:inline-block; margin-top:12px; padding-block:8px; border-bottom:1px solid var(--line); font-size:12px; }
.personal-site .photography-header { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:28px; }
.personal-site .photography-header h2 { max-width:700px; }
.personal-site .photography-header>a { flex-shrink:0; }
.personal-site #portraits .photo-flow { display:block; columns:4; column-gap:8px; margin-top:0; }
.personal-site #portraits .frame { display:block; width:100%; height:auto; aspect-ratio:auto; break-inside:avoid; margin:0 0 8px; }
.personal-site #portraits .frame img { width:100%; height:auto; aspect-ratio:auto; }
.personal-site .photo-flow { gap:12px; }
.personal-site .frame { margin:0; border:0; box-shadow:none; transform:none; }
.personal-site .frame img,.personal-site .frame:hover img { transform:none; }
.personal-site .reveal { opacity:1; transform:none; transition:none; }
.personal-site .project-copy { top:35px; }
.personal-site .project-copy h2 { font-size:clamp(32px,3.6vw,54px); }
.personal-site .project-copy p:not(.eyebrow) { font-size:15px; }
.personal-site .meta li { background:transparent; border:0; padding:0 12px 0 0; font-weight:400; font-size:10px; }
.personal-site .personal-film { margin:45px 0 60px; scroll-margin-top:24px; }
.personal-site .personal-film video { display:block; width:100%; height:auto; aspect-ratio:16/9; background:var(--ink); }
.personal-site .personal-film figcaption { display:flex; justify-content:space-between; gap:20px; padding-top:15px; font-size:11px; color:var(--muted); }
.personal-site .video-project h2 { font-size:27px; line-height:1.2; }
.personal-site .video-frame { border:0; }
.personal-site .archive,.personal-site .booking { background:var(--paper); }
.personal-site .archive-item { box-shadow:none; transform:none; margin:0; min-height:0; }
.personal-site .archive-item.visual img { object-fit:contain; }
.personal-site .booking-shell { gap:8vw; }
.personal-site .booking-shell>div>p:not(.eyebrow) { color:var(--muted); font-size:15px; max-width:520px; }
.personal-site .booking-panel { padding:0; background:transparent; border:0; box-shadow:none; transform:none; }
.personal-site .booking-panel label { font-weight:400; font-size:11px; text-transform:none; }
.personal-site .booking-panel input,.personal-site .booking-panel select,.personal-site .booking-panel textarea { border-radius:0; background:#fff5; }
.personal-site .footer { grid-template-columns:1fr auto auto; padding:30px 48px; font-size:11px; }
.personal-site .family-links { display:flex; gap:26px; }
@media(max-width:960px) {
 .personal-site .site-nav { flex-wrap:wrap; gap:22px; padding:22px 24px; }
 .personal-site .section { padding:65px 24px; }
 .personal-site .film-credit { margin-inline:24px; }
 .personal-site .repertoire { padding-inline:24px; }
 .personal-site .personal-intro { grid-template-columns:1.4fr .7fr; gap:40px; }
 .personal-site .footer { padding-inline:24px; grid-template-columns:1fr auto; }
 .personal-site .footer>a { grid-column:1/-1; }
}
@media(max-width:640px) {
 .personal-site .site-nav { min-height:112px; padding:18px; gap:16px; }
 .personal-site .wordmark { font-size:26px; }
 .personal-site .nav-links { width:100%; justify-content:space-between; gap:10px; font-size:10px; }
 .personal-site .film-opening { width:100%; height:100svh; min-height:470px; margin:0; }
 .personal-site .film-kicker { top:20px; left:18px; font-size:8px; }
 .personal-site .film-opening video { object-position:58% center; }
 .personal-site .film-bottom { inset:auto 20px 25px; display:block; }
 .personal-site .film-opening h1 { font-size:28px; }
 .personal-site .film-actions { flex-direction:row; align-items:center; justify-content:space-between; margin-top:28px; gap:15px; }
 .personal-site .film-actions a { font-size:11px; }
 .personal-site .video-toggle { font-size:9px; padding:10px; }
 .personal-site .film-credit { font-size:9px; margin-inline:18px; }
 .personal-site .section { padding:55px 18px; }
 .personal-site .personal-intro { grid-template-columns:1fr; gap:35px; }
 .personal-site .personal-intro img { width:70%; justify-self:end; }
 .personal-site h2 { font-size:36px; }
 .personal-site .repertoire { grid-template-columns:1fr 1fr; padding:0 18px 45px; gap:20px; }
 .personal-site .rep-card h3 { font-size:22px; }
 .personal-site .photo-flow { gap:14px; }
 .personal-site .photography-header { display:block; }
 .personal-site .photography-header>a { margin-top:14px; }
 .personal-site #portraits .photo-flow { columns:2; column-gap:6px; }
 .personal-site #portraits .frame { margin-bottom:6px; }
 .personal-site .personal-film { margin-block:28px 40px; }
 .personal-site .footer { padding:25px 18px; grid-template-columns:1fr; gap:18px; }
}
@media(prefers-reduced-motion:reduce) { .personal-site *, .personal-site *::before, .personal-site *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
