/* FIRELFY PATTAYA — 10/10 CINEMATIC UI LAYER */
:root{
  --pro-gold:#d8b85a; --pro-ivory:#f5ecd9; --pro-ink:#060a08; --pro-line:rgba(245,236,217,.14);
  --pro-ease:cubic-bezier(.16,1,.3,1); --pro-radius:30px;
}
html{scroll-behavior:auto}
body{background-image:radial-gradient(circle at 12% 10%,rgba(216,184,90,.055),transparent 30%),radial-gradient(circle at 86% 68%,rgba(53,105,72,.075),transparent 34%)}
body.is-loading{overflow:hidden} body.is-loading main,body.is-loading .site-footer{opacity:0}
body.is-ready main,body.is-ready .site-footer{opacity:1;transition:opacity .8s ease}

/* cinematic grain / atmosphere */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9996;opacity:.035;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.scroll-progress{position:fixed;left:0;top:0;width:100%;height:2px;background:transparent;z-index:10000;pointer-events:none}.scroll-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#80621d,var(--pro-ivory),var(--pro-gold));box-shadow:0 0 16px rgba(216,184,90,.65)}
.page-transition{position:fixed;inset:0;background:#050806;z-index:9999;transform:scaleY(1);transform-origin:top;pointer-events:none;transition:transform 1s var(--pro-ease)}body.is-ready .page-transition{transform:scaleY(0)}

/* 3D ambient canvas */
.pro-3d-field{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.7;mix-blend-mode:screen}.hero .pro-3d-field,.subpage-hero .pro-3d-field{display:block}
.hero-content,.subpage-hero .container{position:relative;z-index:4}
.hero,.subpage-hero{isolation:isolate;overflow:hidden}.hero::before,.subpage-hero::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 42%,transparent 0,rgba(2,6,4,.06) 35%,rgba(2,5,4,.5) 100%)}
.hero::after,.subpage-hero::after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(4,7,5,.88));z-index:3;pointer-events:none}
.hero-bg-slide,.hero-bg-img{transform:scale(1.07);transition:opacity 1.5s ease,transform 9s var(--pro-ease);will-change:transform;filter:saturate(.94)}.hero-bg-slide.active{transform:scale(1.14)}

/* cursor */
.pro-cursor,.pro-cursor-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:10001;opacity:0;mix-blend-mode:screen}.pro-cursor{width:36px;height:36px;border:1px solid rgba(245,236,217,.7);border-radius:50%;transform:translate(-50%,-50%);transition:width .45s var(--pro-ease),height .45s var(--pro-ease),background .35s ease}.pro-cursor-dot{width:5px;height:5px;background:var(--pro-gold);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 16px rgba(216,184,90,.9)}.cursor-hover .pro-cursor{width:70px;height:70px;border-color:var(--pro-gold);background:rgba(216,184,90,.07)}@media(pointer:fine){.pro-cursor,.pro-cursor-dot{opacity:1}.site-header,.site-footer,a,button,input,select{cursor:none}}

/* nav / buttons */
.site-header{transition:background .55s var(--pro-ease),border-color .55s var(--pro-ease),transform .55s var(--pro-ease)}.site-header.header-scrolled{background:rgba(5,9,7,.78)!important;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom-color:rgba(216,184,90,.2)!important;box-shadow:0 16px 50px rgba(0,0,0,.28)}
.nav-link{position:relative}.nav-link::after{content:"";position:absolute;left:50%;bottom:-8px;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--pro-gold),transparent);transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .5s var(--pro-ease)}.nav-link:hover::after,.nav-link.active::after{transform:translateX(-50%) scaleX(1)}
.btn{position:relative;overflow:hidden;isolation:isolate;will-change:transform}.btn::before{content:"";position:absolute;inset:-30%;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.28) 50%,transparent 62%);transform:translateX(-120%) rotate(8deg);transition:transform .85s var(--pro-ease);z-index:-1}.btn:hover::before{transform:translateX(120%) rotate(8deg)}.btn-primary{box-shadow:0 12px 34px rgba(216,184,90,.14)}

/* marquee */
.pro-marquee{position:relative;z-index:5;overflow:hidden;border-top:1px solid var(--pro-line);border-bottom:1px solid var(--pro-line);background:rgba(8,14,10,.92);padding:15px 0;white-space:nowrap}.pro-marquee-track{display:inline-flex;min-width:max-content;gap:38px;animation:proMarquee 28s linear infinite}.pro-marquee span{font-family:var(--font-serif);font-size:clamp(1.05rem,2vw,1.55rem);font-style:italic;color:#d8c9a8;letter-spacing:.05em}.pro-marquee b{font-family:var(--font-sans);font-size:.6rem;letter-spacing:.32em;color:var(--pro-gold)}@keyframes proMarquee{to{transform:translateX(-50%)}}.pro-marquee:hover .pro-marquee-track{animation-play-state:paused}

/* section rhythm */
.pro-discovery{position:relative;padding:clamp(5rem,10vw,10rem) 0;background:linear-gradient(180deg,#080d0a,#0d1510);overflow:hidden}.pro-discovery::before{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:linear-gradient(transparent,rgba(216,184,90,.14),transparent);opacity:.4}.pro-discovery-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3.5rem}.pro-discovery-head>div{max-width:800px}.pro-kicker{display:inline-flex;align-items:center;gap:.65rem;color:var(--pro-gold);font-size:.7rem;font-weight:800;letter-spacing:.25em;text-transform:uppercase;margin-bottom:1rem}.pro-kicker::before{content:"";width:30px;height:1px;background:var(--pro-gold)}.pro-discovery-title{font-size:clamp(2.5rem,5vw,5rem);max-width:900px;line-height:.98}.pro-discovery-intro{font-size:1.08rem;max-width:700px;color:#a7b5aa}
.pro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--pro-line);border:1px solid var(--pro-line);border-radius:var(--pro-radius);overflow:hidden}.pro-card{position:relative;min-height:330px;padding:2.2rem;background:linear-gradient(145deg,rgba(20,31,24,.95),rgba(6,11,8,.99));overflow:hidden;transform-style:preserve-3d;transition:background .6s ease}.pro-card::after{content:"";position:absolute;inset:auto -20% -45% 30%;height:180px;background:radial-gradient(circle,rgba(216,184,90,.11),transparent 68%);transition:transform .9s var(--pro-ease)}.pro-card:hover::after{transform:translate(-20px,-30px) scale(1.25)}.pro-card-number{font-size:.67rem;letter-spacing:.25em;color:var(--pro-gold)}.pro-card h3{font-size:2rem;margin:4.8rem 0 .9rem;position:relative}.pro-card p{max-width:44ch;position:relative}.pro-card a{display:inline-flex;align-items:center;gap:.6rem;color:var(--pro-ivory);font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin-top:1rem}.pro-card a::after{content:"↗";transition:transform .3s ease}.pro-card a:hover::after{transform:translate(4px,-4px)}
.pro-fact-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--pro-line);border-bottom:1px solid var(--pro-line);margin-top:4rem}.pro-fact{padding:1.8rem 1rem;text-align:center;border-right:1px solid var(--pro-line)}.pro-fact:last-child{border-right:0}.pro-fact strong{display:block;font-family:var(--font-serif);font-size:2rem;color:var(--pro-ivory)}.pro-fact span{font-size:.67rem;letter-spacing:.16em;text-transform:uppercase;color:#7d9082}

/* reveals */
.pro-reveal{opacity:0;transform:translateY(55px);transition:opacity 1s var(--pro-ease),transform 1s var(--pro-ease)}.pro-reveal.is-visible{opacity:1;transform:none}.pro-reveal-left{opacity:0;transform:translateX(-55px);transition:opacity 1s var(--pro-ease),transform 1s var(--pro-ease)}.pro-reveal-left.is-visible{opacity:1;transform:none}.pro-reveal-scale{opacity:0;transform:scale(.92);transition:opacity 1.1s var(--pro-ease),transform 1.1s var(--pro-ease)}.pro-reveal-scale.is-visible{opacity:1;transform:scale(1)}.pro-delay-1{transition-delay:.08s}.pro-delay-2{transition-delay:.16s}.pro-delay-3{transition-delay:.24s}.pro-stagger>*{opacity:0;transform:translateY(22px);transition:opacity .8s var(--pro-ease),transform .8s var(--pro-ease)}.pro-stagger.is-visible>*{opacity:1;transform:none}.pro-stagger.is-visible>*:nth-child(2){transition-delay:.08s}.pro-stagger.is-visible>*:nth-child(3){transition-delay:.16s}.pro-stagger.is-visible>*:nth-child(4){transition-delay:.24s}.pro-stagger.is-visible>*:nth-child(5){transition-delay:.32s}

/* image treatment */
.pro-image-reveal{position:relative;overflow:hidden;border-radius:var(--pro-radius);clip-path:inset(0);transform:translateZ(0)}.pro-image-reveal::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(216,184,90,.14),transparent 35%,transparent 65%,rgba(0,0,0,.25));z-index:1;pointer-events:none;mix-blend-mode:screen}.pro-image-reveal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--pro-ease),filter 1.2s ease;will-change:transform}.pro-image-reveal:hover img{transform:scale(1.06);filter:saturate(1.06) contrast(1.03)}.gallery-grid img,.editorial-grid img{transition:transform 1.1s var(--pro-ease),filter 1.1s ease}.gallery-grid a:hover img,.editorial-grid a:hover img{transform:scale(1.05);filter:saturate(1.08) contrast(1.03)}

/* floating CTA */
.pro-floating-cta{position:fixed;right:22px;bottom:22px;z-index:970;display:flex;align-items:center;border:1px solid rgba(216,184,90,.3);background:rgba(7,12,9,.8);backdrop-filter:blur(18px);border-radius:999px;box-shadow:0 18px 55px rgba(0,0,0,.45);overflow:hidden;transform:translateY(25px);opacity:0;pointer-events:none;transition:all .55s var(--pro-ease)}.pro-floating-cta.show{transform:none;opacity:1;pointer-events:auto}.pro-floating-cta span{padding:0 1rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#d8c9a8}.pro-floating-cta a{padding:.78rem 1.05rem;background:var(--pro-gold);color:#060907;font-weight:900;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}

/* accessibility / mobile */
@media(max-width:900px){.pro-grid{grid-template-columns:1fr}.pro-discovery-head{display:block}.pro-discovery-head .btn{margin-top:1.5rem}.pro-fact-strip{grid-template-columns:1fr}.pro-fact{border-right:0;border-bottom:1px solid var(--pro-line)}.pro-fact:last-child{border-bottom:0}.pro-card{min-height:270px}.pro-card h3{margin-top:3rem}.pro-3d-field{opacity:.45}}
@media(max-width:600px){.pro-floating-cta{right:12px;bottom:12px}.pro-floating-cta span{display:none}.pro-floating-cta a{padding:.72rem 1rem}.pro-marquee{padding:12px 0}.pro-marquee-track{gap:24px;animation-duration:22s}.pro-discovery-title{font-size:clamp(2.25rem,11vw,3.5rem)}}
@media(prefers-reduced-motion:reduce){.pro-marquee-track{animation:none}.pro-cursor,.pro-cursor-dot,.pro-3d-field{display:none}.pro-reveal,.pro-reveal-left,.pro-reveal-scale,.pro-stagger>*{opacity:1;transform:none;transition:none}.hero-bg-slide,.hero-bg-img{transform:none!important}.page-transition{display:none}body.is-loading{overflow:auto}body.is-loading main,body.is-loading .site-footer{opacity:1}}

/* ================================================================
   CINEMATIC 3D SPACE JOURNEY
   ================================================================ */
.cinematic-space{position:relative;height:100vh;min-height:100vh;background:#050907;color:var(--pro-ivory);overflow:clip;--space-p:0;--space-y:0px;--space-rotate:0deg;--space-scale:1;--mouse-x:0px;--mouse-y:0px}
.space-sticky{position:sticky;top:0;height:100vh;min-height:680px;overflow:hidden;display:grid;place-items:center;isolation:isolate;background:radial-gradient(circle at 72% 48%,rgba(65,92,72,.16),transparent 34%),#050907}
.space-sticky::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,7,5,.94) 0%,rgba(3,7,5,.62) 36%,rgba(3,7,5,.08) 70%,rgba(3,7,5,.35) 100%);z-index:2;pointer-events:none}
.space-sticky::after{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;opacity:.18;background:radial-gradient(circle at 70% 45%,transparent 0 38%,#000 100%)}
.space-copy{position:absolute;left:clamp(1.25rem,7vw,7rem);top:50%;transform:translateY(-50%);width:min(420px,38vw);z-index:7}
.space-kicker{display:flex;align-items:center;gap:14px;font-size:.65rem;font-weight:800;letter-spacing:.28em;color:var(--pro-gold)}
.space-kicker b{font-weight:600;color:rgba(245,236,217,.4);letter-spacing:.16em}
.space-copy h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(3.4rem,6.5vw,7.2rem);line-height:.82;letter-spacing:-.04em;margin:1.2rem 0 1.5rem}
.space-copy h2 em{color:var(--pro-gold);font-style:italic}
.space-description{color:#aebbb1;font-size:.98rem;line-height:1.8;max-width:36ch;margin:0}
.space-meta{display:flex;align-items:center;gap:12px;margin-top:2.3rem;font-size:.65rem;letter-spacing:.2em;color:#8d9b91}
.space-meta #spaceCounter{font-family:var(--font-serif);font-size:1.25rem;color:var(--pro-ivory);letter-spacing:0}
.space-line{display:block;width:120px;height:1px;background:rgba(245,236,217,.18);overflow:hidden}.space-line i{display:block;width:20%;height:100%;background:var(--pro-gold);box-shadow:0 0 14px rgba(216,184,90,.7);transition:width .8s var(--pro-ease)}
.space-stage{position:absolute;width:min(72vw,1080px);height:min(74vh,760px);right:-3vw;top:50%;transform:translate3d(0,-50%,0) rotate(0deg) scale(1);transform-style:preserve-3d;perspective:1600px;z-index:4;transition:transform .35s linear;will-change:transform}
.space-stage::before{content:"";position:absolute;inset:5% 4%;border:1px solid rgba(245,236,217,.1);transform:translateZ(-100px);box-shadow:inset 0 0 100px rgba(216,184,90,.035)}
.space-image{position:absolute;inset:7% 4%;overflow:hidden;border:1px solid rgba(245,236,217,.13);box-shadow:0 35px 100px rgba(0,0,0,.48);transform-style:preserve-3d;backface-visibility:hidden}
.space-image img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.82) contrast(1.06);transform:scale(1.08);transition:transform 1.2s var(--pro-ease),filter 1.2s ease}
.space-image.back{transform:translate3d(0,0,-130px) scale(.88);opacity:.25;filter:blur(1px)}
.space-image.mid{transform:translate3d(0,0,-65px) scale(.94);opacity:.48}
.space-image.main{transform:translate3d(0,0,0) scale(1);z-index:4}
.space-image.front{transform:translate3d(0,0,70px) scale(.95);opacity:.36;z-index:5}
.space-image::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(216,184,90,.08),transparent 38%,rgba(0,0,0,.35));pointer-events:none}
.space-image.main img{transform:scale(1.10);filter:saturate(.9) contrast(1.06)}
.space-image.main.is-changing{animation:spaceImageChange .7s var(--pro-ease)}
@keyframes spaceImageChange{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}45%{opacity:0;transform:translate3d(0,0,0) scale(1)}100%{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.space-glass{position:absolute;right:7%;bottom:8%;z-index:8;min-width:290px;padding:1.35rem 1.5rem;background:rgba(5,9,7,.54);border:1px solid rgba(245,236,217,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 25px 70px rgba(0,0,0,.35);transform:translateZ(100px)}
.space-glass span{display:block;font-size:.58rem;letter-spacing:.28em;color:var(--pro-gold);font-weight:800;margin-bottom:.5rem}.space-glass strong{display:block;font-family:var(--font-serif);font-size:1.8rem;font-weight:500}.space-glass small{display:block;margin-top:.3rem;color:#a9b5ac;font-size:.7rem;letter-spacing:.08em}
.space-orbit{position:absolute;width:55vw;height:55vw;right:-12vw;top:8vh;z-index:1;transform:rotateX(62deg) rotateZ(calc(var(--space-p)*22deg));transform-style:preserve-3d;opacity:.65}.orbit-ring{position:absolute;inset:0;border:1px solid rgba(216,184,90,.13);border-radius:50%}.orbit-ring-b{inset:12%;border-color:rgba(245,236,217,.08);transform:rotateY(45deg)}.orbit-glow{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--pro-gold);box-shadow:0 0 45px 14px rgba(216,184,90,.18);left:10%;top:25%;transform:translateZ(20px)}
.space-hint{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:14px;font-size:.58rem;letter-spacing:.3em;color:rgba(245,236,217,.55)}.space-hint i{width:38px;height:1px;background:var(--pro-gold);animation:spaceHint 1.6s ease-in-out infinite}@keyframes spaceHint{50%{transform:scaleX(.35);opacity:.4}}
@media(max-width:1000px){.cinematic-space{height:100vh;min-height:100vh}.space-copy{left:1.5rem;top:17%;transform:none;width:min(78vw,430px)}.space-copy h2{font-size:clamp(3rem,10vw,5.4rem)}.space-description{font-size:.82rem}.space-stage{width:94vw;height:60vh;right:-10vw;top:58%}.space-glass{right:10%;bottom:4%;min-width:230px;padding:1rem}.space-orbit{width:95vw;height:95vw;right:-35vw;top:32vh}.space-hint{bottom:1.5rem}}
@media(max-width:600px){.cinematic-space{height:100vh;min-height:100vh}.space-sticky{min-height:0}.space-copy{top:12%;width:88vw}.space-kicker{font-size:.55rem}.space-copy h2{font-size:clamp(2.8rem,14vw,4.5rem);margin:.8rem 0 1rem}.space-description{max-width:31ch;font-size:.76rem;line-height:1.65}.space-meta{margin-top:1.2rem}.space-stage{width:118vw;height:48vh;right:-31vw;top:57%}.space-image{inset:3% 2%}.space-image.back{opacity:.12}.space-image.front{opacity:.22}.space-glass{right:8%;bottom:3%;min-width:200px;padding:.8rem 1rem}.space-glass strong{font-size:1.35rem}.space-glass small{font-size:.58rem}.space-hint{font-size:.5rem}}
@media(prefers-reduced-motion:reduce){.cinematic-space{height:auto;padding:5rem 0}.space-sticky{position:relative;height:auto;min-height:620px}.space-stage{transform:none!important}.space-orbit{display:none}.space-hint{display:none}}

/* ================================================================
   REAL THREE.JS 3D HERO LAYER
   ================================================================ */
.hero, .subpage-hero { isolation: isolate; }
.firefly-three-canvas{
  position:absolute; inset:0; width:100%; height:100%; z-index:1;
  pointer-events:none; opacity:.92; mix-blend-mode:screen;
}
.hero .hero-content, .subpage-hero > *:not(.firefly-three-canvas){position:relative;z-index:4}
.hero .hero-overlay{z-index:2}
.hero-bg-wrapper{z-index:0}
@media(max-width:900px){.firefly-three-canvas{opacity:.55}.hero .hero-content{z-index:5}}
@media(prefers-reduced-motion:reduce){.firefly-three-canvas{display:none}}

/* ================================================================
   ULTIMATE EXPERIENCE LAYER
   ================================================================ */
.fx-loader{position:fixed;inset:0;background:#050907;z-index:20000;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .45s ease}.fx-loader.is-visible{opacity:1;pointer-events:auto}.fx-loader.is-done{opacity:0}.fx-loader-mark{text-align:center;transform:translateY(16px);transition:transform 1s cubic-bezier(.16,1,.3,1)}.fx-loader.is-visible .fx-loader-mark{transform:none}.fx-loader-mark span{display:block;font-family:var(--font-serif);font-size:clamp(3rem,8vw,7rem);letter-spacing:.12em;color:#f5ecd9}.fx-loader-mark small{display:block;margin-top:.2rem;color:#d8b85a;letter-spacing:.42em;font-size:.55rem}.fx-loader-line{width:min(260px,50vw);height:1px;background:rgba(245,236,217,.12);margin:2rem auto 0;overflow:hidden}.fx-loader-line i{display:block;height:100%;width:0;background:#d8b85a;animation:fxLoad 1.6s cubic-bezier(.16,1,.3,1) forwards}@keyframes fxLoad{to{width:100%}}

.day-night-journey{position:relative;min-height:125vh;background:#0a100d;overflow:hidden;isolation:isolate;--dn-dark:0;--dn-shift:0px;--dn-rotate:0deg}.day-night-bg{position:absolute;inset:0;background:linear-gradient(180deg,#d9d5bd 0%,#9b8461 42%,#17231d 100%);opacity:calc(1 - var(--dn-dark)*.18);transition:filter .5s ease;filter:brightness(calc(1 - var(--dn-dark)*.4)) saturate(calc(1 - var(--dn-dark)*.2))}.day-night-bg:after{content:"";position:absolute;inset:0;background:rgba(3,7,5,var(--dn-dark));mix-blend-mode:multiply}.dn-sun,.dn-moon{position:absolute;border-radius:50%;width:clamp(80px,12vw,170px);height:clamp(80px,12vw,170px);left:18%;top:16%;background:rgba(255,231,169,.82);box-shadow:0 0 90px rgba(255,215,126,.25);transform:translateY(calc(var(--dn-shift)*-1)) scale(calc(1 - var(--dn-dark)*.25));transition:all .7s ease}.dn-moon{left:auto;right:15%;top:18%;background:#e9e7db;opacity:var(--dn-dark);box-shadow:0 0 60px rgba(225,233,219,.22)}.dn-stars{position:absolute;inset:0;opacity:var(--dn-dark);background-image:radial-gradient(circle at 20% 25%,rgba(255,255,255,.75) 0 1px,transparent 1.5px),radial-gradient(circle at 65% 18%,rgba(255,255,255,.6) 0 1px,transparent 1.5px),radial-gradient(circle at 78% 48%,rgba(255,255,255,.65) 0 1px,transparent 1.5px),radial-gradient(circle at 38% 58%,rgba(255,255,255,.55) 0 1px,transparent 1.5px);background-size:180px 150px,230px 190px,210px 170px,260px 220px}.dn-glow{position:absolute;width:60vw;height:60vw;right:-25vw;bottom:-20vw;border-radius:50%;background:radial-gradient(circle,rgba(216,184,90,.18),transparent 65%);opacity:calc(.2 + var(--dn-dark)*.9)}.day-night-inner{position:sticky;top:0;height:100vh;min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;z-index:3}.dn-copy{max-width:620px;transition:transform .15s linear}.dn-copy h2{font-size:clamp(3.2rem,6vw,7rem);line-height:.92;margin:.8rem 0 1.3rem;color:#f7f1e5}.dn-copy h2 em{font-family:var(--font-serif);font-weight:400}.dn-copy p{max-width:48ch;color:rgba(247,241,229,.72);line-height:1.8}.dn-steps{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.dn-steps span{font-size:.62rem;letter-spacing:.22em;color:rgba(247,241,229,.42);transition:color .4s ease}.dn-steps span.active{color:#d8b85a}.dn-visual{height:min(68vh,700px);position:relative;display:grid;place-items:center;transform-style:preserve-3d;transition:transform .2s linear}.dn-card{position:absolute;width:min(36vw,520px);height:min(58vh,620px);border:1px solid rgba(247,241,229,.2);box-shadow:0 40px 100px rgba(0,0,0,.45);transform-style:preserve-3d}.dn-card-back{transform:translate3d(-55px,35px,-70px) rotate(-6deg);background:linear-gradient(135deg,rgba(216,184,90,.12),rgba(255,255,255,.02));border-color:rgba(216,184,90,.2)}.dn-card-front{overflow:hidden;transform:translate3d(30px,-15px,30px) rotate(var(--dn-rotate));background:#111}.dn-card-front img{width:100%;height:100%;object-fit:cover;transition:opacity .35s ease,transform 1s cubic-bezier(.16,1,.3,1);transform:scale(1.08)}.dn-card-front img.swap{opacity:.1;transform:scale(1.18)}.dn-orb{position:absolute;width:65%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(216,184,90,.16),transparent 62%);filter:blur(1px);transform:translateZ(-120px)}
.fx-3d-card{transform-style:preserve-3d;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.16,1,.3,1),box-shadow .6s ease}.fx-3d-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.12),transparent 28%);opacity:0;transition:opacity .5s ease}.fx-3d-card:hover:after{opacity:1}.fx-gallery-depth{position:absolute;right:14px;top:12px;font-family:var(--font-serif);font-size:.7rem;letter-spacing:.18em;color:rgba(255,255,255,.72);z-index:4;transform:translateZ(20px)}.fx-anchor-hit{animation:fxAnchor .9s ease}@keyframes fxAnchor{30%{box-shadow:0 0 0 10px rgba(216,184,90,.08)}70%{box-shadow:0 0 0 18px rgba(216,184,90,0)}}
.pro-cursor:after{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);font-size:7px;letter-spacing:.15em;color:#d8b85a;opacity:0;transition:opacity .25s,transform .25s}.pro-cursor[data-label]:after{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(max-width:900px){.day-night-inner{grid-template-columns:1fr;gap:1rem;padding-top:5rem;align-content:center}.dn-copy{z-index:4}.dn-visual{height:48vh;margin-top:-3rem}.dn-card{width:62vw;height:42vh}.dn-card-back{transform:translate3d(-25px,20px,-60px) rotate(-5deg)}.dn-card-front{transform:translate3d(15px,-8px,20px) rotate(var(--dn-rotate))}.dn-copy h2{font-size:clamp(3rem,12vw,5.4rem)}.day-night-journey{min-height:120vh}}
@media(max-width:600px){.fx-loader-mark span{font-size:3rem}.dn-copy p{font-size:.82rem}.dn-steps{gap:.7rem}.dn-steps span{font-size:.5rem}.dn-card{width:72vw;height:38vh}.dn-sun{left:8%;top:10%}.dn-moon{right:8%;top:12%}}
@media(prefers-reduced-motion:reduce){.fx-loader{display:none}.day-night-journey{min-height:auto;padding:6rem 0}.day-night-inner{position:relative;height:auto;min-height:0}.day-night-bg{position:absolute}.dn-visual{height:420px}.dn-card{transform:none}.fx-3d-card{transform:none!important}.fx-anchor-hit{animation:none}}


/* ================================================================
   SUBPAGE HERO — FULL IMAGE / CLEAN 3D LAYER FIX
   ================================================================ */
.subpage-hero{
  min-height:90vh!important;
  height:90vh!important;
  width:100%;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.subpage-hero .hero-bg-wrapper{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:0!important;
  opacity:1!important;
  visibility:visible!important;
}
.subpage-hero .hero-bg-img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:scale(1.04)!important;
  filter:none!important;
}
.subpage-hero .hero-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  background:linear-gradient(180deg,rgba(4,8,6,.30) 0%,rgba(4,8,6,.18) 45%,rgba(4,8,6,.68) 100%)!important;
}
.subpage-hero .hero-content{
  position:relative!important;
  z-index:4!important;
  width:100%!important;
  max-width:1100px!important;
  margin-inline:auto!important;
  padding-inline:clamp(1.25rem,4vw,3rem)!important;
  text-align:center!important;
}
.subpage-hero .hero-title{
  max-width:1000px;
  margin-left:auto!important;
  margin-right:auto!important;
}
.subpage-hero .hero-subtitle{max-width:760px;margin-left:auto!important;margin-right:auto!important}
.subpage-hero .firefly-three-canvas,
.subpage-hero .pro-3d-field{z-index:1!important;opacity:.38!important;mix-blend-mode:screen!important}
@media(max-width:768px){
  .subpage-hero{min-height:80vh!important;height:80vh!important}
  .subpage-hero .hero-content{padding-inline:1.25rem!important}
  .subpage-hero .hero-bg-img{object-position:center center!important}
}


/* ================================================================
   SUBPAGE HERO TEXT — FINAL CENTER / NO CLIPPING FIX
   ================================================================ */
.subpage-hero .hero-content{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  min-width:0!important;
  margin:0 auto!important;
  padding-left:clamp(1.25rem,5vw,4rem)!important;
  padding-right:clamp(1.25rem,5vw,4rem)!important;
  text-align:center!important;
  transform:none!important;
  left:auto!important;
  right:auto!important;
}
.subpage-hero .hero-content .eyebrow{
  width:auto!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.subpage-hero .hero-title{
  display:block!important;
  width:min(100%,1050px)!important;
  max-width:1050px!important;
  min-width:0!important;
  margin:0 auto 1.25rem!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-align:center!important;
  transform:none!important;
  left:auto!important;
  right:auto!important;
}
.subpage-hero .hero-subtitle{
  display:block!important;
  width:min(100%,760px)!important;
  max-width:760px!important;
  min-width:0!important;
  margin:0 auto!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  text-align:center!important;
  transform:none!important;
}
.subpage-hero .reveal-on-scroll,
.subpage-hero .reveal-left,
.subpage-hero .reveal-right,
.subpage-hero .reveal-scale{
  opacity:1!important;
  transform:none!important;
}
@media(max-width:768px){
  .subpage-hero .hero-content{
    width:100%!important;
    padding-left:1.25rem!important;
    padding-right:1.25rem!important;
  }
  .subpage-hero .hero-title{
    width:100%!important;
    max-width:680px!important;
    font-size:clamp(2.6rem,10vw,4.2rem)!important;
  }
  .subpage-hero .hero-subtitle{
    width:100%!important;
    max-width:620px!important;
  }
}


/* Seamless transition: remove the empty/black scroll gap between the mood journey and intro. */
.day-night-journey + .section{
  margin-top:0 !important;
  position:relative;
  z-index:4;
}
.day-night-journey{
  margin-bottom:0 !important;
}
@media(max-width:900px){
  .day-night-journey + .section{margin-top:0 !important;}
}

/* =========================================================
   FINAL SPACE + MOBILE POLISH
   Tighten the mood journey without removing its scroll effect.
   ========================================================= */
.day-night-journey{
  min-height:106vh !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.day-night-inner{
  min-height:100vh !important;
}
.day-night-journey + .section{
  margin-top:0 !important;
}

@media (max-width: 900px){
  .day-night-journey{
    min-height:108vh !important;
  }
  .day-night-inner{
    min-height:100vh !important;
    padding-top:3.5rem !important;
    padding-bottom:2rem !important;
  }
  .dn-copy h2{
    font-size:clamp(2.7rem,10vw,5rem) !important;
  }
  .dn-copy p{
    font-size:.95rem;
    line-height:1.7;
  }
  .dn-visual{
    margin-top:-1.5rem !important;
  }
}

@media (max-width: 600px){
  .day-night-journey{
    min-height:106vh !important;
  }
  .day-night-inner{
    grid-template-columns:1fr !important;
    gap:.25rem !important;
    padding:4.5rem 12px 1.5rem !important;
    align-content:center !important;
  }
  .dn-copy{
    width:100%;
    max-width:100%;
  }
  .dn-copy h2{
    font-size:clamp(2.55rem,13vw,4.2rem) !important;
    line-height:.94 !important;
    margin:.65rem 0 1rem !important;
  }
  .dn-copy p{
    max-width:34ch;
    font-size:.82rem !important;
    line-height:1.65 !important;
  }
  .dn-steps{
    gap:.7rem !important;
    margin-top:1.2rem !important;
  }
  .dn-steps span{
    font-size:.53rem !important;
    letter-spacing:.14em !important;
  }
  .dn-visual{
    height:39vh !important;
    min-height:250px;
    margin-top:-1rem !important;
  }
  .dn-card{
    width:66vw !important;
    height:34vh !important;
    min-height:220px;
  }
  .dn-card-front{
    transform:translate3d(10px,-6px,15px) rotate(var(--dn-rotate)) !important;
  }
  .dn-card-back{
    transform:translate3d(-18px,14px,-40px) rotate(-4deg) !important;
  }
}

/* Mobile viewport safety across all pages */
@media (max-width: 768px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
  }
  img,video,iframe,svg,canvas{
    max-width:100%;
  }
  .container{
    width:calc(100% - 24px) !important;
    max-width:var(--container-max);
    box-sizing:border-box;
  }
  .site-header{
    width:100%;
  }
  .header-inner{
    width:100%;
    box-sizing:border-box;
  }
  .nav-menu{
    max-width:100vw;
  }
  .hero-content,
  .section,
  .section-header,
  .split-grid,
  .booking-section-wrapper,
  .booking-bar{
    box-sizing:border-box;
  }
  .section-title,
  .hero-title,
  .subpage-hero .hero-title{
    max-width:100% !important;
    overflow-wrap:break-word;
  }
  .btn,
  button,
  input,
  select,
  textarea{
    max-width:100%;
    box-sizing:border-box;
  }
  .gallery-grid,
  .guest-moments-grid{
    width:100%;
  }
  .booking-bar{
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .site-footer{
    overflow:hidden;
  }
}

@media (max-width: 480px){
  .subpage-hero{
    height:72vh !important;
    min-height:500px !important;
  }
  .subpage-hero .hero-content{
    padding:88px 16px 36px !important;
  }
  .subpage-hero .hero-title{
    font-size:clamp(2.35rem,11vw,3.7rem) !important;
    line-height:1 !important;
  }
  .subpage-hero .hero-subtitle{
    font-size:.9rem !important;
    line-height:1.55 !important;
  }
  .hero-title{
    font-size:clamp(2.5rem,12vw,4rem) !important;
  }
  .hero-subtitle{
    font-size:.92rem;
    line-height:1.6;
  }
  .booking-bar{
    border-radius:18px !important;
    padding:14px !important;
  }
  .booking-bar form,
  .booking-form{
    grid-template-columns:1fr !important;
  }
  .booking-bar .btn,
  .booking-bar button{
    width:100%;
  }
}
