@font-face{font-family:Outfit;font-weight:100 900;font-display:swap;src:url(fonts/Outfit.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/InstrumentSerif-Italic.woff2) format("woff2")}
:root{
  --mist:#EDF0F7;--cloud:#F8F9FD;--night:#181F3D;--dusk:#3A4486;--haze:#8E96DD;--lilac:#D5D3F2;--glow:#F2D6A2;
  --r:16px;--m:12px;
  --small:clamp(.875rem,.85rem + .1vw,.9375rem);--body:clamp(1.0625rem,1rem + .25vw,1.1875rem);--lead:clamp(1.25rem,1.1rem + .7vw,1.5rem);
  --sans:Outfit,system-ui,sans-serif;--serif:"Instrument Serif",Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mist);color:var(--night);font:400 var(--body)/1.55 var(--sans);overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:4px}
:focus-visible{outline:3px solid var(--dusk);outline-offset:3px}
h1,h2,h3{margin:0;font-weight:300;letter-spacing:.005em;line-height:1.05}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--dusk);font-size:1.12em;line-height:.9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--night);color:#fff;padding:10px 14px;z-index:60;border-radius:var(--r)}
.skip:focus{top:8px}
.demo{margin:0;background:var(--night);color:var(--cloud);text-align:center;font-size:var(--small);padding:8px 16px;line-height:1.3}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:var(--r);border:0;background:var(--glow);color:var(--night);font:500 1.0625rem/1 var(--sans);text-decoration:none;cursor:pointer;transition:transform .15s,background-color .2s}
.btn:hover{transform:translateY(-2px);background:#f6dfb4}.btn:active{transform:translateY(1px)}
.btn-dark{background:var(--night);color:var(--cloud)}.btn-dark:hover{background:var(--dusk)}
.btn-luz{background:var(--glow)}

/* split stage: the photograph stays, the card scrolls */
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:var(--m);align-items:start}
.stage{position:sticky;top:var(--m);height:calc(100svh - 2 * var(--m));order:2;border-radius:var(--r);overflow:hidden;background:var(--lilac)}
.stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease}
.stage img.on{opacity:1}
.col{order:1;background:var(--cloud);border-radius:var(--r);padding:0 clamp(24px,5vw,72px)}
.col section{max-width:46ch;margin:0 auto;padding:clamp(48px,8vw,96px) 0}
.hero{text-align:center;min-height:calc(100svh - 2 * var(--m));display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:48px;padding-bottom:48px}
.wm{display:flex;align-items:center;gap:10px;margin:0 0 28px;font-size:2.75rem;font-weight:300;letter-spacing:.06em;line-height:1}
.hero h1{font-size:clamp(2.5rem,1.6rem + 3vw,4.25rem);margin-bottom:10px}
.lead{margin:20px 0 28px;font-size:var(--lead);line-height:1.4;max-width:30ch}
.links{display:flex;gap:24px;margin-top:40px;font-size:var(--small)}
.links a{min-height:44px;display:inline-flex;align-items:center}
.col h2{font-size:clamp(2rem,1.6rem + 1.5vw,2.75rem);margin-bottom:16px}
.col section>p{margin:0 0 20px}

.pacer{margin:32px 0 20px;display:grid;gap:24px;justify-items:center}
.ring{position:relative;width:min(100%,300px);aspect-ratio:1;border-radius:50%;background:var(--lilac);display:grid;place-items:center}
.disc{position:absolute;inset:0;margin:auto;width:56%;aspect-ratio:1;border-radius:50%;background:var(--dusk);transform:scale(.7)}
.phase{margin:0;font-size:1.75rem;font-weight:300;letter-spacing:.04em;min-height:1.2em}
.pacer[data-state=in] .disc{transform:scale(1.55);transition:transform 4s ease-in-out}
.pacer[data-state=out] .disc{transform:scale(.7);transition:transform 6s ease-in-out}
.pacer-ctl{display:flex;align-items:center;gap:20px}
.count{margin:0;font-size:var(--small);font-variant-numeric:tabular-nums}
.safe{font-size:var(--small);color:#2B3363}

.letter p{font-size:1.0625rem}
.letter mark{background:var(--glow);color:var(--night);padding:0 .15em}
.sign{margin-top:32px!important;display:grid}
.sign b{font:italic 400 1.5rem/1.2 var(--serif)}
.sign span{font-size:var(--small);color:#2B3363}

.slip-ground{background:var(--lilac);border-radius:var(--r);padding:32px 20px 44px;margin-top:28px}
.slip{background:var(--cloud);max-width:460px;margin:0 auto;padding:28px 28px 40px;clip-path:polygon(0 0,100% 0,100% 100%,95% calc(100% - 12px),90% 100%,85% calc(100% - 12px),80% 100%,75% calc(100% - 12px),70% 100%,65% calc(100% - 12px),60% 100%,55% calc(100% - 12px),50% 100%,45% calc(100% - 12px),40% 100%,35% calc(100% - 12px),30% 100%,25% calc(100% - 12px),20% 100%,15% calc(100% - 12px),10% 100%,5% calc(100% - 12px),0 100%)}
.slip h3{font-size:1.125rem;font-weight:600;margin:24px 0 8px}
.slip h3:first-child{margin-top:0}
.r{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;font-size:1rem;font-variant-numeric:tabular-nums}
.r i{flex:1;min-width:20px;border-bottom:4px dotted var(--haze);transform:translateY(-4px)}
.r b{font-weight:500;white-space:nowrap}
.total{margin:28px -28px -12px!important;padding:12px 28px;background:var(--night);color:var(--cloud);font-weight:500;font-size:1rem}

/* plans: two fields */
.plans{display:grid;grid-template-columns:5fr 7fr;margin-top:12px}
.plan{min-height:90svh;padding:40px;display:flex;flex-direction:column;gap:16px;position:relative}
.p1{background:var(--lilac);color:var(--night)}.p2{background:var(--dusk);color:var(--cloud)}
.plan h2{font-size:clamp(2.5rem,1.4rem + 3.4vw,5rem)}
.who{margin:0;font-size:1.25rem;max-width:26ch;line-height:1.35}
.price{margin:auto 0 0;font-size:clamp(4rem,2rem + 7vw,9.5rem);font-weight:300;line-height:.95;letter-spacing:-.01em}
.price small{font-size:1.125rem;letter-spacing:0;font-weight:400}
.inc{margin:0;max-width:44ch;font-size:1.0625rem}
.plan .btn{align-self:flex-start}
.sep{display:none}
.plans-note{margin:12px var(--m) 0;font-size:var(--small);padding:0 12px}

/* faq: reading text */
.faq{display:grid;grid-template-columns:3fr 1fr 8fr;padding:clamp(70px,10vw,140px) clamp(20px,5vw,72px)}
.faq h2{grid-column:1;font-size:1.875rem}
.faq-text{grid-column:3;columns:2;column-gap:56px;font-size:1.0625rem}
.faq-text p{margin:0 0 20px;break-inside:avoid}
.faq-text b{font-weight:500}

/* contact: display rows */
.contact{padding:0}
.row{margin:0;min-height:150px;display:flex;align-items:flex-end;padding:0 20px 20px;font-size:clamp(2.75rem,6vw,5.5rem);font-weight:300;line-height:1}
.ro1{background:var(--lilac)}.ro2{background:var(--cloud)}
.ro-hi{background:var(--glow);gap:24px;align-items:center;padding-top:20px}
.go{display:inline-grid;place-items:center;width:.9em;height:.9em;border-radius:50%;background:var(--night);color:var(--cloud);transition:transform .2s}
.go:hover{transform:translateX(6px)}
.go svg{width:44%;height:44%}
.c-form{max-width:520px;margin:48px auto;padding:0 20px;display:grid;gap:12px}
.c-form label{display:grid;gap:4px;font-size:var(--small);font-weight:500}
.c-form input{min-height:52px;border:2px solid var(--haze);border-radius:var(--r);background:var(--cloud);padding:0 16px;font:400 1.0625rem var(--sans);color:var(--night)}
.status{margin:0;font-size:var(--small)}

.foot{padding:32px 20px 40px;font-size:var(--small);color:#2B3363}
.foot p{margin:0 0 8px;max-width:60ch}
.notice{display:none;position:fixed;inset:0;z-index:80;background:rgba(24,31,61,.7);place-items:center;padding:16px}
.notice:target{display:grid}
.notice-box{background:var(--cloud);border-radius:var(--r);padding:32px;max-width:520px}
.notice-box h2{font-size:2rem;margin-bottom:12px}.notice-box p{margin:0 0 16px}
.notice-box .btn{margin:0 8px 8px 0}

.rv{transform:translateY(24px);transition:transform .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0ms)}
.rv.in{transform:none}

@media(max-width:860px){
  :root{--m:12px}
  .split{display:block;padding:var(--m)}
  .stage{position:sticky;top:0;height:40svh;border-radius:var(--r);z-index:0;margin-bottom:-24px}
  .col{position:relative;z-index:1;padding:0 22px}
  .hero{min-height:0;padding-top:36px;padding-bottom:44px}
  .wm{font-size:2.25rem;margin-bottom:20px}
  .hero h1{font-size:max(8vw,2.25rem)}
  .links{margin-top:28px;flex-wrap:wrap;justify-content:center}
  .plans{grid-template-columns:1fr}.sep{display:block;height:0}
  .plan{min-height:70svh;padding:104px 20px 48px}
  .plan h2{font-size:12vw}.price{font-size:24vw}
  .plan .btn{align-self:stretch}
  .faq{display:block;padding:56px 20px}.faq h2{margin-bottom:20px;font-size:1.5rem}.faq-text{columns:1}
  .row{min-height:84px;font-size:9.6vw;padding:0 16px 14px}
  .ro-hi{min-height:96px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{transform:none}.pacer[data-state=in] .disc{transform:scale(1.4)}}
