/* Wildflower Photography — Future Edition V4
   Immersive photography, not ornamental rings. Photography files unchanged. */
:root{--v4-ink:#10221d;--v4-gold:#d4c2a2;--v4-green:#1c352b;--v4-ease:cubic-bezier(.2,.8,.2,1)}
body{overflow-x:clip}
/* Eliminate ALL legacy orb/lens pseudo elements, including the old V2 CSS layer. */
body .hero,body .page-hero{position:relative;isolation:isolate;overflow:hidden;background:#0b1514!important;background-image:linear-gradient(125deg,#111e1b,#152a22 50%,#0b1415)!important;}
body .hero::after,body .page-hero::after{content:none!important;display:none!important;animation:none!important}
body .hero::before,body .page-hero::before{content:""!important;display:block!important;position:absolute;inset:0;z-index:3!important;pointer-events:none;background:linear-gradient(90deg,rgba(5,15,14,.85) 0%,rgba(7,21,17,.63) 25%,rgba(8,21,17,.17) 52%,rgba(6,15,14,.06) 80%),linear-gradient(0deg,rgba(6,17,14,.7),transparent 25%)!important}
body .hero{min-height:max(790px,100svh)!important;display:flex!important;align-items:center!important;padding:150px 6.4vw 105px!important}
body .page-hero{min-height:max(695px,88svh)!important;display:flex!important;align-items:center!important;padding:148px 6.4vw 105px!important}
body .hero-inner,body .page-hero-content{position:relative!important;z-index:7!important;width:100%;max-width:min(540px,42vw)!important;margin:0!important;transform:none!important;pointer-events:none}
body .hero-inner *,body .page-hero-content *{pointer-events:auto}
body .hero h1{font-size:clamp(4.1rem,8.2vw,9.4rem)!important;line-height:.9!important;letter-spacing:-.068em!important;margin-top:10px!important}
body .page-hero h1{font-size:clamp(4.6rem,8.7vw,9.1rem)!important;line-height:.9!important;letter-spacing:-.068em!important}
body .hero .kicker,body .page-hero .eyebrow{color:#e7d3b2!important}
body .hero p,body .page-hero p{max-width:440px!important;color:rgba(239,239,229,.82)!important}
body .hero-actions{position:relative;z-index:9;margin-top:27px!important}
body .hero-actions .button{color:#1d3229!important;background:#efe7d8!important;border-color:#efe7d8!important}
body .hero-actions .button:hover{color:#fff!important}
.hero-edge{z-index:7!important}
/* Sweeping shader (WebGL); CSS fallback is visible if WebGL is unsupported. */
.v4-photo-universe{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.v4-flow,.v4-flow-fallback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.v4-flow{display:block;z-index:1;opacity:.9;mix-blend-mode:screen}
.v4-flow-fallback{z-index:0;background-image:radial-gradient(ellipse 42% 52% at 65% 50%,rgba(76,132,103,.28),transparent 78%),repeating-linear-gradient(0deg,transparent 0 78px,rgba(197,224,191,.053) 79px 80px),repeating-linear-gradient(90deg,transparent 0 88px,rgba(180,223,194,.052) 89px 90px);transform:perspective(850px) rotateX(9deg) scale(1.14);opacity:.6}
.v4-sphere{position:absolute;top:51%;left:64%;width:min(77vw,1050px);height:min(82vh,780px);transform:translate(-50%,-50%);perspective:1300px;transform-style:preserve-3d;pointer-events:none;z-index:2}
/* Each tile is an authentic original image, proportionate, without forced cropping. */
.v4-photo-tile{position:absolute;left:50%;top:50%;width:clamp(89px,11vw,173px);aspect-ratio:var(--photo-ratio,3/4);max-height:270px;display:block;overflow:visible;transform-style:preserve-3d;backface-visibility:hidden;padding:3px;background:rgba(247,242,226,.11);border:1px solid rgba(233,226,198,.5);border-radius:5px;box-shadow:0 23px 48px rgba(0,0,0,.4),0 5px 12px rgba(0,0,0,.24);pointer-events:auto;outline-offset:7px;will-change:transform,opacity;transition:box-shadow .28s,border-color .28s;z-index:2;opacity:0}
.v4-photo-tile img{display:block!important;width:100%!important;height:100%!important;max-height:270px!important;object-fit:contain!important;object-position:center!important;border-radius:2px;filter:none!important;transform:none!important}
.v4-tile-tag{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);white-space:nowrap;font-size:.59rem;letter-spacing:.18em;text-transform:uppercase;color:#f3f1e4;text-shadow:0 2px 12px rgba(0,0,0,.85);font-weight:650}
.v4-photo-tile:hover,.v4-photo-tile:focus-visible{border-color:#f4e5c4;box-shadow:0 32px 75px rgba(0,0,0,.55),0 0 0 2px rgba(247,227,180,.13)}
.v4-scene-hint{position:absolute;z-index:4;right:4%;bottom:91px;font-size:.55rem;letter-spacing:.22em;color:rgba(241,240,227,.67)}
/* Initial static graceful fallback if JS is disabled */
.v4-sphere:not(.v4-ready) .v4-photo-tile{opacity:0;pointer-events:none}
.v4-sphere:not(.v4-ready) .v4-photo-tile:nth-child(1){opacity:1;pointer-events:auto;left:57%;top:20%;transform:translate(-50%,-50%) rotate(-7deg);width:165px}
.v4-sphere:not(.v4-ready) .v4-photo-tile:nth-child(2){opacity:1;pointer-events:auto;left:78%;top:31%;transform:translate(-50%,-50%) rotate(7deg);width:148px}
.v4-sphere:not(.v4-ready) .v4-photo-tile:nth-child(3){opacity:1;pointer-events:auto;left:40%;top:43%;transform:translate(-50%,-50%) rotate(10deg);width:158px}
.v4-sphere:not(.v4-ready) .v4-photo-tile:nth-child(4){opacity:1;pointer-events:auto;left:64%;top:67%;transform:translate(-50%,-50%) rotate(-6deg);width:143px}
.v4-sphere:not(.v4-ready) .v4-photo-tile:nth-child(5){opacity:1;pointer-events:auto;left:23%;top:77%;transform:translate(-50%,-50%) rotate(-10deg);width:100px}
/* Accessible, permanently usable seven-category menu in the hero. */
.v4-story-nav{display:flex;flex-wrap:wrap;gap:6px;max-width:530px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(235,232,215,.2)}
.v4-story-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:6px 10px;border:1px solid rgba(220,231,220,.31);border-radius:999px;color:rgba(244,241,232,.84);background:rgba(17,34,28,.28);backdrop-filter:blur(10px);font-size:.57rem;font-weight:600;letter-spacing:.06em;text-decoration:none;transition:background .28s,border-color .28s,transform .28s}
.v4-story-nav a:hover,.v4-story-nav a:focus-visible{color:#182c23;background:#f3e8d3;border-color:#f3e8d3;transform:translateY(-2px)}
.v4-story-nav a:focus-visible{outline:2px solid #f3d6ad;outline-offset:3px}
/* Gallery: no opaque editorial strips, no thick inset frames or green slabs. */
.gallery-item.v4-ambient-card,.gallery-item.v4-ambient-card:nth-child(n){position:relative!important;display:block!important;overflow:hidden!important;isolation:isolate;min-width:0;background:#667c72!important;border:1px solid rgba(71,100,78,.16)!important;border-radius:6px!important;box-shadow:0 14px 31px rgba(30,50,36,.09)!important;transition:transform .45s var(--future-ease),box-shadow .4s,border-color .3s!important}
.gallery-item.v4-ambient-card::before{content:""!important;display:block!important;position:absolute!important;inset:-42px!important;z-index:-1!important;border:0!important;border-radius:0!important;pointer-events:none;background-image:var(--v4-image)!important;background-size:cover!important;background-position:center!important;filter:blur(31px) saturate(.68) brightness(.68);opacity:.92}
.gallery-item.v4-ambient-card::after{content:""!important;display:block!important;position:absolute!important;inset:0!important;left:0!important;top:0!important;bottom:0!important;right:0!important;border:0!important;border-radius:0!important;padding:0!important;z-index:1!important;pointer-events:none;background:linear-gradient(180deg,rgba(3,16,11,.07),transparent 45%,rgba(4,15,12,.47))!important;opacity:1!important;transform:none!important;backdrop-filter:none!important}
.v4-photo-surface{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}
.gallery-item.v4-ambient-card .v4-photo-surface img{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-width:100%!important;object-fit:contain!important;object-position:center!important;aspect-ratio:auto!important;transform:none!important;filter:drop-shadow(0 10px 20px rgba(0,0,0,.12))!important;transition:filter .35s!important}
.gallery-item.v4-ambient-card:hover .v4-photo-surface img{transform:none!important;filter:drop-shadow(0 12px 23px rgba(0,0,0,.2)) brightness(1.04)!important}
.gallery-item.v4-ambient-card:hover{border-color:rgba(237,229,204,.7)!important;box-shadow:0 26px 50px rgba(19,35,25,.21)!important}
.v4-photo-details{position:absolute;z-index:3;left:15px;bottom:15px;max-width:calc(100% - 90px);display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:rgba(18,34,28,.5);border:1px solid rgba(255,255,255,.17);border-radius:7px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);pointer-events:none;color:#f8f4e8;box-shadow:0 6px 24px rgba(0,0,0,.08)}
.v4-photo-count{font-size:.53rem;letter-spacing:.18em;font-weight:700;color:#eee3c9}
.v4-photo-title{font-family:var(--wf-serif,Georgia,serif);font-size:clamp(.95rem,1.25vw,1.4rem);line-height:1.15;font-weight:400;letter-spacing:-.025em}
.v4-photo-arrow{position:absolute;z-index:3;right:15px;bottom:19px;display:grid;place-items:center;width:39px;height:39px;color:#19372a;background:rgba(248,246,238,.88);border-radius:50%;font-size:1.25rem;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.17);transition:transform .25s,background .25s}
.gallery-item.v4-ambient-card:hover .v4-photo-arrow,.gallery-item.v4-ambient-card:focus-within .v4-photo-arrow{transform:translate(2px,-2px);background:#fff4df}
.gallery-item.v4-ambient-card button.photo-open:focus-visible{outline:3px solid #ecd6b3;outline-offset:-5px}
body.cinema-mode .gallery-item.v4-ambient-card{background:#22352d!important;border-color:rgba(226,232,206,.19)!important}
body.cinema-mode .gallery-item.v4-ambient-card::before{filter:blur(31px) saturate(.54) brightness(.53)}
/* Maintain original responsive grid spans and outer card heights from future.css. */
@media(min-width:761px){.gallery-item.v4-ambient-card,.gallery-item.v4-ambient-card:nth-child(n){height:clamp(335px,36vw,550px)!important}}
@media(max-width:1120px){body .hero-inner,body .page-hero-content{max-width:min(515px,48vw)!important}.v4-sphere{left:65%;width:87vw}}
@media(max-width:760px){
 body .hero,body .page-hero{min-height:900px!important;min-height:max(870px,100svh)!important;padding:115px 6vw 65px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:flex-start!important}
 body .page-hero{min-height:840px!important;min-height:max(835px,100svh)!important}
 body .hero-inner,body .page-hero-content{max-width:100%!important;width:100%;z-index:7!important}
 body .hero h1{font-size:clamp(3.6rem,12.8vw,6.4rem)!important;max-width:100%!important;margin:11px 0 20px!important}
 body .page-hero h1{font-size:clamp(3.9rem,13.2vw,6.5rem)!important;max-width:100%!important}
 body .hero p,body .page-hero p{font-size:.85rem!important;line-height:1.6!important;max-width:390px!important}
 .v4-photo-universe{z-index:1!important}
 .v4-sphere{left:50%;top:75%;width:100%;height:50%;perspective:940px}
 .v4-story-nav{margin-top:17px;gap:6px;padding-top:12px;max-width:95vw}
 .v4-story-nav a{font-size:.51rem;padding:5px 8px;min-height:29px}
 .v4-scene-hint{display:none}
 body .hero::before,body .page-hero::before{background:linear-gradient(180deg,rgba(4,17,15,.89),rgba(7,23,18,.7) 42%,rgba(6,16,13,.06) 72%,rgba(5,16,13,.37))!important}
 .v4-photo-tile{width:clamp(75px,20vw,117px)!important;max-height:180px}
 .v4-photo-tile img{max-height:180px!important}
 .v4-tile-tag{font-size:.47rem;bottom:-17px}
 .gallery-item.v4-ambient-card,.gallery-item.v4-ambient-card:nth-child(n){height:clamp(300px,52vw,460px)!important}
 .v4-photo-title{font-size:clamp(.98rem,2.4vw,1.3rem)}
}
@media(max-width:520px){
 body .hero{min-height:870px!important;min-height:max(865px,100svh)!important}
 body .page-hero{min-height:825px!important;min-height:max(820px,100svh)!important}
 body .hero h1{font-size:clamp(3.5rem,12.7vw,5.15rem)!important}
 body .page-hero h1{font-size:clamp(3.6rem,12.7vw,5.3rem)!important}
 .v4-sphere{top:76%;height:46%;width:118%;left:50%}
 .gallery-item.v4-ambient-card,.gallery-item.v4-ambient-card:nth-child(n){height:clamp(390px,113vw,560px)!important;min-height:0!important}
 .v4-photo-details{bottom:11px;left:10px;padding:9px 11px}
 .v4-photo-arrow{bottom:14px;right:10px;width:35px;height:35px}
}
@media(max-width:360px){body .hero{min-height:920px!important}.v4-story-nav a{padding:4px 6px;font-size:.46rem}.v4-sphere{top:79%}}
@media(prefers-reduced-motion:reduce){.v4-photo-tile,.v4-photo-arrow,.v4-story-nav a{transition:none!important;animation:none!important}.v4-flow{display:none!important}}

/* Organic curved grid fallback: remains beautiful when WebGL is blocked. */
.v4-flow-fallback{background-image:url('./v4-waves.svg'),radial-gradient(ellipse 42% 52% at 65% 50%,rgba(76,132,103,.28),transparent 78%);background-position:center;background-size:cover,cover;transform:scale(1.07);opacity:.55;animation:v4-ambient-drift 18s ease-in-out infinite alternate}
@keyframes v4-ambient-drift{from{transform:translate(-1%,0) scale(1.065)}to{transform:translate(1.2%,-1.5%) scale(1.11)}}
@media(prefers-reduced-motion:reduce){.v4-flow-fallback{animation:none!important}}
/* Final UX refinements: bring the mobile constellation into the first viewport. */
@media(max-width:760px){
 .v4-sphere{top:68%;height:52%;}
 .v4-photo-tile{width:clamp(92px,24.5vw,130px)!important;}
 .v4-photo-tile img{max-height:190px!important}
 .category-nav{top:76px!important;padding:12px 4vw!important;box-shadow:0 7px 15px rgba(13,37,25,.035)}
 .gallery-section{scroll-margin-top:150px!important}
}
@media(max-width:520px){.v4-sphere{top:70%;height:50%;}}
@media(max-width:360px){.v4-sphere{top:74%;}}
@media(min-width:761px){.category-nav{top:88px!important;padding:12px 5vw!important}.gallery-section{scroll-margin-top:162px!important}}
.gallery-item.v4-ambient-card::before{filter:blur(34px) saturate(.74) brightness(.88)}
body.cinema-mode .gallery-item.v4-ambient-card::before{filter:blur(34px) saturate(.58) brightness(.61)}
@media(min-width:361px) and (max-width:520px){
 .hero .hero-actions{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:7px!important}
 .hero .hero-actions .button,.hero .hero-actions .ghost-route{font-size:.56rem!important;letter-spacing:.065em!important;padding:0 11px!important;min-height:45px!important;white-space:nowrap}
}
