/* Wildflower Photography — Immersive Atelier v1
   Progressive enhancement: the original photographs, gallery groups and form remain unchanged. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root {--wf-ink:#272820;--wf-midnight:#171b1a;--wf-cream:#f7f4ed;--wf-paper:#fcfaf6;--wf-sand:#ece4d9;--wf-sage:#81897c;--wf-gold:#bca282;--wf-pale-gold:#d7c6a9;--wf-line:rgba(95,85,66,.16);--wf-serif:'Cormorant Garamond', 'Playfair Display', Georgia,serif;--wf-ease:cubic-bezier(.23,1,.32,1);}
html {scroll-behavior:smooth;scroll-padding-top:112px;}
body {background:var(--wf-paper)!important;color:var(--wf-ink)!important;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
body,button,input,select,textarea {font-family:'DM Sans',sans-serif;}
::selection {background:#b3a08b;color:#fff;}
button {font:inherit;}
.reading-progress {position:fixed;top:0;left:0;right:auto;width:0;height:2px;background:linear-gradient(90deg,#a68b65,#e9d5b0);z-index:9999;pointer-events:none;}
.page-grain {position:fixed;z-index:120;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.63' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");background-size:170px;}
/* Floating navigation, maintaining original link order and route targets */
.site-nav {position:fixed!important;top:18px!important;left:50%!important;right:auto!important;width:min(1200px,calc(100% - 38px))!important;transform:translateX(-50%)!important;display:flex!important;align-items:center!important;gap:24px!important;padding:13px 16px 13px 27px!important;background:rgba(248,246,241,.88)!important;border:1px solid rgba(255,255,255,.78)!important;border-radius:999px!important;box-shadow:0 12px 55px rgba(25,26,20,.1)!important;backdrop-filter:blur(26px) saturate(1.2)!important;-webkit-backdrop-filter:blur(26px) saturate(1.2)!important;z-index:1000!important;}
.site-nav .logo,.site-nav .nav-logo {font-family:var(--wf-serif)!important;font-size:clamp(1.12rem,1.4vw,1.36rem)!important;font-weight:500!important;letter-spacing:-.025em!important;line-height:1!important;white-space:nowrap;}
.site-nav .nav-links {margin-left:auto;gap:clamp(10px,2vw,27px)!important;}
.site-nav .nav-links a:not(.button) {font-size:.71rem!important;letter-spacing:.06em;text-transform:uppercase;color:#41453f!important;}
.site-nav .nav-links a:not(.button):hover {color:#a98c69!important;}
.site-nav .button {margin-left:auto;border:1px solid #414238!important;min-height:42px!important;padding:0 23px!important;font-size:.7rem!important;letter-spacing:.09em;text-transform:uppercase;}
.site-nav .nav-links .button {margin-left:0;}
.button {transition:transform .45s var(--wf-ease),background .4s,color .4s,border-color .4s!important;}
.button:focus-visible,a:focus-visible,button:focus-visible {outline:2px solid #b8976b!important;outline-offset:4px;}
.mobile-menu-toggle {display:none;align-items:center;justify-content:center;width:43px;height:43px;border:1px solid #d5cec2;border-radius:50%;background:rgba(255,255,255,.35);color:#252721;cursor:pointer;flex:none;}
.mobile-menu-toggle svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;}
.mobile-menu {position:fixed;z-index:999;top:79px;left:18px;right:18px;padding:16px 20px 23px;background:rgba(248,246,240,.98);border:1px solid #e2dacc;border-radius:22px;box-shadow:0 28px 70px #17201c2b;display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .22s,transform .22s,visibility .22s;}
.mobile-menu.is-open {opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
.mobile-menu a {padding:12px 9px;border-bottom:1px solid rgba(85,83,68,.1);text-transform:uppercase;font-size:.78rem;letter-spacing:.11em;}
.mobile-menu a:last-child {border-bottom:0;color:#9b7953;}
/* Giant photo-first cinematic entry */
.hero,.page-hero {isolation:isolate;overflow:hidden;position:relative;min-height:max(740px,100svh)!important;background-color:#5c5f57!important;}
.hero {display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important;padding:155px max(7vw,28px) 108px!important;}
.hero::before,.page-hero::before {content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(95deg,rgba(11,17,16,.69) 0%,rgba(17,22,18,.43) 45%,rgba(17,20,16,.04) 100%),linear-gradient(0deg,rgba(18,21,17,.37),transparent 32%);pointer-events:none;}
.hero-inner {position:relative;z-index:4;margin:0!important;max-width:min(690px,70vw)!important;transform:translateZ(0);}
.hero .kicker,.page-hero .eyebrow {color:#e9d5b4!important;font-weight:600!important;font-size:.69rem!important;letter-spacing:.3em!important;text-transform:uppercase;}
.hero h1,.page-hero h1 {font-family:var(--wf-serif)!important;letter-spacing:-.055em!important;font-weight:400!important;line-height:.87!important;text-wrap:balance;}
.hero h1 {font-size:clamp(5rem,10.5vw,11rem)!important;margin:25px 0 30px!important;text-shadow:0 15px 50px rgba(0,0,0,.18);}
.hero h1::after {content:'';display:block;margin-top:25px;width:72px;height:1px;background:var(--wf-pale-gold);}
.hero p {margin-left:0!important;font-size:clamp(.91rem,1.3vw,1.06rem)!important;line-height:1.85!important;max-width:440px!important;}
.hero .button {margin-top:7px;min-height:53px!important;border-color:rgba(249,239,222,.75)!important;font-size:.71rem;letter-spacing:.1em;text-transform:uppercase;}
.hero .button:hover {background:#f6e8d5!important;color:#222!important;}
.hero-stage {position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;}
.hero-stage canvas {display:block;position:absolute;width:min(61vw,880px);height:min(94vh,870px);right:-3%;top:3%;opacity:.88;filter:drop-shadow(0 0 26px rgba(220,175,113,.18));}
.hero-light {position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 38% 44% at var(--light-x,76%) var(--light-y,39%),rgba(231,215,183,.16),transparent 87%);mix-blend-mode:screen;}
.hero-orbit-fallback {position:absolute;z-index:2;right:7%;top:23%;width:min(40vw,500px);aspect-ratio:1;transform:rotateX(68deg) rotateY(-23deg);border:1px solid rgba(240,213,176,.52);border-radius:50%;box-shadow:0 0 40px rgba(233,207,168,.12),inset 0 0 40px rgba(255,243,219,.13);}
.hero-orbit-fallback::before,.hero-orbit-fallback::after {content:'';position:absolute;inset:12%;border-radius:50%;border:1px solid rgba(238,217,180,.5);transform:rotateY(66deg) rotateX(25deg);}
.hero-orbit-fallback::after {inset:25%;transform:rotateX(54deg) rotateY(-48deg);}
.hero-stage.webgl-active .hero-orbit-fallback {display:none;}
.hero-edge {position:absolute;bottom:34px;left:7vw;right:7vw;z-index:4;display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid rgba(253,246,232,.29);padding-top:18px;color:rgba(255,255,255,.8);font-size:.61rem;text-transform:uppercase;letter-spacing:.17em;}
.hero-edge a {display:inline-flex;gap:10px;align-items:center;}
.hero-edge .scroll-line {width:38px;height:1px;background:#ddcbb0;display:inline-block;}
/* Page two hero */
.page-hero {display:flex!important;align-items:center!important;min-height:85svh!important;padding:150px 7vw 112px!important;}
.page-hero-content {z-index:4;position:relative;max-width:690px!important;}
.page-hero h1 {font-size:clamp(5.5rem,12vw,11rem)!important;max-width:900px;}
.page-hero p {max-width:490px!important;line-height:1.85!important;font-size:1rem!important;}
.page-hero .hero-stage canvas {width:min(63vw,920px);height:90vh;}
/* Typography and cinematic editorial cadence */
section {position:relative;}
section h2,.gallery-header h2,.service-row h3,.portfolio-card-content h3,.footer-logo,.footer-brand {font-family:var(--wf-serif)!important;letter-spacing:-.035em!important;font-weight:400!important;}
section h2 {font-size:clamp(3.4rem,6.2vw,7rem)!important;line-height:.95!important;}
.label,.gallery-number {font-size:.67rem!important;font-weight:600!important;letter-spacing:.22em!important;text-transform:uppercase;color:#a48968!important;}
.intro {background:linear-gradient(135deg,#f8f5ee 25%,#eee8dd 100%)!important;min-height:550px;overflow:hidden;}
.intro::before {content:'W';position:absolute;font:500 28rem var(--wf-serif);bottom:-170px;right:3%;color:rgba(153,140,118,.075);pointer-events:none;}
.intro h2 {max-width:480px;}
.intro p {line-height:2!important;font-size:1rem!important;}
.portfolio {padding-top:140px!important;padding-bottom:135px!important;background:radial-gradient(ellipse at 82% 2%,#f3eee4,#fbfaf7 42%)!important;}
.portfolio .sectionhead {margin-bottom:64px;}
.portfolio .sectionhead h2 {max-width:860px;}
.portfolio-grid {gap:clamp(14px,1.65vw,28px)!important;perspective:1400px;}
.portfolio-card {min-height:clamp(390px,42vw,650px)!important;background:#ded9cc!important;border-radius:3px;transform-style:preserve-3d;box-shadow:0 20px 45px rgba(42,40,33,.09);transition:box-shadow .45s var(--wf-ease),transform .45s var(--wf-ease);}
.portfolio-card img {object-fit:cover;object-position:center;transform:scale(1.001);transition:transform 1.25s var(--wf-ease)!important;}
.portfolio-card::before {content:'';position:absolute;z-index:2;inset:10px;border:1px solid rgba(255,255,255,.35);pointer-events:none;}
.portfolio-card::after {background:linear-gradient(180deg,rgba(18,22,19,.08),rgba(18,22,19,.04) 40%,rgba(12,18,15,.78) 100%)!important;}
.portfolio-card:hover,.portfolio-card:focus-visible {box-shadow:0 35px 70px rgba(42,40,33,.16);}
.portfolio-card:hover img {transform:scale(1.075)!important;}
.portfolio-card-content {bottom:31px!important;left:31px!important;right:30px!important;transform:translateZ(15px);}
.portfolio-card-content span {font-size:.63rem!important;letter-spacing:.19em!important;color:#e6d4ba;}
.portfolio-card-content h3 {font-size:clamp(1.9rem,2.6vw,3.1rem)!important;line-height:1.02;}
.portfolio-view {font-size:.65rem!important;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.13);backdrop-filter:blur(10px);}
.portfolio-button {margin-top:55px!important;}
.portfolio-button .button {padding:0 34px!important;}
/* Services dark velvet exhibit */
.services {background:linear-gradient(130deg,#19221f,#22241e 65%,#333129)!important;padding-top:130px!important;padding-bottom:135px!important;overflow:hidden;}
.services::before {content:'';position:absolute;right:-15vw;top:-20vw;width:60vw;aspect-ratio:1;border:1px solid rgba(229,206,164,.11);border-radius:50%;box-shadow:0 0 0 70px rgba(213,194,156,.025),0 0 0 140px rgba(213,194,156,.023);pointer-events:none;}
.services h2 {max-width:800px;}
.service-list {position:relative;border:0!important;border-top:1px solid rgba(242,231,217,.23)!important;border-radius:0!important;}
.service-row {border-bottom:1px solid rgba(242,231,217,.2)!important;padding:35px 15px!important;transition:background .3s,padding .3s!important;}
.service-row:hover {padding-left:26px!important;padding-right:10px!important;background:rgba(222,207,185,.045)!important;}
.service-row h3 {font-size:clamp(2.1rem,3vw,3.7rem)!important;line-height:1!important;}
.service-row p {line-height:1.75!important;max-width:570px;}
.service-arrow {font-size:1.35rem;color:#d3b993!important;border-color:rgba(236,217,184,.3)!important;}
/* Portrait: native image ratio preserved, no crops */
.about {padding-top:145px!important;padding-bottom:155px!important;background:#faf8f3!important;}
.about-image-wrap {max-width:600px!important;padding:18px!important;position:relative;border:1px solid rgba(149,131,104,.37)!important;background:#f5f1e8;box-shadow:30px 35px 65px rgba(58,49,36,.11);}
.about-image-wrap::before,.about-image-wrap::after {content:'';position:absolute;border:1px solid rgba(166,145,112,.28);z-index:0;pointer-events:none;}
.about-image-wrap::before {inset:-16px 24px 24px -16px;}
.about-image-wrap::after {inset:24px -16px -16px 24px;}
.about-image-inner {position:relative;z-index:1;}
.about-image-inner img {height:auto!important;max-height:none!important;object-fit:contain!important;}
.about-copy {max-width:650px;}
.about-copy h3 {font-family:var(--wf-serif)!important;font-size:2rem!important;line-height:1.15!important;}
.about-copy p {line-height:1.95!important;}
.about .button {margin-top:27px!important;}
.quote {background:#e8e5db!important;padding:140px 7vw!important;overflow:hidden;}
.quote::before {content:'“';position:absolute;left:50%;top:15%;transform:translateX(-50%);font:400 25rem var(--wf-serif);line-height:1;color:rgba(119,117,97,.09);pointer-events:none;}
.quote blockquote {position:relative;font-family:var(--wf-serif)!important;font-weight:400;font-style:italic;font-size:clamp(2.6rem,4.8vw,5.6rem)!important;line-height:1.16!important;}
/* Contact retains original form endpoint, names and input types */
.contact {padding-top:140px!important;padding-bottom:145px!important;background:#f9f6ef!important;}
.contact-copy h2 {max-width:510px;}
.contact-copy p {line-height:1.85!important;}
.contact-form {position:relative;border:1px solid #dfd6c6!important;box-shadow:0 30px 65px rgba(48,40,29,.09)!important;background:#fffdfa!important;padding:clamp(24px,3.3vw,52px)!important;gap:14px!important;}
.contact-form::before {content:'YOUR STORY BEGINS HERE';display:block;color:#a38a6e;font-size:.62rem;letter-spacing:.2em;margin-bottom:12px;}
.contact-form input,.contact-form select,.contact-form textarea {border:0!important;border-bottom:1px solid #d9d0c2!important;background:#f8f5ef!important;border-radius:0;padding:17px 16px!important;transition:box-shadow .25s,border-color .25s!important;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {outline:2px solid #b8a489;outline-offset:0;}
.contact-form .submit {min-height:56px!important;letter-spacing:.17em!important;font-size:.72rem!important;background:#252a24!important;}
.contact-form .submit:hover {background:#86745a!important;}
footer {background:#18201d!important;color:#ded9ce!important;}
.footer-logo,.footer-brand {font-size:1.6rem!important;color:#fff9e9!important;}
/* Galleries: source order remains identical; no image forced to crop */
.category-nav {position:sticky;top:0;z-index:40;justify-content:center;gap:10px!important;background:rgba(248,246,241,.94)!important;border-bottom:1px solid #e5ddce!important;backdrop-filter:blur(18px);padding:22px 5vw!important;}
.category-nav a {padding:10px 17px!important;border:1px solid #d8cfc0!important;background:transparent;color:#5c6158;font-size:.63rem!important;text-transform:uppercase;letter-spacing:.08em!important;white-space:nowrap;transition:all .28s!important;}
.category-nav a:hover,.category-nav a[aria-current='true'] {background:#252e29!important;color:#f8f3e8!important;border-color:#252e29!important;}
.gallery-section {padding:125px 7vw 130px!important;background:#fbf9f4!important;scroll-margin-top:78px;}
.gallery-section:nth-of-type(even) {background:#f0ede6!important;}
.gallery-section::before {content:'';display:block;width:100%;height:1px;background:linear-gradient(90deg,rgba(159,137,100,.62),rgba(159,137,100,.06));margin-bottom:50px;}
.gallery-header {margin-bottom:48px!important;}
.gallery-header h2 {font-size:clamp(4rem,8vw,9.3rem)!important;}
.gallery-header p {line-height:1.8!important;max-width:440px!important;}
.gallery-number {margin-bottom:16px!important;}
.gallery-grid {display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(12px,1.9vw,28px)!important;align-items:start!important;perspective:1400px;}
.gallery-item {position:relative;overflow:hidden!important;background:#e4ded4!important;box-shadow:0 15px 33px rgba(29,28,23,.07);border:1px solid rgba(132,120,100,.12);cursor:zoom-in;transform-style:preserve-3d;transition:transform .48s var(--wf-ease),box-shadow .48s var(--wf-ease);}
.gallery-item img {display:block!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;transform:scale(1.0001);transition:transform 1s var(--wf-ease)!important;}
.gallery-item::before {content:'';position:absolute;z-index:2;inset:9px;border:1px solid rgba(255,255,255,.42);pointer-events:none;}
.gallery-item::after {content:'VIEW PHOTOGRAPH  +';position:absolute;z-index:3;left:14px;bottom:14px;color:#fff;background:rgba(20,25,22,.64);backdrop-filter:blur(6px);padding:8px 12px;font-size:.57rem;letter-spacing:.14em;opacity:0;transform:translateY(7px);transition:opacity .3s,transform .3s;pointer-events:none;}
.gallery-item:hover {box-shadow:0 28px 50px rgba(29,28,23,.15);}
.gallery-item:hover img {transform:scale(1.035)!important;}
.gallery-item:hover::after,.gallery-item:focus-within::after {opacity:1;transform:translateY(0);}
.gallery-item button.photo-open {position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:transparent;cursor:zoom-in;z-index:4;color:transparent;}
.gallery-item.asset-missing {min-height:290px;cursor:default;}
.gallery-item.asset-missing img {visibility:hidden;}
.gallery-item.asset-missing::after {content:'Original photo not included in upload';opacity:1;transform:none;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#6d645a;background:#e4ded4;text-align:center;padding:32px;font-size:.66rem;line-height:1.8;letter-spacing:.12em;}
.gallery-footer {margin-top:50px!important;}
.gallery-footer .button {min-width:180px;}
/* real full-screen, original file, full image visible */
.photo-lightbox {position:fixed;inset:0;z-index:3000;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;grid-template-rows:72px minmax(0,1fr) 62px;align-items:center;background:rgba(13,17,15,.97);color:#f7f0e3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s,visibility .28s;}
.photo-lightbox.is-open {opacity:1;visibility:visible;pointer-events:auto;}
.lightbox-top {grid-row:1;grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:14px max(20px,4vw);border-bottom:1px solid rgba(240,222,194,.19);}
.lightbox-brand {font-family:var(--wf-serif);font-size:1.6rem;letter-spacing:.01em;}
.lightbox-close,.lightbox-arrow {display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04);color:white;cursor:pointer;transition:background .25s;}
.lightbox-close:hover,.lightbox-arrow:hover {background:rgba(255,255,255,.18);}
.lightbox-arrow {width:44px;height:44px;justify-self:center;}
.lightbox-prev {grid-column:1;grid-row:2;}
.lightbox-next {grid-column:3;grid-row:2;}
.lightbox-image-wrap {grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;padding:15px;}
.lightbox-image {display:block!important;max-width:100%;max-height:100%;width:auto!important;height:auto!important;object-fit:contain!important;box-shadow:0 15px 60px rgba(0,0,0,.3);}
.lightbox-caption {grid-column:1/-1;grid-row:3;display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:#d7c3a6;}
body.lightbox-open {overflow:hidden;}
/* Reveal only when runtime active */
.has-motion .reveal {opacity:0;transform:translate3d(0,44px,0);transition:opacity 1s var(--wf-ease),transform 1s var(--wf-ease);}
.has-motion .reveal.is-visible {opacity:1;transform:translate3d(0,0,0);}
.has-motion .gallery-item.reveal:nth-child(3n+2),.has-motion .portfolio-card.reveal:nth-child(3n+2) {transition-delay:.08s;}
.has-motion .gallery-item.reveal:nth-child(3n+3),.has-motion .portfolio-card.reveal:nth-child(3n+3) {transition-delay:.15s;}
/* Tablet / reduced-motion mobile */
@media (max-width:1000px) {
 .site-nav {gap:12px!important;}
 .site-nav .nav-links {gap:14px!important;}
 .site-nav .nav-links a:not(.button) {font-size:.64rem!important;}
 .hero-stage canvas {right:-23%;width:82vw;opacity:.45;}
 .gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .gallery-section {padding:90px 5vw 100px!important;}
}
@media (max-width:760px) {
 .site-nav {top:10px!important;width:calc(100% - 24px)!important;min-height:61px;padding:8px 10px 8px 17px!important;}
 .site-nav .nav-links {display:none!important;}
 .site-nav .nav-logo,.site-nav .logo {font-size:1.14rem!important;max-width:calc(100% - 112px);overflow:hidden;text-overflow:ellipsis;}
 .site-nav .button {margin-left:auto;padding:0 16px!important;min-height:41px!important;font-size:.63rem!important;}
 .mobile-menu-toggle {display:flex!important;}
 .mobile-menu {top:78px;}
 .hero {min-height:760px!important;min-height:100svh!important;padding:155px 7vw 115px!important;align-items:center!important;}
 .hero-inner {max-width:100%!important;}
 .hero h1 {font-size:clamp(4.9rem,16vw,8rem)!important;}
 .hero p {font-size:.95rem!important;line-height:1.8!important;}
 .hero::before,.page-hero::before {background:linear-gradient(90deg,rgba(12,18,16,.72),rgba(12,18,16,.28)),linear-gradient(0deg,rgba(12,18,16,.32),transparent 35%);}
 .hero-stage canvas {width:115vw;height:60vh;right:-48%;top:9%;opacity:.3;}
 .hero-orbit-fallback {width:90vw;right:-30%;top:13%;opacity:.45;}
 .hero-edge {left:7vw;right:7vw;bottom:29px;letter-spacing:.1em;font-size:.57rem;}
 .hero-edge span:last-child {display:none;}
 .intro {min-height:0;}
 .intro h2,.portfolio h2,.about h2,.contact h2 {font-size:clamp(3.4rem,10vw,5rem)!important;}
 .portfolio {padding:92px 6vw 100px!important;}
 .portfolio-grid {display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px!important;padding:0 5px 28px 0;overscroll-behavior-x:contain;}
 .portfolio-grid::-webkit-scrollbar {display:none;}
 .portfolio-card,.portfolio-card:nth-child(1),.portfolio-card:nth-child(2),.portfolio-card:nth-child(3),.portfolio-card:nth-child(4),.portfolio-card:nth-child(5) {flex:0 0 min(78vw,390px);min-height:500px!important;grid-column:auto!important;scroll-snap-align:start;}
 .portfolio .sectionhead {margin-bottom:36px;}
 .services {padding:100px 6vw!important;}
 .service-row {grid-template-columns:1fr auto!important;gap:8px!important;}
 .service-row p {grid-column:1/-1;margin-top:9px!important;}
 .about {padding:100px 6vw!important;gap:65px!important;}
 .about-image-wrap {max-width:calc(100% - 22px)!important;}
 .quote {padding:110px 7vw!important;}
 .contact {padding:100px 6vw!important;gap:45px!important;}
 .page-hero {min-height:82svh!important;padding:165px 7vw 115px!important;}
 .page-hero h1 {font-size:clamp(5rem,14vw,7.7rem)!important;}
 .category-nav {top:0;overflow-x:auto!important;justify-content:flex-start!important;flex-wrap:nowrap!important;scrollbar-width:none;padding:18px 5vw!important;}
 .category-nav::-webkit-scrollbar {display:none;}
 .gallery-section {padding:85px 5vw 100px!important;}
 .gallery-header {display:block!important;}
 .gallery-header h2 {font-size:clamp(4rem,12vw,7rem)!important;}
 .gallery-grid {gap:14px!important;}
 .photo-lightbox {grid-template-columns:54px 1fr 54px;grid-template-rows:66px 1fr 78px;}
 .lightbox-image-wrap {padding:4px;}
 .lightbox-brand {font-size:1.2rem;}
 .lightbox-arrow {width:38px;height:38px;}
}
@media (max-width:520px) {
 .site-nav .button {display:none!important;}
 .mobile-menu-toggle {margin-left:auto;}
 .hero h1 {font-size:clamp(4.25rem,17.3vw,6.7rem)!important;}
 .hero .kicker {font-size:.61rem!important;}
 .portfolio-card {flex-basis:86vw!important;min-height:460px!important;}
 .service-row h3 {font-size:2.45rem!important;}
 .gallery-grid {grid-template-columns:1fr!important;gap:24px!important;}
 .gallery-section {padding:75px 6vw 95px!important;}
 .gallery-header h2 {font-size:clamp(4.2rem,15vw,6.2rem)!important;}
 .gallery-item {max-width:680px;}
 .gallery-footer {display:flex!important;flex-wrap:wrap;gap:10px;}
 .gallery-footer .button {width:100%!important;}
 .lightbox-arrow {width:34px;height:34px;font-size:.9rem;}
 .photo-lightbox {grid-template-columns:40px minmax(0,1fr) 40px;}
 .lightbox-top {padding:10px 13px;}
 .lightbox-caption {padding:0 10px;font-size:.58rem;}
}
@media (hover:none) { .portfolio-view {opacity:1;transform:translate(-50%,-50%) scale(1);} .gallery-item::after {display:none;} }
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after {animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
 .has-motion .reveal {opacity:1!important;transform:none!important;}
 .hero-stage canvas {opacity:.25!important;}
}

/* Honest missing-asset indicators (never substitute another photographer's image). */
.portfolio-card.asset-missing img {visibility:hidden;}
.portfolio-card.asset-missing::after {content:'Original image required';display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;background:linear-gradient(145deg,#545c55,#252e29)!important;color:#ead8bb;letter-spacing:.17em;font-size:.66rem;text-transform:uppercase;opacity:1;}
.about-image-wrap.asset-missing .about-image-inner {min-height:450px;display:grid;place-items:center;background:#eee5d8;}
.about-image-wrap.asset-missing .about-image-inner::after {content:'Original portrait image required';position:absolute;padding:24px;text-align:center;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#716350;}
/* Keep the gallery jump rail directly beneath the floating nav. */
.category-nav {top:84px;}
@media (max-width:760px) {.category-nav {top:70px;}}
