:root{--paper:#f7f6f2;--surface:#fffefb;--ink:#25242b;--muted:#73717a;--line:#e1dfe5;--accent:#7952a5;--accent-soft:#eee7f5;--font-heading:'Playfair Display',Georgia,serif;--font-body:'Lato',Arial,sans-serif;--serif:var(--font-heading);--sans:var(--font-body);color-scheme:light}
:root[data-theme=dark]{--paper:#151914;--surface:#1c211a;--ink:#e6e8df;--muted:#a2a899;--line:#343b2e;--accent:#bbce91;--accent-soft:#2b3523;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:60px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}svg,img{display:block}img{max-width:100%}[hidden]:not([hidden="until-found"]){display:none!important}::selection{background:var(--accent);color:var(--paper)}.skip-link{position:fixed;z-index:250;left:20px;top:-90px;padding:12px 20px;background:var(--surface);color:var(--ink)}.skip-link:focus{top:12px}
/* Base six-blade iris geometry; handwriting and timing live in intro.css. */
.intro{display:none;position:fixed;inset:0;z-index:200;overflow:hidden;pointer-events:none;color:#fff;--opening-duration:3.86s}.intro-enabled .intro{display:block}.intro-enabled body{overflow:hidden}.intro-curtain,.intro-glow,.intro-aperture{position:absolute;inset:0}.intro-curtain{background:#000;animation:iris-curtain var(--opening-duration) cubic-bezier(.87,0,.13,1) both}.intro-glow{background:radial-gradient(circle at 50% 50%,rgba(201,165,88,.5),rgba(201,165,88,.12) 28%,transparent 60%);animation:iris-glow var(--opening-duration) ease-out both}.intro-aperture{display:flex;align-items:center;justify-content:center}.intro-blades{width:110vw;height:110vw;max-width:none;flex:none;transform-origin:center;animation:iris-blades var(--opening-duration) cubic-bezier(.87,0,.13,1) both}.intro-name{position:absolute;left:0;right:0;bottom:16%;text-align:center;animation:iris-name var(--opening-duration) ease-out both}.intro-name>span{font-family:var(--font-heading);font-size:32px;font-weight:700;letter-spacing:.14em}.intro-name p{font-size:24px;font-weight:500;letter-spacing:.5em;padding-left:.5em;margin-top:12px}.intro-skip{position:absolute;top:22px;right:30px;padding:8px 12px;pointer-events:auto;font-size:16px}.intro-skip span{margin-left:12px}
@keyframes iris-curtain{0%,55%{opacity:1}85%,100%{opacity:0}}
@keyframes iris-blades{0%,18%{transform:scale(.34) rotate(0);opacity:1}62%{transform:scale(1.7) rotate(14deg);opacity:1}100%{transform:scale(10) rotate(30deg);opacity:0}}
@keyframes iris-glow{0%,35%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
@keyframes iris-name{0%,14%{opacity:0;transform:translateY(14px)}30%,72%{opacity:1;transform:translateY(0)}92%{opacity:0;transform:translateY(-8px)}100%{opacity:0}}
/* Photographs retain their complete original aspect ratios. */
.gallery-hero{background:#101310;color:#f2f2ed;min-height:100svh;display:flex;flex-direction:column;overflow:hidden}.gallery-header{height:76px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:24px}.wordmark{display:flex;align-items:baseline;gap:16px;font-size:25px;font-weight:700}.wordmark span{font-size:19px;font-weight:400;letter-spacing:.08em;color:#d1d2c9}.gallery-header-actions{display:flex;align-items:center;gap:24px}.profile-link{font-size:16px}.profile-link span{margin-left:10px}.theme-toggle{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;flex:none;transition:background .2s}.theme-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}.theme-toggle:hover{background:var(--accent-soft)}.gallery-header .theme-toggle:hover{background:#30382b}.gallery-wall{display:flex;flex-direction:column;position:relative;gap:10px;width:100%;margin:auto 0}.gallery-lane{height:max(130px,calc((100svh - 160px)/3));overflow:hidden}.gallery-track{display:flex;width:max-content;height:100%;gap:0;animation:drift var(--duration,230s) linear infinite;will-change:transform}.gallery-lane:nth-child(2) .gallery-track{animation-direction:reverse}.gallery-sequence{display:flex;gap:10px;padding-right:10px;height:100%;flex-shrink:0}.gallery-photo{height:100%;width:auto;position:relative;flex:none;padding:0;display:block;background:#242b20}.gallery-photo img{height:100%;width:auto;max-width:none;object-fit:contain}.gallery-photo:focus-visible{outline-color:#cbe5a4;outline-offset:-3px}.gallery-wall.is-paused .gallery-track,.gallery-wall:focus-within .gallery-track{animation-play-state:paused}.gallery-status{position:absolute;inset:0;display:flex;gap:20px;align-items:center;justify-content:center;background:#101310;color:#d1d5c9;font-size:16px;padding:24px;text-align:center}.gallery-status button{padding:8px 16px;border:1px solid #667659;border-radius:5px}.noscript-note{padding:24px;text-align:center}.gallery-footer{height:64px;display:flex;align-items:center;justify-content:space-between;flex:none;padding:0 32px}.control-row{display:flex;align-items:center;gap:28px}.control-row button{display:flex;align-items:center;gap:9px;font-size:16px;padding:10px 0;color:#d9dfcf}.pause-symbol{font-size:20px}.scroll-cue{width:44px;height:44px;display:grid;place-items:center;font-size:29px;color:#d9dfcf;transition:transform .3s}.scroll-cue:hover{transform:translateY(4px)}@keyframes drift{to{transform:translateX(-50%)}}
.photo-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px 30px;border:0;background:#0c0f0bf5;color:#ecede5;backdrop-filter:blur(18px)}.photo-viewer::backdrop{background:#0c0f0bed}.photo-viewer[open]{display:flex;flex-direction:column}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;height:40px;flex-shrink:0;font-size:16px}.viewer-toolbar button{font-size:16px}.viewer-toolbar button span{margin-left:12px;font-size:28px;vertical-align:middle}.viewer-frame{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px 40px}.viewer-frame img{height:100%;width:100%;object-fit:contain}.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;flex-shrink:0}.viewer-bottom button{height:44px;width:44px;border:1px solid #45503a;border-radius:50%;font-size:24px}.viewer-bottom p{font-size:16px;color:#c0c7b8}
@media(max-width:620px){.gallery-header{height:72px;padding:0 18px;gap:14px}.wordmark{font-size:22px;gap:9px}.wordmark span{font-size:16px}.gallery-header-actions{gap:10px}.profile-link{font-size:16px}.profile-link span{display:none}.gallery-lane{height:max(130px,calc((100svh - 152px)/3))}.gallery-wall{gap:8px}.gallery-sequence{gap:8px;padding-right:8px}.gallery-footer{height:64px;padding:0 20px}.control-row{gap:24px}.intro-skip{top:14px;right:12px}.intro-name>span{font-size:28px}.intro-name p{font-size:24px}.viewer-frame{padding:14px 0}.photo-viewer{padding:15px}.viewer-bottom p{font-size:16px}.viewer-bottom{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro{display:none!important}.gallery-lane{overflow-x:auto;scrollbar-width:thin}.gallery-track{animation:none!important;will-change:auto}.gallery-sequence[aria-hidden=true]{display:none}}
/* The gallery recedes as the profile enters; controls stay crisp. */
@media (prefers-reduced-motion: no-preference) {
  .gallery-wall { transform: translateY(calc(var(--departure, 0) * 80px)) scale(calc(1 - var(--departure, 0) * .045)); filter: blur(calc(var(--departure, 0) * 8px)); opacity: calc(1 - var(--departure, 0) * .38); transform-origin: center top; }
}

/* Comfortable touch controls and safe areas for the full-photo viewer. */
.site-logo { display: block; flex: none; width: 42px; height: 42px; object-fit: contain; border-radius: 10px; }
.wordmark { align-items: center; gap: 12px; min-width: 0; }
.wordmark .wordmark-name { display: flex; align-items: baseline; gap: 14px; font-size: inherit; font-weight: inherit; letter-spacing: 0; color: inherit; white-space: nowrap; }
.nav-brand .site-logo { width: 32px; height: 32px; border-radius: 8px; }
@media (max-width: 620px) {
  .wordmark { gap: 10px; }
  .wordmark .site-logo { width: 34px; height: 34px; border-radius: 8px; }
  .wordmark .wordmark-name { flex-direction: column; align-items: flex-start; gap: 3px; line-height: 1.1; }
  .wordmark-name > span { font-size: 15px; }
}
.photo-viewer { padding: max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); }
.viewer-toolbar button { min-width: 44px; min-height: 44px; }
@media (max-width: 900px) {
  html { scroll-padding-top: 64px; }
  .photo-viewer { padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
  .viewer-frame { padding: 8px 0; }
  .viewer-bottom p { font-size: 16px; overflow-wrap: anywhere; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .viewer-toolbar { height: 44px; }
  .viewer-bottom { min-height: 44px; }
  .viewer-frame { padding: 0; }
}
