:root{--bg:#171f2b;--surface:#212c3c;--surface-2:#2b3849;--line:rgba(255, 255, 255, 0.08);--ink:#edebf4;--muted:#a4aec2;--violet:#a06cf5;--pink:#f1497c;--gold:#f3d34a;--green:#43d17c;--grad:linear-gradient(120deg, #a06cf5, #f1497c);--font-display:"Bricolage Grotesque","Avenir Next",system-ui,sans-serif;--font-body:"Instrument Sans",system-ui,-apple-system,sans-serif;--font-mono:"Spline Sans Mono",ui-monospace,"SF Mono",monospace;--radius:22px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--ink)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:4px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--violet);color:#10131b;padding:.6rem 1rem;z-index:100;border-radius:0 0 8px 0}.skip-link:focus{left:0}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}.eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.cap-head{font-family:var(--font-display);font-weight:750;font-size:clamp(1.9rem, 4.2vw, 3rem);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}.acc-violet{color:var(--violet)}.acc-pink{color:var(--pink)}.acc-gold{color:var(--gold)}.acc-green{color:var(--green)}.lede{color:var(--muted);font-size:1.125rem;max-width:38rem;margin-top:1.1rem}.nav{position:sticky;top:0;z-index:50;background:rgba(23,31,43,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;gap:1.5rem;height:64px}.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;font-size:1.05rem;text-decoration:none;letter-spacing:-.01em}.brand img{width:30px;height:30px;border-radius:7px}.nav-links{display:flex;gap:1.4rem;margin-left:auto;list-style:none}.nav-links a{text-decoration:none;color:var(--muted);font-size:.92rem;transition:color .15s}.nav-links a:hover{color:var(--ink)}.nav-cta{background:var(--grad);color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;padding:.55rem 1.1rem;border-radius:999px;white-space:nowrap}.nav-cta:hover{filter:brightness(1.1)}.nav-toggle{display:none;margin-left:auto;background:0 0;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:1.3rem;line-height:1;padding:.35rem .6rem;cursor:pointer}@media (max-width:860px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem 24px 1rem}.nav-links.open{display:flex}.nav-links a{display:block;padding:.7rem 0;font-size:1rem}.nav-cta{display:none}}.hero{position:relative;overflow:hidden;padding:5rem 0 4rem}.hero::before{content:"";position:absolute;top:-240px;right:-160px;width:640px;height:640px;background:radial-gradient(closest-side,rgba(160,108,245,.16),transparent);pointer-events:none}.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:3.5rem;align-items:center}.hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem, 5.4vw, 3.9rem);line-height:1.04;letter-spacing:-.025em;text-wrap:balance}.hero-actions{display:flex;align-items:center;gap:1.1rem;margin-top:2rem;flex-wrap:wrap}.trust-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem;font-size:.88rem;color:var(--muted)}.trust-row .stars{color:var(--gold);letter-spacing:.1em}.stars-45{position:relative;display:inline-block;line-height:1;letter-spacing:.1em}.stars-45 .stars-off{color:rgba(255,255,255,.25)}.stars-45 .stars-on{position:absolute;top:0;left:0;width:90%;overflow:hidden;white-space:nowrap;color:var(--gold)}.trust-row .dot{opacity:.45}.hero-shot{justify-self:center;width:min(380px,100%)}.poster{border-radius:var(--radius);border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}@media (max-width:860px){.hero{padding:3rem 0 2.5rem}.hero-grid{grid-template-columns:1fr;gap:2.5rem}.hero-shot{width:min(320px,88%)}}.btn-appstore{display:inline-flex;align-items:center;gap:.7rem;background:#000;border:1px solid rgba(255,255,255,.28);border-radius:12px;color:#fff;text-decoration:none;padding:.55rem 1.15rem .6rem;line-height:1.15;transition:transform .15s,border-color .15s}.btn-appstore:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.55)}.btn-appstore svg{width:26px;height:26px;flex:none}.btn-appstore .small{display:block;font-size:.64rem;opacity:.85}.btn-appstore .big{display:block;font-size:1.12rem;font-weight:600;letter-spacing:-.01em}.btn-ghost{display:inline-block;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.95rem;padding:.7rem 1.4rem;transition:border-color .15s,background .15s}.btn-ghost:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.04)}.section{padding:4.5rem 0}.section+.section{border-top:1px solid var(--line)}.section-head{max-width:44rem;margin-bottom:2.6rem}.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.feat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem}.feat .tick{display:inline-block;width:10px;height:10px;border-radius:3px;margin-bottom:.9rem}.feat h3{font-family:var(--font-display);font-size:1.12rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.45rem}.feat p{color:var(--muted);font-size:.95rem}.feat a{color:var(--muted)}.feat a:hover{color:var(--ink)}@media (max-width:960px){.feat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.feat-grid{grid-template-columns:1fr}}.reel{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x proximity;padding:.5rem 24px 1.4rem;max-width:1120px;margin:0 auto;scrollbar-width:thin;scrollbar-color:var(--surface-2) transparent}.reel figure{flex:none;scroll-snap-align:center;width:min(300px,72vw)}.reel img{width:100%}.reel figcaption{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:.7rem;text-align:center}.acts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;counter-reset:act}.act{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem 1.5rem}.act .act-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1rem}.act h3{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.act p{color:var(--muted);font-size:.96rem}.act p a{color:var(--ink)}@media (max-width:860px){.acts{grid-template-columns:1fr}}.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}.guide-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.5rem 1.4rem;text-decoration:none;transition:border-color .15s,transform .15s}.guide-card:hover{border-color:rgba(160,108,245,.45);transform:translateY(-2px)}.guide-card .kicker{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.55rem}.guide-card h3{font-family:var(--font-display);font-size:1.18rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.4rem}.guide-card p{color:var(--muted);font-size:.93rem;margin-bottom:.8rem}.guide-card .more{font-size:.88rem;font-weight:600;color:var(--violet)}@media (max-width:720px){.guide-grid{grid-template-columns:1fr}}.faq{max-width:46rem}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;font-family:var(--font-display);font-weight:600;font-size:1.05rem}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font-family:var(--font-mono);color:var(--violet);font-size:1.2rem;flex:none;transition:transform .2s}.faq details[open] summary::after{transform:rotate(45deg)}.faq .faq-body{padding:0 0 1.3rem;color:var(--muted);font-size:.98rem}.faq .faq-body a{color:var(--violet);font-weight:600}.cta{text-align:center;position:relative;overflow:hidden}.cta::before{content:"";position:absolute;inset:auto 0 -320px 0;height:520px;background:radial-gradient(closest-side,rgba(241,73,124,.13),transparent);pointer-events:none}.cta .eyebrow{margin-bottom:1.2rem}.cta .cap-head{margin:0 auto;max-width:20ch}.cta .lede{margin-left:auto;margin-right:auto}.cta .hero-actions{justify-content:center}.cta .trust-row{justify-content:center}.footer{border-top:1px solid var(--line);padding:3.5rem 0 2.5rem;font-size:.9rem;color:var(--muted)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}.footer h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:.9rem;font-weight:500}.footer ul{list-style:none}.footer li{margin-bottom:.55rem}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--ink)}.footer .brand{margin-bottom:.8rem}.footer .fineprint{border-top:1px solid var(--line);padding-top:1.6rem;font-size:.8rem;opacity:.8;text-align:center}@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}.article-main{max-width:760px;margin:0 auto;padding:3rem 24px 4rem}.breadcrumb{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.6rem}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--ink)}.article-main h1{font-family:var(--font-display);font-weight:780;font-size:clamp(1.9rem, 4.5vw, 2.7rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:1rem;text-wrap:balance}.article-main .standfirst{color:var(--muted);font-size:1.15rem;margin-bottom:2.2rem}.article-main h2{font-family:var(--font-display);font-size:1.45rem;font-weight:720;letter-spacing:-.01em;margin:2.4rem 0 .8rem}.article-main h3{font-family:var(--font-display);font-size:1.12rem;font-weight:700;margin:1.8rem 0 .5rem}.article-main p{margin-bottom:1rem}.article-main li,.article-main p{color:#cfd4e2}.article-main a{color:var(--violet)}.article-main ol,.article-main ul{padding-left:1.4rem;margin-bottom:1rem}.article-main li{margin-bottom:.45rem}.article-main .steps{list-style:none;padding:0;counter-reset:step;margin:1.2rem 0 1.6rem}.article-main .steps>li{counter-increment:step;position:relative;padding:0 0 1.1rem 3rem}.article-main .steps>li::before{content:counter(step);position:absolute;left:0;top:.05rem;width:2rem;height:2rem;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);color:var(--violet);font-family:var(--font-mono);font-size:.85rem;display:flex;align-items:center;justify-content:center}.article-main .steps strong{color:var(--ink)}.callout{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--violet);border-radius:12px;padding:1.1rem 1.3rem;margin:1.5rem 0;font-size:.97rem}.callout.gold{border-left-color:var(--gold)}.callout.green{border-left-color:var(--green)}.callout.pink{border-left-color:var(--pink)}.article-shot{margin:2rem auto;width:min(320px,100%)}.article-shot figcaption{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:.7rem;text-align:center}.cta-box{background:var(--surface);border:1px solid rgba(160,108,245,.35);border-radius:var(--radius);padding:2rem 1.8rem;margin:2.8rem 0 1rem;text-align:center}.cta-box h2{margin-top:0}.cta-box p{color:var(--muted);max-width:32rem;margin:.4rem auto 1.4rem}.cta-box .trust-row{justify-content:center;margin-top:1.1rem}.related{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.8rem}.related h2{margin-top:0}.related ul{list-style:none;padding:0}.related li{margin-bottom:.6rem}.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.btn-appstore:hover,.guide-card:hover{transform:none}}[id]{scroll-margin-top:76px}.badge-link{display:inline-block;border-radius:13px;transition:transform .15s,opacity .15s}.badge-link:hover{transform:translateY(-1px)}.app-store-badge{height:60px;width:auto;display:block}.hero .app-store-badge{height:64px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.review{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem}.review .review-stars{color:var(--gold);letter-spacing:.12em;font-size:.9rem;margin-bottom:.8rem}.review blockquote{color:var(--ink);font-size:.96rem;margin-bottom:.9rem}.review .review-author{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}@media (max-width:860px){.review-grid{grid-template-columns:1fr}}.reviews-more{margin-top:1.6rem;font-size:.92rem}.reviews-more a{color:var(--violet);font-weight:600;text-decoration:none}.reviews-more a:hover{text-decoration:underline}.reviews-more .reviews-note{color:var(--muted);font-size:.84rem}.price-note{color:var(--muted);font-size:.9rem;margin-top:.8rem}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}.price-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.4rem;text-align:center}.price-card.best{border-color:rgba(160,108,245,.55)}.price-card .best-badge{position:absolute;top:-.7rem;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:.28rem .7rem;border-radius:999px;white-space:nowrap}.price-card h3{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin-bottom:.5rem}.price-card .price{font-family:var(--font-display);font-size:2rem;font-weight:780;letter-spacing:-.02em;margin-bottom:.2rem}.price-card .per{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.price-card ul{list-style:none;padding:0;text-align:left;color:var(--muted);font-size:.9rem}.price-card li{padding:.42rem 0;border-top:1px solid var(--line)}@media (max-width:960px){.price-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.price-grid{grid-template-columns:1fr}}.footer-grid{grid-template-columns:1.5fr 1fr 1.1fr 1.1fr 0.8fr}@media (max-width:1000px){.footer-grid{grid-template-columns:1fr 1fr 1fr}}@media (max-width:640px){.footer-grid{grid-template-columns:1fr 1fr}}.alt-main{max-width:880px;margin:0 auto;padding:2.5rem 24px 4.5rem}.alt-main h1{font-family:var(--font-display);font-weight:780;font-size:clamp(2rem, 4.6vw, 2.9rem);line-height:1.08;letter-spacing:-.02em;margin-bottom:1rem;text-wrap:balance}.alt-main h2{font-family:var(--font-display);font-size:1.45rem;font-weight:720;letter-spacing:-.01em;margin:2.4rem 0 .8rem}.alt-main .alt-section>h2:first-child{margin-top:0}.alt-main h3{font-family:var(--font-display);font-size:1.12rem;font-weight:700;margin:1.6rem 0 .5rem}.alt-main h4{font-family:var(--font-display);font-size:1rem;font-weight:700;margin:1.5rem 0 .4rem}.alt-main p{margin-bottom:1rem}.alt-main li,.alt-main p{color:#cfd4e2}.alt-main a{color:var(--violet)}.alt-main ol,.alt-main ul{padding-left:1.4rem;margin-bottom:1rem}.alt-main li{margin-bottom:.45rem}.alt-main .alt-section{margin-top:2.6rem}.alt-main .page-hero{padding:.5rem 0 .6rem}.alt-main .hero-eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.alt-main .last-updated,.alt-main .table-note{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.04em;color:var(--muted)}.alt-main .download-buttons{margin:1.6rem 0 0}.alt-main .hero-rating{color:var(--muted);font-size:.9rem;margin-top:1rem}.alt-main .star{color:var(--gold)}.alt-main .table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:1.4rem 0 .9rem}.alt-main table.compare{width:100%;min-width:640px;border-collapse:collapse;font-size:.93rem;line-height:1.5}.alt-main .compare td,.alt-main .compare th{text-align:left;vertical-align:top;padding:.8rem 1rem;border-bottom:1px solid var(--line)}.alt-main .compare thead th{font-family:var(--font-display);font-weight:700;color:var(--ink);background:var(--surface-2)}.alt-main .compare tbody th[scope=row]{font-family:var(--font-body);font-weight:600;color:var(--ink)}.alt-main .compare td{color:var(--muted)}.alt-main .compare tbody tr:last-child td,.alt-main .compare tbody tr:last-child th{border-bottom:none}.alt-main .alt-figure{margin:2rem auto;width:min(320px,100%)}.alt-main .alt-figure img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}.alt-main .alt-figure figcaption{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:.7rem;text-align:center}.alt-main .faq-item{border-bottom:1px solid var(--line)}.alt-main .faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 0}.alt-main .faq-item summary::-webkit-details-marker{display:none}.alt-main .faq-item summary h3{margin:0;font-size:1.02rem}.alt-main .faq-item summary::after{content:"+";font-family:var(--font-mono);color:var(--violet);font-size:1.2rem;flex:none;transition:transform .2s}.alt-main .faq-item[open] summary::after{transform:rotate(45deg)}.alt-main .faq-item>p{padding:0 0 1.2rem;margin:0;color:var(--muted);font-size:.97rem}.alt-main .features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:.5rem}.alt-main .feature-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.5rem 1.3rem}.alt-main .feature-item h3{margin:0 0 .45rem;font-size:1.15rem}.alt-main .feature-item h3 a{color:var(--ink);text-decoration:none}.alt-main .feature-item h3 a:hover{color:var(--violet)}.alt-main .feature-item p{color:var(--muted);font-size:.95rem;margin:0}@media (max-width:720px){.alt-main .features-grid{grid-template-columns:1fr}}