/* A calm, photographic interpretation of the circular opening in the reference. */
:root { --lens-ink:#294438; --lens-size:min(47vw,70svh); --lens-x:71%; --lens-y:49%; }
.header {position:fixed;inset:0 0 auto;height:100px;padding:0 4.1vw;background:transparent;transition:background .4s,box-shadow .4s;}
.header.is-scrolled {background:rgba(245,244,238,.96);box-shadow:0 1px 0 #29443812;}
.header .brand>span {font-size:34px;letter-spacing:-1.8px;}
.header .brand small {font-size:7px;margin-top:8px;}
.header-cta {background:#f5f4ee90;border-color:#c9d1c2;}
.mobile-nav {position:fixed;}
.lens-runway {position:relative;height:calc(100svh + 440px);}
.lens-stage {height:100svh;min-height:660px;position:sticky;top:0;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 75% 48%,#e1e5d5 0%,#edece2 40%,#f5f4ee 74%);color:var(--lens-ink);--line-one:1;--line-two:1;--lead:1;--invite:0;--travel:0;}
.lens-grid {position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#71846d0a calc(20% - 1px),#71846d0a 20%);}
.lens-art {position:absolute;inset:0;z-index:-1;pointer-events:none;}
.lens-halo,.lens-ring,.lens-orbit {position:absolute;left:var(--lens-x);top:var(--lens-y);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;}
.lens-halo {width:calc(var(--lens-size)*1.85);background:radial-gradient(circle,#83987938 18%,#e4e3cf66 47%,#d9dec432 61%,transparent 70%);}
.lens-ring {width:calc(var(--lens-size)*1.3);border:1px solid #92a08333;box-shadow:inset 12px 14px 25px #ffffffa0,inset -12px -16px 28px #61785828,4px 4px 30px #6178580e;}
.ring-outer {width:calc(var(--lens-size)*1.79);background:conic-gradient(from 35deg,#fff8,#84967950 15%,#f6f4e77a 31%,#d7ddc670 42%,#83987945 53%,#fff8 71%,#c5ceb25e 86%,#fff8);mask:radial-gradient(circle,transparent 59%,#000 59.2%);animation:lens-turn 42s linear infinite;}
.ring-middle {width:calc(var(--lens-size)*1.48);background:conic-gradient(from 160deg,#fcf9eac0,#81977645 19%,#f8f5eaa0 30%,#bfcba77a 46%,#ffffffa0 62%,#788c744d 78%,#fcf9eac0);mask:radial-gradient(circle,transparent 57%,#000 57.2%);animation:lens-turn 32s linear infinite reverse;}
.ring-inner {width:calc(var(--lens-size)*1.16);background:conic-gradient(from 10deg,#8b9d75b0,#fdfaf0 23%,#d3dabc 41%,#8b9d7570 55%,#fff 76%,#8b9d75b0);mask:radial-gradient(circle,transparent 61.5%,#000 61.8%);animation:lens-turn 25s linear infinite;box-shadow:inset 2px 3px 8px #fff,2px 3px 16px #334c3928;}
.lens-orbit {width:calc(var(--lens-size)*1.9);height:calc(var(--lens-size)*1.03);border:1px solid #80907136;border-radius:50%;transform:translate(-50%,-50%) rotate(-32deg);}
.orbit-two {width:calc(var(--lens-size)*1.18);height:calc(var(--lens-size)*1.76);transform:translate(-50%,-50%) rotate(31deg);border-color:#fff9;}
.lens-photo {position:absolute;left:var(--lens-x);top:var(--lens-y);width:var(--lens-size);aspect-ratio:1;transform:translate(-50%,-50%);overflow:hidden;border-radius:50%;background:#c4c9b9;border:6px solid #faf8efd9;box-shadow:0 20px 65px #29443825,0 0 0 1px #71815e70;}
.lens-photo .hero-slide {object-position:51% 45%;transition:opacity 1.4s,transform 9s linear;transform:scale(1.07);}
.lens-photo .hero-slide.active {transform:scale(1);}
.lens-photo .hero-slides:after {background:linear-gradient(0deg,#1a35295c,transparent 42%);}
.lens-photo-note {position:absolute;bottom:11%;left:17%;color:#fff;font:19px/1.4 Georgia,serif;text-shadow:0 1px 6px #142d28;}
.lens-photo-note em {font-size:24px;}
.lens-copy {position:absolute;z-index:2;left:6.2%;top:50%;width:49%;transform:translateY(-48%);}
.lens-kicker {display:flex;align-items:center;gap:10px;font:10px/1.7 Arial,sans-serif;letter-spacing:.17em;margin:0 0 29px;}
.lens-kicker>span {width:6px;height:6px;border-radius:50%;background:#829969;}
.lens-headline-wrap {position:relative;}
.lens-copy h1 {font-size:clamp(39px,4.6vw,72px);font-weight:500;line-height:1.55;letter-spacing:.055em;margin:0 0 20px;}
.lens-line {display:block;overflow:hidden;padding-bottom:.08em;}
.lens-line>span {display:block;opacity:var(--line-one);transform:translateY(calc((1 - var(--line-one))*105%));}
.lens-line:nth-child(2)>span {opacity:var(--line-two);transform:translateY(calc((1 - var(--line-two))*105%));}
.lens-invitation {position:absolute;inset:0 auto auto 0;text-align:left;padding:9px 0;opacity:var(--invite);pointer-events:none;transition:visibility .15s;}
.lens-invitation:not([tabindex="-1"]) {pointer-events:auto;}
.lens-invitation>span {font-size:clamp(21px,2.2vw,32px);line-height:1.85;letter-spacing:.1em;}
.lens-invitation small {display:flex;align-items:center;gap:28px;margin-top:21px;font:9px Arial;letter-spacing:.16em;}
.lens-invitation small span {font-size:19px;animation:lens-nudge 2.5s ease-in-out infinite;}
.lens-lead {font-size:20px;line-height:1.9;letter-spacing:.12em;margin:0;opacity:var(--lead);transform:translateY(calc((1 - var(--lead))*18px));}
.lens-detail {font-size:12px;line-height:2;color:#5d6d5d;letter-spacing:.045em;margin-top:18px;opacity:var(--lead);}
.lens-copy .lens-cta {margin-top:27px;min-width:290px;font-size:12px;box-shadow:0 6px 22px #203b2510;}
.lens-location {font-size:10px;letter-spacing:.02em;margin-top:17px;display:flex;gap:10px;}
.lens-location span {color:#7f8a75;}
.lens-side-note {position:absolute;right:22px;top:35%;writing-mode:vertical-rl;font:9px Arial;letter-spacing:.2em;color:#536b55;}
.lens-bottom {position:absolute;bottom:33px;left:6.2%;right:6.2%;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.lens-bottom-left {display:flex;align-items:center;gap:26px;}
.lens-scroll {padding:8px 0;min-height:44px;font:9px Arial;letter-spacing:.13em;display:flex;align-items:center;gap:25px;}
.lens-scroll>span {font-size:18px;}
#lens-replay {font-size:10px;min-height:44px;padding:7px 12px;border-left:1px solid #9bab903f;}
.lens-slide-controls {display:flex;align-items:center;gap:8px;}
.lens-slide-controls>span {font:11px 'Avenir Next',Arial,sans-serif;margin-right:12px;letter-spacing:.07em;}
.lens-slide-controls button {display:grid;place-items:center;width:42px;height:42px;border:1px solid #9baa9070;border-radius:50%;background:#f5f4ee80;}
.lens-slide-controls button:hover {background:var(--green);color:#fff;}
.lens-slide-controls svg {width:16px;height:16px;}
.lens-progress {height:2px;position:absolute;bottom:0;left:0;width:100%;background:#82936d17;}
.lens-progress>span {display:block;height:100%;width:calc(var(--travel)*100%);background:#788c60;}
.lens-intro {position:fixed;inset:0;z-index:200;overflow:hidden;background:#f5f4ee;display:grid;place-items:center;}
.lens-intro[hidden] {display:none;}
.intro-wordmark {text-align:center;color:var(--lens-ink);position:relative;z-index:1;}
.intro-wordmark>span {display:block;font:clamp(50px,10.5vw,164px)/1.1 Georgia,serif;letter-spacing:-.055em;}
.intro-wordmark small {display:block;font:10px Arial;letter-spacing:.23em;margin-top:26px;}
.intro-orbit {width:min(72vw,70svh);aspect-ratio:1;border:1px solid #9cab83;border-radius:50%;position:absolute;}
.intro-orbit:after {content:'';position:absolute;inset:-14%;border:1px solid #c6d0b745;border-radius:50%;}
.intro-skip {position:absolute;right:5%;bottom:5%;font-size:12px;min-height:44px;display:flex;gap:30px;align-items:center;}
.intro-skip span {font-size:20px;}
body.lens-opening .booking-dock {visibility:hidden;}
body.lens-at-top .booking-dock {opacity:0;visibility:hidden;pointer-events:none;}
.booking-dock {transition:opacity .3s,visibility .3s;}
.plan-title>span,.plan-amount,.campaign-value strong,.additional-prices dd {font-family:'Avenir Next','Helvetica Neue',Arial,sans-serif;font-style:normal;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.045em;}
.plan-amount {font-size:clamp(32px,3.5vw,48px);}
@keyframes lens-turn {to {transform:translate(-50%,-50%) rotate(360deg);}}
@keyframes lens-nudge {0%,100% {transform:translateY(0)} 50% {transform:translateY(7px)}}
@media(min-width:1600px) {.lens-copy {left:8%;}}
@media(max-width:1000px) and (min-width:601px) {
  :root {--lens-size:52vw;--lens-x:76%;}
  .header {height:86px;padding:0 30px;}
  .lens-copy {left:5%;width:55%;}
  .lens-copy h1 {font-size:4.9vw;}
  .lens-kicker {font-size:8px;}
  .lens-lead {font-size:18px;}
  .lens-bottom {left:5%;right:5%;}
}
@media(max-width:600px) {
  :root {--lens-size:min(73vw,34svh);--lens-x:62%;--lens-y:56%;--lens-center:.56;--lens-copy-top:107px;--lens-mobile-height:max(100svh,640px);}
  .header {height:76px;padding:0 22px;}
  .header .brand>span {font-size:27px;letter-spacing:-1.5px;}
  .header .brand small {font-size:5.5px;margin-top:6px;}
  .header .header-cta {display:none;}
  .mobile-nav {top:76px;}
  .lens-runway {height:calc(100svh + 340px);}
  .lens-stage {min-height:640px;}
  .lens-copy {top:var(--lens-copy-top);left:25px;right:22px;width:auto;transform:none;}
  .lens-kicker {font-size:7px;letter-spacing:.13em;margin-bottom:16px;gap:7px;}
  .lens-kicker>span {width:5px;height:5px;}
  .lens-copy h1 {font-size:clamp(30px,8.9vw,45px);line-height:1.5;letter-spacing:.055em;margin-bottom:12px;}
  .lens-lead {font-size:15px;letter-spacing:.06em;line-height:1.7;}
  .lens-lead br {display:initial;}
  .lens-detail {display:none;}
  .lens-copy .lens-cta {position:absolute;left:0;top:calc(var(--lens-mobile-height)*var(--lens-center) + var(--lens-size)/2 + 18px - var(--lens-copy-top));min-width:0;width:min(100%,292px);min-height:54px;padding:6px 6px 6px 18px;font-size:14px;margin:0;}
  .lens-cta .arrow {width:38px;height:38px;}
  .lens-location {position:absolute;left:0;top:calc(var(--lens-mobile-height)*var(--lens-center) + var(--lens-size)/2 + 82px - var(--lens-copy-top));margin:0;font-size:10px;gap:6px;}
  .lens-invitation {padding:1px 0;}
  .lens-invitation>span {font-size:20px;line-height:1.75;letter-spacing:.055em;}
  .lens-invitation small {font-size:7px;margin-top:14px;gap:18px;}
  .lens-invitation small span {font-size:15px;}
  .lens-photo {border-width:4px;}
  .lens-photo-note {font-size:12px;left:20%;bottom:12%;}
  .lens-photo-note em {font-size:15px;}
  .lens-side-note {right:13px;top:42%;font-size:7px;}
  .lens-bottom {left:25px;right:23px;bottom:13px;gap:8px;align-items:end;}
  .lens-bottom-left {display:block;}
  .lens-scroll {font-size:7px;gap:17px;min-height:30px;padding:0;}
  #lens-replay {font-size:9px;border:0;padding:0;min-height:32px;}
  .lens-slide-controls {gap:5px;padding-bottom:3px;}
  .lens-slide-controls>span {font-size:9px;margin-right:5px;}
  .lens-slide-controls button {width:36px;height:36px;}
  .intro-wordmark>span {font-size:13vw;}
  .intro-wordmark small {font-size:7px;letter-spacing:.17em;margin-top:18px;}
  .intro-orbit {width:84vw;}
  .intro-skip {right:25px;bottom:30px;font-size:10px;}
  .plan-amount {font-size:30px;}
}
@media(max-width:600px) and (max-height:730px) {
  :root {--lens-size:min(64vw,28svh);--lens-x:68%;--lens-y:61%;--lens-center:.61;--lens-copy-top:91px;}
  .lens-copy h1 {font-size:31px;}
  .lens-kicker {margin-bottom:12px;}
  .lens-scroll {display:none;}
}
body.motion-off .lens-stage {--line-one:1!important;--line-two:1!important;--lead:1!important;--invite:0!important;}
body.motion-off .lens-invitation {visibility:hidden;}
body.motion-off .lens-ring,body.motion-off .lens-invitation small span {animation:none;}
@media(prefers-reduced-motion:reduce) {.lens-ring,.lens-invitation small span {animation:none;}.lens-stage {--line-one:1!important;--line-two:1!important;--lead:1!important;--invite:0!important;}.lens-invitation {visibility:hidden;}}

@property --opening-radius {syntax:'<length>';inherits:false;initial-value:0px;}
.lens-intro {mask-image:radial-gradient(circle at 50% 50%,transparent calc(var(--opening-radius) - 1px),#000 var(--opening-radius));}
.lens-away .lens-ring {animation-play-state:paused;}
