/* Homegirl Brittany — site styles. */
:root{
  --teal:#609aae; --teal-d:#598ea1; --paper:#f6f6f6; --ink:#333; --white:#fff;
  --mauve:#afa3a3; --mauve-t:#9a8a8a; --mauve-s:#7d6d6d; --muted:#707070; --blush:#e3d3d3; --hair:#d9d4d4; --line:#e6e1e1; --gray:#ededed;
  --red:#e20013; --ok:#4bc04b;
  --io:cubic-bezier(.87,0,.13,1); --out:cubic-bezier(.16,1,.3,1); --ui:cubic-bezier(.55,.05,.22,.99);
  --flip:cubic-bezier(.22,1,.36,1); --qio:cubic-bezier(.83,0,.17,1);
  --font:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:4rem; --gap:4rem;
  --W:calc(100vw - var(--sbw,0px));
  --col5:calc((var(--W) - 2*var(--gutter) - 4*var(--gap))/5);
  --col4:calc((var(--W) - 2*var(--gutter) - 3*var(--gap))/4);
  --rail:300s;
}
html{font-size:10px;-webkit-text-size-adjust:100%}
@media(min-width:1600px){html{font-size:12.5px}}
@media(max-width:1023px){html{font-size:2.6666667vw}:root{--rail:150s}}
@media(max-width:767px){:root{--gutter:1.5rem}}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;overflow-x:clip;font:400 1.4rem/1.65 var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
@media(max-width:1023px){body{font-size:1.3rem}}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,video,svg,canvas{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
strong,b{font-weight:inherit}
:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #1d2629}
[tabindex="-1"]:focus{outline:none;box-shadow:none}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:1rem;z-index:2000;background:#fff;padding:1rem 1.6rem;border-radius:5px;transform:translateY(-200%)}
.skip:focus{transform:none}
.wrap{padding-inline:var(--gutter)}
@media(min-width:1024px){.pc-hide{display:none!important}}
@media(max-width:1023px){.sp-hide{display:none!important}}
.m{color:var(--mauve-t)}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- type atoms ---------- */
.eyebrow{display:block;font:700 1.2rem/1.2 var(--font);letter-spacing:.02em;margin-bottom:2.3rem}
.copy{font:700 4rem/1.4 var(--font);letter-spacing:-.01em}
.copy strong,.copy em{font-style:normal;color:var(--mauve-t)}
.lead{font-size:1.2rem;line-height:1.65;max-width:44em}
.lead + .btn,.copy + .btn{margin-top:2.4rem}
.copy + .lead{margin-top:2rem}
@media(max-width:1023px){
  .eyebrow{font-size:1rem;margin-bottom:1.5rem}
  .copy{font-size:3rem;line-height:1.45}
  .lead{font-size:1.2rem}
}
[data-lines]{visibility:hidden}
[data-lines].is-split{visibility:visible}
.no-js [data-lines]{visibility:visible}
.no-js .hdr-logo__in{translate:0 0!important}
[data-fade]{opacity:0}
[data-fade]:focus-within{opacity:1!important}
.no-js [data-fade]{opacity:1}
.roll{display:block;height:1lh;overflow:clip}
.roll>span{display:block;height:2lh}
.roll>span>span{display:block}

/* hairline draw */
[data-line]{position:relative}
[data-line]::after{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:var(--line-c,#4e4d4d);transform-origin:left;scale:0 1;transition:scale 1.3s var(--io),opacity .9s ease .4s;pointer-events:none}
[data-line].in::after{scale:1 1;opacity:.2}
.on-dark [data-line],[data-line].on-dark{--line-c:#fff}

/* ---------- buttons, chips, links ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.5rem;height:3rem;padding:0 1.2rem 1px;border:1px solid currentColor;border-radius:100vh;font:500 1.2rem/1 var(--font);overflow:clip;isolation:isolate;white-space:nowrap;transition:border-color .35s var(--ui),color .4s var(--ui);--ripple:var(--mauve);--hover-c:#fff}
.btn--light{color:#fff;--ripple:#fff;--hover-c:var(--teal)}
.btn--light.on-mauve{--hover-c:var(--mauve)}
.btn--solid{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:700}
.btn--big{height:4rem;font-size:1.4rem;padding-inline:2rem}
.btn__arw{display:inline-flex;overflow:clip;width:.8rem;height:.6rem;flex:none}
.btn__arw svg{width:100%;height:100%}
.flip{display:block;height:1lh;line-height:1.2;overflow:clip;perspective:10rem}
.flip>.cube{display:grid;height:1lh;transform-style:preserve-3d;transform:translateZ(-.5lh) rotateX(0);transition:transform .8s var(--flip)}
.flip .face{grid-area:1/1;backface-visibility:hidden;transform:rotateX(0) translateZ(.5lh)}
.flip .face+.face{transform:rotateX(-90deg) translateZ(.5lh)}
.ripple{position:relative;isolation:isolate}
.ripple>*{position:relative;z-index:1}
.ripple::after{content:"";position:absolute;left:var(--rx,50%);top:var(--ry,50%);width:var(--rs,0);height:var(--rs,0);border-radius:50%;background:var(--ripple,var(--mauve));transform:translate(-50%,-50%) scale(var(--k,0));opacity:0;transition:transform .45s var(--ui),opacity .45s ease;z-index:0;pointer-events:none}
.ripple.is-rip{--k:1}
.ripple.is-rip::after{opacity:1}
.ripple.is-leave{--k:1}
.ripple.is-reset::after{transition:none}
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
  .btn.is-rip{border-color:transparent;color:var(--hover-c)}
  .btn:hover .btn__arw svg,.chip:hover .btn__arw svg,.btn-submit:not(.is-incomplete):hover .btn__arw svg{animation:arw .35s var(--ui) forwards}
  a:hover>.flip .cube,button:hover>.flip .cube,.btn:hover .flip .cube,.chip:hover .flip .cube,.is-rip .flip .cube{transform:translateZ(-.5lh) rotateX(90deg)}
}
@keyframes arw{0%{translate:0}45%{translate:125% 0}45.01%{translate:-125% 0}100%{translate:0}}
@media(max-width:1023px){
  .btn.sp-text{border:0;border-radius:0;height:auto;padding:0 0 .3rem;border-bottom:1px solid currentColor;font-size:1rem;gap:.3rem}
  .btn.sp-text .btn__arw{width:1.2rem;height:.8rem}
}

.chip{position:relative;display:inline-flex;align-items:center;justify-content:center;height:2.5rem;padding:0 1rem 1px;border-radius:100vh;font-size:1.2rem;line-height:1;white-space:nowrap;box-shadow:0 1px 1px rgba(0,0,0,.09);overflow:clip;isolation:isolate;transition:color .2s ease .1s;--ripple:var(--mauve)}
.chip::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--chip-bg,#fff)}
.chip.is-rip{color:#fff}
.chip.is-current{color:#fff;pointer-events:none}
.chip.is-current::before{background:var(--mauve)}
.chip--big{height:4rem;padding-inline:1.6rem;font-size:1.2rem}
.chip--full{width:100%}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.on-white .chip{--chip-bg:var(--paper)}

.u-line{background:linear-gradient(currentColor,currentColor) no-repeat right bottom/100% 1px;padding-bottom:1px}
.u-line--hide{background-size:0 1px;transition:background-size .32s ease}
a:hover .u-line--hide,a:focus-visible .u-line--hide{background-position:left bottom;background-size:100% 1px}
.u-line.is-wipe{animation:wipe .3s var(--ui)}
@keyframes wipe{0%{background-position:right bottom;background-size:100% 1px}50%{background-size:0 1px;background-position:right bottom}51%{background-position:left bottom;background-size:0 1px}100%{background-size:100% 1px;background-position:left bottom}}

.tip{position:fixed;left:0;top:0;z-index:20;width:32rem;padding:2rem;border-radius:5px;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 3px rgba(0,0,0,.09);font-size:1.4rem;line-height:1.65;color:var(--ink);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s}
.tip.show{opacity:1;visibility:visible;animation:tipIn .35s var(--ui)}
@keyframes tipIn{from{scale:.93}}

/* photo frames */
.frame{position:relative;overflow:clip;border-radius:.5rem;background:#e9e6e4}
.frame img{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover;translate:0 var(--py,0)}
.frame.flat img{top:0;height:100%}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:1000;pointer-events:none;display:none}
.js .loader{display:block}
.is-preload .loader,.is-loading .loader{background:var(--teal)}
.loader__logo{position:absolute;top:50%;left:50%;width:4.4rem;height:4.4rem;perspective:12rem;overflow:clip;translate:-50% -50%;color:#fff;transition:top 1.3s var(--io),translate 1.3s var(--io)}
.loader__cube{width:100%;height:100%;transform-style:preserve-3d;transform:translateZ(-2.2rem) rotateX(-90deg);transition:transform 1.1s var(--out);visibility:hidden}
.loader__cube svg{width:100%;height:100%;transform:translateZ(2.2rem);backface-visibility:hidden}
.is-loading .loader__cube,.is-loaded .loader__cube{visibility:visible}
.is-loading .loader__cube{transform:translateZ(-2.2rem) rotateX(0)}
.is-logo-top .loader__logo{top:5rem;translate:-50% 0}
.is-loaded .loader__cube{transform:translateZ(-2.2rem) rotateX(90deg);transition:transform 1.1s var(--io)}
.is-fv-complete .loader{display:none}
/* subpage curtain */
.page .loader{background:var(--teal);transform-origin:top;transition:scale 1.2s var(--qio) .1s}
.page.is-ready .loader{scale:1 0}
.page .loader__logo{display:none}

/* ---------- header ---------- */
.hdr-logo{position:fixed;top:2.6rem;left:var(--gutter);z-index:100;color:#fff;mix-blend-mode:difference;display:block;overflow:clip;translate:0 var(--dock,0px)}
.hdr-logo__in{display:flex;align-items:center;gap:1.2rem}
.hdr-logo .mono{width:3.6rem;height:auto;flex:none}
.brk{display:flex;flex-direction:column;font:700 1.4rem/1.15 var(--font);letter-spacing:.01em;white-space:nowrap}
.brk b:last-child{font-weight:500}
.hdr-nav{position:fixed;top:2rem;right:calc(var(--gutter) + 6rem + 2.6rem);height:6rem;z-index:100;color:#fff;mix-blend-mode:difference;display:flex;align-items:center;translate:0 var(--dock,0px)}
.hdr-nav ul{display:flex;gap:2.2rem;font-size:1.2rem;font-weight:500}
.hdr-nav li{overflow:clip;line-height:1.3}
.hdr-nav .chars{display:inline-flex;perspective:10rem}
.cc{display:inline-grid;transform-style:preserve-3d;transform:translateZ(-.5lh) rotateX(0);transition:transform .8s var(--flip) calc(var(--ci)*45ms)}
.cc>span{grid-area:1/1;backface-visibility:hidden;transform:translateZ(.5lh)}
.cc>span+span{transform:rotateX(-90deg) translateZ(.5lh);color:#965c48}
@media(hover:hover) and (pointer:fine){.hdr-nav a:hover .cc{transform:translateZ(-.5lh) rotateX(90deg)}}
.hdr-nav a[aria-current] .cc>span:first-child{color:#965c48}
.hdr-nav a[aria-current] .chars{background:linear-gradient(#965c48,#965c48) no-repeat left bottom/100% 1px;padding-bottom:2px}
.hdr-nav a:focus-visible{outline-offset:-2px}
.menu-btn{position:fixed;top:2rem;right:var(--gutter);z-index:102;width:6rem;height:6rem;color:#fff;display:grid;place-items:center;font:700 1rem/1 var(--font);letter-spacing:.06em;translate:0 var(--dock,0px)}
.menu-btn::before,.menu-btn::after{content:"";position:absolute;transition:scale 1.3s var(--out),rotate .7s var(--out),border-radius .3s var(--ui),background .3s var(--ui),inset .3s var(--ui),opacity .3s var(--ui),border-color .3s var(--ui)}
.menu-btn::before{inset:0;border-radius:5px;background:var(--teal)}
.menu-btn::after{inset:3px;border:1px solid rgba(255,255,255,.5);border-radius:3px}
.menu-btn.spin::before,.menu-btn.spin::after{rotate:90deg;border-radius:18px;background-color:var(--teal-d)}
.menu-btn.spin::after{background:transparent}
.menu-btn .lbl{position:relative;z-index:1;display:block;height:1lh;line-height:1;overflow:clip}
.menu-btn .lbl>span{display:flex;flex-direction:column;transition:translate .3s var(--ui)}
.menu-btn.spin .lbl>span{translate:0 -1lh}
.menu-btn .x{position:absolute;z-index:1;width:2rem;height:2rem;opacity:0;transition:opacity .3s var(--ui)}
.menu-btn .x::before,.menu-btn .x::after{content:"";position:absolute;left:50%;top:50%;width:2.3rem;height:1.5px;background:#fff;border-radius:9px;translate:-50% -50%;transition:rotate .3s var(--ui)}
.menu-open .menu-btn::before{background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.menu-open .menu-btn::after{inset:0;border-color:#fff;border-radius:.5rem}
.menu-open .menu-btn .lbl{opacity:0}
.menu-open .menu-btn .x{opacity:1}
.menu-open .menu-btn .x::before{rotate:45deg}
.menu-open .menu-btn .x::after{rotate:-45deg}
.hdr-anim .hdr-logo__in,.hdr-anim .hdr-nav .chars,.hdr-anim .menu-btn .lbl>span{translate:0 110%;transition:translate 1.3s var(--out)}
.hdr-anim .menu-btn::before,.hdr-anim .menu-btn::after{scale:0;rotate:-45deg}
.hdr-in .hdr-logo__in,.hdr-in .hdr-nav .chars,.hdr-in .menu-btn .lbl>span{translate:0 0}
.hdr-in .menu-btn::before,.hdr-in .menu-btn::after{scale:1;rotate:0deg}
.hdr-in .menu-btn.spin::before,.hdr-in .menu-btn.spin::after{rotate:90deg}
.hdr-in.menu-open .menu-btn::before,.hdr-in.menu-open .menu-btn::after{rotate:0deg}
.hdr-logo,.hdr-nav,.menu-btn{transition:opacity .5s var(--ui),visibility 0s}
.hdr-hidden:not(.menu-open) .hdr-logo,.hdr-hidden:not(.menu-open) .hdr-nav,.hdr-hidden:not(.menu-open) .menu-btn{opacity:0;visibility:hidden;transition:opacity .5s var(--ui),visibility 0s .5s}
@media(max-width:1023px){
  .hdr-logo{position:absolute;top:2.2rem;left:1.5rem;translate:none}
  .hdr-logo .mono{width:3rem}
  .brk{font-size:1.15rem}
  .menu-open .hdr-logo{position:fixed;z-index:102;mix-blend-mode:normal}
  .menu-btn{top:1.6rem;right:1.5rem;width:5.2rem;height:5.2rem;font-size:.9rem;translate:none}
}

/* drawer */
.drawer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#1d2629;color:#fff;overflow:auto;overscroll-behavior:contain;z-index:101;opacity:0;transition:opacity .3s var(--ui)}
.drawer.is-open{opacity:1}
.drawer__bg{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.drawer__wrap{position:relative;z-index:1;padding:0 var(--gutter);min-height:100%;display:flex;flex-direction:column;--c5:calc((100% - 4*var(--gap))/5)}
.drawer__head{display:flex;justify-content:space-between;align-items:flex-start;padding-top:4rem;margin-bottom:6rem;width:calc(100% - 8rem)}
.drawer__logo{display:flex;align-items:center;gap:1.2rem;color:#fff}
.drawer__logo .mono{width:3.6rem}
.drawer__addr{display:block;font-size:1rem;opacity:.7;margin-top:1.2rem}
.drawer__ctas{display:flex;gap:2.4rem;font-size:1.2rem;font-weight:600}
.drawer__nav{margin-bottom:8rem}
.drawer__item{position:relative;display:flex}
.drawer__item::before,.drawer__item:last-child::after{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:rgba(255,255,255,.9);transform-origin:right;scale:0 1;transition:scale 1.3s var(--io),opacity .9s ease}
.drawer__item:last-child::after{top:auto;bottom:0}
.drawer.is-open .drawer__item::before,.drawer.is-open .drawer__item:last-child::after{transform-origin:left;scale:1 1;opacity:.2;transition:scale 1.3s var(--io),opacity .9s ease .4s}
.drawer__item a{position:relative;display:block;font:500 min(9rem,8.2vh)/1.08 var(--font);letter-spacing:-.02em;text-transform:uppercase;padding:.4rem 0;clip-path:inset(.1lh 0 0)}
.drawer__item a .t{display:block;translate:0 1lh;opacity:0;transition:translate .84s var(--ui),opacity .58s var(--ui)}
.drawer.is-open .drawer__item a .t{translate:0 0;opacity:1}
.drawer__item:nth-child(2) a,.drawer__item:nth-child(6) a{margin-left:auto}
.drawer__item:nth-child(3) a,.drawer__item:nth-child(8) a{margin-left:calc(var(--c5) + var(--gap))}
.drawer__item:nth-child(4) a,.drawer__item:nth-child(7) a{margin-left:calc(2*var(--c5) + 2*var(--gap))}
.drawer__aside{position:absolute;top:2rem;right:0;font-size:1.2rem;display:flex;gap:1.6rem;opacity:.7;pointer-events:none}
.drawer__item:nth-child(even) .drawer__aside{right:auto;left:0}
.drawer__foot{margin-top:auto;padding-bottom:4rem;font-size:1rem;opacity:.6;display:flex;gap:2rem;flex-wrap:wrap}
.drawer__item .roll>span{transition:translate .8s cubic-bezier(0,1.08,.61,.97)}
.drawer__item a::after{content:"";position:absolute;left:0;right:0;bottom:.1em;height:1px;background:#fff;scale:0 1;transform-origin:right;transition:scale .6s var(--ui)}
@media(hover:hover) and (pointer:fine){.drawer.is-open .drawer__item a:hover .roll>span{translate:0 -1lh}.drawer__item a:hover::after{scale:1 1;transform-origin:left}}
@media(max-width:1023px){
  .drawer__wrap{padding:0 1.5rem}
  .drawer__head{flex-direction:column;align-items:flex-end;gap:1.2rem;padding-top:9rem;margin-bottom:5rem;width:100%;text-align:right}
  .drawer__head .dl{display:none}
  .drawer__ctas{flex-direction:column;align-items:flex-end;gap:1.2rem}
  .drawer__ctas a{border-bottom:1px solid currentColor}
  .drawer__item a{font-size:5rem;margin-left:0!important}
  .drawer__aside{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--teal);margin-bottom:12rem}
.is-fv-complete .hero,.no-js .hero{background:transparent}
.hero__pin{position:relative;height:200vh}
.hero__stage{position:sticky;top:0;height:100vh;overflow:clip}
.hero__seat{position:absolute;top:50%;left:50%;width:var(--seat);height:var(--seat);border-radius:50px;background:var(--teal-d);translate:-50% -50%;scale:0;rotate:-45deg;transition:width 1.1s var(--io),height 1.1s var(--io),scale 1.3s var(--io),rotate 1.3s var(--io),border-radius 1.1s var(--io)}
.hero{--seat:min(clamp(440px,70vh,760px),calc(100vw - 3rem))}
.is-visual-in .hero__seat{scale:1;rotate:0deg}
.is-loaded .hero__seat{width:max(100vw,100vh);height:max(100vw,100vh);border-radius:100px}
.is-fv-complete .hero__seat{opacity:0}
.hero__ghost{position:absolute;z-index:1;left:-.18em;top:50%;translate:0 -50%;font:500 21rem/.83 var(--font);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;color:var(--mauve);opacity:0;transition:opacity 1.3s var(--out);pointer-events:none}
.hero__ghost .track{display:inline-block;animation:rail var(--rail) linear infinite}
.fv-other .hero__ghost{opacity:.12}
.hero__planes{position:absolute;inset:0;pointer-events:none}
.hero__planes.is-back{z-index:2}
.hero__planes.is-front{z-index:4}
.plane{position:absolute;aspect-ratio:16/10;border-radius:5px;overflow:hidden;will-change:transform;opacity:0}
.fv-complete .plane{opacity:1}
.plane img{width:100%;height:100%;object-fit:cover}
.p1{width:30.8rem;top:26.5rem;left:calc(50vw - 64.3rem)}
.p2{width:24.8rem;top:15rem;left:calc(50vw - 37.55rem)}
.p3{width:24.8rem;top:36.1rem;left:calc(50vw + 12.75rem)}
.p4{width:30.8rem;top:47.6rem;left:calc(50vw + 33.1rem)}
.hero__window{position:absolute;inset:0;z-index:3;clip-path:inset(0px 0px 0px 0px round 0px);isolation:isolate}
.hero__tile{position:absolute;inset:0;overflow:hidden;--r:calc(50% - var(--seat)*.2475);clip-path:inset(50% 50% round 10px);transition:clip-path 1.1s var(--io)}
.is-visual-in .hero__tile{clip-path:inset(var(--r) var(--r) round 10px)}
.is-loaded .hero__tile{clip-path:inset(0% 0% round 0px)}
.hero__center{position:absolute;inset:0;scale:var(--s0,.35);transition:scale 1.1s var(--io)}
.is-loaded .hero__center{scale:1}
.hero__center::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(transparent 35%,rgba(20,28,32,.6) 72%,rgba(20,28,32,.78));opacity:var(--scrim,1);pointer-events:none}
.hero__video,.hero__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__video{scale:.85;transition:scale 1.3s var(--io)}
.is-visual-in .hero__video{scale:1}
.hero__poster{z-index:1;transition:opacity .45s linear,visibility 0s .45s}
.is-video-playing .hero__poster{opacity:0;visibility:hidden}
.hero__glass{position:absolute;z-index:1;left:-.18em;top:50%;translate:0 calc(50vh - .72em);font:500 21rem/1.1 var(--font);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;height:.83em;clip-path:inset(0);transition:translate 1.1s var(--io);pointer-events:none}
.is-loaded .hero__glass{translate:0 -50%}
.hero__glass .rows{display:flex;flex-direction:column}
.hero__glass .row{display:flex;line-height:.83;height:.83em;transition:translate 1.6s var(--out)}
.fv-elements .hero__glass .row{translate:0 -100%}
.hero__glass .track{display:flex;color:rgba(255,255,255,.12);animation:rail var(--rail) linear infinite paused}
.fv-complete .hero__glass .track,.fv-complete .hero__ghost .track{animation-play-state:running}
.hero__glass .ch{display:inline-block;translate:0 1.2lh;transition:translate 1.2s var(--io);transition-delay:calc(var(--i)*10ms)}
.is-text-in .hero__glass .ch{translate:0 0}
.is-loaded .hero__glass .track{
  background-image:linear-gradient(100deg,rgba(40,50,56,.45) 0%,rgba(40,50,56,.18) 38%,rgba(255,255,255,.4) 64%,rgba(255,255,255,.1) 84%),url(../img/hero-blur.webp);
  background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;
  background-size:var(--iw) var(--ih),var(--iw) var(--ih);
  background-position:calc(var(--bx) + var(--px,0)*40px) var(--by),calc(var(--bx) + var(--px,0)*6px) var(--by);
  animation-name:rail,railbg}
@keyframes rail{to{translate:-50% 0}}
@keyframes railbg{to{background-position:calc(var(--bx) + var(--half) + var(--px,0)*40px) var(--by),calc(var(--bx) + var(--half) + var(--px,0)*6px) var(--by)}}
.hero__copy{position:absolute;inset:0 0 auto;height:100vh;z-index:7;display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:flex-end;padding:0 13rem 8.6rem var(--gutter);color:#fff;visibility:hidden;pointer-events:none}
.fv-elements .hero__copy,.no-js .hero__copy{visibility:visible}
.hero__copy.is-dark{color:#161616;z-index:2}
.hero__copy .t{max-width:40rem}
.hero__copy h1,.hero__copy .h1{font:700 2.6rem/1.35 var(--font);letter-spacing:-.005em;margin-bottom:1.5rem}
.hero__copy .lead{font-size:1.3rem;line-height:1.65}
.hero__addr{font:500 1.2rem/1.5 var(--font)}
.hero__addr b{display:block;font-weight:700;font-size:1.5rem;margin-bottom:.2rem}
.hero__copy.is-light{text-shadow:0 1px 18px rgba(0,0,0,.18)}
.hero__copy a{pointer-events:auto}
.hero__intro{display:none}
@media(max-width:1023px){
  .hero{margin-bottom:0}
  .hero__pin{height:auto}
  .hero__stage{position:relative;height:100svh}
  .hero__planes,.hero__ghost,.hero__copy.is-dark{display:none}
  .hero__glass,.is-loaded .hero__glass{font-size:12rem;top:calc(100svh - 12rem - .83em);translate:0 0}
  .hero__seat{display:none}
  .hero__center{scale:1}
  .hero__tile{opacity:0;clip-path:inset(calc(50% - var(--seat)/2) 1.5rem round 50px);transition:clip-path 1.1s var(--io),opacity .6s var(--io)}
  .is-visual-in .hero__tile{opacity:1;clip-path:inset(calc(50% - var(--seat)/2) 1.5rem round 50px)}
  .is-loaded .hero__tile{clip-path:inset(0% 0% round 0px)}
  .hero__copy{justify-content:center;align-items:flex-end;padding:0 0 4rem;text-align:center}
  .hero__copy .t{display:none}
  .hero__addr{width:100%;border-top:1px solid rgba(255,255,255,.4);padding-top:2rem}
  .hero__intro{display:block;background:#fff;text-align:center;padding:7.5rem 1.5rem 6rem}
  .hero__intro h1{font:700 3rem/1.25 var(--font)}
  .hero__intro h1 span{color:var(--mauve)}
  .hero__intro img{width:15rem;aspect-ratio:4/3;object-fit:cover;border-radius:.5rem;margin:3rem auto}
  .hero__intro .en{font-size:1.2rem;color:var(--muted);border-top:.5px solid var(--hair);padding-top:2rem;margin:0 -1.5rem 2rem}
  .hero__intro .lead{font-size:1.4rem;margin:0 auto}
}

/* ---------- message + service ---------- */
.stack1{position:relative;z-index:6}
.msg{position:relative}
.msg__content{position:relative;z-index:6;margin-bottom:50vh;max-width:88rem}
.msg__statement{font:700 4rem/1.5 var(--font);letter-spacing:-.01em}
.msg__statement strong{color:var(--mauve-t)}
.msg__lead{margin-top:2.7rem;max-width:56rem;font-size:1.4rem}
.msg__content .btn{margin-top:2.7rem}
.msg__photo{width:var(--col5);margin-left:calc(3*var(--col5) + 3*var(--gap));aspect-ratio:657/846;margin-bottom:5rem;position:relative;z-index:1}
.msg__photo figcaption{font-size:1.1rem;margin-top:1rem;color:var(--muted)}
.cg{position:fixed;left:50%;top:50%;width:60rem;aspect-ratio:197/164;translate:-50% -50%;z-index:5;opacity:0;pointer-events:none;color:#8f9aa0}
.cg canvas{width:100%;height:100%}
.cg.is-gone{opacity:0!important}
.svc{position:relative;padding-bottom:19rem}
.svc__inner{display:flex;gap:var(--gap)}
.svc__main{width:calc(3*var(--col5) + 2*var(--gap));display:flex;gap:var(--gap);padding-top:2.9rem}
.svc__head{width:var(--col5);flex:none}
.svc__body{flex:1}
.svc__item+.svc__item{margin-top:3.8rem}
.svc__item h3{font:700 1.8rem/1.45 var(--font);margin-bottom:.8rem}
.svc__item p{font-size:1.3rem;line-height:1.65;margin-bottom:1.5rem;max-width:46em}
.svc__side{width:calc(2*var(--col5) + var(--gap));padding-top:2.9rem}
@media(max-width:1023px){
  .msg{background:var(--paper);padding:6rem var(--gutter) 0}
  .msg .wrap{padding:0}
  .msg__inner{display:flex;flex-direction:column}
  .cg{position:relative;left:auto;top:auto;translate:none;width:85%;margin:0 auto .8rem;opacity:1;order:-1}
  .msg__content{margin-bottom:8rem;text-align:center}
  .msg__statement{font-size:1.8rem;line-height:1.75}
  .msg__statement br{display:none}
  .svc__head{display:block!important;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .msg__lead{margin-inline:auto;font-size:1.3rem}
  .msg__photo{width:auto;margin:0 calc(var(--gutter)*-1);aspect-ratio:4/3;border-radius:0}
  .msg__photo figcaption{padding:0 var(--gutter)}
  .svc{padding:4rem 0 5.6rem;background:var(--paper)}
  .svc__inner{flex-direction:column-reverse;gap:5.8rem}
  .svc__main,.svc__side{width:auto;padding-top:0}
  .svc__body{counter-reset:svc}
  .svc__item{position:relative;counter-increment:svc;padding:2.2rem 0 0 10rem}
  .svc__item::before{content:"0" counter(svc);position:absolute;left:0;top:2.3rem;font:500 1.1rem/1 var(--font)}
  .svc__item::after{content:"";position:absolute;top:0;left:calc(var(--gutter)*-1);width:100vw;height:.5px;background:var(--hair)}
  .svc__item h3{font-size:1.8rem}
  .svc__item .chips{display:none}
  .svc__item+.svc__item{margin-top:4rem}
}

/* ---------- feature (teal) ---------- */
.feat{position:relative;z-index:10;color:#fff}
.feat__inner{display:flex;background:var(--teal-d)}
.feat__lead{width:calc(2*var(--col5) + 2*var(--gap));flex:none;padding:5rem var(--gutter) 18rem;background:var(--teal)}
.feat__sticky{position:sticky;top:6rem;height:calc(100vh - 10.5rem);display:flex;flex-direction:column;justify-content:space-between}
.feat__head{display:flex;padding-top:2.9rem;--line-c:#fff}
.feat__head .eyebrow{width:var(--col5);flex:none}
.toc{font-size:1.1rem;line-height:1}
.toc li+li{margin-top:1rem}
.toc a{color:#fff;transition:text-shadow .3s var(--ui),background-size .32s ease}
.toc .is-current a{text-shadow:.025em 0 currentColor,-.025em 0 currentColor;background-position:left bottom;background-size:100% 1px}
.feat .copy,.rev .copy,.cta .copy{color:#fff;font-weight:400}
.feat .copy strong,.rev .copy strong,.cta .copy strong{color:#fff;font-weight:700}
.feat__main{flex:1;padding:0 var(--gutter) 18rem}
.feat__main-in{max-width:55.2rem;margin-inline:auto}
.fcard{scroll-margin-top:20vh}
.fcard+.fcard{margin-top:7rem}
.fcard .frame{aspect-ratio:8/5;margin-bottom:1.2rem;transition:border-radius .3s var(--ui)}
.fcard .frame img{transition:scale .3s}
.fcard h3{font:700 1.8rem/1.45 var(--font);margin-bottom:.5rem}
.fcard p{font-size:1.3rem;line-height:1.65;color:#fff}
.fcard__arw{display:none}
.stats{margin-top:9rem;scroll-margin-top:20vh}
.stats h3{font:700 1.8rem/1.2 var(--font);margin-bottom:2.6rem}
.stat{padding:.9rem 0 3.6rem;--line-c:#fff}
.stat:last-child{padding-bottom:0}
.stat__fig{display:flex;align-items:flex-end;gap:.6rem}
.stat__val{font:500 13rem/1 var(--font);letter-spacing:-.03em}
.stat__unit{font-weight:700;font-size:1.6rem;color:#fff;translate:0 -1.6rem}
.stat p{font-size:1.3rem;line-height:1.65;color:#fff;translate:0 -.4rem}
.stats__note{font-size:1.1rem;margin-top:3rem;line-height:1.6}
@media(max-width:1023px){
  .feat__inner{display:block;background:var(--teal)}
  .feat__lead{width:auto;padding:6.4rem var(--gutter) 4rem}
  .feat__sticky{position:static;height:auto;display:block}
  .feat__head{display:block;padding-top:0}
  .feat__head .toc{display:none}
  .feat .copy{margin-top:0}
  .feat__main{padding:0}
  .feat__main-in{max-width:none;counter-reset:n}
  .fcard{counter-increment:n;height:53rem;margin:0 0 -1px!important;position:relative}
  .fcard>a,.fcard>div{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--gutter) 7rem;overflow:clip}
  .fcard>div::before{content:counter(n);position:absolute;top:0;left:var(--gutter);font:400 20rem/1 var(--font);translate:0 -1rem;z-index:1}
  .fcard .frame{position:absolute;inset:0;border-radius:0;aspect-ratio:auto;opacity:0;margin:0;filter:brightness(.7);transition:opacity .7s var(--ui),scale .7s var(--ui)}
  .fcard .frame img{top:0;height:100%}
  .fcard.is-show .frame{opacity:1;scale:1.05}
  .fcard h3,.fcard p{position:relative;z-index:1}
  .fcard h3{font-size:2.1rem;margin-bottom:2rem}
  .fcard.is-show p{color:#fff}
  .stats{margin:0;padding:6.5rem var(--gutter) 7rem;background:var(--teal-d)}
  .stat__val{font-size:10rem}
}
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
  .fcard:hover .frame{border-radius:1.5rem}
  .fcard:hover .frame img{scale:1.05}
}

/* ---------- towns (marquee) ---------- */
.towns{position:relative;z-index:11;background:var(--paper);padding:15rem 0 16rem}
.towns__head{padding-top:7rem;margin-bottom:8.5rem}
.towns__head>*,.sold__head>*{max-width:88rem}
.marquee{overflow:clip;margin-inline:calc(var(--gutter)*-1);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;opacity:0;transition:opacity 1.3s var(--out)}
.marquee.in{opacity:1}
.marquee.dragging{cursor:grabbing}
.marquee__track{display:flex;width:max-content;animation:mq var(--dur,60s) linear infinite}
.marquee--rev .marquee__track{animation-direction:reverse}
@keyframes mq{to{translate:-50% 0}}
.marquee__set{display:flex;gap:2.4rem;padding-right:2.4rem;flex:none}
.town{display:block;width:26rem;flex:none}
.town .frame{aspect-ratio:4/5;margin-bottom:1.2rem;transition:border-radius .3s var(--ui)}
.town .frame img{top:0;height:100%;transition:scale .3s;-webkit-user-drag:none;pointer-events:none}
.town b{display:block;font:700 1.6rem/1.3 var(--font)}
.town small{font-size:1.1rem;color:var(--muted)}
@media(hover:hover) and (pointer:fine){.town:hover .frame{border-radius:1.5rem}.town:hover .frame img{scale:1.05}}
@media(max-width:1023px){
  .towns{padding:6.3rem 0 8rem}
  .towns__head{padding-top:0;margin-bottom:5rem}
  .towns__head::after{display:none}
  .town{width:20rem}
  .marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
}

/* ---------- sold (case) ---------- */
.sold{position:relative;z-index:12;background:#fff;padding:15rem 0}
.sold__head{padding-top:7rem}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-bottom:0;border-radius:3rem 3rem 0 0;overflow:hidden;margin:8rem 0 7rem}
.tabs li+li{border-left:1px solid var(--line)}
.tabs button{width:100%;height:6rem;display:flex;align-items:center;justify-content:center;font-size:1.4rem;transition:color .3s var(--ui);--ripple:rgba(246,246,246,.6)}
.tabs button:hover{color:var(--mauve)}
.tabs button[aria-pressed=true]{background:var(--paper);font-weight:700;pointer-events:none;color:var(--ink)}
.sold__content{display:flex;gap:var(--gap)}
.sold__filter{width:var(--col4);flex:none}
.sold__filter .chips{position:sticky;top:calc((100vh - 5rem)/2 - var(--fh,0px)/2);flex-direction:column;align-items:flex-start;gap:4px}
.sold__filter .chip .flip{translate:0 110%;opacity:0;transition:translate 1.3s var(--out) var(--d),opacity 1.3s var(--out) var(--d)}
.sold__filter .chip::before{scale:0;transition:scale .7s var(--out) var(--d)}
.sold__filter .chip{box-shadow:0 1px 1px transparent;transition:box-shadow .3s ease calc(var(--d) + .7s),color .2s}
.sold.in .sold__filter .chip .flip{translate:0 0;opacity:1}
.sold.in .sold__filter .chip::before{scale:1}
.sold.in .sold__filter .chip{box-shadow:0 1px 1px rgba(0,0,0,.09)}
.sold__grid{flex:1;min-width:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6rem 4rem}
.card{position:relative}
.card[hidden]{display:none}
.card__img{aspect-ratio:289/183;margin-bottom:1rem;background:var(--paper);border-radius:.5rem;overflow:clip;position:relative;transition:border-radius .3s var(--ui)}
.card__img img{position:absolute;inset:12% 18% 4%;width:64%;height:84%;object-fit:contain;opacity:.55;transition:scale .3s}
.card.is-buy .card__img{background:#f3eeee}
.card.is-buy .card__img img{scale:-1 1}
.card__badge{position:absolute;top:1rem;left:1rem;width:5rem;height:5rem;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:700 1rem/1 var(--font);letter-spacing:.06em}
.card.is-buy .card__badge{background:var(--mauve)}
.card__price{position:absolute;right:1.2rem;bottom:1rem;font:500 2.4rem/1 var(--font);letter-spacing:-.02em}
.card h3{font:700 1.6rem/1.45 var(--font);margin-bottom:.4rem}
.card p{font-size:1.2rem;line-height:1.65;margin-bottom:1.2rem}
.card .chips .chip{height:2.2rem;font-size:1.1rem;pointer-events:none}
.sold__more{margin-top:6rem;display:none}
.sold__note{margin-top:4rem;font-size:1.1rem;color:var(--muted);line-height:1.6;max-width:70em}
@media(min-width:1024px){.sold:not(.show-all) .card:nth-child(n+7){display:none}.sold__more{display:flex}}
.sold__more[hidden]{display:none!important}
.sold__empty{font-size:1.4rem;opacity:.6}
@media(max-width:1023px){
  .sold{padding:6.3rem 0 7rem}
  .sold__head{padding-top:0}
  .sold__head::after{display:none}
  .tabs{display:flex;gap:2rem;border:0;border-radius:0;margin:4.4rem 0 2.6rem;border-bottom:1px solid rgba(217,212,212,.8);overflow-x:auto}
  .tabs li+li{border:0}
  .tabs button{height:auto;padding-bottom:1.4rem;font-size:1.2rem;white-space:nowrap;position:relative}
  .tabs button[aria-pressed=true]{background:none;color:var(--mauve-s)}
  .tabs button[aria-pressed=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--mauve)}
  .sold__content{display:block}
  .sold__filter{width:auto;margin:0 calc(var(--gutter)*-1) 3rem;overflow-x:auto;padding:2px var(--gutter)}
  .sold__filter .chips{position:static;flex-direction:row;flex-wrap:nowrap}
  .cards{grid-template-columns:1fr;gap:3rem}
  .sold:not(.show-all) .card.is-extra{display:none}
  .sold__more{display:flex}
}

/* ---------- reviews (news) ---------- */
.rev{position:relative;z-index:13;background:var(--mauve);color:#fff;padding:15rem 0 19rem}
.rev__inner{display:flex;gap:var(--gap)}
.rev__head{width:calc(2*var(--col5) + var(--gap));flex:none;padding-top:6.2rem}
.rev__main{flex:1;padding-top:8rem}

.quote{font:700 2.4rem/1.5 var(--font);letter-spacing:-.005em;max-width:32em}
.quote-meta{display:flex;gap:2rem;align-items:center;font-size:1.3rem;margin-top:2.4rem}
.stars{letter-spacing:.2em}
.rev__list{margin-top:6rem}
.rev__list li+li{margin-top:2.2rem}
.rev__list a{display:flex;align-items:baseline;font-size:1.4rem}
.rev__list time,.rev__list .k{display:inline-block;width:14rem;flex:none;font-size:1.2rem;font-weight:700}
@media(max-width:1023px){
  .rev{padding:6rem 0 7rem;text-align:center}
  .rev__inner{display:block}
  .rev__head{width:auto;padding-top:0;margin-bottom:4.8rem}
  .rev__head::after,.rev__main::after{display:none}
  .rev__main{padding-top:0}
  .quote{font-size:1.8rem}
  .quote-meta{justify-content:center;flex-wrap:wrap}
  .rev__list a{flex-direction:column;align-items:center;gap:.4rem;padding:2rem 0;border-top:.5px solid rgba(255,255,255,.4)}
  .rev__list li+li{margin-top:0}
}

/* ---------- CTA (recruit) ---------- */
.cta{position:relative;overflow:clip;color:#fff;padding:15rem 0 25.6rem}
.cta__bg{position:absolute;inset:0;background:#6d7f88 center/calc(max(100vw,160vh)*var(--s,1)) auto no-repeat fixed}
.cta.is-near .cta__bg,.no-js .cta__bg{background-image:url(../img/cta.webp)}
.cta__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,34,40,.55),rgba(20,34,40,.15))}
.cta__content{position:relative;padding-top:6.3rem}
.cta__content>*{max-width:60rem}
.cta .copy{line-height:1.3}
@media(max-width:1023px){
  .cta{padding:0;height:46.9rem;display:flex;align-items:center}
  .cta__bg{background-attachment:scroll;background-size:cover}
  .cta__content{padding-top:0}
  .cta__content::after{display:none}
}

/* ---------- footer ---------- */
.foot{background:var(--teal);color:#fff;position:relative}
.foot__inner{position:relative;padding-top:9rem;padding-bottom:6rem}
.foot__visual{position:absolute;left:50%;top:11rem;width:58.9rem;aspect-ratio:197/164;translate:-50% 0;opacity:.72;z-index:1;color:#e8f3f7}
.foot__visual canvas{width:100%;height:100%}
.foot__cta,.foot__mid,.foot__bottom{position:relative;z-index:2}
.foot__cta{margin-left:calc(3*var(--col5) + 3*var(--gap));margin-bottom:9.5rem}
.foot__cta>div+div{margin-top:3.6rem}
.cta-link{display:inline-flex;overflow:clip;font:700 1.6rem/1.3 var(--font)}
.cta-link .track{position:relative;display:flex;align-items:center;gap:.6rem;transition:translate .35s var(--ui)}
.cta-link .pre{position:absolute;right:calc(100% + .8rem)}
.cta-link svg{width:1rem;height:.8rem}
.cta-link:hover .track{translate:1.8rem 0}
.foot__cta p{font-size:1.3rem;line-height:1.65;margin-top:.6rem}
.foot__mid{display:flex;justify-content:space-between;padding-top:5.3rem;padding-left:calc(var(--col5) + var(--gap));margin-bottom:18rem;--line-c:#fff}
.foot__nav li+li{margin-top:1.8rem}
.foot__nav a{font:700 1.4rem/1.2 var(--font)}
.foot__info{text-align:right;font:600 1.1rem/1.6 var(--font);display:flex;flex-direction:column;gap:.5rem}
.foot__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:4rem}
.foot__brand{width:calc(2*var(--col5) + var(--gap));flex:none}
.foot__logo{display:flex;align-items:center;gap:1.6rem;margin-bottom:1.6rem;color:#fff}
.foot__logo .mono{width:6rem;flex:none}
.foot__brk{font:700 2.4rem/1.15 var(--font);letter-spacing:-.005em}
.foot__brk span{display:block;font-weight:500}
.foot__lic{font:600 1.4rem/1.5 var(--font);margin-bottom:1.6rem}
.foot__legal{font-size:1.2rem;line-height:1.7}
.foot__legal a{text-decoration:underline;text-underline-offset:2px}
.foot__msg{font:700 3rem/1.5 var(--font);letter-spacing:-.01em;flex:1}
.foot__msg{font-weight:400}
.foot__msg strong{color:#fff;font-weight:700}
.foot__seal{display:flex;gap:1.6rem;align-items:center;margin-top:2rem}
.foot__seal img{width:5.2rem;filter:brightness(0) invert(1);opacity:.85}
.credits{margin-top:4rem;font-size:1.1rem;position:relative;z-index:2}
.credits summary{cursor:pointer;width:max-content}
.credits ul{margin-top:1rem;columns:2;column-gap:4rem}
.credits li{break-inside:avoid;margin-bottom:.4rem}
.credits a{text-decoration:underline}
@media(max-width:1023px){
  .foot__inner{padding-top:7rem;text-align:center}
  .foot__visual{position:relative;left:auto;top:auto;translate:none;width:90%;margin:0 auto 4rem}
  .foot__cta{margin:0 0 5rem}
  .cta-link .track{justify-content:center}
  .foot__mid{display:block;padding:4rem 0 0;margin-bottom:6rem}
  .foot__mid::after{display:none}
  .foot__nav{margin-bottom:3rem}
  .foot__nav li+li{margin-top:1.4rem}
  .foot__nav a{font-size:1.3rem}
  .foot__info{text-align:center;opacity:.8}
  .foot__bottom{flex-direction:column-reverse;align-items:center}
  .foot__brand{width:auto}
  .foot__logo{justify-content:center;text-align:left}
  .foot__logo .mono{width:4.4rem}
  .foot__brk{font-size:1.8rem}
  .foot__msg{font-size:1.8rem;line-height:1.45}
  .foot__seal{justify-content:center}
  .credits ul{columns:1}
  .credits summary{margin-inline:auto}
}

/* ---------- stacked-section parallax ---------- */
[data-stack]{will-change:transform}

/* ---------- contact page ---------- */
.page main{padding-top:1px}
.phead{display:flex;flex-direction:column;gap:2.4rem;padding-inline:var(--gutter);margin-top:25rem}
.phead__eyebrow{position:relative;font-size:1.2rem;color:var(--mauve-s);padding-bottom:3rem}
.phead__eyebrow::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--hair);transform-origin:left;scale:0 1;transition:scale 1.3s var(--io)}
.is-ready .phead__eyebrow::after{scale:1 1}
.phead__title{font:700 5rem/1.3 var(--font);letter-spacing:-.015em}
.phead__title .m{color:var(--mauve-t)}
.mask{display:block;overflow:clip}
.mask>span{display:block}
.contact{display:grid;gap:4rem;margin-top:11rem;padding:0 var(--gutter) 16rem}
.steps{display:flex;flex-direction:column;gap:1.9rem;padding-top:1.1rem;font-size:1.2rem}
.steps li{display:flex;align-items:center;gap:.8rem;color:var(--muted)}
.steps li[aria-current=step],.steps li.done{color:var(--ink);font-weight:700}
.steps .dot{width:1.6rem;height:1.6rem;border-radius:50%;background:#ebebeb;display:grid;place-items:center;scale:0;transition:scale .7s var(--out) var(--d),background .3s}
.steps .dot svg{width:.8rem;opacity:0}
.steps li[aria-current=step] .dot,.steps li.done .dot{background:var(--teal)}
.steps li[aria-current=step] .dot svg,.steps li.done .dot svg{opacity:1}
.steps .lbl{display:block;overflow:clip;height:1lh}
.steps .lbl span{display:block;translate:0 110%;opacity:0;transition:translate 1.3s var(--out) var(--d),opacity 1.3s var(--out) var(--d)}
.is-ready .steps .dot{scale:1}
.is-ready .steps .lbl span{translate:0 0;opacity:1}
.steps li:nth-child(1){--d:.45s}.steps li:nth-child(2){--d:.55s}.steps li:nth-child(3){--d:.65s}
.form{width:100%}
.fi{position:relative}
.fi:not(:last-child){margin-bottom:3.6rem}
.fi.radios-item{margin-bottom:5.5rem}
.fi[hidden]{display:none}
.fl{display:inline-block;font:700 1.4rem/1.3 var(--font);margin-bottom:1rem}
.req{color:var(--red);margin-left:.3rem}
.opt{font-weight:400;font-size:1.1rem;color:var(--muted);margin-left:.5rem}
.radios{display:flex;flex-direction:column;gap:1rem}
.radio{display:flex;align-items:center;gap:.8rem;font-size:1.4rem;cursor:pointer;width:max-content;max-width:100%;padding:.4rem 0}
.radio input{appearance:none;-webkit-appearance:none;width:2.6rem;height:2.6rem;border-radius:50%;background:#fff;border:1px solid #8a8a8a;margin:0;flex:none;transition:background .2s,box-shadow .2s}
.radio input:checked{background:var(--teal);box-shadow:inset 0 0 0 .5rem #fff}
.ctl{position:relative}
.ctl input,.ctl textarea,.ctl select{appearance:none;-webkit-appearance:none;width:100%;background:#fff;border:1px solid #8a8a8a;border-radius:5px;font:400 1.8rem/1.4 var(--font);color:var(--ink);padding:1.7rem 5rem 1.7rem 1.5rem;transition:border-color .2s,box-shadow .2s,background .2s}
.ctl textarea{min-height:24rem;resize:vertical;padding-right:1.5rem}
.ctl ::placeholder{color:var(--muted);opacity:1}
.ctl input:focus,.ctl textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(96,154,174,.2)}
.ctl .ok{position:absolute;right:2rem;top:2.1rem;width:2rem;height:2rem;opacity:0;transition:opacity .2s;pointer-events:none}
.fi[data-state=ok] .ctl input,.fi[data-state=ok] .ctl textarea{border-color:rgba(51,51,51,.6)}
.fi[data-state=ok] .ok{opacity:1}
.fi[data-state=empty] .ctl input,.fi[data-state=empty] .ctl textarea,.fi[data-state=invalid] .ctl input{border-color:rgba(226,0,19,.6)}
.fi[data-state=invalid] .ctl input{background:#fff0f0}
.err{display:none;font-size:1.2rem;color:var(--red);margin-top:1rem}
.fi[data-state=empty] .err--req,.fi[data-state=invalid] .err--fmt{display:block}
.form-btns{display:flex;flex-direction:column;align-items:center;gap:2.4rem;margin-top:6rem}
.btn-submit{position:relative;width:100%;display:flex;align-items:center;justify-content:center;gap:.8rem;padding:4.4rem 0;border-radius:100vh;background:var(--teal);border:1px solid var(--teal);color:#fff;font:700 1.6rem/1 var(--font);overflow:clip;isolation:isolate;transition:opacity .3s,border-color .35s var(--ui);--ripple:var(--mauve)}
.btn-submit.is-incomplete{opacity:.55}
.btn-submit[disabled]{opacity:.5;cursor:wait}
.btn-submit .btn__arw{width:1rem;height:.8rem}
.btn-back{height:4.4rem;padding-inline:2.4rem;font-size:1.3rem;color:var(--ink)}
.btn-back .btn__arw{rotate:180deg}
.confirm-list .fi{margin-bottom:4rem}
.confirm-list dt{font-size:1.3rem;color:var(--muted);margin-bottom:1.2rem}
.confirm-list dd{margin:0;font:700 1.8rem/1.5 var(--font);white-space:pre-wrap}
.panel[hidden]{display:none}
.panel{animation:panelIn .6s var(--out)}
@keyframes panelIn{from{opacity:0;translate:0 2rem}}
.done-panel{display:flex;flex-direction:column;gap:3rem;font-size:1.6rem;line-height:1.7}
.form-error{color:var(--red);font-size:1.3rem;margin-top:2rem;text-align:center}
.form-error.is-note{color:var(--ink)}
.privacy{font-size:1.2rem;color:var(--muted);line-height:1.6;text-align:center;max-width:52em}
.remaining{width:11rem}
.remaining__body{position:sticky;top:calc((100svh - 11rem)/2);width:11rem;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;font:700 1.2rem/1.2 var(--font);isolation:isolate;text-align:center}
.remaining__body::before{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;z-index:-1;scale:0;transition:scale .7s var(--out) .45s}
.is-ready .remaining__body::before{scale:1}
.remaining__body .mask span{translate:0 110%;opacity:0;transition:translate 1.3s var(--out) .55s,opacity 1.3s var(--out) .55s}
.remaining__body .mask+.mask span{transition-delay:.63s}
.is-ready .remaining__body .mask span{translate:0 0;opacity:1}
.remaining__n{font-size:2rem}
.remaining.is-hidden{visibility:hidden}
.hp{position:absolute;left:-9999px}
@media(min-width:1024px){
  .contact{grid-template-columns:auto auto auto;justify-content:space-between}
  .contact__form{width:70rem;padding-top:1.1rem}
  .steps-wrap .steps{position:sticky;top:calc((100svh - 10rem)/2)}
}
@media(max-width:1023px){
  .phead{margin-top:10rem;padding-inline:1.5rem;gap:2.5rem}
  .phead__eyebrow{padding-bottom:1rem}
  .phead__title{font-size:2.8rem}
  .contact{margin-top:5rem;gap:3.5rem;padding:0 0 12rem}
  .steps-wrap{display:flex;justify-content:flex-end;padding-inline:1.5rem}
  .steps{gap:1rem}
  .contact__form{margin-inline:1.5rem;padding-top:5rem;position:relative}
  .contact__form::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--hair)}
  .ctl input,.ctl textarea{font-size:1.6rem;padding:1.2rem 4rem 1.2rem 1.5rem}
  .ctl .ok{right:1.5rem;top:1.6rem;width:1.6rem;height:1.6rem}
  .radio input{width:2.2rem;height:2.2rem}
  .radio input:checked{box-shadow:inset 0 0 0 .3rem #fff}
  .btn-submit{padding:0;height:7rem;border-radius:5px;font-size:1.4rem}
  .remaining{position:fixed;bottom:0;left:0;width:100%;height:5.3rem;z-index:50;transition:opacity .7s var(--out)}
  .remaining__body{position:static;width:100%;height:100%;aspect-ratio:auto;border-radius:0;flex-direction:row;gap:.6rem;background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 -1px 12px rgba(0,0,0,.05)}
  .remaining__body::before{display:none}
  .remaining.at-foot{opacity:0;pointer-events:none}
  html:has(.remaining){scroll-padding-bottom:7rem}
}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .marquee__track,.hero__glass .track,.hero__ghost .track{animation:none!important}
  [data-lines],[data-fade]{visibility:visible!important;opacity:1!important}
}

/* ---------- motion toggle (WCAG 2.2.2) ---------- */
.motion-btn{position:absolute;right:var(--gutter);bottom:3rem;z-index:8;display:flex;align-items:center;gap:.6rem;height:3rem;padding:0 1.2rem;border-radius:100vh;background:rgba(20,28,32,.45);color:#fff;font:600 1.1rem/1 var(--font);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .6s var(--out)}
.fv-other .motion-btn,.no-js .motion-btn{opacity:1}
.motion-btn .ico{width:.9rem;height:.9rem;display:grid;grid-template-columns:1fr 1fr;gap:.2rem}
.motion-btn .ico::before,.motion-btn .ico::after{content:"";background:currentColor}
.is-paused .motion-btn .ico{grid-template-columns:1fr;clip-path:polygon(0 0,100% 50%,0 100%)}
.is-paused .motion-btn .ico::after{display:none}
.is-paused .hero__glass .track,.is-paused .hero__ghost .track,.is-paused .marquee__track{animation-play-state:paused!important}
@media(max-width:1023px){.motion-btn{bottom:auto;top:8.4rem;right:1.5rem}}
