/* PBR Gallery */
.gallery-page{background:#f4fbfc;color:#18343a}.gallery-topbar{position:sticky;top:0;z-index:80;display:flex;align-items:center;gap:18px;padding:11px clamp(18px,4vw,64px);background:rgba(247,252,253,.9);border-bottom:1px solid #cfe5e5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.gallery-topbar .brand{color:#18343a}.gallery-topbar .brand b{color:#55c7f2}.gallery-topbar nav{display:flex;gap:4px;margin-left:auto}.gallery-topbar nav a{color:#58747a;text-decoration:none;font-size:11px;font-weight:800;padding:9px 11px;border-radius:10px}.gallery-topbar nav a:hover,.gallery-topbar nav a.active{background:#e6f7fc;color:#18343a}.gallery-actions{margin-left:4px}.gallery-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:55px;align-items:center;padding:95px clamp(24px,8vw,120px) 70px;background:radial-gradient(circle at 12% 20%,rgba(85,199,242,.12),transparent 25%),linear-gradient(145deg,#f7fcfd,#edf8f6)}.gallery-hero h1{font:700 clamp(55px,7vw,92px)/.95 "Playfair Display",serif;letter-spacing:-.045em;margin:12px 0 24px;color:#18343a}.gallery-hero h1 em{font-style:italic;background:linear-gradient(90deg,#55c7f2,#6fa56a);-webkit-background-clip:text;background-clip:text;color:transparent}.gallery-hero>div:first-child p{max-width:650px;color:#58747a;font-size:16px}.gallery-hero-card{padding:28px;border:1px solid #cfe5e5;border-radius:24px;background:rgba(255,255,255,.76);box-shadow:0 24px 70px rgba(34,83,92,.12)}.gallery-hero-card span{font-size:9px;font-weight:900;letter-spacing:.16em;color:#55c7f2}.gallery-hero-card strong{display:block;font:700 30px/1.1 "Playfair Display",serif;margin:14px 0;color:#18343a}.gallery-hero-card p{font-size:11px;color:#70858b;margin:0 0 20px}.gallery-section{padding:70px clamp(18px,6vw,90px) 110px;background:#f7fcfd}.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.gallery-head h2{font:700 clamp(34px,4vw,55px)/1 "Playfair Display",serif;margin:8px 0 0;color:#18343a}.gallery-count{font-size:10px;font-weight:900;letter-spacing:.1em;color:#70858b}.gallery-grid{columns:4 220px;column-gap:15px}

/* Premium Cinematic Gallery Cards */
.gallery-card{break-inside:avoid;margin:0 0 15px;position:relative;border-radius:14px;overflow:hidden;background:#fff;border:1px solid rgba(207,229,229,.6);box-shadow:0 8px 24px rgba(34,83,92,.06),0 1px 2px rgba(34,83,92,.04);animation:cardEntrance .7s cubic-bezier(.16,1,.3,1) both;cursor:pointer;transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s ease;will-change:transform,box-shadow}
.gallery-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 20px 45px rgba(34,83,92,.12),0 4px 8px rgba(34,83,92,.08)}
.gallery-card:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 70% at 50% 30%,transparent 30%,rgba(0,0,0,.28) 100%);pointer-events:none;opacity:0;transition:opacity .5s ease;z-index:2}
.gallery-card:hover:after,.gallery-card:focus-within:after{opacity:1}
.gallery-card:before{content:"";position:absolute;inset:0;background:linear-gradient(175deg,transparent 45%,rgba(0,0,0,.12) 100%);pointer-events:none;opacity:.5;z-index:1}

.gallery-card img{display:block;width:100%;height:auto;transition:transform .9s cubic-bezier(.22,1,.36,1),filter .5s ease;animation:subtleKenBurns 25s ease-in-out infinite alternate;transform-origin:center center;will-change:transform}
.gallery-card:hover img{transform:scale(1.06);filter:saturate(1.12) contrast(1.04)}

@keyframes subtleKenBurns{
  0%{transform:scale(1)}
  100%{transform:scale(1.04)}
}

@keyframes cardEntrance{
  from{opacity:0;transform:translateY(24px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Subtle Film Grain */
.gallery-grid{position:relative}
.gallery-grid:before{content:"";position:absolute;inset:-150%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.028;pointer-events:none;z-index:100;mix-blend-mode:overlay;animation:grainShift .8s steps(2) infinite}

@keyframes grainShift{0%,100%{transform:translate(0,0)}50%{transform:translate(-1%,1%)}}

.gallery-meta{position:absolute;left:10px;right:10px;bottom:10px;padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);transform:translateY(7px);opacity:0;transition:opacity .25s ease,transform .25s ease;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:3}
.gallery-card:hover .gallery-meta,.gallery-card:focus-within .gallery-meta{opacity:1;transform:none}.gallery-meta-copy{min-width:0}.gallery-meta strong,.gallery-meta span{display:block}.gallery-meta strong{font-size:11px;color:#18343a}.gallery-meta span{font-size:9px;color:#70858b;margin-top:2px}.gallery-download{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-radius:9px;background:#18343a;color:#fff;text-decoration:none;font-size:9px;font-weight:900;white-space:nowrap;transition:transform .2s ease,background .2s ease}.gallery-download:hover{transform:translateY(-1px);background:#24515a}.gallery-state[hidden]{display:none!important}.gallery-state{min-height:220px;display:grid;place-items:center;text-align:center;align-content:center;gap:7px;color:#58747a}.gallery-state .state-spinner{width:30px;height:30px;border:2px solid #cfe5e5;border-top-color:#55c7f2;border-radius:50%;animation:spin .8s linear infinite}.gallery-state strong{font-size:13px}.gallery-state span{font-size:10px;color:#7d9195}.gallery-more{display:block;margin:28px auto 0}@keyframes galleryIn{from{opacity:0;transform:translateY(16px) scale(.95);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:850px){.gallery-topbar nav{display:none}.gallery-hero{grid-template-columns:1fr;padding-top:65px}.gallery-grid{columns:2 150px}}@media(max-width:520px){.gallery-topbar{padding:9px 14px}.gallery-actions .btn{min-height:40px;padding:9px 12px}.gallery-hero{padding-inline:18px}.gallery-hero-card{padding:22px}.gallery-grid{columns:2 130px;column-gap:9px}.gallery-card{margin-bottom:9px}.gallery-section{padding-inline:14px}.gallery-meta{opacity:1;transform:none}.gallery-download{font-size:8px;padding:6px 7px}.gallery-meta strong{font-size:9px}}

/* Trip countdown */
.trip-countdown{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px clamp(24px,6vw,90px);background:#18343a;color:#f7fcfd;border-top:1px solid #cfe5e5;border-bottom:1px solid #cfe5e5}.trip-countdown-copy .mini-label{color:#55c7f2}.trip-countdown-copy h2{font:700 clamp(28px,3.4vw,46px)/1.05 "Playfair Display",serif;margin:8px 0 7px;letter-spacing:-.03em}.trip-countdown-copy h2 em{font-style:italic;color:#b9e9f6}.trip-countdown-copy p{margin:0;color:#b9cdd1;font-size:12px;font-weight:700;letter-spacing:.06em}.countdown-timer{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:10px;min-width:min(560px,48%)}.countdown-timer>div{padding:14px 12px;text-align:center;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.07)}.countdown-timer strong{display:block;font:700 clamp(24px,3vw,38px)/1 "Playfair Display",serif;color:#fff}.countdown-timer span{display:block;margin-top:5px;font-size:8px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#a8c2c7}.trip-countdown.is-complete{justify-content:center}.trip-countdown.is-complete .trip-countdown-copy{text-align:center}.trip-countdown.is-complete .countdown-timer{display:none}@media(max-width:850px){.trip-countdown{align-items:flex-start;flex-direction:column}.countdown-timer{width:100%;min-width:0}}@media(max-width:520px){.trip-countdown{padding:24px 18px}.countdown-timer{grid-template-columns:repeat(2,1fr)}}


/* Premium Cinematic Ambient Photo Field */
.gallery-page main{position:relative;isolation:isolate;overflow:hidden}
.gallery-ambient{position:absolute;inset:-15%;z-index:0;pointer-events:none;overflow:visible;opacity:1;transform-style:preserve-3d}

/* Cinematic Atmospheric Lighting */
.gallery-ambient-light{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.6}
.gallery-ambient-light::before{content:"";position:absolute;width:200%;height:200%;left:-50%;top:-50%;background:radial-gradient(ellipse 80% 60% at 35% 30%,rgba(255,252,248,.25) 0%,transparent 50%),radial-gradient(ellipse 70% 50% at 65% 70%,rgba(85,199,242,.08) 0%,transparent 45%);animation:lightDrift 45s ease-in-out infinite alternate}
.gallery-ambient-light::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(247,252,253,.85) 0%,rgba(247,252,253,.45) 35%,rgba(237,248,246,.3) 100%);z-index:1}

@keyframes lightDrift{0%{transform:translate3d(0,0,0) rotate(0deg)}100%{transform:translate3d(8%,5%,0) rotate(3deg)}}

/* Depth Layer 1: Background (furthest) */
.ambient-layer-bg{position:absolute;inset:0;z-index:1;pointer-events:none;filter:blur(12px)}
.ambient-layer-bg .ambient-photo{width:clamp(280px,28vw,420px);opacity:.22;transform-style:preserve-3d;animation-duration:var(--d,42s);animation-delay:var(--delay,0s)}
.ambient-layer-bg .ambient-photo img{filter:saturate(.75) brightness(1.08)}

/* Depth Layer 2: Midground */
.ambient-layer-mid{position:absolute;inset:0;z-index:2;pointer-events:none;filter:blur(4px)}
.ambient-layer-mid .ambient-photo{width:clamp(180px,18vw,280px);opacity:.38;transform-style:preserve-3d;animation-duration:var(--d,32s);animation-delay:var(--delay,0s)}
.ambient-layer-mid .ambient-photo img{filter:saturate(.85) brightness(1.03)}

/* Depth Layer 3: Foreground (closest) */
.ambient-layer-fg{position:absolute;inset:0;z-index:3;pointer-events:none;filter:blur(0)}
.ambient-layer-fg .ambient-photo{width:clamp(120px,12vw,200px);opacity:.48;transform-style:preserve-3d;animation-duration:var(--d,26s);animation-delay:var(--delay,0s)}
.ambient-layer-fg .ambient-photo img{filter:saturate(.92)}

/* Ambient Photo Base Styling */
.ambient-photo{position:absolute;left:var(--x);top:var(--y);border-radius:14px;overflow:hidden;box-shadow:0 18px 55px rgba(34,83,92,.16),0 0 0 1px rgba(255,255,255,.25) inset;transform:translate3d(-50%,-50%,calc(var(--z, 0) * 1px)) rotate(var(--r,0deg)) scale(var(--s,1));animation:ambientDrift var(--d,30s) cubic-bezier(.4,.25,.6,.75) var(--delay,0s) infinite alternate;will-change:transform;backface-visibility:hidden}
.ambient-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:filter .3s ease}

/* Size Variations */
.ambient-xs{width:clamp(90px,9vw,140px);border-radius:11px}
.ambient-sm{width:clamp(130px,13vw,190px);border-radius:12px}
.ambient-md{width:clamp(180px,18vw,260px);border-radius:14px}
.ambient-lg{width:clamp(240px,24vw,360px);border-radius:16px}
.ambient-xl{width:clamp(320px,32vw,460px);border-radius:18px}

/* Organic Floating Motion */
@keyframes ambientDrift{
  0%{transform:translate3d(-50%,-50%,calc(var(--z, 0) * 1px)) rotate(var(--r,0deg)) translate3d(var(--dx1,0),var(--dy1,0),0) scale(var(--s1,1))}
  33%{transform:translate3d(-50%,-50%,calc(var(--z, 0) * 1px)) rotate(calc(var(--r,0deg) + var(--dr,0deg))) translate3d(var(--dx2,0),var(--dy2,0),0) scale(var(--s2,1.02))}
  66%{transform:translate3d(-50%,-50%,calc(var(--z, 0) * 1px)) rotate(calc(var(--r,0deg) - var(--dr,0deg))) translate3d(var(--dx3,0),var(--dy3,0),0) scale(var(--s3,.98))}
  100%{transform:translate3d(-50%,-50%,calc(var(--z, 0) * 1px)) rotate(calc(var(--r,0deg) + var(--dr2,0deg))) translate3d(var(--dx4,0),var(--dy4,0),0) scale(var(--s4,1.01))}
}

/* Scroll Parallax Effect */
.gallery-ambient.is-parallax .ambient-photo{will-change:transform;transition:transform .15s cubic-bezier(.25,.46,.54,.94)}

/* Content Visibility Layer */
.gallery-hero,.gallery-section{position:relative;z-index:10;background:transparent}
.gallery-hero>*,.gallery-section>*{position:relative;z-index:11}

/* Clean Readable Center */
.gallery-hero::before,.gallery-section::before{content:"";position:absolute;inset:-60px;background:radial-gradient(ellipse 120% 80% at 50% 45%,rgba(247,252,253,.92) 0%,rgba(247,252,253,.65) 40%,rgba(247,252,253,.35) 70%,transparent 100%);z-index:9;pointer-events:none}

/* Accessibility: Reduced Motion */
@media(prefers-reduced-motion:reduce){
  .ambient-photo,.gallery-ambient-light::before{animation:none!important}
  .ambient-photo{transform:translate3d(-50%,-50%,0) rotate(var(--r,0deg))!important}
}

/* Mobile Optimizations */
@media(max-width:850px){
  .gallery-ambient{inset:-10%;opacity:.7}
  .ambient-layer-bg{filter:blur(16px)}
  .ambient-layer-bg .ambient-photo{opacity:.15}
  .ambient-layer-mid{filter:blur(6px)}
  .ambient-layer-mid .ambient-photo{opacity:.28}
  .ambient-layer-fg .ambient-photo{opacity:.38}
  .ambient-photo{width:clamp(85px,22vw,130px)!important}
}
@media(max-width:520px){
  .gallery-ambient{inset:-5%;opacity:.55}
  .ambient-layer-bg,.ambient-layer-mid{display:none}
  .ambient-photo{opacity:.32;width:clamp(70px,28vw,110px)!important}
}

/* Responsive hardening */
.gallery-page{overflow-x:hidden}
.gallery-topbar{min-width:0}
.gallery-topbar .brand{min-width:0}
.gallery-topbar nav{min-width:0}
@media(max-width:850px){
  .gallery-topbar{padding:10px 14px;gap:10px}
  .gallery-topbar .brand{margin-right:auto}
  .gallery-hero{gap:28px;padding:58px 22px 54px}
  .gallery-hero h1{font-size:clamp(48px,11vw,76px)}
  .gallery-hero>div:first-child p{font-size:14px;line-height:1.7}
}
@media(max-width:600px){
  .gallery-topbar{padding:8px 12px}
  .gallery-topbar .brand img{width:38px;height:38px}
  .gallery-topbar .brand span{font-size:9px}
  .gallery-topbar .brand b{font-size:7px}
  .gallery-actions .btn{min-height:38px;padding:8px 10px;font-size:9px}
  .gallery-hero{padding:46px 16px 44px}
  .gallery-hero h1{font-size:clamp(43px,13vw,58px);line-height:.95}
  .gallery-hero-card{padding:20px;border-radius:18px}
  .gallery-section{padding:52px 12px 70px}
  .gallery-head{align-items:flex-start;flex-direction:column;gap:8px}
  .gallery-grid{columns:2 0;column-gap:7px}
  .gallery-card{margin-bottom:7px;border-radius:11px}
  .gallery-meta{left:6px;right:6px;bottom:6px;padding:8px;border-radius:9px}
  .gallery-meta strong{font-size:8px}
  .gallery-meta span{font-size:7px}
  .gallery-download{font-size:7px;padding:6px}
}
@media(max-width:360px){.gallery-grid{columns:1}.gallery-actions .btn{font-size:8px}.gallery-hero h1{font-size:42px}}
.gallery-mobile-toggle{display:none}
.gallery-mobile-panel{display:none}
@media(max-width:850px){
  .gallery-mobile-toggle{display:flex !important;order:2}
  .gallery-topbar nav{display:none !important}
  .gallery-actions{order:3;margin-left:0}
  .gallery-mobile-panel{display:block;top:66px}
}
@media(max-width:520px){.gallery-mobile-panel{top:60px}}
@media(min-width:851px){.gallery-mobile-toggle,.gallery-mobile-panel{display:none !important}}


/* Secure Gallery access / media states */
.gallery-login-required{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:44px 24px}
.gallery-login-required .gallery-lock-icon{font-size:2.2rem;filter:drop-shadow(0 8px 22px rgba(0,0,0,.18))}
.gallery-login-required .btn{margin-top:10px}
.gallery-image-shell{position:relative;min-height:220px;display:grid;place-items:center;overflow:hidden;background:rgba(255,255,255,.035)}
.gallery-image-shell img{display:block;width:100%;height:100%;min-height:220px;object-fit:cover;opacity:0;transition:opacity .5s ease,transform .6s ease}
.gallery-image-shell img.is-loaded{opacity:1}
.gallery-image-loading,.gallery-image-error{padding:24px;text-align:center;color:inherit;opacity:.72}
.gallery-image-error{display:flex;flex-direction:column;gap:6px}
.gallery-download{cursor:pointer;border:0;font:inherit}
.gallery-download:disabled{opacity:.55;cursor:wait}
@media (prefers-reduced-motion: reduce){
  .gallery-image-shell img{transition:none}
}
