body.landing{display:block;align-items:stretch;justify-content:stretch}body.landing #app{width:100%;max-width:480px;margin:0 auto;padding:1rem 1.5rem 1.5rem}.breadcrumb{max-width:720px;margin:0 auto;padding:1rem 1.5rem .5rem;font-size:.85rem;color:var(--muted)}.breadcrumb a,.landing-content .related a,.site-footer a{color:var(--accent);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .24s var(--ease-emerge, ease-out),color .2s ease;padding-bottom:1px}.breadcrumb a:hover,.landing-content .related a:hover,.site-footer a:hover{background-size:100% 1px}@media (prefers-reduced-motion: reduce){.breadcrumb a,.landing-content .related a,.site-footer a{transition:none}}.landing-content{max-width:720px;margin:0 auto;padding:0 1.5rem 3rem;line-height:1.6}.landing-content h1{font-size:2rem;line-height:1.2;margin:1rem 0 1.25rem;color:var(--fg)}.landing-content h2{font-size:1.3rem;margin:2.25rem 0 .75rem;color:var(--fg)}.landing-content p{color:var(--fg);margin:0 0 1rem}.landing-content .intro{font-size:1.1rem;color:var(--fg);margin-bottom:1.5rem}.landing-content .intro:first-letter{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:3.6em;line-height:.9;float:left;padding:.05em .18em 0 0;margin-top:.04em;color:var(--accent)}.landing-content section.tool{margin:2rem 0 2.5rem}.landing-content .faq details{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin:.5rem 0;background:var(--pill);transition:border-color .24s ease,background .24s ease}.landing-content .faq details:hover{border-color:var(--accent-soft-dim, var(--border))}.landing-content .faq details[open]{background:var(--pill-active, var(--pill))}.landing-content .faq details summary{cursor:pointer;font-weight:600;color:var(--fg);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.landing-content .faq details summary::-webkit-details-marker{display:none}.landing-content .faq details summary:after{content:"";flex:0 0 auto;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-1px,-1px);transform-origin:center;transition:transform .22s var(--ease-emerge, ease-out),border-color .2s ease}.landing-content .faq details summary:hover:after{border-color:var(--accent)}.landing-content .faq details[open] summary:after{transform:rotate(-135deg) translate(-1px,-1px)}.landing-content .faq details p{margin:.75rem 0 0;color:var(--muted)}.landing-content .faq details[open] p{animation:faq-body-in .28s var(--ease-emerge, ease-out) backwards}@keyframes faq-body-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.landing-content .faq details summary:after{transition:none}.landing-content .faq details[open] p{animation:none}}.landing-content .related{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.landing-content .related ul{padding-left:1.25rem}.landing-content .related li{margin:.4rem 0}.site-footer{max-width:720px;margin:0 auto;padding:1.5rem;font-size:.85rem;color:var(--muted);text-align:center;border-top:1px solid var(--border)}body.landing #app .hero{padding-top:.5rem}body.landing #app .hero .moon-wrap{width:240px;height:240px}@media (min-width: 481px){body.landing #app .hero .moon-wrap{width:280px;height:280px}}.vs-pull{margin:1.5rem 0 2rem;padding:1.25rem 1.5rem;border-left:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(168,182,232,.04) 0%,transparent 100%)}.vs-pull h2{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:1.15rem;margin:0 0 .5rem;color:var(--accent)}.vs-pull p{margin:0;font-size:.95rem;line-height:1.6}.vs-table-wrap{overflow-x:auto;margin:0 -.25rem}.vs-table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.55}.vs-table th,.vs-table td{padding:.65rem .75rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.vs-table th{font-family:Fraunces,Georgia,serif;font-weight:400;color:var(--accent);font-size:.95rem}.vs-table thead th{border-bottom:1.5px solid var(--accent-soft-dim)}.vs-table td:first-child{color:var(--accent-soft-dim);font-weight:500;width:30%}.vs-howto ol{padding-left:1.5rem;font-size:.95rem;line-height:1.65}.vs-howto li{margin-bottom:.5rem}.vs-howto em{color:var(--fg);font-style:normal;font-weight:600}.vs-table[data-reveal=true] tbody tr{opacity:0;animation:vs-row-in .46s var(--ease-emerge, ease-out) forwards;animation-delay:calc(var(--row-index, 0) * 65ms)}@keyframes vs-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.landing-content section,.landing-content .vs-pull,.landing-content .related{animation:section-reveal linear both;animation-timeline:view();animation-range:entry 0% cover 25%}@keyframes section-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}}}@media (prefers-reduced-motion: reduce){.vs-table[data-reveal=true] tbody tr{opacity:1;animation:none}}.scroll-progress{position:fixed;top:0;right:.5rem;width:18px;height:100vh;pointer-events:none;z-index:5}.scroll-progress-track{position:absolute;right:8px;top:0;width:2px;height:100%;background:#ffffff0d;border-radius:999px}.scroll-progress-fill{position:absolute;right:8px;top:0;width:2px;background:color-mix(in oklab,var(--accent-soft-dim) 70%,transparent);height:0;border-radius:999px}@supports (animation-timeline: scroll(root)){@media (prefers-reduced-motion: no-preference){.scroll-progress-fill{animation:scroll-progress-grow linear both;animation-timeline:scroll(root)}@keyframes scroll-progress-grow{0%{height:0}to{height:100%}}}}.scroll-progress-dot{position:absolute;right:3px;width:10px;height:10px;margin:0;padding:0;border-radius:50%;background:var(--bg);border:1px solid var(--border);cursor:pointer;pointer-events:auto;transform:translateY(-50%);transition:background .2s ease,border-color .2s ease,transform .2s var(--ease-emerge, ease-out)}.scroll-progress-dot:hover{transform:translateY(-50%) scale(1.25);border-color:var(--accent-soft-dim)}.scroll-progress-dot:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--halo-color) 75%,transparent)}.scroll-progress-dot.active{background:var(--accent);border-color:var(--accent)}@media (max-width: 720px){.scroll-progress{display:none}}@media (prefers-reduced-motion: reduce){.scroll-progress-dot{transition:none}}
