@font-face { font-family: Chivo; src: url('assets/fonts/Chivo-Full-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
:root { color-scheme: light; --cream: #fff5df; --paper: #eee5d5; --sky-blue: #9bc0e7; --truck-red: #d7494a; --brown: #492d26; --rust: #713d2f; --gutter: clamp(24px, 3.5vw, 72px); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--brown); font-family: Chivo, sans-serif; -webkit-font-smoothing: antialiased; }
body, h1, h2, p, figure { margin: 0; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 7px; }
::selection { background: var(--rust); color: var(--cream); }
.hero { position: relative; isolation: isolate; min-height: 560px; height: calc(100svh - 36px - clamp(44px, 5.55vw, 80px) * .65); overflow: hidden; background: var(--rust); color: var(--cream); }
.photograph { position: absolute; inset: 0; overflow: hidden; --portrait-position-x: .48; --portrait-position-y: .38; }
.portrait-surface { position: absolute; inset: 0; }
.portrait-surface img, .portrait-surface canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.portrait-surface img { object-fit: cover; object-position: 48% 38%; }
.portrait-surface.is-positioned img { object-fit: fill; }
.photograph.is-still canvas { visibility: hidden; }
.hero::before { content: ''; position: absolute; inset: 0 0 auto; height: 130px; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgb(24 20 17 / .5), transparent); }
.hero::after { content: ''; position: absolute; inset: 45% 0 0; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, transparent 0%, rgb(39 23 16 / .08) 35%, rgb(39 23 16 / .58) 100%); }
.masthead { position: absolute; top: clamp(24px, 3vw, 48px); right: var(--gutter); max-width: calc(100% - var(--gutter) * 2); z-index: 3; }
.masthead nav { display: flex; gap: 18px; padding: 6px; border-radius: 999px; background: rgb(255 245 223 / .96); color: var(--brown); font-size: 15px; line-height: 1.3; box-shadow: 0 4px 20px rgb(73 45 38 / .08); }
.masthead a { position: relative; display: flex; align-items: center; justify-content: center; min-height: 40px; padding-inline: 16px; border-radius: 999px; transition: background .18s ease; }
.masthead a:hover { background: rgb(155 192 231 / .3); }
.masthead a:focus-visible { outline-offset: 0; }
.masthead a + a::before { content: ''; position: absolute; left: -9.5px; top: calc(50% - 6px); height: 12px; width: 1px; background: rgb(73 45 38 / .22); pointer-events: none; }
.masthead a[href="#contact"] { background: var(--action-red); color: var(--cream); }
.masthead a[href="#contact"]:hover { background: var(--action-red-hover); }
.identity { position: absolute; z-index: 2; left: var(--gutter); right: var(--gutter); bottom: clamp(30px, 4vw, 64px); pointer-events: none; }
.identity h1 { position: relative; isolation: isolate; width: max-content; max-width: 100%; padding: .055em .09em .095em; font-family: Chivo, sans-serif; color: var(--paper); font-size: 8.1vw; font-weight: 400; line-height: 1.05; letter-spacing: -.045em; white-space: nowrap; text-shadow: 0 0 24px rgb(155 192 231 / .14); }
.identity h1 span { position: relative; z-index: 1; }
.name-mesh { position: absolute; left: -.28em; top: -.32em; width: calc(100% + .56em); height: calc(100% + .52em); transform: translate(.18em, .08em); pointer-events: none; }
.role { display: flex; align-items: baseline; gap: 0; margin-top: clamp(18px, 2.1vw, 36px); font-size: clamp(14px, 1.15vw, 20px); font-weight: 400; line-height: 1.5; }
.role-separator { margin: 0 15px; opacity: .65; }
@media (max-width: 600px) {
  .hero { min-height: 540px; height: calc(100svh - 32px - clamp(24px, 7.1vw, 48px) * .7); }
  .photograph { --portrait-position-x: .48; --portrait-position-y: .36; }
  .portrait-surface img { object-position: 48% 36%; }
  .masthead nav { font-size: 13px; gap: 10px; padding: 4px; }
  .masthead a { padding-inline: 6px; }
  .masthead a + a::before { left: -5.5px; }
  .identity { bottom: 30px; }
  .identity h1 { font-size: 18vw; line-height: 1.05; letter-spacing: -.045em; white-space: normal; }
  .identity h1 span { display: block; }
  .role { display: block; margin-top: 22px; font-size: 13px; line-height: 1.65; }
  .role > span:not(.role-separator) { display: block; }
  .role-separator { display: none; }
  .hero::after { inset-block-start: 46%; background: linear-gradient(to bottom, transparent, rgb(39 23 16 / .7)); }
}
@media (max-height: 600px) and (min-width: 601px) {
  .hero { min-height: 420px; }
  .identity h1 { font-size: min(8.1vw, 110px); }
  .identity { bottom: 24px; }
  .role { margin-top: 14px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
