:root{--bg:#fffdf5;--ink:#1f1d1a;--body:#2e2b27;--body-soft:#4a4640;--muted:#5f5b55;--line:#e6e1d6;--footer:#fff4c9;--footer-line:#eadfae;--panel:#fff;--cta-border:#b5afa4;--star:#cdaaff;--sparkle:#f4a6a3;--wave-blue:#7fa8f0;--wave-lilac:#b48cf0;--wave-pink:#ee8f8c;--kpi-panel:#f3eee3;--card-lilac:#f3edfd;--card-blue:#eaf1fd;--badge-green:#ddf3d3;--badge-grey:#ece8e0;--kpi-hi:#fff1b8;--kpi-hi-border:#e8d488;--eyebrow:#8a847a;--toc:#9a948a;--nav-bg:#fffdf5db;--confetti-1:#f4a6a3;--confetti-2:#ffc27a;--confetti-3:#8fb8f5;--confetti-4:#cdaaff;--confetti-5:#8fd67a;--accent-subscription-plans:#ffb27a;--accent-toast-for-clubs:#8fb8f5;--accent-round-ups:#8fd67a;--accent-trip-fund:#f09a97;--font-display:var(--font-beatrice);--font-text:var(--font-figtree);--hero-size:clamp(44px, 5.6vw, 76px);--hero-track:-.035em;--hero-lh:1.02;--page-title-size:clamp(40px, 4.2vw, 60px);--page-title-track:-.035em;--page-title-lh:1.02;--cs-title-size:clamp(38px, 4.6vw, 62px);--cs-title-track:-.03em;--cs-title-lh:1.05;--section-size:clamp(32px, 3.4vw, 46px);--section-track:-.03em;--section-lh:1.05;--project-title-size:clamp(26px, 2.5vw, 34px);--project-title-track:-.02em;--project-title-lh:1.15;--cs-section-size:clamp(26px, 2.6vw, 34px);--cs-section-track:-.02em;--cs-section-lh:1.18;--metric-size:clamp(28px, 2.6vw, 36px);--metric-track:-.02em;--metric-lh:1.1;--subline-size:clamp(19px, 1.75vw, 23px);--subline-lh:1.5;--body-size:17px;--body-lh:1.65;--desc-size:16px;--desc-lh:1.6;--label-size:14px;--toc-size:15px;--toc-lh:1.3;--project-label-size:15px;--caption-size:13px;--label-lh:1.4;--eyebrow-size:12px;--eyebrow-track:.08em;--nav-name-size:16px;--nav-name-track:-.01em;--nav-link-size:15px;--wave-link-size:18px;--footer-lead-size:clamp(18px, 1.6vw, 22px);--gutter:clamp(20px, 6.25vw, 80px);--page-max:1568px;--page-offset:max(0px, (100% - var(--page-max)) / 2);--cs-wide:1120px;--cs-text:720px;--row-gap:clamp(32px, 5vw, 72px);--rows-gap:clamp(104px, 12vw, 168px);--trio-gap:clamp(20px, 3vw, 40px);--phone-width:312px;--toc-width:150px;--toc-offset:200px;--progress-height:3px;--stack-breakpoint:860px;--radius-cover:20px;--radius-card:16px;--radius-media:12px;--radius-pill:999px;--ease-roll:cubic-bezier(.65, 0, .35, 1);--roll-duration:.4s;--star-spin:14s;--star-spin-fast:1.1s;--star-kick:.7s;--confetti-duration:.9s;--wave-flow:.9s;--loader-spin:1.4s;--nav-fade:.3s;--clip-fade:.35s;--rv-duration:.6s;--rv-word:45ms;--rv-line:.18s;--rv-rise:.45em;--ease-reveal:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-padding-top:72px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--ink)}img,video,svg{max-width:100%}h1,h2,h3{text-wrap:balance}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}.wrap{width:100%;max-width:var(--page-max);padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}.page-full .wrap{max-width:none}.page-full{--page-offset:0px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--radius-pill);padding:8px 14px;font-size:14px;text-decoration:none;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.t-hero{font-family:var(--font-display);font-weight:400;font-size:var(--hero-size);line-height:var(--hero-lh);letter-spacing:var(--hero-track);margin:0}.t-page-title{font-family:var(--font-display);font-weight:400;font-size:var(--page-title-size);line-height:var(--page-title-lh);letter-spacing:var(--page-title-track);margin:0}.t-cs-title{font-family:var(--font-display);font-weight:400;font-size:var(--cs-title-size);line-height:var(--cs-title-lh);letter-spacing:var(--cs-title-track);margin:0}.t-section{font-family:var(--font-display);font-weight:400;font-size:var(--section-size);line-height:var(--section-lh);letter-spacing:var(--section-track);margin:0}.t-project-title{font-family:var(--font-display);font-weight:600;font-size:var(--project-title-size);line-height:var(--project-title-lh);letter-spacing:var(--project-title-track);margin:0}.t-cs-section{font-family:var(--font-display);font-weight:400;font-size:var(--cs-section-size);line-height:var(--cs-section-lh);letter-spacing:var(--cs-section-track);margin:0}.t-metric{font-family:var(--font-text);font-weight:400;font-size:var(--metric-size);line-height:var(--metric-lh);letter-spacing:var(--metric-track);white-space:nowrap}.t-subline{font-size:var(--subline-size);line-height:var(--subline-lh);color:var(--body-soft);margin:0}.t-body{font-size:var(--body-size);line-height:var(--body-lh);color:var(--body);margin:0}.t-desc{font-size:var(--desc-size);line-height:var(--desc-lh);color:var(--body-soft);margin:0}.t-label{font-size:var(--label-size);line-height:var(--label-lh);color:var(--muted);margin:0}.t-caption{font-size:var(--caption-size);line-height:var(--label-lh);color:var(--muted);margin:0}.t-eyebrow{font-size:var(--eyebrow-size);letter-spacing:var(--eyebrow-track);text-transform:uppercase;font-weight:600;line-height:var(--label-lh);color:var(--eyebrow);margin:0}.t-toc{font-size:var(--toc-size);line-height:var(--toc-lh);margin:0}.rl{vertical-align:bottom;align-items:flex-start;height:1.3em;line-height:1.3em;display:inline-flex;overflow:hidden}.rl>span{transition:transform var(--roll-duration) var(--ease-roll);flex-direction:column;display:flex}:is(a,button,.roll-host):is(:hover,:focus-visible) .rl>span{transform:translateY(-50%)}.cta{border:1px solid var(--cta-border);border-radius:var(--radius-pill);background:var(--panel);min-height:36px;color:var(--ink);cursor:pointer;align-self:flex-start;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.cta[aria-disabled=true]{cursor:default}@media (prefers-reduced-motion:no-preference){.rv{animation:rv-in var(--rv-duration) var(--ease-reveal) both;animation-delay:calc(var(--rv-l,0) * var(--rv-line) + var(--rv-i,0) * var(--rv-word));display:inline-block}html.rv-hold .rv{opacity:0;animation:none}}@keyframes rv-in{0%{opacity:0;transform:translateY(var(--rv-rise))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}.rl>span{transition:none}}.nav-bar{z-index:20;background:var(--nav-bg);backdrop-filter:blur(10px);position:sticky;top:0}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding-top:12px;padding-bottom:12px;display:flex}.nav-name{font-family:var(--font-display);font-size:var(--nav-name-size);letter-spacing:var(--nav-name-track);align-items:center;gap:8px;font-weight:400;text-decoration:none;display:inline-flex}.nav-links{font-size:var(--nav-link-size);align-items:center;gap:4px;display:flex}.nl{--nl-pad:14px;padding:8px var(--nl-pad);border-radius:var(--radius-pill);text-decoration:none;position:relative}.nl .nw{left:var(--nl-pad);height:6px;width:calc(100% - 2 * var(--nl-pad));opacity:0;transition:opacity .2s;display:block;position:absolute;bottom:1px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.nl .nw path{fill:none;stroke:var(--nw,var(--wave-lilac));stroke-width:1.7px;stroke-linecap:round;vector-effect:non-scaling-stroke}.nl:is(:hover,:focus-visible) .nw{opacity:1}.nl:is(:hover,:focus-visible) .nw g{animation:nav-wave-flow var(--wave-flow) linear infinite}@keyframes nav-wave-flow{to{transform:translate(-16px)}}@media (prefers-reduced-motion:reduce){.nl .nw g{animation:none!important}}.nav-progress{width:0;height:var(--progress-height);background:var(--progress-color);border-radius:0 var(--radius-pill) var(--radius-pill) 0;pointer-events:none;position:absolute;bottom:0;left:0}@media (width<=600px){.nav{flex-wrap:nowrap;column-gap:12px}.nav-name{flex:none}.nav-links{margin-right:calc(-1 * var(--nl-pad-m));--nl-pad-m:8px}.nav-links .nl{--nl-pad:8px}}@media (width<=370px){.nav-name{font-size:15px}.nav-links{--nl-pad-m:6px;font-size:14px}.nav-links .nl{--nl-pad:6px}}.nav-fade{transition:opacity var(--nav-fade) ease, transform var(--nav-fade) ease}.js .nav-bar[data-autohide]:not(.is-on) .nav-fade{opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--nav-fade) ease, transform var(--nav-fade) ease, visibility 0s linear var(--nav-fade);transform:translateY(-6px)}.star-spin{animation:star-rot var(--star-spin) linear infinite;display:inline-block}.star-plain{vertical-align:.02em}@keyframes star-rot{to{transform:rotate(360deg)}}.star-hit{vertical-align:.02em;cursor:pointer;margin:-.12em 0 -.12em -.06em;padding:.12em;display:inline-block;position:relative}.star-fast{animation:star-rot var(--star-spin-fast) linear infinite;animation-play-state:paused;display:block}.star-hit:hover .star-fast{animation-play-state:running}.star-kick{display:block}.star-hit[data-pop=a] .star-kick{animation:star-kick-a var(--star-kick) cubic-bezier(.2, .8, .2, 1)}.star-hit[data-pop=b] .star-kick{animation:star-kick-b var(--star-kick) cubic-bezier(.2, .8, .2, 1)}@keyframes star-kick-a{0%{transform:rotate(0)scale(1)}40%{transform:rotate(200deg)scale(1.25)}to{transform:rotate(360deg)scale(1)}}@keyframes star-kick-b{0%{transform:rotate(0)scale(1)}40%{transform:rotate(200deg)scale(1.25)}to{transform:rotate(360deg)scale(1)}}.star-cf{opacity:0;pointer-events:none;animation-duration:var(--confetti-duration);margin:-.15em 0 0 -.15em;animation-timing-function:cubic-bezier(.2,.8,.3,1);animation-fill-mode:both;position:absolute;top:50%;left:50%}.star-hit[data-pop=a] .star-cf{animation-name:star-pop-a}.star-hit[data-pop=b] .star-cf{animation-name:star-pop-b}@keyframes star-pop-a{0%{opacity:0;transform:translate(0)scale(.2)rotate(0)}15%{opacity:1}65%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(var(--r));opacity:0}}@keyframes star-pop-b{0%{opacity:0;transform:translate(0)scale(.2)rotate(0)}15%{opacity:1}65%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(var(--r));opacity:0}}@media (prefers-reduced-motion:reduce){.star-spin,.star-fast,.star-kick{animation:none!important}.star-cf{opacity:0!important;animation:none!important}}.wave{color:var(--ink);text-decoration:none;display:inline-block;position:relative}.wave--hero{font-size:var(--wave-link-size);padding-bottom:12px;font-weight:500}.wave--inline{font-size:inherit;padding-bottom:8px;font-weight:400}.wave-svg{width:100%;position:absolute;bottom:0;left:0;overflow:hidden}.wave-svg path{fill:none;stroke:var(--wave);stroke-width:1.7px;stroke-linecap:round;vector-effect:non-scaling-stroke}.wave-flow{opacity:0;transform:translate(0)}.wave:is(:hover,:focus-visible) .wave-flow{opacity:1;animation:wave-flow var(--wave-flow) linear infinite}.wave:is(:hover,:focus-visible) .wave-rest{opacity:0}.wave:is(:hover,:focus-visible) .wave-svg{-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}@keyframes wave-flow{to{transform:translate(-28px)}}@media (prefers-reduced-motion:reduce){.wave:is(:hover,:focus-visible) .wave-flow{opacity:0;animation:none}.wave:is(:hover,:focus-visible) .wave-rest{opacity:1}.wave:is(:hover,:focus-visible) .wave-svg{-webkit-mask-image:none;mask-image:none}}.footer{background:var(--footer)}.footer-inner{flex-direction:column;gap:clamp(48px,6vw,80px);padding-top:clamp(56px,7vw,96px);padding-bottom:36px;display:flex}.footer-main{flex-direction:column;gap:16px;display:flex}.footer-star{margin-left:.12em}.footer-lead{font-size:var(--footer-lead-size);margin:0}.footer-meta{color:var(--muted);align-items:center;gap:10px;min-height:17px;margin:0;font-size:14px;display:flex}.wx{display:inline-flex}.wx[hidden]{display:none}.wx svg{display:block}.footer-bottom{border-top:1px solid var(--footer-line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-top:22px;font-size:13px;display:flex}.footer-thanks{align-items:center;gap:8px;display:inline-flex}.loader{z-index:1000;background:var(--bg);justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.loader[hidden]{display:none}.loader.is-out{opacity:0}.loader-star{width:54px;height:54px;animation:loader-spin var(--loader-spin) cubic-bezier(.45, .05, .35, 1) infinite}@keyframes loader-spin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.12)}to{transform:rotate(360deg)scale(1)}}@media (prefers-reduced-motion:reduce){.loader-star{animation:none}}
