:root{
  --black:#020a0d;
  --emerald:#062028;
  --emerald-deep:#04141a;
  --cream:#dcefea;
  --gold:#5bd9b8;
  --gold-bright:#8fefc9;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--black);color:var(--cream);line-height:1.5;-webkit-font-smoothing:antialiased;font-weight:300;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
em{font-family:'Playfair Display',serif;font-style:italic;font-weight:500;color:var(--gold-bright)}

/* gold underline draw under italic */
em.draw{position:relative;display:inline-block}
em.draw::after{content:"";position:absolute;left:0;right:0;bottom:-.05em;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) .6s}
.in-view em.draw::after,.hero em.draw::after,.page-hero em.draw::after{transform:scaleX(1)}

/* BTN */
.btn{padding:1.1rem 2.6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.28em;font-family:inherit;font-weight:500;cursor:pointer;border:none;display:inline-block;text-align:center;position:relative;overflow:hidden;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .25s var(--ease-soft);will-change:auto}
.btn::before{content:"";position:absolute;top:0;left:-120%;width:80%;height:100%;background:linear-gradient(90deg,transparent,rgba(220,239,234,.22),transparent);transform:skewX(-18deg);transition:left .8s var(--ease);pointer-events:none}
.btn:hover::before{left:130%}
.btn-gold{background:var(--gold);color:var(--black)}
.btn-gold:hover{background:var(--gold-bright)}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid rgba(220,239,234,.5)}
.btn-ghost:hover{border-color:var(--cream);background:rgba(220,239,234,.05)}

/* NAV */
.nav{position:absolute;top:0;left:0;right:0;z-index:20;padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.32em;color:var(--cream);background:transparent}
.nav.solid{position:sticky;background:rgba(4,20,26,.78);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid rgba(91,217,184,.18)}
.nav-logo{font-family:'Playfair Display',serif;font-style:italic;font-size:1.4rem;letter-spacing:.04em;text-transform:none;color:var(--gold);transition:color .25s,letter-spacing .4s var(--ease)}
.nav-logo:hover{letter-spacing:.08em}
.nav-links{display:flex;gap:3rem}
.nav-links a{opacity:.75;transition:opacity .25s,color .25s;position:relative;padding:.3rem 0}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav-links a:hover{opacity:1;color:var(--gold-bright)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.nav-links a.active{opacity:1;color:var(--gold)}
.nav-cta{padding:.7rem 1.4rem;border:1px solid var(--gold);color:var(--gold);transition:background .3s var(--ease),color .3s var(--ease),transform .25s var(--ease-soft);will-change:auto}
.nav-cta:hover{background:var(--gold);color:var(--black)}
.lang-toggle{display:inline-flex;border:1px solid rgba(91,217,184,.4);overflow:hidden;margin-right:.4rem}
.lang-toggle button{background:transparent;border:none;color:rgba(220,239,234,.55);padding:.55rem .7rem;font:inherit;font-family:inherit;font-size:.62rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease)}
.lang-toggle button:hover{color:var(--gold)}
.lang-toggle button.active{background:var(--gold);color:var(--black)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem}
.burger span{width:22px;height:1px;background:var(--cream);transition:.25s}

/* CINEMATIC PAGE PRELOADER */
body.loading{overflow:hidden}
.preloader{position:fixed;inset:0;z-index:99999;background:var(--emerald-deep);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2.4rem;will-change:transform;transition:transform 1.1s cubic-bezier(.7,0,.3,1)}
.preloader::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-bright),transparent);transform:translateY(0);opacity:0;transition:opacity .4s,transform 1.1s cubic-bezier(.7,0,.3,1)}
.preloader.done{transform:translateY(-100%);pointer-events:none}
.preloader.done::after{opacity:1;transform:translateY(0)}
.pre-content{display:flex;flex-direction:column;align-items:center;gap:1.6rem;width:320px;max-width:78%}
.pre-infinity{width:140px;height:70px;color:var(--gold);overflow:visible}
.pre-infinity path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-dasharray:1400;stroke-dashoffset:1400;animation:preDraw 1.4s cubic-bezier(.6,0,.4,1) .15s forwards}
@keyframes preDraw{to{stroke-dashoffset:0}}
.pre-text{display:flex;flex-wrap:wrap;justify-content:center;font-family:'Playfair Display',serif;font-size:.95rem;color:var(--cream);letter-spacing:.46em;text-transform:uppercase;font-weight:400;padding-left:.46em}
.pre-text span{display:inline-block;opacity:0;transform:translateY(10px);animation:preLetter .55s var(--ease) forwards;animation-delay:calc(1.1s + var(--i,0) * .035s)}
@keyframes preLetter{to{opacity:1;transform:none}}
.pre-bar{width:100%;height:1px;background:rgba(91,217,184,.18);overflow:hidden;margin-top:.8rem}
.pre-bar-fill{width:0;height:100%;background:linear-gradient(90deg,var(--gold) 0%,var(--gold-bright) 100%);animation:preBar 2s cubic-bezier(.65,0,.35,1) .35s forwards}
@keyframes preBar{to{width:100%}}
.pre-percent{font-family:'Playfair Display',serif;font-style:italic;font-size:.78rem;color:var(--gold);letter-spacing:.32em;font-feature-settings:"tnum"}
.pre-percent::after{content:"%";margin-left:.1em;opacity:.6}
.pre-tagline{font-size:.62rem;text-transform:uppercase;letter-spacing:.5em;color:rgba(220,239,234,.4);opacity:0;animation:preTag 1s var(--ease) 1.7s forwards}
@keyframes preTag{to{opacity:1}}

/* SCROLL PROGRESS METER */
.scroll-meter{position:fixed;top:0;left:0;right:0;height:2px;z-index:99997;background:rgba(91,217,184,.08);pointer-events:none}
.scroll-meter-fill{height:100%;width:var(--progress,0%);background:linear-gradient(90deg,var(--gold) 0%,var(--gold-bright) 100%);box-shadow:0 0 8px rgba(91,217,184,.45);transition:width .08s linear}

/* LAZY PHOTO REVEAL — blur-up */
img.lazy-blur{filter:blur(20px) saturate(.8);transition:filter 1s var(--ease),opacity 1s var(--ease);opacity:.4}
img.lazy-blur.loaded{filter:blur(0) saturate(1);opacity:1}

/* CLICK SPARKLE BURST */
.click-spark{position:fixed;width:7px;height:7px;background:radial-gradient(circle,var(--gold-bright) 0%,var(--gold) 40%,transparent 75%);border-radius:50%;pointer-events:none;z-index:99998;box-shadow:0 0 8px rgba(91,217,184,.7);animation:sparkBurst .85s cubic-bezier(.22,1,.36,1) forwards;will-change:transform,opacity;left:0;top:0}
@keyframes sparkBurst{
  0%{transform:translate(calc(var(--ox) - 50%),calc(var(--oy) - 50%)) scale(.3);opacity:1}
  100%{transform:translate(calc(var(--ox) - 50% + var(--dx)),calc(var(--oy) - 50% + var(--dy) - 6px)) scale(0);opacity:0}
}

/* HERO LETTER REPULSION — JS sets --rx/--ry per letter */
.hero h1 .ch.repel{animation:none !important;opacity:1;transition:transform .55s cubic-bezier(.34,1.56,.64,1);transform:translate(var(--rx,0),var(--ry,0)) rotate(var(--rr,0deg))}

/* LOGO LETTER WAVE on hover */
.nav-logo{cursor:pointer;display:inline-block}
.nav-logo .lt{display:inline-block;transition:transform .35s cubic-bezier(.34,1.56,.64,1);will-change:auto}
.nav-logo:hover .lt{animation:logoWave .9s var(--ease) both}
.nav-logo:hover .lt:nth-child(1){animation-delay:0s}
.nav-logo:hover .lt:nth-child(2){animation-delay:.04s}
.nav-logo:hover .lt:nth-child(3){animation-delay:.08s}
.nav-logo:hover .lt:nth-child(4){animation-delay:.12s}
.nav-logo:hover .lt:nth-child(5){animation-delay:.16s}
.nav-logo:hover .lt:nth-child(6){animation-delay:.2s}
.nav-logo:hover .lt:nth-child(7){animation-delay:.24s}
.nav-logo:hover .lt:nth-child(8){animation-delay:.28s}
.nav-logo:hover .lt:nth-child(9){animation-delay:.32s}
.nav-logo:hover .lt:nth-child(10){animation-delay:.36s}
.nav-logo:hover .lt:nth-child(11){animation-delay:.4s}
.nav-logo:hover .lt:nth-child(12){animation-delay:.44s}
.nav-logo:hover .lt:nth-child(13){animation-delay:.48s}
.nav-logo:hover .lt:nth-child(14){animation-delay:.52s}
.nav-logo:hover .lt:nth-child(15){animation-delay:.56s}
.nav-logo:hover .lt:nth-child(16){animation-delay:.6s}
.nav-logo:hover .lt:nth-child(17){animation-delay:.64s}
.nav-logo:hover .lt:nth-child(18){animation-delay:.68s}
@keyframes logoWave{0%{transform:translateY(0) rotate(0)}40%{transform:translateY(-10px) rotate(-6deg);color:var(--gold-bright)}100%{transform:translateY(0) rotate(0)}}

/* MESH GRADIENT BLOBS (animated color clouds) */
.mesh{position:absolute;inset:-15%;z-index:1;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:.55;filter:blur(0)}
.mesh-blob{position:absolute;border-radius:50%;filter:blur(90px);will-change:auto}
.mesh-blob.b1{width:55vw;height:55vw;max-width:780px;max-height:780px;background:radial-gradient(circle,rgba(91,217,184,.85),transparent 65%);top:-12%;left:-10%;animation:blobA 22s ease-in-out infinite alternate}
.mesh-blob.b2{width:50vw;height:50vw;max-width:700px;max-height:700px;background:radial-gradient(circle,rgba(15,94,74,.9),transparent 65%);bottom:-18%;right:-12%;animation:blobB 26s ease-in-out infinite alternate}
.mesh-blob.b3{width:60vw;height:60vw;max-width:840px;max-height:840px;background:radial-gradient(circle,rgba(216,184,122,.7),transparent 65%);top:35%;left:40%;animation:blobC 20s ease-in-out infinite alternate}
.mesh-blob.b4{width:42vw;height:42vw;max-width:560px;max-height:560px;background:radial-gradient(circle,rgba(132,84,52,.7),transparent 70%);top:55%;left:8%;animation:blobD 30s ease-in-out infinite alternate}
@keyframes blobA{0%{transform:translate(0,0) scale(1)}50%{transform:translate(20vw,15vh) scale(1.25)}100%{transform:translate(35vw,28vh) scale(1.4)}}
@keyframes blobB{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-18vw,-12vh) scale(1.15)}100%{transform:translate(-32vw,-22vh) scale(1.3)}}
@keyframes blobC{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-30%,-65%) scale(1.2)}100%{transform:translate(-60%,-35%) scale(1.35)}}
@keyframes blobD{0%{transform:translate(0,0) scale(1)}50%{transform:translate(15vw,-10vh) scale(1.2)}100%{transform:translate(25vw,-20vh) scale(1.4)}}

/* MASSIVE INFINITY SYMBOL */
.infinity-mark{position:absolute;top:50%;left:50%;width:min(1100px,140vw);height:auto;transform:translate(-50%,-50%);opacity:.14;z-index:1;pointer-events:none;color:var(--gold)}
.infinity-mark svg{width:100%;height:auto;display:block;animation:infinitySpin 32s linear infinite}
.infinity-mark path{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:1400;stroke-dashoffset:1400;animation:infinityDraw 3.4s 0.8s var(--ease) forwards, infinityBreathe 6s 4.4s ease-in-out infinite}
@keyframes infinityDraw{to{stroke-dashoffset:0}}
@keyframes infinityBreathe{0%,100%{stroke-width:1.2;filter:drop-shadow(0 0 0 transparent)}50%{stroke-width:2;filter:drop-shadow(0 0 14px rgba(91,217,184,.55))}}
@keyframes infinitySpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* FLOATING GOLD EMBERS (rise upward, twinkle) */
.embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.embers span{position:absolute;bottom:-20px;width:3px;height:3px;border-radius:50%;background:radial-gradient(circle,var(--gold) 0%,rgba(91,217,184,.4) 40%,transparent 70%);box-shadow:0 0 6px rgba(91,217,184,.5);animation:emberRise linear infinite,emberTwinkle ease-in-out infinite}
.embers span:nth-child(1){left:4%;animation-duration:14s,2.4s;animation-delay:-2s,0s}
.embers span:nth-child(2){left:11%;animation-duration:18s,3.1s;animation-delay:-5s,-.4s;width:2px;height:2px}
.embers span:nth-child(3){left:18%;animation-duration:11s,2.8s;animation-delay:-8s,-.8s}
.embers span:nth-child(4){left:24%;animation-duration:16s,2.2s;animation-delay:-1s,-1.2s;width:4px;height:4px}
.embers span:nth-child(5){left:31%;animation-duration:13s,3.4s;animation-delay:-6s,-.2s}
.embers span:nth-child(6){left:38%;animation-duration:20s,2.6s;animation-delay:-3s,-1.6s;width:2px;height:2px}
.embers span:nth-child(7){left:45%;animation-duration:15s,2.9s;animation-delay:-9s,-.5s}
.embers span:nth-child(8){left:52%;animation-duration:12s,3.2s;animation-delay:-4s,-1s}
.embers span:nth-child(9){left:58%;animation-duration:17s,2.5s;animation-delay:-7s,-.3s;width:4px;height:4px}
.embers span:nth-child(10){left:65%;animation-duration:14s,2.7s;animation-delay:-2s,-.9s}
.embers span:nth-child(11){left:72%;animation-duration:19s,3s;animation-delay:-10s,-1.4s;width:2px;height:2px}
.embers span:nth-child(12){left:79%;animation-duration:13s,2.4s;animation-delay:-5s,-.7s}
.embers span:nth-child(13){left:85%;animation-duration:16s,3.3s;animation-delay:-8s,-.1s}
.embers span:nth-child(14){left:91%;animation-duration:11s,2.8s;animation-delay:-1s,-1.1s;width:3px;height:3px}
.embers span:nth-child(15){left:96%;animation-duration:18s,3.1s;animation-delay:-6s,-1.7s}
@keyframes emberRise{from{transform:translateY(0) translateX(0)}to{transform:translateY(-110vh) translateX(40px)}}
@keyframes emberTwinkle{0%,100%{opacity:.2}50%{opacity:.95}}

/* HERO */
.hero{min-height:100vh;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--emerald-deep)}
.hero-bg{position:absolute;inset:0;background:url('../assets/photo-1.webp') center 25%/cover no-repeat;opacity:.65;filter:saturate(1.05) contrast(1.15);transform:none;animation:none;will-change:auto}
.hero-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,transparent 0%,transparent 35%,rgba(0,0,0,.55) 75%,rgba(0,0,0,.92) 100%);pointer-events:none;z-index:1}
.hero-bg::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.18;mix-blend-mode:overlay;pointer-events:none;z-index:2}
@keyframes kenBurns{0%{transform:scale(1.1) translate(0,0)}100%{transform:scale(1.2) translate(-2%,-1.6%)}}
.hero-particles{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 25% 30%,rgba(91,217,184,.55),transparent 60%),radial-gradient(1px 1px at 70% 60%,rgba(220,239,234,.4),transparent 60%),radial-gradient(1px 1px at 45% 80%,rgba(91,217,184,.4),transparent 60%),radial-gradient(2px 2px at 80% 20%,rgba(216,184,122,.35),transparent 60%),radial-gradient(1px 1px at 15% 70%,rgba(220,239,234,.32),transparent 60%),radial-gradient(1px 1px at 90% 90%,rgba(91,217,184,.45),transparent 60%),radial-gradient(2px 2px at 35% 12%,rgba(216,184,122,.3),transparent 60%),radial-gradient(1px 1px at 60% 40%,rgba(220,239,234,.35),transparent 60%);background-size:700px 700px;animation:drift 80s linear infinite;opacity:.65;z-index:1;pointer-events:none}
@keyframes drift{from{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0}to{background-position:300px -200px,-220px 320px,400px 220px,-310px -290px,210px 410px,-410px 200px,260px -160px,-180px 280px}}
.hero-spotlight{position:absolute;inset:0;background:radial-gradient(circle 380px at var(--mx,50%) var(--my,50%),rgba(91,217,184,.13),transparent 60%);z-index:1;pointer-events:none;transition:background .25s ease-out}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(8,10,11,.25) 0%,rgba(8,10,11,.85) 80%);z-index:1;pointer-events:none}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,11,.95) 0%,transparent 25%,transparent 75%,rgba(8,10,11,.95) 100%);z-index:1;pointer-events:none}

.hero-content{position:relative;z-index:3;text-align:center;padding:0 2rem;max-width:980px}
.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.5em;color:var(--gold);margin-bottom:3rem;font-weight:400;display:inline-flex;align-items:center;gap:1.4rem;opacity:0;animation:fadeIn .9s .3s var(--ease) forwards}
.eyebrow::before,.eyebrow::after{content:"";display:inline-block;height:1px;background:var(--gold);width:0;animation:ruleExtend 1.4s .8s var(--ease) forwards}
@keyframes ruleExtend{to{width:42px}}

.hero h1{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(3.5rem,9vw,8.5rem);line-height:.95;letter-spacing:-.02em;color:var(--cream);margin-bottom:2.5rem}
.hero h1 .line{display:block;overflow:hidden;padding:.05em 0}
.hero h1 .line.italic{font-style:italic;color:var(--gold-bright)}
.hero h1 .ch{display:inline-block;opacity:0;transform:translateY(110%) rotate(8deg);animation:letterIn 1.05s var(--ease) forwards;animation-delay:calc(.55s + var(--i,0) * .04s)}
.hero h1 .line.italic .ch{transform:translateY(110%) rotate(-8deg);animation-delay:calc(1.05s + var(--i,0) * .045s)}
@keyframes letterIn{to{opacity:1;transform:translateY(0) rotate(0)}}

.hero-tag{font-size:.85rem;font-weight:300;color:rgba(220,239,234,.7);letter-spacing:.18em;text-transform:uppercase;margin-bottom:3rem;opacity:0;animation:fadeIn 1s 1.7s var(--ease) forwards}
.hero-tag::before,.hero-tag::after{content:"—";color:var(--gold);margin:0 1rem}

.hero-ctas{display:flex;gap:1rem;justify-content:center;opacity:0;animation:fadeUp 1s 2s var(--ease) forwards;flex-wrap:wrap}

.hero-info{position:absolute;bottom:2rem;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:0 3rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.32em;color:rgba(220,239,234,.6);opacity:0;animation:fadeIn 1.2s 2.3s var(--ease) forwards}
.hero-info-l,.hero-info-r{display:flex;gap:2.5rem}
.hero-info strong{color:var(--gold);font-weight:400;letter-spacing:.18em}
.scroll-hint{position:absolute;bottom:6.5rem;left:50%;transform:translateX(-50%);z-index:3;font-size:.6rem;text-transform:uppercase;letter-spacing:.5em;color:rgba(220,239,234,.5);opacity:0;animation:fadeIn 1.2s 2.6s var(--ease) forwards}
.scroll-hint::after{content:"";display:block;width:1px;height:48px;background:linear-gradient(to bottom,var(--gold),transparent);margin:.8rem auto 0;animation:scrollDown 2.4s var(--ease) infinite}
@keyframes scrollDown{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* PAGE HERO */
.page-hero{min-height:55vh;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--emerald);text-align:center;padding:9rem 2rem 5rem;border-bottom:1px solid rgba(91,217,184,.25)}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 700px 400px at center,rgba(91,217,184,.07),transparent 60%);pointer-events:none}
.page-hero .crumb{font-size:.7rem;text-transform:uppercase;letter-spacing:.5em;color:var(--gold);margin-bottom:1.6rem;opacity:0;animation:fadeIn .8s .2s var(--ease) forwards;position:relative;z-index:1}
.page-hero h1{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1;color:var(--cream);opacity:0;animation:fadeUp 1.1s .4s var(--ease) forwards;position:relative;z-index:1}
.page-hero h1 em{font-style:italic;color:var(--gold-bright)}
.page-hero p{margin-top:1.4rem;color:rgba(220,239,234,.65);font-size:1rem;font-weight:300;max-width:560px;margin-left:auto;margin-right:auto;opacity:0;animation:fadeUp 1.1s .7s var(--ease) forwards;position:relative;z-index:1}

/* SVG SECTION DIVIDERS */
.div-svg{display:block;width:100%;height:80px;margin:0;line-height:0}
.div-svg svg{display:block;width:100%;height:100%}
.gold-line{position:relative;height:1px;width:100%;max-width:240px;margin:0 auto;background:rgba(91,217,184,.22);overflow:hidden}
.gold-line::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease)}
.gold-line.in-view::after{transform:scaleX(1)}

/* MARQUEE */
.marquee{padding:2.6rem 0;background:var(--black);border-top:1px solid rgba(91,217,184,.15);border-bottom:1px solid rgba(91,217,184,.15);overflow:hidden;white-space:nowrap;position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:140px;z-index:2;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--black),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--black),transparent)}
.marquee-track{display:inline-block;animation:scroll-x 38s linear infinite;font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.8rem,4vw,3.2rem);color:var(--cream);font-weight:400}
.marquee-track span{margin:0 1.6rem;opacity:.85}
.marquee-track .dot{color:var(--gold);font-style:normal;font-size:.55em;vertical-align:middle;margin:0 .6rem;opacity:1}
@keyframes scroll-x{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:8rem 3rem;position:relative}
.container{max-width:1280px;margin:0 auto;position:relative}

.section-head{text-align:center;margin-bottom:5rem;max-width:680px;margin-left:auto;margin-right:auto}
.section-head .eyebrow{display:inline-block;padding:0;margin-bottom:1.2rem;font-size:.7rem;letter-spacing:.42em;animation:none;opacity:1;color:var(--gold)}
.section-head .eyebrow::before,.section-head .eyebrow::after{display:none}
.section-head h2{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(2.5rem,5vw,4rem);color:var(--cream);line-height:1.05}
.section-head h2 em{font-style:italic;color:var(--gold-bright)}
.section-head p{margin-top:1rem;color:rgba(220,239,234,.65);font-weight:300;font-size:1rem}

/* FLOATING ACCENTS */
.float-svg{position:absolute;color:rgba(91,217,184,.16);pointer-events:none;animation:float 14s ease-in-out infinite;will-change:transform;z-index:0}
.float-svg svg{display:block;width:100%;height:auto}
.float-svg.tl{top:6%;left:3%;width:64px;animation-delay:-2s}
.float-svg.tr{top:12%;right:4%;width:54px;animation-delay:-7s;animation-duration:17s}
.float-svg.bl{bottom:8%;left:5%;width:50px;animation-delay:-4s;animation-duration:19s}
.float-svg.br{bottom:14%;right:3%;width:68px;animation-delay:-11s;animation-duration:22s}
.float-svg.cl{top:50%;left:2%;width:42px;animation-delay:-9s;animation-duration:24s}
.float-svg.cr{top:55%;right:2%;width:46px;animation-delay:-3s;animation-duration:21s}
@keyframes float{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(10px,-14px) rotate(7deg)}}

/* REVEAL */
.reveal{opacity:0;transition:opacity 1s var(--ease),transform 1.1s var(--ease),clip-path 1.2s var(--ease);will-change:opacity,transform}
.reveal-up{transform:translateY(40px)}
.reveal-left{transform:translateX(-50px)}
.reveal-right{transform:translateX(50px)}
.reveal-scale{transform:scale(.92)}
.reveal-clip{clip-path:inset(0 0 100% 0)}
.reveal.in-view{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
.reveal-stagger > *{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);will-change:opacity,transform}
.reveal-stagger.in-view > *{opacity:1;transform:none;transition-delay:calc(var(--si,0) * .1s)}

/* PRICING */
.pricing{background:var(--emerald);position:relative;overflow:hidden}
.pricing::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%) scaleY(0);width:1px;height:60px;background:var(--gold);transform-origin:top;transition:transform 1.2s var(--ease) .3s}
.pricing.in-view::before{transform:translateX(-50%) scaleY(1)}
.tier-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:4rem;perspective:1400px}
.tier{padding:3rem 2rem;border:1px solid rgba(91,217,184,.3);text-align:left;background:rgba(220,239,234,.02);position:relative;transform-style:preserve-3d;transition:border-color .4s var(--ease),background .4s var(--ease),transform .25s var(--ease-soft);will-change:auto}
.tier-inner{transform:translateZ(0);transition:transform .25s var(--ease-soft)}
.tier:hover{border-color:var(--gold);background:rgba(91,217,184,.04)}
.tier:hover .tier-inner{transform:translateZ(30px)}
.tier.featured{border-color:var(--gold);background:rgba(91,217,184,.06)}
.tier.featured::before{content:attr(data-popular);position:absolute;top:-1px;left:50%;transform:translate(-50%,-50%);background:var(--gold);color:var(--black);padding:.4rem 1.2rem;font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;font-weight:500;z-index:2;white-space:nowrap}
.tier.featured::after{content:"";position:absolute;inset:-2px;border:1px solid var(--gold);opacity:0;animation:goldPulse 3.4s var(--ease) infinite;pointer-events:none}
@keyframes goldPulse{0%,100%{opacity:0;transform:scale(1)}50%{opacity:.55;transform:scale(1.012)}}
.tier-name{font-size:.7rem;text-transform:uppercase;letter-spacing:.42em;color:var(--gold);margin-bottom:1.5rem}
.tier-price{font-family:'Playfair Display',serif;font-size:3.6rem;font-weight:400;color:var(--cream);line-height:1;margin-bottom:.4rem}
.tier-price small{font-size:.9rem;color:rgba(220,239,234,.5);font-style:italic}
.tier-desc{font-size:.85rem;color:rgba(220,239,234,.7);margin-bottom:2rem;font-weight:300;border-bottom:1px solid rgba(91,217,184,.2);padding-bottom:1.5rem}
.tier ul{list-style:none}
.tier li{padding:.6rem 0;font-size:.85rem;color:rgba(220,239,234,.85);font-weight:300}
.tier li::before{content:"⌑";color:var(--gold);margin-right:.8rem}

/* SVC LIST */
.svc-list{max-width:880px;margin:0 auto}
.svc-row{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;padding:2rem 0;border-bottom:1px solid rgba(91,217,184,.18);transition:padding-left .4s var(--ease),background .35s var(--ease)}
.svc-row:hover{padding-left:1.4rem;background:rgba(91,217,184,.03)}
.svc-num{font-family:'Playfair Display',serif;font-style:italic;font-size:2rem;color:var(--gold);min-width:60px;transition:transform .4s var(--ease)}
.svc-row:hover .svc-num{transform:translateX(4px) scale(1.1)}
.svc-name{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:400;color:var(--cream)}
.svc-desc{font-size:.85rem;color:rgba(220,239,234,.6);margin-top:.3rem;font-weight:300}
.svc-arrow{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold);font-size:1.2rem;transition:transform .4s var(--ease)}
.svc-row:hover .svc-arrow{transform:translateX(10px)}

/* GALLERY */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1280px;margin:0 auto}
.tile{position:relative;aspect-ratio:1/1;overflow:hidden;cursor:pointer;clip-path:inset(0 0 100% 0);opacity:0;transition:clip-path 1.1s var(--ease),opacity .8s var(--ease)}
.tile.in-view{clip-path:inset(0 0 0 0);opacity:1;transition-delay:calc(var(--si,0) * .08s)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.tile:hover img{transform:scale(1.08)}
.tile-caption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem;transform:translateY(72%);transition:transform .55s var(--ease);background:linear-gradient(180deg,transparent 0%,rgba(8,10,11,.94) 60%);display:flex;align-items:flex-end;min-height:55%}
.tile:hover .tile-caption{transform:translateY(0)}
.tile-caption span{color:var(--cream);font-family:'Playfair Display',serif;font-style:italic;font-size:1.2rem;position:relative;padding-left:1.6rem}
.tile-caption span::before{content:"";position:absolute;left:0;top:50%;width:1.1rem;height:1px;background:var(--gold)}

/* FULL-BLEED IMAGE BREAK */
.img-break{position:relative;height:85vh;min-height:540px;width:100%;overflow:hidden;display:flex;align-items:flex-end;padding:0;background:var(--black)}
.img-break-bg{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;background-position:center 25%;animation:none;will-change:auto;filter:saturate(1.05) contrast(1.15)}
.img-break-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 0%,transparent 55%,rgba(0,0,0,.25) 90%,rgba(0,0,0,.5) 100%);pointer-events:none;z-index:1}
.img-break-bg::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n2)'/%3E%3C/svg%3E");opacity:.15;mix-blend-mode:overlay;pointer-events:none;z-index:2}
@keyframes ibZoom{0%{transform:scale(1) translate(0,0)}100%{transform:scale(1.15) translate(-2%,-1%)}}
.img-break::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 55%,rgba(0,0,0,.4) 85%,rgba(0,0,0,.78) 100%);z-index:3;pointer-events:none}
.img-break::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.3) 0%,transparent 45%);z-index:3;pointer-events:none}
.img-break .ib-inner{position:relative;z-index:2;padding:0 4rem 5rem;max-width:1280px;margin:0 auto;width:100%}
.img-break .ib-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.5em;color:var(--gold);margin-bottom:1.6rem;display:inline-flex;align-items:center;gap:1.4rem}
.img-break .ib-eyebrow::before{content:"";width:42px;height:1px;background:var(--gold)}
.img-break h2{font-family:'Playfair Display',serif;font-size:clamp(2.6rem,7vw,5.4rem);font-weight:400;color:var(--cream);line-height:.98;letter-spacing:-.02em;max-width:880px}
.img-break h2 em{font-style:italic;color:var(--gold-bright)}
.img-break .ib-meta{margin-top:1.6rem;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(220,239,234,.55);max-width:520px;line-height:1.7;font-weight:300}

/* MOSAIC PHOTO GRID (asymmetric editorial) */
.mosaic{padding:7rem 3rem;background:var(--black);position:relative;overflow:hidden}
.mosaic-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:120px;gap:1rem;max-width:1280px;margin:0 auto;perspective:1200px}
.mosaic-tile{position:relative;overflow:hidden;cursor:pointer;background:var(--emerald);transition:transform .5s var(--ease)}
.mosaic-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s}
.mosaic-tile:hover img{transform:scale(1.06)}
.mosaic-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(8,10,11,.85) 100%);opacity:0;transition:opacity .35s}
.mosaic-tile:hover::after{opacity:1}
.mosaic-tile .mt-cap{position:absolute;left:1.2rem;bottom:1.2rem;color:var(--cream);font-family:'Playfair Display',serif;font-style:italic;font-size:1.05rem;z-index:2;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease) .1s,transform .35s var(--ease) .1s}
.mosaic-tile:hover .mt-cap{opacity:1;transform:none}
.mosaic-tile.t1{grid-column:span 3;grid-row:span 3}
.mosaic-tile.t2{grid-column:span 3;grid-row:span 2}
.mosaic-tile.t3{grid-column:span 2;grid-row:span 2}
.mosaic-tile.t4{grid-column:span 2;grid-row:span 3}
.mosaic-tile.t5{grid-column:span 2;grid-row:span 2}
.mosaic-tile.t6{grid-column:span 3;grid-row:span 2}
.mosaic-tile.t7{grid-column:span 3;grid-row:span 2}

/* PRICING SWIPE (replaces grid on home) */
.pricing.swipe{padding:6rem 0 8rem}
.pricing.swipe .container{max-width:none;padding:0}
.pricing.swipe .section-head{padding:0 3rem}
.tier-swipe-wrap{position:relative;perspective:1400px;padding:1rem 0}
.tier-swipe{display:flex;gap:1.6rem;padding:2rem calc(50vw - 220px);overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;transform-style:preserve-3d}
.tier-swipe::-webkit-scrollbar{display:none}
.tier-swipe.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.tier-swipe > .tier{flex:0 0 420px;scroll-snap-align:center;transform-style:preserve-3d;will-change:transform,opacity;transition:opacity .3s var(--ease)}
.tier-swipe > .tier:hover{transform:none}
.tier-swipe > .tier.is-center{box-shadow:0 30px 60px -20px rgba(0,0,0,.6),0 0 40px -10px rgba(91,217,184,.3)}

/* 3D SWIPE SCROLLER */
.scroller-3d-section{padding:7rem 0 8rem;background:var(--black);overflow:hidden;position:relative}
.scroller-3d-section .section-head{margin-bottom:3.5rem;padding:0 2rem}
.scroller-3d-wrap{position:relative;perspective:1400px;perspective-origin:50% 50%;padding:1rem 0 2rem}
.scroller-3d{display:flex;gap:1.6rem;padding:2rem calc(50vw - 180px);overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;transform-style:preserve-3d}
.scroller-3d::-webkit-scrollbar{display:none}
.scroller-3d.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.scroller-card{flex:0 0 320px;height:440px;position:relative;overflow:hidden;scroll-snap-align:center;transform-style:preserve-3d;will-change:transform,opacity;transition:opacity .3s var(--ease);box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.scroller-card img{width:100%;height:100%;object-fit:cover;transition:filter .5s var(--ease);pointer-events:none;-webkit-user-drag:none}
.scroller-card .cap{position:absolute;left:1.4rem;bottom:1.4rem;color:var(--cream);font-family:'Playfair Display',serif;font-style:italic;font-size:1.2rem;background:rgba(8,10,11,.55);padding:.4rem 1rem;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:1px solid var(--gold);opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.scroller-card.is-center .cap{opacity:1;transform:none}
.scroller-card.is-center img{filter:none}
.scroller-card:not(.is-center) img{filter:saturate(.6) brightness(.65)}
.scroller-hint{text-align:center;font-size:.65rem;text-transform:uppercase;letter-spacing:.5em;color:rgba(220,239,234,.4);margin-top:1.5rem;transition:opacity .6s var(--ease)}
.scroller-hint.fade{opacity:0}
.scroller-hint::before,.scroller-hint::after{content:"—";color:var(--gold);margin:0 .8rem}

/* REVIEWS */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1280px;margin:0 auto}
.rev-card{padding:2.4rem;border:1px solid rgba(91,217,184,.25);background:rgba(220,239,234,.02);transition:border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease);position:relative;overflow:hidden}
.rev-card::before{content:"\201C";position:absolute;top:.4rem;left:1.2rem;font-family:'Playfair Display',serif;font-size:5.6rem;color:var(--gold);opacity:.15;line-height:1;pointer-events:none}
.rev-card:hover{border-color:var(--gold);background:rgba(91,217,184,.04);transform:translateY(-4px)}
.rev-stars{color:var(--gold);margin-bottom:1rem;letter-spacing:.1em;font-size:1.05rem;position:relative;z-index:1}
.rev-text{font-family:'Playfair Display',serif;font-style:italic;font-size:1.15rem;color:var(--cream);line-height:1.5;margin-bottom:1.4rem;position:relative;z-index:1}
.rev-name{font-size:.78rem;text-transform:uppercase;letter-spacing:.28em;color:var(--gold)}
.rev-when{font-size:.7rem;color:rgba(220,239,234,.5);margin-top:.3rem}
.big-rating{text-align:center;margin-bottom:5rem}
.big-rating .num{font-family:'Playfair Display',serif;font-size:6rem;color:var(--gold);line-height:1;display:inline-block;font-variant-numeric:tabular-nums}
.big-rating .stars{color:var(--gold);font-size:1.4rem;letter-spacing:.18em;margin-top:.4rem}
.big-rating p{margin-top:.6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.32em;color:rgba(220,239,234,.55)}

/* CONTACT */
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;max-width:1280px;margin:0 auto}
.ct-list{list-style:none;border-top:1px solid rgba(91,217,184,.25);margin-top:1rem}
.ct-list li{padding:1.4rem 0;border-bottom:1px solid rgba(91,217,184,.15);display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:padding-left .3s var(--ease)}
.ct-list li:hover{padding-left:.8rem}
.ct-list strong{font-size:.7rem;text-transform:uppercase;letter-spacing:.28em;color:var(--gold);font-weight:400}
.ct-list a,.ct-list span{font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--cream);font-weight:400;text-align:right}
.ct-list a:hover{color:var(--gold-bright)}
.hours-card{margin-top:2rem;border:1px solid rgba(91,217,184,.25);padding:1.8rem;background:rgba(220,239,234,.02)}
.hours-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--gold);margin-bottom:1rem;font-weight:400}
.hours-list{list-style:none}
.hours-list li{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(91,217,184,.1);font-size:.9rem;color:rgba(220,239,234,.85);font-weight:300}
.hours-list li:last-child{border-bottom:none}
.hours-list .day{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:rgba(220,239,234,.55)}
.hours-list .closed{font-style:italic;color:rgba(220,239,234,.4)}
.map-wrap{height:480px;border:1px solid rgba(91,217,184,.25);overflow:hidden}
.map-wrap iframe{width:100%;height:100%;border:none;display:block;filter:invert(1) hue-rotate(180deg) brightness(.7) saturate(.5)}

/* NEWSLETTER */
.newsletter{background:linear-gradient(135deg,var(--emerald) 0%,var(--emerald-deep) 100%);text-align:center;position:relative;overflow:hidden}
.newsletter::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 800px 300px at center,rgba(91,217,184,.06),transparent 70%);pointer-events:none}
.newsletter h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3rem);color:var(--cream);font-weight:400;margin-bottom:1rem;position:relative}
.newsletter h2 em{color:var(--gold-bright);font-style:italic}
.newsletter p{color:rgba(220,239,234,.65);max-width:560px;margin:0 auto 2.4rem;font-weight:300;position:relative}
.news-form{display:flex;gap:.6rem;max-width:480px;margin:0 auto;position:relative}
.news-form input{flex:1;padding:1.05rem 1.2rem;background:rgba(220,239,234,.05);border:1px solid rgba(91,217,184,.3);color:var(--cream);font:inherit;font-size:.9rem;font-weight:300;letter-spacing:.04em;transition:.3s var(--ease)}
.news-form input::placeholder{color:rgba(220,239,234,.4)}
.news-form input:focus{outline:none;border-color:var(--gold);background:rgba(220,239,234,.08)}
.news-form button{background:var(--gold);color:var(--black);border:none;padding:1.05rem 2rem;font:600 .7rem/1 inherit;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;font-family:inherit;transition:.25s}
.news-form button:hover{background:var(--gold-bright)}

/* FOOTER */
.footer{background:var(--black);padding:5rem 3rem 2rem;border-top:1px solid rgba(91,217,184,.2)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;max-width:1280px;margin:0 auto 3rem}
.footer-logo{font-family:'Playfair Display',serif;font-style:italic;font-size:1.6rem;color:var(--gold);margin-bottom:1rem}
.footer p{color:rgba(220,239,234,.6);font-size:.9rem;font-weight:300}
.footer h5{font-size:.7rem;text-transform:uppercase;letter-spacing:.32em;color:var(--gold);margin-bottom:1.2rem;font-weight:400}
.footer ul{list-style:none}
.footer ul li{padding:.4rem 0;font-size:.9rem;color:rgba(220,239,234,.7);font-weight:300}
.footer ul li a{transition:color .2s,padding-left .3s var(--ease);display:inline-block}
.footer ul li a:hover{color:var(--gold-bright);padding-left:.4rem}
.social{display:flex;gap:.6rem;margin-top:.6rem}
.social a{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid rgba(91,217,184,.4);color:var(--gold);transition:background .25s,color .25s,transform .3s var(--ease-soft)}
.social a:hover{background:var(--gold);color:var(--black);transform:translateY(-3px)}
.social svg{width:16px;height:16px;fill:currentColor}
.footer-bottom{display:flex;justify-content:space-between;padding-top:2rem;border-top:1px solid rgba(91,217,184,.15);font-size:.65rem;text-transform:uppercase;letter-spacing:.32em;color:rgba(220,239,234,.4);max-width:1280px;margin:0 auto}

/* STICKY PILL */
.sticky-pill{position:fixed;right:1.5rem;bottom:1.5rem;z-index:50;padding:1rem 1.6rem;background:var(--gold);color:var(--black);font-size:.7rem;text-transform:uppercase;letter-spacing:.28em;font-weight:500;border-radius:999px;box-shadow:0 12px 40px rgba(91,217,184,.35);opacity:0;transform:translateY(30px) scale(.9);pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease),background .25s}
.sticky-pill.show{opacity:1;transform:none;pointer-events:auto;animation:pillPulse 3.2s ease-in-out infinite 1s}
.sticky-pill:hover{background:var(--gold-bright)}
@keyframes pillPulse{0%,100%{box-shadow:0 12px 40px rgba(91,217,184,.35)}50%{box-shadow:0 12px 56px rgba(91,217,184,.7)}}

/* PAGE TRANSITION FADE */
.page-fade{position:fixed;inset:0;background:var(--emerald-deep);z-index:99999;opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
.page-fade.show{opacity:1;pointer-events:auto}
body.entering{animation:pageEnter .55s var(--ease) backwards}
@keyframes pageEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* MOBILE */
@media (max-width:900px){
  .nav{padding:1.2rem 1.4rem;flex-wrap:nowrap;gap:.6rem;align-items:center}
  .nav-logo{flex:1;font-size:1.15rem}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--emerald-deep);flex-direction:column;padding:1.5rem;gap:.8rem;border-top:1px solid rgba(91,217,184,.2)}
  .nav-links.open{display:flex}
  .burger{display:flex;flex-shrink:0}
  .nav-cta{display:none}
  .hero{padding-top:5rem}
  .hero-content{padding-top:1rem}
  .hero-info{flex-direction:column;gap:1rem;align-items:center;font-size:.55rem;letter-spacing:.18em;position:static;padding:2rem 1rem}
  .hero-info-l,.hero-info-r{gap:1rem}
  .scroll-hint{display:none}
  .tier-row{grid-template-columns:1fr;gap:1rem}
  .tier{transform:none !important}
  .tier-inner{transform:none !important}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .rev-grid{grid-template-columns:1fr;gap:1rem}
  .ct-grid{grid-template-columns:1fr;gap:2rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .news-form{flex-direction:column}
  section{padding:5rem 1.5rem}
  .footer{padding:3rem 1.5rem 2rem}
  .footer-bottom{flex-direction:column;gap:.5rem;text-align:center}
  .marquee-track{font-size:1.6rem}
  .float-svg{display:none}
  .sticky-pill{right:1rem;bottom:1rem;padding:.8rem 1.2rem;font-size:.62rem}
  .scroller-3d{padding:1.5rem calc(50vw - 130px);gap:1rem}
  .scroller-card{flex-basis:240px;height:340px}
  .scroller-3d-section{padding:4rem 0 5rem}
  .img-break{height:75vh;min-height:480px}
  .img-break .ib-inner{padding:0 1.5rem 3rem}
  .mosaic{padding:4rem 1rem}
  .mosaic-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;gap:.5rem}
  .mosaic-tile.t1{grid-column:span 2;grid-row:span 2}
  .mosaic-tile.t2{grid-column:span 1;grid-row:span 2}
  .mosaic-tile.t3{grid-column:span 1;grid-row:span 1}
  .mosaic-tile.t4{grid-column:span 1;grid-row:span 2}
  .mosaic-tile.t5{grid-column:span 1;grid-row:span 1}
  .mosaic-tile.t6{grid-column:span 2;grid-row:span 1}
  .mosaic-tile.t7{grid-column:span 2;grid-row:span 1}
  .tier-swipe{padding:1.5rem calc(50vw - 160px);gap:1rem}
  .tier-swipe > .tier{flex-basis:300px}
  .pricing.swipe{padding:4rem 0 5rem}
  .pricing.swipe .section-head{padding:0 1.5rem}
  .lang-toggle{margin-right:0;order:3}
  .lang-toggle button{padding:.5rem .6rem;font-size:.58rem}
}

/* REDUCED MOTION */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01s !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:.01s !important}
  .hero-bg,.hero-particles,.marquee-track,.float-svg,.scroll-hint::after,.tier.featured::after,.sticky-pill.show{animation:none !important}
  .reveal,.reveal-stagger > *,.tile{opacity:1 !important;transform:none !important;clip-path:none !important}
  .hero h1 .ch{opacity:1 !important;transform:none !important}
}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;z-index:9999;animation:lbFade .2s ease-out}
.lightbox.open{display:flex}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
.lightbox .lb-img{max-width:92vw;max-height:92vh;border-radius:.5rem;box-shadow:0 30px 80px rgba(0,0,0,.6);object-fit:contain}
.lightbox button{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;font-family:inherit;line-height:1;transition:opacity .15s}
.lightbox .lb-close{top:1rem;right:1.5rem;font-size:2.6rem;opacity:.85}
.lightbox .lb-prev,.lightbox .lb-next{top:50%;transform:translateY(-50%);font-size:4rem;padding:1rem 1.5rem;opacity:.6}
.lightbox .lb-prev:hover,.lightbox .lb-next:hover,.lightbox .lb-close:hover{opacity:1}
.lightbox .lb-prev{left:.5rem}
.lightbox .lb-next{right:.5rem}
@media(max-width:600px){.lightbox .lb-prev,.lightbox .lb-next{font-size:3rem;padding:.6rem .8rem}.lightbox .lb-close{font-size:2.2rem;top:.5rem;right:.8rem}}
