.landing{--sw-bg:var(--ink-950);--sw-ink:var(--ink-100);--sw-ink-soft:var(--ink-400);--sw-accent:var(--buganvilia-300);--color-brand-text:var(--buganvilia-300);--color-brand-fill:var(--buganvilia-600);--color-border:var(--ink-800);--color-surface:var(--ink-900);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--sw-bg);color:var(--sw-ink);font-family:var(--font-ui);font-size:16px;line-height:1.55;overflow-x:clip}.landing-hero{height:280vh;position:relative}.landing-hero__stage{--p:0;height:100dvh;position:sticky;top:0;overflow:hidden}.landing-hero__scene{transform-origin:50% 58%;transform:scale(calc(1 + var(--p) * 2.4));will-change:transform;position:absolute;inset:0}.landing-hero__scene img,.landing-hero__video{object-fit:cover;object-position:50% 58%;width:100%;height:100%;position:absolute;inset:0}.landing-hero__video{opacity:0;transition:opacity .3s}.landing-hero__stage.has-video .landing-hero__video{opacity:1}.landing-hero__veil{background:var(--sw-bg);opacity:clamp(0, calc((var(--p) - .72) / .05), 1);pointer-events:none;position:absolute;inset:0}.landing-hero__copy{text-align:center;opacity:clamp(0, calc(1 - var(--p) / .3), 1);transform:translateY(calc(var(--p) * -60px));pointer-events:none;flex-direction:column;align-items:center;padding:0 20px;display:flex;position:absolute;top:clamp(96px,14vh,160px);left:0;right:0}.landing-hero__copy>*{pointer-events:auto}.landing-hero__title{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;max-width:14ch;color:var(--paper-0);text-shadow:0 -1px 0 color-mix(in srgb, var(--paper-0) 35%, transparent), 0 2px 3px color-mix(in srgb, var(--ink-950) 85%, transparent), 0 10px 40px color-mix(in srgb, var(--ink-950) 90%, transparent), 0 24px 80px color-mix(in srgb, var(--ink-950) 70%, transparent);margin:0;font-size:clamp(2.4rem,6vw,4.6rem);font-weight:600;line-height:1}.landing-hero__lead{max-width:44ch;color:var(--paper-50);text-shadow:0 1px 2px color-mix(in srgb, var(--ink-950) 90%, transparent), 0 6px 24px color-mix(in srgb, var(--ink-950) 90%, transparent), 0 16px 56px color-mix(in srgb, var(--ink-950) 75%, transparent);text-wrap:pretty;margin:18px 0 0;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:500}.landing-hero__cta{gap:10px;margin-top:28px;display:flex}.landing-hero__app{aspect-ratio:2620/1620;width:min(1180px,92vw);transform:translate(-50%, -50%) scale(calc(.62 + var(--p) * .38));opacity:clamp(0, calc((var(--p) - .6) / .22), 1);border:1px solid var(--ink-800);box-shadow:0 40px 120px color-mix(in srgb, var(--ink-950) 80%, transparent), 0 0 0 1px color-mix(in srgb, var(--buganvilia-300) 6%, transparent);background:var(--ink-900);border-radius:14px;position:absolute;top:50%;left:50%;overflow:hidden}.landing-hero__app img{object-fit:fill;width:100%;height:100%;display:block}.landing-hero__stage.is-tracked .landing-hero__scene{transform:none}.landing-hero__stage.is-tracked .landing-hero__app{aspect-ratio:auto;transform-origin:0 0;opacity:1;width:0;height:0;box-shadow:none;will-change:transform, width, height;border-color:#0000;border-radius:0;top:0;left:0;transform:none}.landing-hero__hint{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--ink-100) 70%, transparent);opacity:clamp(0, calc(1 - var(--p) / .12), 1);pointer-events:none;font-size:11px;position:absolute;transform:translate(-50%)}.landing-chapters{max-width:1180px;margin:0 auto;padding:clamp(64px,10vh,120px) 20px 0;position:relative}.landing-chapter{border-top:1px solid var(--ink-800);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(32px,6vw,96px);padding:clamp(56px,9vh,112px) 0;display:grid}.landing-chapter--feature{grid-template-columns:1fr;gap:40px}.landing-chapter__eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--buganvilia-300);margin-bottom:14px;font-size:11px;font-weight:600;display:block}.landing-chapter__title{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:600;line-height:1.05}.landing-chapter__body{max-width:48ch;color:var(--ink-400);text-wrap:pretty;margin:16px 0 0;font-size:clamp(1rem,1.15vw,1.1rem)}.landing-chapter__tags{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.landing-chapter__tags li{color:var(--ink-100);background:color-mix(in srgb, var(--ink-100) 8%, transparent);border:1px solid color-mix(in srgb, var(--ink-100) 14%, transparent);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500}.landing-chapter__stage{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.landing-chapter--feature .landing-chapter__stage{background:radial-gradient(60% 80% at 50% 50%, color-mix(in srgb, var(--buganvilia-600) 10%, transparent), transparent 70%);align-items:center;padding:clamp(32px,6vw,72px) 0}.landing-chapter__stage{font-size:14px;line-height:1.4}.landing-chapter--feature .landing-chapter__stage>*{box-shadow:0 30px 80px color-mix(in srgb, var(--ink-950) 70%, transparent)}.landing-close{border-top:1px solid var(--ink-800);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:clamp(32px,6vw,96px);max-width:1180px;margin:0 auto;padding:clamp(80px,14vh,160px) 20px;display:grid}.landing-close__list{color:var(--ink-400);flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.landing-close__list li{padding-left:22px;position:relative}.landing-close__list li:before{content:"";background:var(--buganvilia-300);width:10px;height:2px;position:absolute;top:.62em;left:0}.landing-footer{max-width:1180px;padding:24px 20px calc(32px + env(safe-area-inset-bottom));border-top:1px solid var(--ink-800);color:var(--ink-400);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;font-size:13px;display:flex}.landing-footer a{color:var(--ink-400);text-decoration:none}.landing-footer a:hover{color:var(--ink-100)}.landing a:focus-visible,.landing button:focus-visible{outline:2px solid var(--buganvilia-300);outline-offset:3px}@media (width<=860px){.landing-hero{height:220vh}.landing-hero__scene{transform-origin:50% 56%;transform:scale(calc(1 + var(--p) * 1.9))}.landing-hero__app{aspect-ratio:auto}.landing-hero__copy{top:clamp(84px,12vh,120px)}.landing-hero__app{width:94vw}.landing-chapter,.landing-close{grid-template-columns:minmax(0,1fr);gap:28px}.landing-chapter__stage{align-items:stretch}.landing-chapter__stage>*{min-width:0;max-width:100%}}@media (prefers-reduced-motion:reduce){.landing-hero{height:auto}.landing-hero__stage{height:auto;min-height:100vh;position:relative}.landing-hero__scene{transform:none}.landing-hero__veil,.landing-hero__hint{display:none}.landing-hero__copy{opacity:1;padding-top:120px;padding-bottom:40px;position:relative;transform:none}.landing-hero__app{opacity:1;margin:0 auto 40px;position:relative;top:auto;left:auto;transform:none}}.landing-rail{z-index:60;flex-direction:column;gap:18px;padding:16px 10px;display:flex;position:fixed;top:50%;right:clamp(14px,2.4vw,30px);transform:translateY(-50%)}.landing-rail:before{content:"";background:color-mix(in srgb, var(--ink-100) 18%, transparent);width:1px;position:absolute;top:20px;bottom:20px;left:50%;transform:translate(-50%)}.landing-rail__dot{cursor:pointer;background:0 0;border:0;place-items:center;width:16px;height:16px;padding:0;display:grid;position:relative}.landing-rail__dot i{background:color-mix(in srgb, var(--ink-100) 35%, transparent);border-radius:50%;width:8px;height:8px;transition:transform .3s,background .3s}.landing-rail__dot:hover i{background:var(--ink-100)}.landing-rail__dot.is-active i{background:var(--buganvilia-300);transform:scale(1.35)}.landing-rail__label{white-space:nowrap;color:var(--ink-100);background:color-mix(in srgb, var(--ink-950) 88%, transparent);border:1px solid color-mix(in srgb, var(--ink-100) 12%, transparent);opacity:0;pointer-events:none;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500;transition:opacity .25s,transform .25s;position:absolute;top:50%;right:22px;transform:translateY(-50%)translate(6px)}.landing-rail__dot:hover .landing-rail__label,.landing-rail__dot.is-active .landing-rail__label{opacity:1;transform:translateY(-50%)translate(0)}@media (width<=860px){.landing-rail{display:none}}.landing-piece__title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-400);font-size:11px;font-weight:600}.landing-cards{gap:12px;display:grid}.landing-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-cards>*>a{width:100%}@media (width<=600px){.landing-cards--3,.landing-cards--2{grid-template-columns:1fr}}@keyframes landing-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes landing-pop{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.landing-anim [role=img]>div,.landing-anim [role=img]>span{transform-origin:0}.landing-anim:not(.is-in) [role=img]>div,.landing-anim:not(.is-in) [role=img]>span{opacity:0;transform:scaleX(0)}.landing-anim.is-in [role=img]>div{animation:.9s cubic-bezier(.2,.8,.2,1) both landing-grow-x}.landing-anim.is-in [role=img]>span{animation:.45s cubic-bezier(.2,.8,.2,1) both landing-pop}.landing-anim.is-in [role=img]>:first-child{animation-delay:.25s}.landing-anim.is-in [role=img]>:nth-child(2){animation-delay:.32s}.landing-anim.is-in [role=img]>:nth-child(3){animation-delay:.39s}.landing-anim.is-in [role=img]>:nth-child(4){animation-delay:.46s}.landing-anim.is-in [role=img]>:nth-child(5){animation-delay:.53s}.landing-anim.is-in [role=img]>:nth-child(6){animation-delay:.6s}.landing-anim.is-in [role=img]>:nth-child(7){animation-delay:.67s}.landing-anim.is-in [role=img]>:nth-child(8){animation-delay:.74s}.landing-anim.is-in [role=img]>:nth-child(9){animation-delay:.81s}.landing-anim.is-in [role=img]>:nth-child(10){animation-delay:.88s}.landing-anim.is-in [role=img]>:nth-child(11){animation-delay:.95s}.landing-anim.is-in [role=img]>:nth-child(12){animation-delay:1.02s}.landing-anim .border-t span>span{transform-origin:0}.landing-anim:not(.is-in) .border-t span>span{transform:scaleX(0)}.landing-anim.is-in .border-t span>span{animation:1s cubic-bezier(.2,.8,.2,1) .9s both landing-grow-x}@media (prefers-reduced-motion:reduce){.landing-anim [role=img]>div,.landing-anim [role=img]>span,.landing-anim .border-t span>span{opacity:1!important;animation:none!important;transform:none!important}}
