@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
:root{color-scheme:dark;--bg:#111814;--surface:#19221d;--surface2:#202b24;--text:#f2f0e8;--muted:#adb6aa;--line:#354238;--accent:#d9bf83;--serif:"Source Serif 4",Georgia,serif;font-family:Arial,Helvetica,sans-serif;font-size:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}button,a{font:inherit}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{cursor:pointer}img{display:block;max-width:100%}.view[hidden]{display:none!important}.shell{max-width:1500px;margin:auto;padding-inline:clamp(22px,5vw,90px)}.skip{position:absolute;left:20px;top:-100px;z-index:100;padding:12px;background:#fff;color:#111}.skip:focus{top:12px}
.site-header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,90px);background:var(--bg);border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:baseline;gap:9px;white-space:nowrap}.brand-name{font-family:var(--serif);font-size:1.65rem;letter-spacing:.01em;font-kerning:normal;font-variant-ligatures:none}.brand-by{font-size:.7rem;letter-spacing:.24em;color:var(--accent);font-weight:700}.site-header nav{display:flex;gap:clamp(16px,2.3vw,38px);align-items:center}.site-header nav a{font-size:.88rem;letter-spacing:.04em;color:#d6dcd1}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--accent)}.menu-toggle{display:none;background:none;color:var(--text);border:1px solid var(--line);padding:8px 14px}
.hero-image{height:min(58vw,640px);min-height:360px;background:#283529;overflow:hidden}.hero-image img{height:100%;width:100%;object-fit:cover;object-position:center 52%}.hero-caption{display:flex;justify-content:space-between;gap:18px;padding-block:16px;border-bottom:1px solid var(--line);font-size:.72rem;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}.hero-intro{display:grid;grid-template-columns:1fr .75fr;gap:8vw;align-items:end;padding-top:clamp(65px,8vw,130px);padding-bottom:clamp(80px,10vw,150px)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin:0 0 20px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:.01em;word-spacing:normal;font-kerning:normal;font-variant-ligatures:none;line-height:1.08}h1{font-size:clamp(3.8rem,8vw,8.5rem);margin:0}h2{font-size:clamp(2.6rem,4.4vw,5.3rem);margin-bottom:20px}.hero-intro p:not(.eyebrow){font-size:clamp(1.08rem,1.5vw,1.35rem);line-height:1.7;color:#d2d8ce;max-width:580px}.text-link{display:inline-flex;gap:12px;align-items:center;border-bottom:1px solid var(--accent);padding:0 0 8px;color:var(--text);font-size:.95rem}.text-link span{color:var(--accent)}
.featured{padding-bottom:clamp(80px,10vw,160px)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:38px}.section-head h2{margin:0}.featured-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px}.featured-grid .card-large{grid-row:span 2}.photo-card{display:block;position:relative;width:100%;border:0;padding:0;background:var(--surface2);color:var(--text);text-align:left;overflow:hidden;min-height:270px;aspect-ratio:1.4}.photo-card.card-large{height:100%;aspect-ratio:auto}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.photo-card:hover img{transform:scale(1.035)}.photo-card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.photo-caption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:end;gap:12px;padding:40px 19px 17px;background:linear-gradient(transparent,rgba(0,0,0,.76));font-size:.95rem;line-height:1.2}.photo-caption span:last-child{font-size:1.2rem}
.home-band{background:#1b261f;border-block:1px solid var(--line)}.band-inner{display:grid;grid-template-columns:.9fr 1fr;gap:10vw;padding-block:clamp(70px,8vw,130px)}.category-links a{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #536052;padding:18px 0;font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.4rem)}.category-links a:first-child{border-top:1px solid #536052}.category-links span{font:1.1rem Arial;color:var(--accent)}.home-ending{text-align:center;padding-block:clamp(90px,11vw,170px)}.home-ending p:not(.eyebrow){color:var(--muted);max-width:510px;margin:0 auto 30px;font-size:1.12rem}.link-row{display:flex;justify-content:center;gap:25px;flex-wrap:wrap}
.inner-view{padding-top:clamp(70px,8vw,130px);padding-bottom:clamp(100px,12vw,190px);min-height:70vh}.inner-view h1{margin-bottom:28px}.lead{font-size:clamp(1.12rem,1.65vw,1.45rem);max-width:700px;color:#c5d0c3;line-height:1.6;margin-bottom:60px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filters button{background:none;border:1px solid var(--line);color:#c6cec2;padding:9px 17px;border-radius:30px;font-size:.88rem}.filters button:hover,.filters button.active{background:var(--accent);border-color:var(--accent);color:#172019}.count{color:var(--muted);font-size:.8rem;letter-spacing:.08em;margin:0 0 23px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.portfolio-grid .photo-card{aspect-ratio:1.27;min-height:0}.prints-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.prints-grid .photo-card{aspect-ratio:1.55}.print-note{border-top:1px solid var(--line);margin-top:48px;padding-top:26px;color:var(--muted)}.print-note a{color:var(--accent);text-decoration:underline}
.note-article{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(30px,7vw,110px);padding:35px 0 100px;border-top:1px solid var(--line)}.note-article.reverse{grid-template-columns:.9fr 1.1fr}.note-article.reverse .note-image{order:2}.note-image{height:clamp(290px,37vw,520px);overflow:hidden;background:var(--surface)}.note-image img{width:100%;height:100%;object-fit:cover}.note-copy h2{font-size:clamp(2.7rem,4vw,4.7rem)}.note-copy p:not(.eyebrow){color:#ced5ca;font-size:1.1rem;line-height:1.8}
.patreon-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:0;padding-bottom:150px}.patreon-panel #patreon-image{min-height:510px;background:var(--surface)}.patreon-panel img{width:100%;height:100%;object-fit:cover}.patreon-copy{background:var(--surface);padding:clamp(35px,6vw,90px);display:flex;flex-direction:column;justify-content:center}.patreon-copy h2{font-size:clamp(2.7rem,4vw,5rem)}.patreon-copy p:not(.eyebrow){font-size:1.1rem;color:#c9d1c6}.button-link{background:var(--accent);color:#111814;padding:14px 23px;align-self:flex-start;margin:20px 0 18px;font-weight:700}.button-link:hover{background:#eed49a;color:#111814}.patreon-copy small{color:var(--muted);font-size:.8rem}
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,9vw,140px);align-items:start}.about-layout p{font-size:1.12rem;color:#cbd2c7;line-height:1.85;max-width:600px}.about-layout .about-lead{font-size:clamp(1.4rem,2.2vw,2rem);font-family:var(--serif);line-height:1.5;color:var(--text)}.about-image{height:600px;overflow:hidden;background:var(--surface)}.about-image img{width:100%;height:100%;object-fit:cover}
.site-footer{border-top:1px solid var(--line);background:#0d130f}.footer-inner{padding-block:55px;display:grid;grid-template-columns:1fr auto;gap:28px}.footer-brand{font:1.5rem var(--serif)}.footer-brand em{font-size:1rem}.footer-inner p,.footer-inner small{color:var(--muted);font-size:.82rem}.footer-inner div:nth-child(2){display:flex;gap:25px;font-size:.88rem}.footer-inner small{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px}
dialog{border:1px solid var(--line);padding:0;max-width:min(1080px,94vw);max-height:94vh;width:100%;background:var(--bg);color:var(--text);box-shadow:0 20px 90px #0009}dialog::backdrop{background:#020704df}.dialog-close{position:absolute;right:12px;top:12px;background:#0b100ce0;color:white;border:1px solid #fff7;width:44px;height:44px;font-size:1.8rem;line-height:1;z-index:2}.dialog-image-wrap{height:min(68vh,690px);display:flex;align-items:center;justify-content:center;background:#080c09}.dialog-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}.dialog-meta{display:flex;justify-content:space-between;gap:20px;padding:25px 35px}.dialog-meta h2{font-size:2.1rem;margin:0 0 7px}.dialog-meta .eyebrow{margin-bottom:6px}.dialog-meta p:not(.eyebrow),.dialog-meta>span{font-size:.87rem;color:var(--muted);margin:0}.dialog-meta>span{white-space:nowrap}
@media(max-width:900px){.site-header{height:72px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:25px;flex-direction:column;align-items:flex-start;gap:18px}.site-header nav.open{display:flex}.hero-intro{grid-template-columns:1fr;gap:28px}.featured-grid{grid-template-columns:1fr 1fr}.featured-grid .card-large{grid-row:auto;grid-column:span 2;aspect-ratio:1.6}.band-inner{grid-template-columns:1fr;gap:20px}.portfolio-grid{grid-template-columns:repeat(2,1fr)}.note-article,.note-article.reverse{grid-template-columns:1fr;gap:30px}.note-article.reverse .note-image{order:0}.patreon-panel{grid-template-columns:1fr}.patreon-panel #patreon-image{height:420px;min-height:0}.about-layout{gap:40px}.about-image{height:480px}}
@media(max-width:600px){.brand-name{font-size:1.42rem}.brand-by{font-size:.6rem}.hero-image{min-height:280px;height:55vh;max-height:470px}.hero-caption{font-size:.62rem}.hero-caption span:last-child{display:none}.hero-intro{padding-top:68px;padding-bottom:85px}h1{font-size:clamp(2.7rem,12vw,4.5rem)}.featured-grid,.portfolio-grid,.prints-grid{grid-template-columns:1fr}.featured-grid .card-large{grid-column:auto;aspect-ratio:1.4}.photo-card{min-height:240px}.section-head{align-items:start;flex-direction:column}.section-head .text-link{margin-top:4px}.inner-view{padding-top:70px}.filters{gap:7px}.filters button{padding:8px 12px;font-size:.8rem}.note-image{height:300px}.patreon-panel #patreon-image{height:310px}.patreon-copy{padding:35px 24px}.about-layout{grid-template-columns:1fr}.about-image{height:340px}.footer-inner{grid-template-columns:1fr}.footer-inner div:nth-child(2){flex-wrap:wrap}.dialog-image-wrap{height:60vh}.dialog-meta{padding:20px;display:block}.dialog-meta>span{display:block;margin-top:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo-card img{transition:none}}

/* Keep the approved hero's coastal context and vertical photographs intact. */
.hero-image{height:auto;min-height:0;aspect-ratio:16/9;max-width:1500px;margin-inline:auto}
.hero-image img{object-position:center 65%}
.featured-grid .photo-card.card-large img{object-fit:contain}
.portfolio-grid .photo-card{aspect-ratio:var(--photo-ratio,1.27)}
.category-links a{justify-content:flex-start;gap:20px}
.category-links a>span{margin-left:auto}
.category-links img.category-preview{width:82px;height:60px;object-fit:cover;flex-shrink:0}
.prints-grid .photo-card{aspect-ratio:var(--photo-ratio,1.55)}
.prints-grid .photo-card img{object-fit:contain}
@media(max-width:600px){.hero-image{height:auto;min-height:0;max-height:none;aspect-ratio:3/2}.category-links img.category-preview{width:68px;height:51px}}
.landscape-feature[hidden]{display:none!important}
.landscape-feature{margin-bottom:60px}
.landscape-banner .photo-card{min-height:0;aspect-ratio:var(--photo-ratio,3.33);margin-bottom:30px}
.night-sky-feature{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:center}
.night-sky-feature .photo-card{min-height:0;aspect-ratio:var(--photo-ratio,1.5)}
.night-sky-feature .photo-card img{object-fit:contain}
.about-image:has(img[alt^="Portrait view"]){height:auto;aspect-ratio:6184/10195}
.about-image:has(img[alt^="Portrait view"]) img{object-fit:contain}
@media(max-width:600px){.night-sky-feature{grid-template-columns:1fr}.landscape-banner .photo-caption{font-size:.8rem;padding:22px 12px 12px}}

/* V6 family QA: allow editorial copy to wrap and retain the swan's full frame. */
.note-article{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.note-article.reverse{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.note-copy{min-width:0;overflow-wrap:break-word}
.note-copy h2{max-width:100%}
.note-article.family-note .note-image{height:auto;aspect-ratio:3/2}
.note-article.family-note .note-image img{height:auto;object-fit:contain}
@media(max-width:900px){.note-article,.note-article.reverse{grid-template-columns:minmax(0,1fr)}}

/* Pack mixed portrait/landscape photographs without shared row-height gaps. */
.portfolio-grid{grid-auto-rows:1px;column-gap:16px;row-gap:0;align-items:start}
.portfolio-grid .photo-card{height:auto;align-self:start;aspect-ratio:var(--photo-ratio,1.5)}
.portfolio-grid .photo-card img{object-fit:contain}
/* Explicit wildlife identification without changing the packed gallery. */
.dialog-meta #dialog-species{color:var(--text);margin:0 0 9px;line-height:1.5;overflow-wrap:anywhere}

.dialog-image-wrap{position:relative;touch-action:pan-y pinch-zoom}
.dialog-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:52px;border:1px solid #fff7;border-radius:3px;background:#0b100ce0;color:white;font-size:2.4rem;line-height:1;display:grid;place-items:center;z-index:1}
.dialog-arrow[hidden]{display:none}
.dialog-prev{left:12px}.dialog-next{right:12px}
.dialog-arrow:hover{background:#233326}.dialog-arrow:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.dialog-position{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:5px 12px;border-radius:20px;background:#0b100ce0;color:white;font-size:.875rem;font-variant-numeric:tabular-nums;pointer-events:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Navigation sits below the photograph at every screen width. */
.dialog-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;min-height:64px;background:var(--surface2);border-top:1px solid var(--line)}
.dialog-navigation .dialog-arrow{position:static;transform:none;width:44px;height:44px;flex-shrink:0;font-size:2rem}
.dialog-navigation .dialog-position{position:static;transform:none;background:none;padding:0;font-size:.875rem}

.footer-inner .photography-statement{grid-column:1/-1;max-width:72ch;margin:0;font-size:.875rem;line-height:1.7}

/* Featured images share an edge-to-edge frame, including the nest family. */
.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.featured-grid .photo-card{min-height:0;aspect-ratio:var(--photo-ratio,3/2);background:transparent}
.featured-grid .photo-card img{object-fit:cover}
.hero-image{position:relative}
.hero-image .hero-photo{position:absolute;inset:0;opacity:0;transition:opacity 2s ease;object-position:center center}
.hero-image .hero-photo.is-current{opacity:1}
.hero-pause{position:absolute;z-index:2;right:16px;bottom:16px;border:1px solid #fff8;border-radius:3px;background:#0b100cd9;color:#fff;padding:9px 13px;font-size:.875rem;min-height:44px}
.hero-pause:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.featured-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.hero-image .hero-photo{transition:none}}

/* Use the same readable serif treatment wherever editorial type appears. */
.category-links a,.about-layout .about-lead,.footer-brand{letter-spacing:.01em;font-kerning:normal;font-variant-ligatures:none}
