@font-face{font-family:YellowtailSans;src:url('./fonts/sans.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:YellowtailSerif;src:url('./fonts/serif.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
:root{--paper:#fff;--ink:#293331;--soft:#616b68;--line:#e5e8e4;--yellow:#e4bc4e;--wash:#f4f5f2;--sans:YellowtailSans,Arial,sans-serif;--serif:YellowtailSerif,Georgia,serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}body.viewer-open{overflow:hidden}::selection{background:var(--yellow);color:var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #8a762d;outline-offset:5px}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.skip-link{position:absolute;top:-100px;left:20px;z-index:5;padding:10px 18px;background:var(--ink);color:var(--paper)}.skip-link:focus{top:10px}.site-header,main,.site-footer{width:min(1120px,calc(100% - 100px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:15px 0;border-bottom:1px solid var(--line)}.logo-link{display:block;width:125px;flex-shrink:0}.logo-link img{display:block;width:100%;height:auto}.portfolio-nav{display:flex;align-items:center;gap:34px}.portfolio-nav a{position:relative;padding-block:8px;font-size:13px}.portfolio-nav a::after{position:absolute;content:'';height:2px;width:100%;left:0;bottom:3px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}.portfolio-nav a:hover::after,.portfolio-nav a[aria-current=page]::after{transform:scaleX(1)}.portfolio-nav a[aria-current=page]{font-weight:500}.introduction{text-align:center;padding:31px 0 28px}.introduction h1{font-family:var(--serif);font-size:clamp(30px,3.5vw,43px);font-weight:400;line-height:1.18;letter-spacing:-.025em;margin:0;text-wrap:balance}.introduction p{margin:12px 0 0;font-size:13px;color:var(--soft)}.main-photo{display:block;position:relative;width:100%;padding:0;border:0;background:var(--paper);overflow:hidden}.main-photo img{display:block;width:100%;height:auto;max-height:730px;object-fit:contain}.home-page .main-photo{max-width:940px;margin-inline:auto}.main-photo::after{content:'View larger';position:absolute;right:18px;bottom:18px;background:var(--paper);padding:7px 12px;font-size:11px;opacity:0;transition:opacity .2s var(--ease)}.main-photo:hover::after,.main-photo:focus-visible::after{opacity:1}.photo-rail{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:16px;color:var(--soft);font-size:11px}.photo-context{display:flex;align-items:center;gap:18px}.photo-actions{display:flex;align-items:center;gap:9px}.icon-control{display:grid;place-items:center;border:0;background:transparent;width:38px;height:38px;border-radius:50%}.icon-control:hover{background:var(--wash)}.text-control{border:0;background:transparent;padding:6px 8px;font-size:11px;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}.text-control:hover{text-decoration-color:var(--yellow)}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:14px;margin-bottom:40px}.photo-tile{display:block;aspect-ratio:4/3;padding:0;border:0;background:var(--wash);overflow:hidden}.photo-tile img{display:block;width:100%;height:100%;object-fit:contain}.photo-tile[aria-pressed=true]{outline:2px solid var(--yellow);outline-offset:3px}.gallery-links{padding:70px 0 76px}.section-heading{text-align:center;margin-bottom:30px}.section-heading h2{font-family:var(--serif);font-weight:400;font-size:31px;line-height:1.25;margin:0}.section-heading p{margin:10px 0 0;color:var(--soft);font-size:13px}.portfolio-covers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.cover-image{overflow:hidden;background:var(--wash);aspect-ratio:4/3}.cover-image img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .3s var(--ease)}.portfolio-cover:hover img{filter:brightness(1.06)}.cover-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}.cover-label h3{font-family:var(--serif);font-size:22px;font-weight:400;margin:0}.cover-label span{font-size:11px;color:var(--soft)}.site-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);padding:26px 0 35px;font-size:11px;color:var(--soft)}body:not(.home-page) .site-footer{margin-top:42px}dialog{inset:0;border:0;padding:24px 32px;background:var(--paper);color:var(--ink);width:calc(100% - 40px);max-width:1450px;max-height:calc(100dvh - 40px);overflow:auto}dialog::backdrop{background:rgba(22,30,25,.75)}dialog[open]{animation:viewer-in .25s var(--ease)}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px}.viewer-stage{display:flex;align-items:center;justify-content:center;gap:16px;min-height:140px}.viewer-stage img{display:block;width:auto;height:auto;max-width:calc(100% - 112px);max-height:calc(100dvh - 190px);object-fit:contain}.home-page .viewer-stage img{max-width:100%}.viewer-caption{display:flex;justify-content:space-between;gap:16px;margin-top:16px;font-size:11px;color:var(--soft)}@keyframes viewer-in{from{opacity:.7;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.site-header,main,.site-footer{width:calc(100% - 48px)}.portfolio-nav{gap:25px}.logo-link{width:110px}.introduction{padding-block:28px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-covers{gap:22px;grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-links{padding-block:50px}.cover-label h3{font-size:20px}.cover-label span{display:none}}
@media(max-width:520px){.site-header,main,.site-footer{width:calc(100% - 36px)}.site-header{flex-direction:column;gap:8px;padding-block:12px 16px}.logo-link{width:110px}.portfolio-nav{gap:18px;justify-content:center;flex-wrap:wrap}.portfolio-nav a{font-size:12px}.introduction{padding-block:26px 23px}.introduction h1{font-size:31px}.introduction p{font-size:12px}.photo-rail{align-items:flex-start;padding-top:12px}.photo-context{flex-direction:column;gap:2px;align-items:flex-start}.photo-actions{gap:1px}.photo-actions .icon-control{width:40px;height:44px}.text-control{margin-top:3px;padding:6px}.photo-grid{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.main-photo::after{display:none}.gallery-links{padding-block:44px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:26px}.section-heading p{font-size:12px}.portfolio-covers{grid-template-columns:1fr;gap:30px}.cover-label span{display:block}.cover-label h3{font-size:22px}.site-footer{gap:14px;font-size:11px}.site-footer a:nth-child(2){display:none}dialog{width:100%;max-height:100dvh;padding:16px 10px}.viewer-stage{gap:5px}.viewer-stage img{max-width:calc(100% - 90px);max-height:calc(100dvh - 160px)}.viewer-stage .icon-control{width:40px;height:44px}.keyboard-hint{display:none}}
@media(pointer:coarse){.icon-control{min-width:44px;min-height:44px}.text-control{min-height:44px}.portfolio-nav a{padding-block:9px}.main-photo::after{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.about-page .introduction{padding-top:48px}.about-introduction{max-width:640px;margin:0 auto;padding:4px 0 76px;font-size:17px;line-height:1.85}.about-introduction p{margin:0 0 24px}.about-hello{font-family:var(--serif);font-size:27px;line-height:1.4}.about-gallery-link{display:inline-block;font-size:13px;margin-top:12px;border-bottom:1px solid var(--yellow);padding-bottom:4px}.about-page .site-footer{margin-top:0}.portfolio-nav{flex-wrap:wrap;justify-content:flex-end;column-gap:26px;row-gap:4px}@media(max-width:520px){.portfolio-nav{justify-content:center;column-gap:18px}.about-page .introduction{padding-top:32px}.about-introduction{font-size:16px;padding-bottom:48px}.about-hello{font-size:24px}}
