@font-face{font-family:'Roca';src:url('../fonts/roca-light-subset.woff2') format('woff2');font-weight:300;font-display:swap}
/* v28: Montserrat and Caveat are self hosted (were Google Fonts). Montserrat is Google's own latin variable file, weights 100 to 900. */
@font-face{font-family:'Montserrat';src:url('../fonts/montserrat-var-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
/* Size matched stand in, shown for the moment before Montserrat arrives, so text does not reflow when it swaps in. Numbers from Montserrat's own metrics against Arial.
   Same character range as the Montserrat file, so the button arrows still come from the system font, as before. */
@font-face{font-family:'Montserrat fallback';src:local('Arial'),local('ArialMT'),local('Helvetica'),local('Roboto');size-adjust:113%;ascent-override:85.7%;descent-override:22.2%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Caveat 700, cut down to the letters of the two "sold out" stamps */
@font-face{font-family:'Caveat';src:url('../fonts/caveat-700-subset.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--purple:#2D033F; --cream:#FDF7FB; --pink:#E6CCF2; --ink:var(--purple); --mute:#674773; --line:rgba(45,3,63,.14); --field:rgba(45,3,63,.22); --blush:#F6ECFA; --pinkdeep:#D0B4DC; --thread:rgba(45,3,63,.45); --card:#3A0E4D; --deep:#1D0229; --onDark:rgba(253,247,251,.74); --lineDark:rgba(253,247,251,.16); --err:#a0224a; --display:'Roca',Georgia,'Times New Roman',serif; --sans:'Montserrat','Montserrat fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; --ease:cubic-bezier(.23,1,.32,1); --ease-io:cubic-bezier(.77,0,.175,1); --ease-pop:cubic-bezier(.34,1.56,.64,1); --stick:24px; color-scheme:only light;}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{overflow-x:clip}
[hidden]{display:none!important}
.off{display:none!important}
.unset{display:none!important}
html:not(.js) [data-need]{display:none!important}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.lp-home{display:block;flex:none;color:inherit}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Page states. core.js runs in <head> and writes the live state onto <html> (data-state, data-state-qc, data-state-iv, data-state-tk) before the first paint,
   so only that state's copy is ever drawn. These rules mirror applyStates() in core.js, which still adds .off as the final word.
   No JS, or core.js failed: data-state is never set, so state 1 shows. (v28: stops the layout jump, CLS was 0.64.)
   v30: an upload copy from build_live.py (data-built-state on <html>) only holds the live state, so with no JS it shows what it holds. */
html:not([data-state]):not([data-built-state]) .lp [data-ps]:not([data-ps*="1"]),html:not([data-state]) .lp [data-qc="closed"],html:not([data-state]) .lp [data-iv="on"],
html[data-state="1"] .lp [data-ps]:not([data-ps*="1"]),
html[data-state="2"] .lp [data-ps]:not([data-ps*="2"]),
html[data-state="3"] .lp [data-ps]:not([data-ps*="3"]),
html[data-state="1"][data-state-qc="open"] .lp [data-qc]:not([data-qc="open"]),
html[data-state="1"][data-state-qc="closed"] .lp [data-qc]:not([data-qc="closed"]),
html[data-state="1"][data-state-iv="on"] .lp [data-iv]:not([data-iv="on"]),
html[data-state="1"][data-state-iv="off"] .lp [data-iv]:not([data-iv="off"]),
html[data-state="2"][data-state-iv="on"] .lp [data-iv]:not([data-iv="on"]),
html[data-state="2"][data-state-iv="off"] .lp [data-iv]:not([data-iv="off"]),
html[data-state="2"][data-state-tk="listweek"] .lp [data-tk]:not([data-tk~="listweek"]),
html[data-state="2"][data-state-tk="open"] .lp [data-tk]:not([data-tk~="open"]),
html[data-state="2"][data-state-tk="soldout"] .lp [data-tk]:not([data-tk~="soldout"]),
html[data-state="2"][data-state-tk="second"] .lp [data-tk]:not([data-tk~="second"]),
html[data-state="2"][data-state-tk="closed"] .lp [data-tk]:not([data-tk~="closed"]){display:none!important}
.lp{container-type:inline-size;background:var(--cream);color:var(--ink);font-family:var(--sans);overflow:clip}
.pg{--g:max(20px, env(safe-area-inset-left), env(safe-area-inset-right)); --pad:64px; --h1:clamp(36px,10cqi,42px); --h2:clamp(28px,8cqi,32px); --h3:18px; --body:16px; --lead:17px; min-height:min(100vh, 1400px);display:flex;flex-direction:column}
.pg>main{flex:1 0 auto}
.lp sup{font-size:.62em;line-height:0;vertical-align:.62em;letter-spacing:0;margin-left:1px}
.lp a{color:inherit}
.lp :focus-visible{outline:2px solid var(--purple);outline-offset:3px;border-radius:6px}
.lp .dark :focus-visible,.lp .plum :focus-visible,.lp-foot :focus-visible{outline-color:var(--pink)}
.thr{fill:none;stroke:var(--thread);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.dark .thr,.plum .thr{stroke:rgba(230,204,242,.9);stroke-width:2.5}
.h1{font:300 var(--h1)/1.06 var(--display);letter-spacing:-.02em;color:var(--purple);text-wrap:balance}
.h2{font:300 var(--h2)/1.12 var(--display);letter-spacing:-.01em;color:var(--purple);text-wrap:balance}
.h3s{font:300 24px/1.2 var(--display);letter-spacing:-.01em;color:var(--purple);text-wrap:balance}
.dark .h2,.plum .h2,.dark .h3s,.plum .h3s{color:var(--cream)}
.label{display:block;font:600 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:16px}
.dark .label,.plum .label{color:var(--onDark)}
.lede{font:400 var(--body)/1.6 var(--sans);margin-top:16px;max-width:36rem;text-wrap:pretty}
.small{font:400 14px/1.5 var(--sans);color:var(--mute);max-width:36rem}
.dark .small,.plum .small{color:var(--onDark)}
.u{position:relative;white-space:nowrap;display:inline-block}
.uline{position:absolute;left:-2%;bottom:-.14em;width:104%;height:.3em;overflow:visible;pointer-events:none}
.uline path{fill:none;stroke:var(--thread);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:14px 28px;border:0;border-radius:999px; font:600 16px/1.25 var(--sans);letter-spacing:.02em;text-align:center;text-decoration:none;cursor:pointer; background:var(--purple);color:var(--cream);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none; transition:transform 120ms var(--ease),background-color 150ms ease}
.lp a.btn{color:var(--cream)}
.btn:active{transform:scale(.97)}
.btn .arr{display:inline-block;margin-left:8px;transition:transform 150ms var(--ease)}
.dark .btn,.plum .btn,.lp .dark a.btn,.lp .plum a.btn{background:var(--pink);color:var(--purple)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:#43155A}
  .dark .btn:hover,.plum .btn:hover{background:#F2E3F8}
  .btn:hover .arr{transform:translateX(3px)}
}
.btn .lbl{display:inline-block;max-width:100%;transition:opacity 200ms ease,filter 200ms ease}
.btn .dots{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;opacity:0;transition:opacity 200ms ease;pointer-events:none}
.btn .dots i{width:6px;height:6px;border-radius:50%;background:currentColor}
.mo .btn.busy .dots i{animation:dot 900ms ease-in-out infinite}
.btn .dots i:nth-child(2){animation-delay:150ms}
.btn .dots i:nth-child(3){animation-delay:300ms}
.btn.busy{pointer-events:none}
.btn.busy .lbl{opacity:0;filter:blur(2px)}
.btn.busy .dots{opacity:1}
@keyframes dot{0%,100%{opacity:.35}50%{opacity:1}}
.btn::after{content:'';position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(100deg,rgba(230,204,242,0),rgba(230,204,242,.55),rgba(230,204,242,0));transform:translateX(-120%) skewX(-12deg);pointer-events:none;opacity:0}
.mo .btn.sheen::after{animation:sheen 900ms var(--ease-io) both}
@keyframes sheen{0%{opacity:1;transform:translateX(-120%) skewX(-12deg)}100%{opacity:1;transform:translateX(320%) skewX(-12deg)}}
.mo .arr.nudge{animation:nudge 420ms var(--ease) both}
@keyframes nudge{50%{transform:translateX(4px)}}
.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:14px 28px;border:1px solid var(--purple);border-radius:999px;background:transparent; font:600 16px/1.25 var(--sans);letter-spacing:.02em;color:var(--purple);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent; transition:transform 120ms var(--ease),background-color 150ms ease}
.lp a.ghost{color:var(--purple)}
.ghost:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){
  .ghost:hover{background:#fff}
}
.cta{margin-top:32px;display:flex;flex-direction:column;align-items:stretch;gap:8px}
.lp-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px var(--g) 0;width:100%;max-width:1280px;margin:0 auto}
.lp-logo{display:block;height:32px;width:auto;aspect-ratio:796.62/217.97;fill:var(--purple);flex:none}
.sold{display:inline-flex;flex-direction:column;align-items:flex-end;gap:5px;line-height:1;text-align:right;white-space:nowrap}
.sold-line{position:relative;display:inline-block;font:500 12px/1.25 var(--sans);letter-spacing:.01em;color:var(--mute)}
.sold-t{display:inline-block;opacity:.85}
.sold-strike{position:absolute;left:-2px;right:-2px;top:55%;height:1.5px;margin-top:-.75px;border-radius:2px;background:var(--purple);opacity:.62}
.sold-out{display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap;font-family:var(--sans);font-weight:600;line-height:1;text-transform:uppercase;color:var(--cream); background:linear-gradient(100deg,#E25670 0%,#B23553 100%); height:17px;padding:0 7px 0 8px;font-size:8.5px;letter-spacing:.12em;transform-origin:100% 50%; box-shadow:0 3px 8px -5px rgba(178,53,83,.55),inset 0 1px 0 rgba(255,255,255,.2)}
.mo .sold-strike{animation:soldStrike 8s cubic-bezier(.65,0,.35,1) 500ms infinite both}
.mo .sold-t{animation:soldDim 8s ease 500ms infinite both}
.mo .sold-out{animation:soldPill 8s ease 500ms infinite both}
.mo .sold.pz *{animation-play-state:paused}
@keyframes soldStrike{0%{clip-path:inset(0 100% 0 0)}10%,86%{clip-path:inset(0 0 0 0)}95%,100%{clip-path:inset(0 0 0 100%)}}
@keyframes soldDim{0%{opacity:1}10%,86%{opacity:.85}95%,100%{opacity:1}}
@keyframes soldPill{0%,10.5%{opacity:0;transform:scale(.6);animation-timing-function:cubic-bezier(.2,.75,.3,1)}
  14%{opacity:1;transform:scale(1.06);animation-timing-function:cubic-bezier(.45,0,.55,1)}
  17.5%{transform:scale(.985);animation-timing-function:cubic-bezier(.45,0,.55,1)}
  21%,85%{opacity:1;transform:scale(1);animation-timing-function:cubic-bezier(.65,0,.35,1)}
  93%,100%{opacity:0;transform:scale(.9)}}
.mo .uline path{stroke-dashoffset:1;animation:draw 1000ms var(--ease-io) 500ms forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes write{to{clip-path:inset(-4px -8px -4px -8px)}}
.hero{position:relative;width:100%;max-width:1280px;margin:0 auto;padding:24px var(--g) var(--pad)}
.hmedia{display:none;position:relative;margin-top:28px;max-width:560px;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:var(--blush);transform-origin:50% 0}
.hmedia picture,.ava picture{display:contents}
.hmedia img{display:block;width:100%;height:100%;object-fit:cover}
.evrow{display:flex;align-items:center;gap:14px;margin-top:16px;max-width:36rem}
.evrow .ev{margin-top:0}
.evtx{min-width:0}
.ava{position:relative;flex:none;width:60px;height:60px;border-radius:50%;overflow:hidden;background:var(--blush);box-shadow:0 0 0 2px var(--cream),0 0 0 3.5px var(--pink)}
.ava img{display:block;width:100%;height:100%;object-fit:cover}
.sub{font:400 var(--lead)/1.55 var(--sans);margin-top:16px;max-width:36rem;text-wrap:pretty}
.ev{font:500 15px/1.5 var(--sans);color:var(--purple);margin-top:16px;max-width:36rem}
.ev .d{margin:0 2px 0 8px;opacity:.55}
.ev .nw{white-space:nowrap}
.shot{position:relative;margin-top:24px;border-radius:20px;overflow:hidden;aspect-ratio:var(--shot,16/9);background:var(--blush)}
.shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:46% 42%}
.vl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 500ms ease;z-index:1;pointer-events:none}
.vl.on{opacity:1}
.fcard .btn{padding:14px 16px}
.fcard{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 20px;scroll-margin-top:var(--stick)}
.f1{display:flex;flex-direction:column}
.fh{font:300 26px/1.12 var(--display);letter-spacing:-.01em;color:var(--purple);text-wrap:balance}
.fh:focus{outline:none}
.perks{list-style:none;display:grid;gap:8px;margin-top:16px}
.perks li{display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:12px;font:500 15px/1.45 var(--sans);color:var(--ink)}
.perks li::before{content:'';height:2px;border-radius:2px;background:var(--pinkdeep);margin-top:.7em}
.fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.fl label,.xt{display:block;font:600 14px/1.3 var(--sans);color:var(--purple);margin-bottom:8px}
.xt-n{font-weight:500;color:var(--mute)}
#built-h sup{font-size:.42em;line-height:0;vertical-align:1.25em;margin-left:.04em}
.lp input[type=text],.lp input[type=email],.lp select,.lp textarea{width:100%;min-height:52px;font:500 16px/1.4 var(--sans);color:var(--ink);background:var(--cream); border:1px solid var(--field);border-radius:12px;padding:14px 16px;outline:2px solid transparent;outline-offset:2px;appearance:none;-webkit-appearance:none; transition:border-color 150ms ease,box-shadow 150ms ease}
.lp textarea{min-height:112px;resize:vertical;display:block}
.lp textarea::placeholder{color:#8a7494}
.lp select{padding-right:44px;background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%232D033F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 16px center/12px 8px no-repeat}
.lp input:focus,.lp select:focus,.lp textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(230,204,242,.9)}
.lp input[aria-invalid="true"],.lp select[aria-invalid="true"],.lp textarea[aria-invalid="true"]{border-color:var(--err)}
.consent{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;font:400 13px/1.55 var(--sans);color:var(--mute);cursor:pointer}
.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--purple)}
.consent.bad input{outline:2px solid var(--err);outline-offset:1px;border-radius:3px}
.err{font:600 14px/1.45 var(--sans);color:var(--err)}
.mo .err:not([hidden]){animation:fadeIn 150ms ease-out}
.under{font:500 13px/1.5 var(--sans);color:var(--mute);text-align:center}
.ty{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.tyhead{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-items:start}
.tyck{width:32px;height:32px;margin-top:-1px}
.tyck circle{fill:var(--pink)}
.tyck path{fill:none;stroke:var(--purple);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.tyl{font:400 15px/1.55 var(--sans)}
.tyt{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;align-items:center;background:var(--blush);border-radius:16px;padding:12px 16px 12px 12px}
.tkt{border-radius:16px;background:var(--blush);padding:16px;display:grid;gap:12px}
.tkt p{font:600 15px/1.45 var(--sans);color:var(--purple)}
.more{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-top:24px;border-top:1px solid var(--line);counter-reset:xq}
.more h3{font:300 22px/1.2 var(--display);letter-spacing:-.01em;color:var(--purple)}
.more .lede{font-size:15px;color:var(--mute);margin-top:8px}
.more fieldset,.f1 fieldset{border:0;min-width:0}
.f1 legend{display:block;font:600 14px/1.3 var(--sans);color:var(--purple);margin-bottom:8px}
.xt.solo::before{content:none}
.x{counter-increment:xq}
.lp .xt,.more legend{display:flex;align-items:center;gap:12px;font:600 15px/1.35 var(--sans);color:var(--purple);margin-bottom:12px}
.xt::before,.more legend::before{content:counter(xq);flex:none;width:24px;height:24px;border-radius:50%;background:var(--pink);color:var(--purple);font:600 12px/24px var(--sans);text-align:center}
.tier{display:grid;gap:8px}
.tier label{position:relative;cursor:pointer;display:block}
.tier input{position:absolute;opacity:0;pointer-events:none}
.tier span{display:block;min-height:52px;border:1px solid var(--field);border-radius:12px;padding:14px 16px 14px 48px;font:600 14px/1.35 var(--sans);background:var(--cream);position:relative;transition:border-color 150ms ease,background-color 150ms ease,transform 120ms var(--ease)}
.tier label:active span{transform:scale(.99)}
.tier span::before{content:'';position:absolute;left:16px;top:16px;width:18px;height:18px;border-radius:6px;border:1.5px solid var(--purple);background:#fff}
.tier input:checked+span{border-color:var(--purple);background:var(--blush)}
.tier input:checked+span::before{background:var(--purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.2l2.6 2.4L9 1.2' fill='none' stroke='%23FDF7FB' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 8px no-repeat}
.tier input:focus-visible+span{outline:2px solid var(--purple);outline-offset:2px}
.tier small{display:block;font:500 13px/1.4 var(--sans);color:var(--mute);margin-top:4px}
.x.bad .tier span{border-color:var(--err)}
.hint{font:400 14px/1.5 var(--sans);color:var(--mute);margin-top:8px}
.hint.pre{margin:0 0 12px}
.count{font:600 12px/1.4 var(--sans);color:var(--mute);text-align:right;margin-top:8px;font-variant-numeric:tabular-nums}
.count.near{color:var(--err)}
.soft{font:400 14px/1.5 var(--sans);color:var(--mute);margin-top:4px}
.closes{font:600 14px/1.45 var(--sans);color:var(--purple);margin-top:8px}
.shut{font:500 14px/1.5 var(--sans);color:var(--purple);background:var(--blush);border-radius:12px;padding:12px 16px}
.saved{display:flex;align-items:flex-start;gap:12px;font:600 15px/1.45 var(--sans);color:var(--purple);background:var(--blush);border-radius:12px;padding:16px}
.saved::before{content:'';flex:none;width:20px;height:20px;border-radius:50%;background:var(--purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.2l2.6 2.4L9 1.2' fill='none' stroke='%23FDF7FB' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 8px no-repeat}
.mo .saved:not([hidden])::before{animation:pop 300ms var(--ease-pop) both}
@keyframes pop{from{transform:scale(.6);opacity:0}}
.share{padding-top:24px;border-top:1px solid var(--line)}
.share p{font:500 15px/1.5 var(--sans)}
.share .acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:12px}
.copybtn{min-height:44px;padding:10px 20px;font-size:15px}
.copied{display:inline-flex;align-items:center;gap:6px;font:600 14px var(--sans);color:var(--purple)}
.copied svg{width:16px;height:16px}
.copied svg path{fill:none;stroke:var(--purple);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.mo .copied svg path{animation:drawFrom 200ms var(--ease) both}
@keyframes drawFrom{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.share input{margin-top:12px}
.mo .ty.morph .tyck circle{animation:pop 300ms var(--ease-pop) 150ms both;transform-origin:16px 16px}
.mo .ty.morph .tyck path{animation:drawFrom 400ms var(--ease) 250ms both}
.mo .ty.morph .fh{animation:rise8 300ms var(--ease) 150ms both}
.mo .ty.morph .tyt,.mo .ty.morph .ty>.cta,.mo .ty.morph .tkt{animation:tileIn 350ms var(--ease) 300ms both}
.mo .ty.morph .more>*{animation:rise8 300ms var(--ease) both}
.mo .ty.morph .more>*:nth-child(1){animation-delay:450ms}
.mo .ty.morph .more>*:nth-child(2){animation-delay:490ms}
.mo .ty.morph .more>*:nth-child(3){animation-delay:530ms}
.mo .ty.morph .more>*:nth-child(4){animation-delay:570ms}
.mo .ty.morph .more>*:nth-child(n+5){animation-delay:610ms}
.mo .ty.morph .share{animation:rise8 300ms var(--ease) 650ms both}
.f1.leaving{opacity:0;transition:opacity 150ms ease-out}
@keyframes rise8{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tileIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.band{position:relative;padding:var(--pad) var(--g)}
.band>.wrap{position:relative;z-index:1}
.band.white{background:var(--cream)}
.band.dark{background:var(--purple);color:var(--cream)}
.band.plum{color:var(--cream);background:var(--purple)}
.glow{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:0}
.glow i{position:absolute;width:70%;aspect-ratio:1;right:-14%;top:-6%;border-radius:50%;background:radial-gradient(closest-side,rgba(230,204,242,.13),rgba(230,204,242,0))}
.band.plum .glow i{right:auto;left:-18%;top:8%}
#sec-fm .glow i{top:18%;right:-20%}
.final .glow i{right:auto;left:-22%;top:-20%;width:80%}
.fsent,.hsent,.sent{position:absolute;left:0;width:2px;pointer-events:none}
.hsent{top:0;height:480px}
.fsent{left:50%}
.band.blush{background:var(--blush)}
.wrap{max-width:1168px;margin:0 auto}
#sec-built{padding-bottom:calc(var(--pad) * .5)}
#sec-course{padding-top:calc(var(--pad) * .75)}
.wrap.narrow{max-width:760px}
.badge{flex:none;width:56px;border-radius:12px;overflow:hidden;background:var(--cream);text-align:center;box-shadow:0 1px 0 rgba(45,3,63,.08)}
.badge .m{display:block;font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;background:var(--pink);color:var(--purple);padding:6px 0 5px}
.badge .dd{display:block;font:300 28px/1 var(--display);color:var(--purple);padding:8px 0 8px;min-height:44px}
.tyt .badge{border:1px solid var(--line)}
.lp strong{font-weight:600}
.unlk{display:flex;align-items:center;gap:10px;margin:0 0 22px}
.ukb{position:relative;flex:none;width:52px;border-radius:12px;background:var(--cream);text-align:center;box-shadow:0 0 0 0 rgba(230,204,242,0)}
.ukb .m{display:block;font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;background:var(--pink);color:var(--purple);padding:6px 0 5px;border-radius:12px 12px 0 0}
.ukb .dd{display:block;font:300 26px/1 var(--display);color:var(--purple);padding:7px 0 8px}
.ukb.b2{box-shadow:0 0 0 2px var(--pink),0 10px 28px -10px rgba(230,204,242,.55)}
.ukr{position:absolute;inset:-5px;border-radius:16px;border:2px solid var(--pink);opacity:0;pointer-events:none}
.ukdot{position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 2.5px var(--purple)}
.uklk{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;background:var(--purple);box-shadow:0 0 0 1.5px var(--pink)}
.uklk svg{display:block;width:22px;height:22px;fill:none;stroke:var(--pink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.uklk .shut{opacity:0}
.ukln{flex:none;width:78px;height:14px;overflow:visible}
.ukln path{fill:none;stroke:var(--pink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
@container (min-width:900px){
  .unlk{gap:14px}
  .ukln{width:110px}
}
.tix{position:relative;margin-top:24px;border-radius:20px;background:var(--card);border:1px solid var(--lineDark)}
.tix-h{display:flex;align-items:center;gap:16px;padding:20px}
.tix-t{font:300 22px/1.2 var(--display);letter-spacing:-.01em;color:var(--cream)}
.perf{position:relative;height:0;margin:0 20px}
.perf i{position:absolute;left:0;right:0;top:0;border-top:1px dashed rgba(253,247,251,.3);transform-origin:left center}
.perf::before,.perf::after{content:'';position:absolute;top:-11px;width:22px;height:22px;border-radius:50%;background:var(--purple)}
.perf::before{left:-32px}
.perf::after{right:-32px}
.rows{padding:4px 20px 8px}
.rows>div{display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px;padding:16px 0;min-height:52px;border-top:1px solid var(--lineDark)}
.rows>div:first-child{border-top:0}
.rows dt{font:600 12px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--onDark)}
.rows dd{font:500 16px/1.5 var(--sans);color:var(--cream)}
.tix-f{padding:0 20px 20px}
.tix-f .cta{margin-top:8px}
.after{font:400 var(--body)/1.6 var(--sans);margin-top:24px;max-width:36rem}
.call{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:28px}
.call .winw{position:relative;width:96px;height:96px}
.call .win{position:absolute;inset:0;border-radius:20px;overflow:hidden;background:var(--card);border:1px solid var(--lineDark)}
.call .win img{display:block;width:100%;height:100%;object-fit:cover}
.call .tag{position:absolute;left:6px;bottom:6px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:rgba(29,2,41,.74);font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--cream)}
.call .dot{width:6px;height:6px;border-radius:50%;background:var(--pink)}
.call .ring{position:absolute;inset:-5px;border-radius:25px;border:2px solid var(--pink);opacity:0;pointer-events:none}
.mo .call.live.vis .ring{animation:ringp 2s ease-out infinite}
@keyframes ringp{0%{opacity:.9;transform:scale(1)}55%,100%{opacity:0;transform:scale(1.08)}}
.howto{margin-top:40px}
.stepw{position:relative}
.steps{list-style:none;margin-top:24px}
.stepw .spine{position:absolute;left:20px;width:6px;margin-left:-3px;overflow:visible;pointer-events:none}
.steps li{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:16px;padding:16px 0}
.steps .n{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--purple);border:1px solid rgba(253,247,251,.34);font:300 20px/1 var(--display);color:var(--cream);transition:background-color 300ms var(--ease),color 300ms var(--ease),border-color 300ms var(--ease)}
.steps li.lit .n{background:var(--pink);border-color:var(--pink);color:var(--purple)}
.steps h4{font:600 17px/1.35 var(--sans);color:var(--cream);padding-top:9px}
.steps p{font:400 15px/1.55 var(--sans);color:rgba(253,247,251,.86);margin-top:4px}
.mo.flow .steps li .tx{opacity:.7;transition:opacity 500ms var(--ease)}
.mo.flow .steps li.lit .tx{opacity:1}
.steps li:not(:last-child)::after{content:none}
html:not(.js) .spine,html:not(.js) .xline{display:none}
html:not(.js) .steps li:not(:last-child)::after{content:'';position:absolute;left:19.25px;top:36px;bottom:-36px;width:1.5px;background:var(--pink)}
html:not(.js) .mods .acc{position:relative}
html:not(.js) .mods .acc:not(:last-of-type)::after{content:'';position:absolute;left:-18.75px;top:32px;bottom:-32px;width:1.5px;background:var(--thread);z-index:-1}
html:not(.flow) .steps .n{background:var(--pink);border-color:var(--pink);color:var(--purple)}
.vids{display:grid;gap:16px;margin-top:32px}
.vid{border-radius:20px;aspect-ratio:16/9;background:var(--card);border:1px solid var(--lineDark);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;position:relative}
.vid i{position:absolute;left:20px;top:20px;width:48px;height:48px;border-radius:50%;background:var(--pink)}
.vid i::after{content:'';position:absolute;left:19px;top:15px;border-style:solid;border-width:9px 0 9px 14px;border-color:transparent transparent transparent var(--purple)}
.vid h3{font:300 22px/1.2 var(--display);letter-spacing:-.01em;color:var(--cream)}
.tzd{margin-top:24px;border-top:1px solid var(--lineDark);border-bottom:1px solid var(--lineDark)}
.tzd>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:12px 0}
.tzd .qt{font:500 16px/1.4 var(--sans);color:var(--cream)}
.tzd .plus::before,.tzd .plus::after{background:var(--cream)}
.tzd .a{padding:0 0 16px}
@media (hover:hover) and (pointer:fine){
  .tzd>summary:hover .qt{color:var(--pink)}
}
.qs{list-style:none;margin-top:32px;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.qs li{position:relative;display:flex;max-width:88%;justify-self:start}
.qs li.r{justify-self:end}
.qs .bb{display:block;padding:14px 18px 16px;border-radius:22px 22px 22px 6px;background:var(--blush);border:1px solid var(--blush); font:300 19px/1.35 var(--display);letter-spacing:-.005em;color:var(--purple);transform-origin:0 100%}
.qs .r .bb{border-radius:22px 22px 6px 22px;background:var(--pink);border-color:var(--pink);transform-origin:100% 100%}
.qs .ty{display:none;position:absolute;left:0;bottom:0;align-items:center;gap:5px;height:46px;padding:0 17px;border-radius:22px 22px 22px 6px;background:var(--blush);transform-origin:0 100%;pointer-events:none}
.qs .r .ty{left:auto;right:0;border-radius:22px 22px 6px 22px;background:var(--pink);transform-origin:100% 100%}
.qs .ty i{width:7px;height:7px;border-radius:50%;background:var(--purple);opacity:.35}
.plum .body{font:400 var(--body)/1.6 var(--sans);margin-top:16px;max-width:36rem}
.xpl{position:relative;margin-top:40px}
.xsteps{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;position:relative;z-index:1}
.xs{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:18px;align-items:start}
.xd{grid-row:1 / span 2;display:block;border-radius:16px;background:var(--card);border:1px solid rgba(230,204,242,.16);padding:8px}
.xd svg{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke:var(--pink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.xd svg path,.xd svg circle{stroke-dasharray:1;stroke-dashoffset:0}
.xd svg .thin{stroke-width:1.4;opacity:.7}
.xd svg .hand{fill:var(--card);stroke-width:1.7}
.xnum{font:300 22px/1 var(--display);color:var(--pink);padding-top:8px;font-variant-numeric:lining-nums}
.xlab{font:500 15px/1.45 var(--sans);color:var(--cream);margin-top:6px;text-wrap:pretty}
.xroom{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
.xroom .xd{grid-row:auto;padding:12px}
.xroom .xnum{padding-top:14px}
.xline{position:absolute;left:56px;top:40px;bottom:120px;width:1.5px;margin-left:-.75px;background:rgba(230,204,242,.45);transform-origin:50% 0;z-index:0}
.room{display:block;width:100%;height:auto;overflow:visible}
.room .wall{fill:none;stroke:rgba(230,204,242,.3);stroke-width:1;stroke-dasharray:none}
.room .table{fill:rgba(253,247,251,.1);stroke:var(--cream);stroke-width:1.3;stroke-dasharray:none}
.room .gab .halo{fill:none;stroke:var(--pink);stroke-opacity:.6;stroke-width:1;stroke-dasharray:none}
.room .gab .me{fill:var(--cream);stroke:none}
.room .gab .ping{fill:none;stroke:var(--pink);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center;stroke-dasharray:none}
.mo .xpl.lit .room .gab .ping{animation:ping 1400ms var(--ease) 1 both}
@keyframes ping{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(2.4)}}
.room .seat{fill:rgba(230,204,242,0);stroke:var(--pink);stroke-opacity:.85;stroke-width:1.2;stroke-dasharray:none;transform-box:fill-box;transform-origin:center;transition:fill 400ms ease}
.soldout .room .seat{fill:var(--pink)}
.tixw{position:relative;margin-top:32px}
.oh .tix{margin-top:0}
.stamp{position:absolute;right:18px;top:-14px;z-index:3;font:700 26px/1 'Caveat',cursive;color:var(--pink);background:var(--purple);border:2px solid var(--pink);border-radius:10px;padding:4px 12px 6px;transform:rotate(-6deg)}
.mo .stamp:not(.off){animation:stampIn 250ms var(--ease-pop) both}
@keyframes stampIn{from{opacity:0;transform:rotate(-6deg) scale(1.12)}to{opacity:1;transform:rotate(-6deg) scale(1)}}
.ph{position:relative;border-radius:20px;overflow:hidden;background:var(--blush)}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.roles{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.roles li{position:relative;isolation:isolate;padding:9px 16px;border-radius:999px;border:1px solid var(--pinkdeep);background:transparent;font:500 15px/1.3 var(--sans);color:var(--purple)}
.roles li::before{content:'';position:absolute;inset:-1px;z-index:-1;border-radius:inherit;background:linear-gradient(100deg,#F3E4F8 0%,var(--pink) 100%)}
.not{display:grid;gap:16px;margin-top:32px;max-width:36rem}
.not p{font:400 15px/1.6 var(--sans);color:var(--mute)}
.not b{font-weight:600;color:var(--purple)}
.acc{border-bottom:1px solid var(--line)}
.acc>summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 120ms var(--ease)}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary:active{transform:scale(.99)}
.plus{position:relative;width:24px;height:24px;flex:none;transition:transform 220ms var(--ease)}
.plus::before,.plus::after{content:'';position:absolute;background:var(--purple);border-radius:2px}
.plus::before{left:5px;top:11.5px;width:14px;height:1.4px}
.plus::after{left:11.3px;top:5px;width:1.4px;height:14px}
.acc[open]>summary .plus{transform:rotate(45deg)}
.acc.closing>summary .plus{transform:rotate(0deg);transition-duration:160ms}
.mo .acc[open]>.a{animation:accIn 220ms var(--ease)}
.acc.closing>.a{opacity:0;transform:translateY(-4px);transition:opacity 160ms ease-out,transform 160ms ease-out}
@keyframes accIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (hover:hover) and (pointer:fine){
  .acc>summary:hover .t,.acc>summary:hover .qt{color:var(--mute)}
}
.mods{position:relative;margin-top:32px;border-top:1px solid var(--line);padding-left:24px}
.mods .spine{position:absolute;left:6px;width:6px;margin-left:-3px;overflow:visible;pointer-events:none}
.mods .acc>summary{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;column-gap:16px;min-height:64px;padding:16px 0}
.mods .acc>summary::before,.mods .acc>summary::after{content:'';position:absolute;left:-24px;top:50%;width:12px;height:12px;margin:-6px 0 0 0;border-radius:50%;box-sizing:border-box}
.mods .acc>summary::before{background:var(--cream);border:1.5px solid var(--thread)}
.mods .acc>summary::after{background:var(--purple);transform:scale(var(--f,1));opacity:min(1,calc(var(--f,1) * 4))}
.mods .n{font:300 28px/1 var(--display);letter-spacing:-.01em;color:var(--purple)}
.mods .t{font:600 17px/1.35 var(--sans);color:var(--purple);transition:color 150ms ease}
.mods .acc.on>summary .n{color:var(--purple)}
.mods .acc>summary .hi{position:absolute;inset:4px -8px 4px 52px;border-radius:12px;background:var(--blush);opacity:0;transition:opacity 300ms var(--ease);z-index:-1}
.mods .acc.on>summary .hi{opacity:1}
.mods .acc>summary{z-index:0}
.mods .a{padding:0 40px 20px 60px}
.mods .a p{font:400 15px/1.6 var(--sans);color:var(--mute);max-width:36rem}
.stackw{margin-top:32px}
.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:32px}
.card{background:var(--blush);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
.card .ph{margin:8px 8px 0;border-radius:14px;aspect-ratio:4/3}
.card .ph.wb{background:var(--pink)}
.card .ph.wb .bd{object-position:50% 70%}
.card .ph.wb .book{position:absolute;inset:0;z-index:1;object-fit:contain;object-position:50% 100%;padding:13% 0 5%;filter:drop-shadow(0 16px 18px rgba(45,3,63,.34)) drop-shadow(0 3px 4px rgba(45,3,63,.2))}
.card .ph.arch{border-radius:50% 50% 14px 14px / 30% 30% 14px 14px}
.card .tx{padding:20px 20px 24px}
.card h3{font:300 22px/1.2 var(--display);letter-spacing:-.01em;color:var(--purple);text-wrap:balance}
.card p{font:400 15px/1.6 var(--sans);margin-top:8px}
.card .dlist{margin-top:12px}
.card .dlist li{font-weight:400}
.card .sm{font:500 14px/1.5 var(--sans);color:var(--mute);margin-top:12px}
.days{display:flex;align-items:center;gap:0;margin-top:16px;font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.days span{display:inline-flex;align-items:center;gap:8px;flex:none}
.days span i{width:10px;height:10px;border-radius:50%;background:var(--thread)}
.days b{flex:1;height:1.5px;background:var(--thread);margin:0 10px;transform-origin:left center;min-width:16px;max-width:64px}
.gab .ph{aspect-ratio:4/3;background:var(--blush)}
.gab .ph img{object-position:50% 18%}
.cred{font:500 14px/1.5 var(--sans);color:var(--mute);margin-top:8px}
.bio{font:400 var(--body)/1.65 var(--sans);margin-top:16px;max-width:36rem}
.big-row{position:relative;display:inline-block;margin-top:8px}
.big{position:relative;display:inline-block;font:300 clamp(160px,38cqi,300px)/.8 var(--display);letter-spacing:-.04em;color:var(--pink);font-variant-numeric:tabular-nums}
.ring80{position:absolute;left:-8%;top:-22%;width:116%;height:144%;overflow:visible;pointer-events:none}
.ring80 path{fill:none;stroke:var(--pink);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.big-sold{position:absolute;left:50%;top:calc(117% + 6px);z-index:2;display:inline-block;white-space:nowrap;font:700 clamp(32px,8cqi,46px)/1.1 'Caveat',cursive;color:var(--cream);transform:translateX(-50%) rotate(-3deg)}
.big-sold .tx{position:relative;z-index:1;display:block;padding:.08em .3em .14em;--w:100%}
.big-sold .swash{position:absolute;z-index:0;left:.18em;right:.14em;top:46%;bottom:16%;border-radius:.34em .12em .38em .1em / .22em .32em .16em .3em; background:linear-gradient(100deg,#E25670 0%,#B23553 100%);transform-origin:0 50%;transform:skewX(-10deg)}
.mo .big-sold .tx{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 var(--w),transparent calc(var(--w) + 16%));mask-image:linear-gradient(90deg,#000 0,#000 var(--w),transparent calc(var(--w) + 16%))}
.fm .big-row{margin-bottom:calc(clamp(160px,38cqi,300px) * .8 * .17 + clamp(32px,8cqi,46px) * 1.3 + 16px)}
.fm .h2{margin-top:24px}
.fm .cap{font:400 14px/1.5 var(--sans);color:var(--onDark);margin-top:8px}
.fm .lede{margin-top:24px}
.fm .h3s{margin-top:32px}
.hlw{position:relative}
.hl{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 16px;margin-top:24px}
.hl li{border-top:1px solid var(--lineDark);padding-top:16px}
.hl .f{display:block;font:300 56px/1 var(--display);letter-spacing:-.02em;color:var(--pink);font-variant-numeric:tabular-nums}
.hl .f .u2{font-size:.42em;letter-spacing:0;margin-left:6px}
.hl .f .cnt{display:inline-block}
.hl .c{display:block;font:400 14px/1.5 var(--sans);color:rgba(253,247,251,.82);margin-top:8px}
.hl .ul{display:block;width:72%;height:10px;margin-top:10px;overflow:visible}
.faq{margin-top:32px;border-top:1px solid var(--line)}
.faq .acc>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:16px 0}
.faq .qt{font:500 17px/1.4 var(--sans);color:var(--purple);transition:color 150ms ease}
.faq .a{padding:0 40px 24px 0}
.faq .a p{font:400 var(--body)/1.6 var(--sans);color:var(--mute);max-width:40rem}
.ask{position:relative;background:var(--cream);text-align:center;padding:0 var(--g) var(--pad)}
.ask p{font:500 var(--body)/1.5 var(--sans)}
.ask .acts{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:16px}
.ask .ghost svg{width:20px;height:20px;flex:none}
.ask .ghost svg path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.ask .ghost svg circle{fill:currentColor}
.mo .ask.in .ghost svg circle{animation:tdot 700ms ease-in-out both}
.mo .ask.in .ghost svg circle:nth-of-type(2){animation-delay:120ms}
.mo .ask.in .ghost svg circle:nth-of-type(3){animation-delay:240ms}
@keyframes tdot{0%,100%{opacity:1}50%{opacity:.2}}
.final{text-align:left}
.fheart{--hs:102px;display:flex;flex-direction:column;align-items:flex-start;margin-bottom:14px}
.fheart svg{display:block;overflow:visible}
.fheart .mark{width:var(--hs);height:auto}
.fheart .mark use{fill:var(--pink);stroke:var(--pink);stroke-width:3;stroke-dasharray:1;stroke-dashoffset:0;transform-origin:50% 55%;transform-box:fill-box}
.mo .fheart.done .mark use{animation:beat 520ms var(--ease-pop) 60ms both}
@keyframes beat{50%{transform:scale(1.06)}}
.final .share{margin-top:32px}
.final .copybtn{background:transparent}
.final .h2{font-size:calc(var(--h1) * .92);letter-spacing:-.02em}
.final .lede{color:rgba(253,247,251,.86)}
.dark .share{border-top-color:var(--lineDark)}
.dark .ghost,.lp .dark a.ghost{border-color:rgba(253,247,251,.55);color:var(--cream)}
@media (hover:hover) and (pointer:fine){
  .dark .ghost:hover{background:rgba(253,247,251,.08)}
}
.dark .copied{color:var(--pink)}
.dark .copied svg path{stroke:var(--pink)}
.qp{width:100%;max-width:760px;margin:0 auto;padding:32px var(--g) var(--pad)}
.qp .fcard{margin-top:32px}
.qp .f1{gap:16px}
.qdone{display:grid;gap:16px}
.qdone h1{font:300 var(--h2)/1.12 var(--display);letter-spacing:-.01em;color:var(--purple)}
.qdone h1:focus{outline:none}
.qdone p{font:400 var(--body)/1.6 var(--sans)}
.lp-foot{background:linear-gradient(180deg,var(--purple) 0%,var(--deep) 100%);color:var(--cream);padding:48px var(--g) 0;overflow:hidden}
.lp-foot .wrap{max-width:1168px}
.lp-flogo{display:block;width:192px;height:auto;aspect-ratio:796.62/217.97;fill:var(--cream)}
.lp-fine{font:400 13px/1.6 var(--sans);color:var(--pink);opacity:.85;margin-top:24px;max-width:70ch}
.lp-legal{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(230,204,242,.18);font:500 12px/1.4 var(--sans);color:rgba(253,247,251,.72)}
/* Footer links: a 44px tall tap area, pulled back with negative margins so the footer looks exactly as before */
.lp-legal a{display:inline-flex;align-items:center;min-height:44px;margin:-13px 0;color:var(--cream);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:rgba(253,247,251,.22)}
.lp-legal a:hover,.lp-legal a:focus-visible{text-decoration-color:var(--cream)}
.lp-wordw{overflow:hidden;margin:32px calc(var(--g) * -1) 0}
.lp-word{font:300 27cqi/.82 var(--display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(230,204,242,.2);white-space:nowrap;text-align:center;user-select:none}
.lp-word sup{font:500 .12em var(--sans);vertical-align:1.6em;-webkit-text-stroke:.7px rgba(230,204,242,.26)}
.jbar{display:none}
.js .jbar{position:sticky;bottom:0;z-index:40;margin-top:calc(-72px - env(safe-area-inset-bottom));height:calc(72px + env(safe-area-inset-bottom)); padding:10px var(--g) calc(10px + env(safe-area-inset-bottom));background:rgba(253,247,251,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(45,3,63,.14); transform:translateY(110%);visibility:hidden;transition:transform 200ms var(--ease),visibility 0s linear 200ms;pointer-events:none}
.js .jbar.show{transform:none;visibility:visible;pointer-events:auto;transition:transform 240ms var(--ease),visibility 0s}
.jbar .btn,.lp .jbar a.btn{background:var(--purple);color:var(--cream);transition:transform 120ms var(--ease),background-color 200ms ease,color 200ms ease,box-shadow 200ms ease}
.jbar.ondark .btn,.lp .jbar.ondark a.btn{background:var(--pink);color:var(--purple);box-shadow:inset 0 0 0 1px rgba(45,3,63,.22)}
@media (prefers-reduced-transparency:reduce){
  .js .jbar{background:var(--cream);-webkit-backdrop-filter:none;backdrop-filter:none}
}
.rmo .jbar,.rmo .jbar.show{transform:none;transition:none}
.rmo .jbar .btn,.rmo .lp .jbar a.btn{transition:none}
.mo.live .fx:not(.in){opacity:0;transform:translateY(20px)}
.mo .fx{transition:opacity 800ms var(--ease),transform 1000ms var(--ease)}
.mo.live .fx:not(.in) .qa .tix{opacity:0;transform:translateY(16px)}
.mo .qa .tix{transition:opacity 450ms var(--ease) 100ms,transform 450ms var(--ease) 100ms}
.mo .qa .badge{transform-origin:50% 0;transition:transform 500ms var(--ease) 350ms}
.mo.live .fx:not(.in) .qa .badge{transform:perspective(300px) rotateX(-90deg)}
.mo .qa .rows>div{transition:opacity 400ms var(--ease),transform 400ms var(--ease)}
.mo.live .fx:not(.in) .qa .rows>div{opacity:0;transform:translateY(8px)}
.mo .fx.in .qa .rows>div:nth-child(1){transition-delay:600ms}
.mo .fx.in .qa .rows>div:nth-child(2){transition-delay:650ms}
.mo .fx.in .qa .rows>div:nth-child(3){transition-delay:700ms}
.mo .fx.in .qa .rows>div:nth-child(4){transition-delay:750ms}
.mo .fx.in .qa .rows>div:nth-child(5){transition-delay:800ms}
.mo .fx.in .qa .rows>div:nth-child(n+6){transition-delay:850ms}
.qs .q1{--t0:150ms;--tl:800ms;--t1:870ms}
.qs .q2{--t0:1250ms;--tl:750ms;--t1:1920ms}
.qs .q3{--t0:2300ms;--tl:950ms;--t1:3170ms}
.qs .q4{--t0:3550ms;--tl:900ms;--t1:4370ms}
.mo.live .qs:not(.in) .bb{opacity:0}
.mo .qs .ty{display:flex;opacity:0}
.mo .qs.in .ty{animation:tyLife var(--tl) cubic-bezier(.3,.7,.4,1) var(--t0) both}
.mo .qs.in .ty i{animation:tyDot 560ms ease-in-out calc(var(--t0) + 160ms) 2 both}
.mo .qs.in .ty i:nth-child(2){animation-delay:calc(var(--t0) + 280ms)}
.mo .qs.in .ty i:nth-child(3){animation-delay:calc(var(--t0) + 400ms)}
.mo .qs.in .bb{animation:bubPop 800ms var(--ease-pop) var(--t1) both,bubFade 220ms ease-out var(--t1) both; animation-timing-function:linear(0, 0.031, 0.110, 0.222, 0.352, 0.487, 0.618, 0.740, 0.846, 0.935, 1.005, 1.058, 1.094, 1.116, 1.125, 1.125, 1.118, 1.105, 1.090, 1.073, 1.056, 1.040, 1.025, 1.013, 1.003, 0.996, 0.990, 0.986, 0.985, 0.984, 0.985, 0.986, 0.988, 0.990, 0.992, 0.994, 0.996, 0.998, 0.999, 1),ease-out}
@keyframes tyLife{0%{opacity:0;transform:scale(.5)}24%{opacity:1;transform:scale(1.05)}36%,84%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.7)}}
@keyframes tyDot{0%,100%{opacity:.35;transform:none}40%{opacity:.9;transform:translateY(-3px)}}
@keyframes bubPop{from{transform:translateY(4px) scale(.4)}to{transform:none}}
@keyframes bubFade{from{opacity:0}to{opacity:1}}
.mo.live .fx:not(.in) .oh .tixw{opacity:0;transform:translateY(48px) rotate(-2deg)}
.mo .fx.in .oh .tixw{animation:settle 900ms var(--ease-pop) 150ms backwards}
@keyframes settle{from{opacity:0;transform:translateY(48px) rotate(-2deg)}to{opacity:1;transform:none}}
.mo.live .fx:not(.in) .oh .perf i{transform:scaleX(0)}
.mo .fx.in .oh .perf i{animation:perf 500ms var(--ease) 800ms backwards}
.mo.live .fx:not(.in) .oh .badge{transform:perspective(300px) rotateX(-90deg)}
.mo .oh .badge{transform-origin:50% 0;transition:transform 500ms var(--ease) 500ms}
@keyframes perf{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes perfY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media (hover:hover) and (pointer:fine){
  .mo .oh .tix{transition:transform 240ms var(--ease)}
  .mo .oh .tixw:hover .tix{transform:translateY(-4px)}
}
.roles li:nth-child(2){--cd:140ms}
.roles li:nth-child(3){--cd:280ms}
.roles li:nth-child(4){--cd:420ms}
.roles li:nth-child(5){--cd:560ms}
.roles li:nth-child(6){--cd:700ms}
.roles li:nth-child(7){--cd:840ms}
.roles li:nth-child(8){--cd:980ms}
.mo .roles.play li{animation:chipIn 10s linear var(--cd,0ms) infinite both}
.mo .roles.play li::before{animation:chipFill 10s linear var(--cd,0ms) infinite both}
@keyframes chipIn{0%{opacity:0;transform:translateY(10px) scale(.86);animation-timing-function:cubic-bezier(.34,1.45,.64,1)}
  9%,84%{opacity:1;transform:none;animation-timing-function:cubic-bezier(.65,0,.35,1)}
  93%,100%{opacity:0;transform:translateY(-4px) scale(.97)}}
@keyframes chipFill{0%,13%{clip-path:inset(0 100% 0 0 round 999px);animation-timing-function:cubic-bezier(.65,0,.35,1)}
  33%,100%{clip-path:inset(0 0 0 0 round 999px)}}
.mo.live .fx:not(.in) .built .not{opacity:0;transform:translateY(10px)}
.mo .built .not{transition:opacity 700ms var(--ease) 500ms,transform 800ms var(--ease) 500ms}
.mo .rv>img{transition:clip-path 900ms var(--ease),transform 1200ms var(--ease)}
.mo.live .rv:not(.in)>img{clip-path:inset(100% 0 0 0);transform:scale(1.06)}
.mo.live .rv:not(.in){background:transparent}
.mo.live .cards:not(.in) .card{opacity:0;transform:translateY(16px)}
.mo .cards .card{transition:opacity 700ms var(--ease),transform 800ms var(--ease)}
.mo .cards.in .card:nth-child(2){transition-delay:80ms}
.mo .cards.in .card:nth-child(3){transition-delay:160ms}
.mo .cards.in .card:nth-child(4){transition-delay:240ms}
.mo.live .cards:not(.in) .days span,.mo.live .cards:not(.in) .days b{opacity:0}
.mo .cards.in .days span{animation:fadeIn 300ms ease both}
.mo .cards.in .days b{animation:perf 300ms var(--ease) both}
.mo .cards.in .days span:nth-of-type(1){animation-delay:500ms}
.mo .cards.in .days b:nth-of-type(1){animation-delay:650ms}
.mo .cards.in .days span:nth-of-type(2){animation-delay:800ms}
.mo .cards.in .days b:nth-of-type(2){animation-delay:950ms}
.mo .cards.in .days span:nth-of-type(3){animation-delay:1100ms}
.mo.live .fx:not(.in) .gab .bio,.mo.live .fx:not(.in) .gab .cred{opacity:0;transform:translateY(8px)}
.mo .gab .bio,.mo .gab .cred{transition:opacity 500ms var(--ease),transform 500ms var(--ease)}
.mo .fx.in .gab .cred{transition-delay:60ms}
.mo .fx.in .gab .bio{transition-delay:120ms}
.mo .fx.in .gab .bio+.bio{transition-delay:180ms}
@container (max-width:599px){
  .pg{--pad:56px}
  .hero{padding-top:16px}
  .card .ph{aspect-ratio:16/9}
  .qs .bb{font-size:18px}
  .sub{line-height:1.5}
  .rows>div{padding:12px 0}
}
@container (max-width:899px){
  .js .jbar{display:block}
  .band.dark,.band.plum{margin-top:-28px;border-radius:28px 28px 0 0;z-index:1}
}
@container (min-width:600px){
  .pg{--g:max(32px, env(safe-area-inset-left), env(safe-area-inset-right));--pad:96px;--h1:clamp(44px,7.4cqi,52px);--h2:clamp(34px,5.6cqi,40px);--body:17px;--lead:18px}
  .hero{max-width:680px;padding-top:32px;--shot:5/2}
  .fcard{padding:32px}
  .cta{align-items:flex-start}
  .cta .btn{width:auto}
  .tix-f .cta .btn{width:100%}
  .rows>div{grid-template-columns:136px minmax(0,1fr);column-gap:16px}
  .rows dt{padding-top:3px}
  .vids{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hl{grid-template-columns:repeat(4,minmax(0,1fr))}
  .qp{padding-top:48px}
  .qs li{max-width:78%}
}
@container (min-width:900px){
  .pg{--g:max(56px, env(safe-area-inset-left), env(safe-area-inset-right));--pad:128px;--h1:clamp(56px,4.4cqi,64px);--h2:clamp(40px,3.3cqi,48px);--h3:20px;--body:18px;--lead:19px}
  .h1,.h2{letter-spacing:-.02em}
  .lp-top{padding-top:24px}
  .lp-logo{height:44px}
  .sold-line{font-size:13.5px}
  .sold-out{height:19px;padding:0 8px 0 9.2px;font-size:9.5px}
  .hero{--shot:1/1;max-width:1280px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);column-gap:64px;align-items:start;padding-top:48px}
  .hero-copy{padding-top:16px}
  .sub{margin-top:24px;max-width:34rem}
  .ev{margin-top:24px}
  .hmedia{display:block}
  .mo.flow .hmedia{transform:scale(.94);border-radius:28px}
  .evrow .ava{display:none}
  .mo .qa .tix{transition:opacity 450ms var(--ease) 100ms}
  .fcard{margin-top:0;position:sticky;top:var(--stick)}
  .fh{font-size:32px}
  .perks li{font-size:16px}
  .qa{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:96px;align-items:start}
  .qa .howto{margin-top:0;padding-top:32px;position:sticky;top:calc(var(--stick) + 24px)}
  .qa .howto .h3s{margin-top:0}
  .tix-h{padding:24px 32px}
  .perf{margin:0 32px}
  .perf::before{left:-44px}
  .perf::after{right:-44px}
  .rows{padding:4px 32px 8px}
  .tix-f{padding:0 32px 32px}
  .cover{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:96px;align-items:start}
  .qs{margin-top:0}
  .qs .bb{font-size:22px;padding:18px 24px 20px}
  .qs .ty{height:52px;padding:0 20px}
  .oh{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);column-gap:96px;align-items:start}
  .oh{grid-template-rows:auto auto}
  .oh>div:first-child{grid-column:1;grid-row:1}
  .oh .tixw{grid-column:2;grid-row:1;margin-top:0}
  .xpl{grid-column:1 / -1;grid-row:2;margin-top:80px}
  .xsteps{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr);gap:28px;align-items:start}
  .xs,.xroom{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
  .xd{grid-row:auto;padding:14px}
  .xs .xd svg{max-height:150px}
  .xnum{padding-top:18px}
  .xlab{font-size:16px}
  .xline{left:0;right:0;top:60px;bottom:auto;width:auto;height:1.5px;margin:0;transform-origin:0 50%}
  .built{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-rows:auto 1fr;column-gap:96px;align-items:start}
  .built .txt{display:contents}
  .built .h2{grid-column:1;grid-row:1}
  .built .not{grid-column:1;grid-row:2;margin-top:28px}
  .built .roles{grid-column:2;grid-row:1 / span 2;margin-top:8px;gap:10px}
  .built .roles li{padding:11px 20px;font-size:16px}
  .course-top{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:96px;align-items:start;background:var(--cream)}
  .mods{margin-top:0}
  .pg .stackw{margin-top:40px}
  .pg .stack-l .cnt{font-size:64px}
  .pg .stack-c{font-size:40px}
  .rhythm{display:none}
  .cards{gap:32px;margin-top:96px}
  .card .tx{padding:24px 28px 32px}
  .card h3{font-size:26px}
  .gab{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:96px;align-items:center}
  .gab .ph{aspect-ratio:4/5}
  .fm{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:96px;align-items:end}
  .fm .h3s{margin-top:0}
  .hl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
  .hl .f{font-size:72px}
  .fheart{--hs:136px}
  .faq .acc>summary{min-height:72px}
  .lp-foot{padding-top:64px}
  .lp-flogo{width:232px}
  .lp-word{font-size:24cqi}
  .lp-wordw{margin-top:48px}
  .call .winw{width:132px;height:132px}
}
.stack-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.stack-l{display:flex;align-items:baseline;gap:10px;font:600 12px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.stack-l .cnt{display:inline-block;font:300 44px/1 var(--display);letter-spacing:-.02em;text-transform:none;color:var(--purple);font-variant-numeric:tabular-nums}
.stack-c{font:300 26px/1 var(--display);color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap}
.stack-c .stack-n{color:var(--purple)}
.reel{position:relative;margin:0 calc(var(--g) * -1);padding:6px 0 22px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.reel::-webkit-scrollbar{display:none}
.row{display:flex;gap:12px;width:max-content;padding:0 var(--g)}
.mc{--cw:148px;position:relative;flex:none;width:var(--cw);aspect-ratio:3/4;scroll-snap-align:start;scroll-margin-left:var(--g);border-radius:18px;background:var(--pink);color:var(--purple); padding:14px 14px 16px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 16px 30px -24px rgba(45,3,63,.7); transition:background-color 450ms var(--ease),color 450ms var(--ease)}
.mc b{font:300 54px/.9 var(--display);letter-spacing:-.03em;font-variant-numeric:lining-nums}
.mc span{font:300 18px/1.2 var(--display);letter-spacing:-.005em;text-wrap:balance}
.mc i{position:absolute;top:18px;right:14px;width:24px;height:calc(var(--k) * 5px);background:repeating-linear-gradient(to bottom,rgba(45,3,63,.5) 0 1.5px,transparent 1.5px 5px)}
.mc.now{background:var(--purple);color:var(--cream)}
.mc.now i{background:repeating-linear-gradient(to bottom,rgba(230,204,242,.8) 0 1.5px,transparent 1.5px 5px)}
.mo.flow .reel{overflow:hidden;scroll-snap-type:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%)}
.mo.flow .row{will-change:transform}
.mo.flow .mc{scroll-snap-align:none}
.reelbox{position:relative}
.mo.flow .reel{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}
.mo.flow .dragging .reel{cursor:grabbing}
.mo.flow .mc{-webkit-user-drag:none}
.rbtn{display:none}
@media (hover:hover) and (pointer:fine){
  .mo.flow .rbtn{display:grid;place-items:center;position:absolute;top:calc(50% - 30px);width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;z-index:3; background:rgba(253,247,251,.92);box-shadow:0 8px 24px -10px rgba(45,3,63,.45),0 0 0 1px rgba(45,3,63,.1);color:var(--purple); opacity:0;transform:scale(.92);transition:opacity 200ms var(--ease),transform 200ms var(--ease)}
  .mo.flow .rbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mo.flow .rbtn.prev{left:6px}
  .mo.flow .rbtn.next{right:6px}
  .mo.flow .reelbox:hover .rbtn{opacity:1;transform:none}
  .mo.flow .reelbox:hover .rbtn.end{opacity:.28;cursor:default}
  .mo.flow .rbtn:active{transform:scale(.94)}
}
@container (min-width:900px){
  .reel{margin:0;padding:6px 0 22px}
  .row{padding:0}
  .mc{--cw:164px;scroll-margin-left:0}
  .mc b{font-size:60px}
  .mo.flow .reel{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%)}
}
/* Tension Clues Morning tiles: real photos from the October workshop */
.xsteps .xd{padding:6px;overflow:hidden}
.xsteps .xd img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:11px;background:rgba(230,204,242,.08)}
.xsteps .xroom .xd img{aspect-ratio:2/1}
/* Share block: a soft panel with a filled button so it reads as an action */
.share{border-top:0;padding:20px 22px 22px;border-radius:16px;background:var(--blush);border:1px solid rgba(208,180,220,.55)}
.share p{font:400 15px/1.5 var(--sans);color:var(--ink)}
.share p b{display:block;font:300 22px/1.2 var(--display);letter-spacing:-.02em;color:var(--purple);margin-bottom:4px}
.share .copybtn{background:var(--purple);color:var(--cream);border-color:var(--purple);min-height:48px;padding:12px 24px}
.share .copybtn:hover{background:#43105a}
.share .copybtn svg.lk{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.final .share{background:var(--card);border-color:rgba(230,204,242,.22)}
.final .share p{color:rgba(253,247,251,.86)}
.final .share p b{color:var(--cream)}
.final .share .copybtn{background:var(--pink);color:var(--purple);border-color:var(--pink)}
.final .share .copybtn:hover{background:#f0dcf7}
.final .copied,.final .copied svg path{color:var(--pink);stroke:var(--pink)}
.final .share{max-width:560px}
/* v28: header badge fits at 320px (it was cut off) */
@container (max-width:359px){
  .lp-top{gap:8px}
  .lp-logo{height:26px}
  .sold-line{font-size:10.5px}
  .sold-out{height:15px;font-size:7.5px;padding:0 6px}
}
/* v28: Windows High Contrast. Focus rings and ticked boxes stay visible when the system repaints colours. */
@media (forced-colors: active){
  .lp input:focus,.lp select:focus,.lp textarea:focus{outline-color:Highlight}
  .tier span::before{forced-color-adjust:none;background:Canvas;border-color:CanvasText}
  .tier input:checked+span::before{background:Highlight}
  .tier input:checked+span{border-width:2px}
  .btn,.ghost{border:2px solid ButtonText}
}

/* v29: privacy link under the three forms, kept small and quiet */
.under a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;white-space:nowrap}
.more .under{margin-top:-12px}
/* v29: one line CTA under the FAQ */
.faq-more{margin-top:32px;font:500 var(--body)/1.5 var(--sans);color:var(--purple)}
.faq-more a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.faq .acc{scroll-margin-top:var(--stick, 80px)}
/* v30: landscape notch. --g (the side gutter on .pg) now never drops below the safe area inset, so the logo, headings and form edge stay clear of the notch. Portrait and desktop are unchanged (the insets are 0 there). */
/* v30: "See it in your time zone" (two links, both to timeanddate.com). Vertical padding on an inline link grows the tap area to 44px without moving a single line or changing how the text looks. */
.lp a[href*="timeanddate.com"]{padding:14px 0}
