@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap');
:root{--ink:#08090d;--paper:#eff0f3;--accent:#bbc6ff;--muted:#b1b8c8;--gutter:clamp(24px,4.5vw,88px);--ease:cubic-bezier(.22,.75,.22,1);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;overflow-x:clip;background:var(--ink);color:var(--paper);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.06em}small{font-size:12px;line-height:1.6;letter-spacing:.09em;text-transform:uppercase}img{display:block;width:100%;height:100%;object-fit:cover}svg{display:block}::selection{background:var(--accent);color:var(--ink)}main{position:relative;isolation:isolate;overflow-x:clip}
.page-progress{position:fixed;inset:0 0 auto;height:2px;z-index:100;pointer-events:none;background:var(--accent);transform:scaleX(0);transform-origin:left}
.header{position:fixed;inset:0 0 auto;height:88px;padding:0 var(--gutter);z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(8,9,13,var(--header-alpha,0));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.logo{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:600;letter-spacing:-.06em;white-space:nowrap}.logo-name b,.hero-logo-lockup b{color:var(--accent);font-weight:600}.logo-mark{width:60px;height:32px;object-fit:contain;flex-shrink:0;animation:headlight-ignite 7s ease-in-out infinite}
nav{display:flex;gap:32px;font-size:14px;color:#b6bbca}nav a{position:relative;padding:12px 0}nav a:after{content:'';position:absolute;bottom:6px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}nav a:hover:after{transform:scaleX(1)}
.header-book{display:flex;align-items:center;gap:24px;font-size:13px;line-height:1.4;border:1px solid #b5bdd345;border-radius:999px;padding:13px 22px;transition:background .35s,color .35s,border-color .35s}.header-book:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.icon{width:100%;height:100%;flex-shrink:0}.action-icon{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.action-icon .icon{transition:transform .45s var(--ease)}a:hover .action-icon .icon,a:focus-visible .action-icon .icon{transform:translate(3px,-3px)}

/* The hero, photographs and lens study share one midnight surface. */
.hero{position:relative;isolation:isolate;height:100svh;min-height:760px;overflow:hidden;--hero-progress:0}.hero-motion{position:absolute;inset:0;z-index:-3;animation:hero-drift 22s ease-in-out infinite alternate paused}.hero-image{position:absolute;inset:0;object-position:center 61%;filter:brightness(.85);transform:scale(calc(1.02 + var(--hero-progress)*.055))}.hero-glow{position:absolute;inset:38% 8% 7%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse,#bbc6ff18,transparent 65%);opacity:.4;animation:light-breathe 14s ease-in-out infinite alternate paused}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#08090d72,transparent 36%,transparent 62%,var(--ink) 100%)}
.hero-content{position:absolute;top:18%;left:var(--gutter);right:var(--gutter);text-align:center}.hero-logo-lockup{position:relative;display:flex;width:max-content;max-width:100%;align-items:center;justify-content:center;gap:16px;margin:0 auto 28px;font-size:29px;font-weight:600;letter-spacing:-.06em;padding-bottom:12px}.hero-logo-lockup .logo-mark{width:118px;height:50px}.hero-logo-lockup:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(0);transform-origin:left;animation:headlight-path 7s var(--ease) infinite}.hero-content>small{display:block;color:#c8cfdd;margin-bottom:26px;font-size:12px}.hero h1{font-size:clamp(80px,8.7vw,150px);font-weight:600;line-height:1.04;letter-spacing:-.065em}.hero h1>span{display:block}.hero h1 b{font-weight:400}.accent{color:var(--accent)}
.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:46px;display:flex;justify-content:space-between;align-items:center;gap:24px}.hero-bottom p{font-size:15px;line-height:1.5;color:#c8cddd}.hero-index{font-size:12px;color:#939cb1;letter-spacing:.08em}.scroll-button{display:flex;align-items:center;gap:15px;font-size:12px;letter-spacing:.015em}.scroll-orbit{width:46px;height:46px;border:1px solid #ffffff48;border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:background .4s,border-color .4s}.scroll-orbit .icon{width:22px;height:22px}.scroll-button:hover .scroll-orbit{background:#bbc6ff10;border-color:var(--accent)}.cue-line{animation:scroll-glide 3.8s ease-in-out infinite paused}.motion-visible .cue-line{animation-play-state:running}

.eyebrow{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;font-size:12px;line-height:1.6;letter-spacing:.055em;text-transform:uppercase;color:#a1aabe}.eyebrow small{color:#ced4e2}.eyebrow>span{text-align:right;max-width:40%}.intro{position:relative;padding:90px var(--gutter) 100px}.intro-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin:68px 0 76px}.intro h2{font-size:clamp(56px,6.2vw,98px);line-height:1.1}.intro h2 span{color:#a1aabe}.intro-heading p{font-size:17px;line-height:1.8;color:var(--muted);margin-right:4%;padding-bottom:7px}
.gallery{display:grid;grid-template-columns:1.45fr 1fr;gap:7%}.photo{--photo-progress:0;position:relative}.photo>div{position:relative;overflow:hidden;mask-image:linear-gradient(180deg,transparent,#000 10%,#000 88%,transparent)}.photo img{height:112%;transform:translate3d(0,calc(var(--photo-progress)*-8%),0)}.photo-wide>div{height:620px}.photo-wide img{object-position:center 58%}.photo-tall{padding-top:140px}.photo-tall>div{height:480px}.photo-tall img{object-position:center 52%}.photo figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:22px;font-size:15px;line-height:1.5}.photo figcaption>span:last-child{color:#909bb0;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.image-note{font-size:12px;color:#939cb0;line-height:1.7;margin-top:30px}

/* Native scrolling drives the drawing, optical assembly and light ignition. */
.experience{position:relative;height:240svh;--progress:0;--trace:0;--optic:0;--ignite:0;--blueprint:1;--photo-reveal:0}.experience-stage{position:sticky;top:0;height:100svh;min-height:620px;isolation:isolate;overflow:clip;background:var(--ink)}.experience-atmosphere{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 70% 62%,#59669426,transparent 65%);opacity:calc(.5 + var(--ignite)*.5)}.experience-photo{position:absolute;inset:0;z-index:-3;opacity:var(--photo-reveal);mask-image:linear-gradient(180deg,transparent,#000 35%,#000 64%,transparent)}.experience-photo img{object-position:center 52%;filter:brightness(.62);transform:scale(calc(1.12 - var(--progress)*.06))}
.stage-top{position:absolute;top:118px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:24px;font-size:12px;line-height:1.5;letter-spacing:.07em;text-transform:uppercase;color:#b1bdd3}.stage-scroll{display:flex;align-items:center;gap:12px}.stage-scroll .icon{width:18px;height:18px}
.scene-stack{position:absolute;top:23%;left:var(--gutter);right:var(--gutter);display:grid;max-width:780px;z-index:3}.scene{grid-area:1/1;opacity:var(--scene-opacity,0);transform:translate3d(0,var(--scene-offset,0px),0);pointer-events:none}.scene:first-child{--scene-opacity:1}.scene small{display:block;color:var(--accent);margin-bottom:16px}.scene h2{font-size:clamp(56px,6.1vw,96px);line-height:1.04}.scene h2>span{color:var(--accent)}.scene p{font-size:17px;line-height:1.65;color:#c2cad9;margin-top:22px;max-width:330px}
.lens-visual{position:absolute;left:28%;right:-6%;top:37%;height:53%;transform:translate3d(0,calc((1 - var(--optic))*14px),0) scale(calc(.96 + var(--optic)*.04));transform-origin:center;pointer-events:none}.lens-visual>svg{width:100%;height:100%;overflow:visible}.lens-guide{opacity:calc(var(--blueprint)*.6)}.lens-trace{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--trace));opacity:calc(.35 + var(--trace)*.65)}.lens-body{opacity:var(--optic)}.lens-optic{opacity:var(--optic);transform:translateY(calc((1 - var(--optic))*18px))}.lens-light{opacity:var(--ignite)}.lens-light .led{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--ignite))}.lens-beam{opacity:calc(var(--ignite)*.7);transform-origin:740px 210px;transform:scaleX(calc(.5 + var(--ignite)*.5))}
.stage-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:44px;display:flex;align-items:center;gap:24px;font-size:13px;line-height:1.5;color:#c0c9db;z-index:3}.scene-track{height:2px;width:160px;background:#c0ceff25;overflow:hidden}.scene-track i{display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(var(--progress));transform-origin:left}.stage-bottom>span:last-child{margin-left:auto;color:#a2adc2}

.service{position:relative;padding:110px var(--gutter) 100px}.service:before{content:'';position:absolute;inset:5% 0 -20%;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 95% 60%,#434d7520,transparent 65%)}.service-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin:68px 0 74px}.service h2{font-size:clamp(68px,8vw,126px);line-height:1.06}.service h2 span{color:var(--accent)}.service-heading>p{font-size:16px;line-height:1.8;color:var(--muted);margin-right:4%}.service-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:8%;align-items:center}.service-image{height:640px;overflow:hidden;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent)}.service-image img{object-position:center 66%}.service-content{max-width:590px}.service-content>small{color:#a7b2c8}
.price{font-size:clamp(170px,19vw,290px);line-height:1.13;font-weight:400;letter-spacing:-.09em;white-space:nowrap;margin:8px 0 0}.price sup{font-size:.29em;position:relative;vertical-align:top;top:.42em;letter-spacing:0;margin-right:.09em}.price>span{color:var(--accent);font-size:.6em}.price-caption{display:flex;justify-content:space-between;gap:20px;padding-bottom:25px;border-bottom:1px solid #c3ccdf30;font-size:12px;line-height:1.6;letter-spacing:.05em;text-transform:uppercase;color:#c2cbe0}.service-content>p{font-size:17px;line-height:1.8;color:#b5bfd2;margin:32px 0;max-width:460px}.booking-link{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--accent);color:#111629;padding:24px 26px;border-radius:7px;font-size:16px;font-weight:600;transition:background .4s,box-shadow .4s}.booking-link:hover{background:#d4dcff;box-shadow:0 10px 45px #bbc6ff18}.single{display:block;margin-top:20px;font-size:13px;text-transform:none;letter-spacing:0;color:#a3afc7}

/* Lavender illumination carries through the process into contact. */
.process{position:relative;padding:112px var(--gutter) 138px;isolation:isolate}.process:before{content:'';position:absolute;inset:-140px 0 -180px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 45% 50%,#464f815c 0%,#30385532 40%,transparent 72%)}.process-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:36px}.process-heading>small{color:#c1cbeb;padding-top:10px}.process h2{font-size:clamp(56px,6.3vw,100px);line-height:1.1;width:66%}.process ol{list-style:none;margin:84px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4%}.process li{position:relative;border-top:1px solid #c1ceff45;padding-top:24px}.process li>span:first-child{font-size:14px;letter-spacing:.05em;color:#b4c4f4}.process h3{font-size:clamp(28px,2.6vw,42px);line-height:1.16;letter-spacing:-.045em;margin-top:45px}.process-mark{position:absolute;right:0;top:20px;width:34px;height:34px;color:var(--accent)}.process .polish-ring{transform-origin:12px 12px;animation:polish-turn 12s linear infinite paused}.process.motion-visible .polish-ring{animation-play-state:running}
.contact{position:relative;padding:86px var(--gutter) 110px}.contact-main{display:flex;align-items:flex-end;justify-content:space-between;gap:8%;margin-top:72px}.contact h2{font-size:clamp(78px,10.2vw,162px);line-height:1.05}.contact h2>span{color:var(--accent)}.contact-action{width:31%;min-width:260px}.contact-action>p{font-size:16px;line-height:1.7;color:#b3bdd0;max-width:260px}.contact-action>a{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #c4d0f055;border-bottom:1px solid #c4d0f055;padding:28px 0;margin-top:32px;font-size:24px;line-height:1.7}.contact-action small{font-size:14px;color:#afbde0;text-transform:none;letter-spacing:0}.contact-action .action-icon{width:48px;height:48px;color:var(--accent)}
footer{padding:35px var(--gutter) 34px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:24px;color:#a0acc3;font-size:12px;line-height:1.6}.footer-top a{display:flex;align-items:center;gap:12px;color:var(--accent)}.footer-top .icon{width:16px;height:16px}.wordmark{font-size:14.2vw;font-weight:500;line-height:1.55;letter-spacing:-.08em;white-space:nowrap;color:#d8deec;margin-left:-.03em}.brand-sign{display:inline-flex;width:.68em;height:.45em;margin:.24em 0 0 .11em;vertical-align:top}.brand-sign .logo-mark{width:100%;height:100%}.footer-bottom{display:flex;justify-content:space-between;gap:30px;font-size:12px;line-height:1.7;color:#8d9ab4}.footer-bottom>span:last-child{max-width:560px}.footer-bottom a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#8d9ab450}.mobile-book{display:none}.reveal{opacity:0;transform:translate3d(0,26px,0);transition:opacity .85s var(--ease),transform 1.1s var(--ease)}.reveal.is-revealed{opacity:1;transform:none}

@media(max-width:1000px){nav{gap:20px}.hero h1{font-size:9.2vw}.intro-heading p{margin-right:0;font-size:16px}.intro h2{font-size:6.4vw}.photo-wide>div{height:480px}.photo-tall>div{height:380px}.lens-visual{left:20%;right:-16%;top:44%;height:46%}.scene h2{font-size:7.8vw}.service-layout{gap:5%}.service-image{height:540px}.price{font-size:22vw}.process h3{font-size:30px}.contact-action{min-width:235px}}
@media(max-width:700px){
 :root{--gutter:24px}html{scroll-padding-top:88px}.header{height:78px;gap:12px;padding-top:env(safe-area-inset-top,0px)}.logo{font-size:22px;gap:7px}.logo-mark{width:45px;height:25px}nav{display:none}.header-book{font-size:13px;padding:11px 15px;gap:12px;min-height:44px}.header-book .action-icon{width:18px;height:18px}
 .hero{height:100svh;min-height:700px}.hero-content{top:16%;left:20px;right:20px}.hero-logo-lockup{font-size:23px;gap:12px;margin-bottom:20px;padding-bottom:10px}.hero-logo-lockup .logo-mark{width:86px;height:38px}.hero-content>small{font-size:12px;letter-spacing:.035em;line-height:1.65;max-width:300px;margin:0 auto 22px}.hero h1{font-size:clamp(50px,15.6vw,88px);line-height:1.05;letter-spacing:-.058em}.hero h1 b{display:block}.hero-image{object-fit:cover;object-position:center 61%;filter:brightness(.76)}.hero-shade{background:linear-gradient(180deg,#08090d88,transparent 37%,#08090d08 60%,var(--ink) 100%)}.hero-glow{inset:46% 2% 12%}.hero-bottom{left:var(--gutter);right:var(--gutter);bottom:calc(116px + env(safe-area-inset-bottom));align-items:flex-end;gap:18px}.scroll-button{font-size:13px;line-height:1.5;gap:12px;max-width:60%}.scroll-orbit{width:42px;height:42px}.scroll-orbit .icon{width:21px;height:21px}.hero-bottom p{font-size:13px;line-height:1.55;max-width:105px}.hero-index{display:none}
 .eyebrow{font-size:12px;letter-spacing:.015em;gap:24px}.eyebrow small{font-size:12px;letter-spacing:.035em;max-width:60%}.eyebrow>span{max-width:40%;font-size:12px}.intro{padding:54px var(--gutter) 62px}.intro-heading{display:block;margin:38px 0 42px}.intro h2{font-size:clamp(37px,10.5vw,67px);line-height:1.12;letter-spacing:-.055em}.intro-heading p{font-size:17px;line-height:1.7;margin-top:28px}.gallery{display:block}.photo-wide>div{height:430px}.photo-tall{width:76%;padding-top:0;margin:28px 0 0 auto}.photo-tall>div{height:320px}.photo figcaption{font-size:16px;padding-top:12px;gap:18px}.photo figcaption>span:last-child{font-size:12px;line-height:1.7}.image-note{font-size:12px;line-height:1.7;max-width:260px;margin-top:26px}
 .experience{height:225svh}.experience-stage{height:100svh;min-height:0}.stage-top{top:101px;left:var(--gutter);right:var(--gutter);font-size:12px;letter-spacing:.03em}.stage-scroll{gap:9px}.stage-scroll .icon{width:15px;height:15px}.scene-stack{top:20%;left:var(--gutter);right:var(--gutter)}.scene small{font-size:12px;letter-spacing:.06em;margin-bottom:14px}.scene h2{font-size:clamp(42px,12.4vw,73px);line-height:1.07}.scene p{font-size:16px;line-height:1.65;margin-top:18px;max-width:285px}.lens-visual{left:-9%;right:-9%;top:45%;height:36%;transform:translate3d(0,calc((1 - var(--optic))*8px),0) scale(calc(.96 + var(--optic)*.04))}.stage-bottom{bottom:calc(116px + env(safe-area-inset-bottom));font-size:12px;gap:16px;flex-wrap:wrap}.scene-track{flex:1;max-width:none;width:auto}.stage-bottom>span:last-child{margin:0;flex-basis:100%;font-size:13px}.experience-photo img{object-position:center 54%}
 .service{padding:66px var(--gutter) 68px}.service-heading{display:block;margin:38px 0 36px}.service h2{font-size:clamp(50px,13.2vw,78px);max-width:6em;line-height:1.1;letter-spacing:-.06em}.service-heading>p{font-size:17px;margin:24px 0 0;line-height:1.7}.service-layout{display:flex;flex-direction:column;gap:32px;align-items:stretch}.service-image{height:360px;margin:0 -24px}.service-content{width:100%;max-width:none}.service-content>small{font-size:12px}.price{font-size:clamp(180px,54vw,305px);margin-top:10px;line-height:1.15}.price-caption{font-size:12px;padding-bottom:20px;line-height:1.6;letter-spacing:.015em}.service-content>p{font-size:17px;line-height:1.8;margin:28px 0}.booking-link{font-size:16px;padding:22px 24px;min-height:66px}.single{font-size:13px;line-height:1.7}
 .process{padding:74px var(--gutter) 72px}.process:before{inset:-100px 0 -100px;background:radial-gradient(ellipse at 25% 50%,#55639755,#2d354730 45%,transparent 75%)}.process-heading{display:block}.process-heading>small{font-size:12px;padding-top:0}.process h2{width:100%;font-size:clamp(43px,12.2vw,69px);line-height:1.12;margin-top:28px}.process ol{display:block;margin-top:46px}.process li{display:flex;align-items:center;gap:24px;min-height:117px;padding:25px 48px 25px 0}.process li>span:first-child{font-size:13px;min-width:23px}.process h3{font-size:27px;line-height:1.2;margin:0;letter-spacing:-.04em}.process h3 br{display:none}.process-mark{width:30px;height:30px;top:calc(50% - 15px)}
 .contact{padding:58px var(--gutter) 72px}.contact-main{display:block;margin-top:42px}.contact h2{font-size:clamp(58px,16vw,96px);line-height:1.06;letter-spacing:-.06em}.contact-action{width:100%;min-width:0;margin-top:44px}.contact-action>p{font-size:17px;max-width:290px}.contact-action>a{font-size:24px;margin-top:28px;padding:25px 0}.contact-action small{font-size:15px}.contact-action .action-icon{width:42px;height:42px}
 footer{padding:28px var(--gutter) calc(130px + env(safe-area-inset-bottom))}.footer-top{font-size:12px;line-height:1.6;flex-wrap:wrap;gap:16px 20px}.footer-top>span{max-width:44%}.footer-top a{flex-basis:100%;width:max-content}.wordmark{font-size:13.8vw;line-height:2;letter-spacing:-.08em}.brand-sign{width:.61em;height:.4em;margin-top:.61em}.footer-bottom{display:block;font-size:12px}.footer-bottom>span{display:block}.footer-bottom>span:last-child{margin-top:18px;max-width:330px}
 .mobile-book{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;align-items:center;justify-content:space-between;gap:20px;background:#10131def;border:1px solid #c2ceff30;border-radius:15px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 10px 40px #0006;padding:14px 17px}.mobile-book>span{font-size:12px;line-height:1.4;color:#cad2e7}.mobile-book>span b{display:block;color:var(--paper);font-size:25px;letter-spacing:-.05em;font-weight:500;margin-top:1px}.mobile-book>a{display:flex;align-items:center;gap:20px;min-height:50px;background:var(--accent);color:#151a2c;border-radius:8px;padding:14px 19px;font-size:15px;font-weight:600;white-space:nowrap}.mobile-book .action-icon{width:21px;height:21px}
}
@media(max-width:375px){:root{--gutter:20px}.logo{font-size:20px}.logo-mark{width:38px}.header-book{gap:9px;padding:10px 12px}.hero-content{left:16px;right:16px}.hero h1{font-size:15.1vw}.hero-bottom{gap:12px}.hero-bottom p{font-size:12px;max-width:94px}.scroll-button{font-size:12px;gap:9px}.scroll-orbit{width:38px;height:38px}.intro h2{font-size:10.3vw}.photo-wide>div{height:380px}.photo-tall>div{height:290px}.service-image{margin-left:-20px;margin-right:-20px}.process h3{font-size:25px}.mobile-book{left:10px;right:10px;gap:12px;padding:13px 15px}.mobile-book>a{gap:16px;padding:14px 17px}}
@media(max-width:700px) and (max-height:720px){.scene-stack{top:22%}.scene h2{font-size:11.7vw}.scene p{font-size:16px;line-height:1.5;margin-top:12px}.scene small{margin-bottom:10px}.lens-visual{top:48%;height:31%}.stage-bottom{bottom:112px}.hero-content{top:16%}.hero-logo-lockup{margin-bottom:14px}.hero-content>small{margin-bottom:16px}}
@keyframes hero-drift{from{transform:scale(1)}to{transform:scale(1.025) translate3d(.15%,-.25%,0)}}
@keyframes light-breathe{from{opacity:.3}to{opacity:.65}}
@keyframes headlight-ignite{0%,15%,100%{filter:brightness(.85)}40%,70%{filter:brightness(1.12) drop-shadow(0 0 5px #bbc6ff55)}}
@keyframes headlight-path{0%,15%{transform:scaleX(0);opacity:0}40%,70%{transform:scaleX(1);opacity:.65}100%{transform:scaleX(1);opacity:0}}
@keyframes scroll-glide{0%,100%{transform:translateY(-2px);opacity:.55}50%{transform:translateY(2px);opacity:1}}
@keyframes polish-turn{to{transform:rotate(360deg)}}
.hero.motion-visible .hero-motion,.hero.motion-visible .hero-glow{animation-play-state:running}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.hero-motion,.hero-image,.photo img,.experience-photo img,.lens-visual,.lens-optic,.scene{transform:none!important}.hero-logo-lockup:after{transform:scaleX(1);opacity:.4}}

/* One optical journey. Imagery appears once; light carries between chapters. */
.journey-ribbon{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1;fill:none}
.journey-ribbon use{vector-effect:non-scaling-stroke;stroke-linecap:round}
.beam-ghost{stroke:#bbc6ff12;stroke-width:1}
.beam-live{stroke:#c0ceff80;stroke-width:2;stroke-dasharray:.14 .86;stroke-dashoffset:calc(.03 - var(--journey,0)*.98)}
.beam-halo{stroke:#aabfff40;stroke-width:20;filter:blur(12px)}
.hero{height:150svh;min-height:0;overflow:visible}
.hero-stage{position:sticky;top:0;height:100svh;min-height:700px;isolation:isolate;overflow:hidden;background:var(--ink)}
.hero-content{transform:translate3d(0,calc(var(--hero-progress)*-34px),0);opacity:calc(1 - var(--hero-progress)*.45)}
.hero-image{transform:scale(calc(1.02 + var(--hero-progress)*.12));filter:brightness(calc(.78 + var(--hero-progress)*.14))}
.hero-glow:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 12% 55%,#d7e2ff55,transparent 26%),radial-gradient(ellipse at 88% 55%,#d7e2ff55,transparent 26%);opacity:var(--hero-progress);filter:blur(14px)}
.photo>div:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 25%,#bbc6ff15 46%,transparent 66%);transform:translateX(calc((var(--photo-progress) - .5)*90%))}
.photo img{transform:translate3d(0,calc(var(--photo-progress)*-8%),0) scale(calc(1.025 + var(--photo-progress)*.035))}
.experience{height:310svh}
.experience-stage{min-height:0;background:transparent}
.optical-field{position:absolute;inset:-3%;z-index:-3;opacity:calc(.38 + var(--ignite)*.42);transform:scale(calc(1.05 + var(--progress)*.14)) translate3d(calc(var(--progress)*-3%),0,0);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 80%,transparent)}
.optical-field img{object-position:64% center;filter:saturate(.65)}
.optical-shade{position:absolute;inset:0;background:linear-gradient(90deg,#08090dde,transparent 72%),linear-gradient(180deg,#08090d77,transparent 40%,#08090d 100%)}
.optical-caustic{position:absolute;inset:25% -10% 5%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 65% 40%,#bbc6ff18,transparent 45%);transform:translate3d(calc((var(--progress) - .5)*10%),0,0);animation:caustic-drift 18s ease-in-out infinite alternate paused}
.experience-stage.motion-visible .optical-caustic{animation-play-state:running}
.scene-stack{top:26%}
.service-layout{display:block;max-width:1200px;margin:0 auto}
.service-content{max-width:none;display:grid;grid-template-columns:1.15fr 1fr;column-gap:9%;align-items:start}
.service-content>small:first-child{grid-column:2;grid-row:1}
.price{grid-column:1;grid-row:1/6;position:relative;align-self:center;margin:0;transform:translate3d(0,calc((.5 - var(--service-progress,.5))*20px),0);text-shadow:0 0 70px #bbc6ff15}
.price:before{content:'';position:absolute;inset:-35% -20%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#a8bfff15,transparent 66%);transform:scale(calc(.9 + var(--service-progress,.5)*.25))}
.price-caption{grid-column:2;grid-row:2;margin-top:26px}
.service-content>p{grid-column:2;grid-row:3}
.booking-link{grid-column:2;grid-row:4;border-radius:999px}
.single{grid-column:2;grid-row:5}
.process{padding-top:100px;padding-bottom:60px}
.process:before{inset:-180px 0 -140px;background:radial-gradient(ellipse at 40% 50%,#454f8038,transparent 72%)}
.process ol.process-passages{display:block;margin-top:100px}
.process li.process-passage{position:relative;display:block;min-height:85svh;padding:70px 0;border:0;isolation:isolate;--step-progress:0}
.passage-top{display:flex;align-items:center;justify-content:space-between;font-size:14px;letter-spacing:.06em;color:#c4d0f4}
.passage-top .process-mark{position:static;width:32px;height:32px}
.process-copy{position:relative;z-index:3;width:55%;margin-top:58px}
.process .process-copy h3{font-size:clamp(58px,6.5vw,106px);line-height:1.06;letter-spacing:-.06em;margin:0;padding:0}
.process-copy p{font-size:18px;line-height:1.75;color:#bbc6dc;max-width:370px;margin-top:25px}
.process-field{position:absolute;left:35%;right:-10%;top:17%;bottom:6%;pointer-events:none;z-index:-1;mask-image:radial-gradient(ellipse,#000 30%,transparent 72%);transform:translate3d(0,calc((.5 - var(--step-progress))*35px),0)}
.orbit{position:absolute;display:block;aspect-ratio:1;border:1px solid #bacaff55;border-top-color:#e0e8ffb0;border-right-color:transparent;border-radius:50%;box-shadow:0 0 28px #b1bdff12,inset 0 0 40px #b1bdff0c;transform-origin:center}
.orbit-one{width:85%;top:3%;left:4%;transform:rotate(calc(var(--step-progress)*120deg))}
.orbit-two{width:70%;top:11%;left:12%;border-left-color:transparent;border-top-color:#bbc6ff50;transform:rotate(calc(var(--step-progress)*-90deg))}
.orbit-three{width:55%;top:19%;left:20%;border-bottom-color:#e0e8ff80;transform:rotate(calc(var(--step-progress)*160deg))}
.field-flare{position:absolute;display:block;inset:10%;background:radial-gradient(ellipse at 65% 30%,#ecf1ff38,transparent 24%),radial-gradient(ellipse at 35% 64%,#939fff30,transparent 38%);filter:blur(12px);transform:rotate(calc(var(--step-progress)*95deg))}
.field-veil{position:absolute;display:block;inset:0;background:linear-gradient(115deg,transparent 35%,#b4caff20 46%,#ecf2ff25 49%,transparent 54%);filter:blur(7px);transform:translateX(calc((var(--step-progress) - .5)*50%))}
.passage-prepare .orbit-one{transform:translate3d(calc((.5 - var(--step-progress))*12%),0,0) rotate(calc(var(--step-progress)*75deg));filter:blur(calc((1 - var(--step-progress))*1.8px))}
.passage-prepare .orbit-three{transform:translate3d(calc((.5 - var(--step-progress))*-12%),0,0) rotate(-25deg)}
.passage-polish .orbit{animation:optical-turn 26s linear infinite paused}
.passage-polish .orbit-two{animation-duration:19s;animation-direction:reverse}
.passage-polish .orbit-three{animation-duration:33s}
.process-passage.motion-visible .orbit{animation-play-state:running}
.passage-protect .process-field{transform:translate3d(0,calc((.5 - var(--step-progress))*35px),0) rotate(-19deg) scaleY(.75)}
.passage-protect .field-veil{background:linear-gradient(110deg,transparent 23%,#c6d5ff35 45%,#f0f3ff30 49%,transparent 70%);filter:blur(18px);transform:translateX(calc((var(--step-progress) - .5)*65%))}
.contact{padding-top:65px}
.contact:before{content:'';position:absolute;inset:-150px 0 -100px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 20% 50%,#bbc6ff0c,transparent 60%)}
@media(max-width:1000px){.process .process-copy h3{font-size:7.7vw}.process-copy p{font-size:17px}.process-field{left:25%;right:-18%}}
@media(max-width:700px){
 .hero{height:150svh;min-height:0}.hero-stage{min-height:700px}
 .hero-content{top:16%}.hero-image{object-position:center 61%}
 .intro{padding-bottom:80px}.photo-wide>div{height:500px}.photo-tall>div{height:430px}.photo-tall{width:84%;margin-top:55px}
 .experience{height:300svh}.scene-stack{top:23%}
 .optical-field{inset:0 -18%;opacity:calc(.36 + var(--ignite)*.32);transform:scale(calc(1.06 + var(--progress)*.13)) translate3d(calc(var(--progress)*-5%),0,0)}
 .optical-field img{object-position:64% center}.optical-shade{background:linear-gradient(180deg,#08090de8 0%,#08090da8 40%,#08090d22 70%,var(--ink) 100%),linear-gradient(90deg,#08090d55,transparent 80%)}
 .optical-caustic{inset:28% -35% 10%}
 .service{padding-top:80px;padding-bottom:82px}.service-heading{margin-bottom:54px}.service-content{display:block}.price{margin:12px 0 0;font-size:clamp(190px,56vw,320px)}.price-caption{margin-top:0}.booking-link{border-radius:999px}
 .process{padding-top:60px;padding-bottom:25px}.process ol.process-passages{margin-top:55px}
 .process li.process-passage{min-height:92svh;padding:45px 0 55px}
 .passage-top{font-size:13px}.passage-top .process-mark{width:28px;height:28px}
 .process-copy{width:100%;margin-top:37px}.process .process-copy h3{font-size:clamp(43px,12.5vw,70px);line-height:1.09;letter-spacing:-.055em}.process .process-copy h3 br{display:block}
 .process-copy p{font-size:17px;line-height:1.7;max-width:285px;margin-top:22px}
 .process-field{left:-15%;right:-15%;top:41%;bottom:0;mask-image:radial-gradient(ellipse,#000 22%,transparent 72%)}
 .orbit-one{width:85%;top:8%}.orbit-two{width:70%;top:15%}.orbit-three{width:55%;top:23%}
 .passage-protect .process-field{top:44%}
 .contact{padding-top:55px}
}
@media(max-width:375px){.photo-wide>div{height:440px}.photo-tall>div{height:370px}.process .process-copy h3{font-size:12.2vw}}
@keyframes caustic-drift{from{opacity:.35;filter:blur(2px)}to{opacity:.8;filter:blur(6px)}}
@keyframes optical-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hero-content,.hero-image,.optical-field,.optical-caustic,.price,.process-field,.orbit,.field-flare,.field-veil{transform:none!important}.hero-content{opacity:1}.journey-ribbon .beam-live{stroke-dasharray:none;opacity:.25}}

.header:after{content:"";position:absolute;left:0;right:0;bottom:-24px;height:24px;pointer-events:none;background:linear-gradient(180deg,rgba(8,9,13,var(--header-alpha,0)),transparent)}
.passage-polish .orbit{border:0;background:conic-gradient(transparent 0deg,#bbc6ff18 70deg,#e7eeffc9 140deg,transparent 180deg,transparent 230deg,#bbccff99 275deg,transparent 320deg);mask-image:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));-webkit-mask-image:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px))}
.process-passage .field-flare{animation:field-glimmer 10s ease-in-out infinite alternate paused}
.process-passage.motion-visible .field-flare{animation-play-state:running}
@keyframes field-glimmer{from{opacity:.45;filter:blur(12px) brightness(.8)}to{opacity:1;filter:blur(8px) brightness(1.45)}}
