.rating{margin-top:var(--s-5);margin-bottom:var(--s-4);max-width:60ch}.rating__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);color:var(--ink-2);font-size:var(--text-sm)}.rating__score{font-family:var(--font-mono);font-size:var(--text-body);font-weight:600;color:var(--ink)}.rating__count{margin-inline-start:var(--s-2)}.rating__count a{color:var(--ink-2);text-underline-offset:3px}.rating__count a:hover{color:var(--ink)}.rating__stars{position:relative;display:inline-block;line-height:0;flex:none}.rating__stars-track,.rating__stars-fill{display:flex;gap:2px}.rating__stars-track{color:color-mix(in oklch,var(--ink) 18%,transparent)}.rating__stars-fill{position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden;color:var(--amber)}.rating__stars-fill svg{flex:none}.rating__quotes{list-style:none;margin:var(--s-4) 0 0;padding:0;display:grid;gap:var(--s-3)}.rating__quote{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-4);box-shadow:var(--shadow-sm)}.rating__quote blockquote{margin:0}.rating__quote-title{margin:0;font-family:var(--font-display);font-size:var(--text-body);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.rating__quote-body{margin:var(--s-2) 0 0;font-size:var(--text-sm);line-height:1.55;color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}.rating__quote-by{margin:var(--s-3) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.01em;color:var(--ink-3)}.rating__quote-by:before{content:"— "}.fvp-hero{padding-block:clamp(2.5rem,1.5rem + 3vw,4rem) var(--s-5)}.fvp-hero h1{font-size:clamp(2rem,1.4rem + 2.4vw,3.1rem);letter-spacing:var(--tracking-h2);max-width:18ch}.fvp-lead{margin-top:var(--s-4);max-width:60ch;font-size:var(--text-lead);line-height:1.55;color:var(--ink-2)}.fvp-caps{margin-top:var(--s-4);max-width:60ch;color:var(--ink-2)}.fvp-caps strong{color:var(--ink);font-weight:700}.fvp-hero__cta{margin-top:var(--s-5)}.fvp-section{padding-top:0}.fvp-legend{display:flex;flex-wrap:wrap;gap:var(--s-5);margin-bottom:var(--s-4);font-size:var(--text-sm);color:var(--ink-2)}.fvp-legend span{display:inline-flex;align-items:center;gap:6px}.fvp-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:hidden}.fvp-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.fvp-th{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink-2);padding:var(--s-4) var(--s-4);border-bottom:1px solid var(--line);vertical-align:middle}.fvp-th--feat{width:46%;text-align:left}.fvp-th--free,.fvp-th--pro{width:27%;text-align:center}.fvp-protag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;font-weight:700;color:var(--on-amber);background:var(--amber);padding:3px 10px;border-radius:var(--r-pill)}.fvp-group{text-align:left;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink-2);background:var(--paper-2);padding:var(--s-4) var(--s-4) var(--s-2);border-bottom:1px solid var(--line)}.fvp-feat{text-align:left;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line-faint);vertical-align:top}.fvp-feat__name{display:block;font-weight:640;color:var(--ink);line-height:1.3}.fvp-feat__detail{display:block;margin-top:3px;font-size:var(--text-sm);line-height:1.4;color:var(--ink-2);font-weight:420}.fvp-cell{text-align:center;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line-faint);vertical-align:middle}.fvp-cell svg{display:inline-block}.fvp-yes{color:var(--on-amber)}.fvp-no{color:var(--ink-3)}.fvp-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.fvp-th--pro,.fvp-cell--pro{background:color-mix(in oklch,var(--amber-soft) 52%,var(--card))}.fvp-cell--pro .fvp-val{color:var(--on-amber)}.fvp-table tbody:last-child .fvp-row:last-child .fvp-feat,.fvp-table tbody:last-child .fvp-row:last-child .fvp-cell{border-bottom:0}.fvp-plans__head h2{font-size:var(--text-h2);letter-spacing:var(--tracking-h2)}.fvp-plans__head>p{margin-top:var(--s-3);max-width:52ch;color:var(--ink-2)}.fvp-plans{list-style:none;margin:var(--s-6) 0 0;padding:0;display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));align-items:start}.fvp-plan{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--s-5)}.fvp-plan--featured{border-color:var(--amber);background:color-mix(in oklch,var(--amber-soft) 52%,var(--card));box-shadow:var(--shadow-md)}.fvp-plan__flag{position:absolute;top:0;right:var(--s-4);transform:translateY(-50%);background:var(--amber);color:var(--on-amber);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;padding:.35em .7em;border-radius:var(--r-pill);white-space:nowrap}.fvp-plan__name{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.fvp-plan__price{margin-top:var(--s-3);display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-2)}.fvp-plan__amount{font-family:var(--font-display);font-size:clamp(2rem,1.6rem + 1.4vw,2.6rem);font-weight:700;letter-spacing:-.02em;line-height:1}.fvp-plan__cadence{color:var(--ink-2);font-size:var(--text-sm)}.fvp-plan__trial{margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.5;color:var(--ink-2)}.fvp-plan__note{margin-top:var(--s-3);color:var(--ink-2);font-size:var(--text-sm);line-height:1.55}.fvp-pricenote{margin-top:var(--s-5);max-width:62ch;font-size:var(--text-sm);line-height:1.5;color:var(--ink-3)}.fvp-why__inner{display:grid;gap:clamp(2rem,1rem + 4vw,4rem);grid-template-columns:1fr;align-items:center}@media(min-width:900px){.fvp-why__inner{grid-template-columns:1.15fr .85fr}}.fvp-why__copy h2{font-size:var(--text-h2);letter-spacing:var(--tracking-h2)}.fvp-reasons{list-style:none;margin:var(--s-6) 0 0;padding:0;display:grid;gap:var(--s-5)}.fvp-reasons h3{font-size:var(--text-h3);letter-spacing:-.01em}.fvp-reasons p{margin-top:var(--s-2);max-width:54ch;color:var(--ink-2);line-height:1.6}.fvp-why__shot{justify-self:center;--frame-w: min(300px, 78vw)}.fvp-table__head{font-size:var(--text-h2);letter-spacing:var(--tracking-h2);margin-bottom:var(--s-5)}.fvp-obj__head h2{font-size:var(--text-h2);letter-spacing:var(--tracking-h2)}.fvp-obj__grid{list-style:none;margin:var(--s-6) 0 0;padding:0;display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(26rem,1fr))}.fvp-obj__item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5)}.fvp-obj__item h3{font-size:var(--text-h3);letter-spacing:-.01em}.fvp-obj__item p{margin-top:var(--s-3);color:var(--ink-2);line-height:1.6}@media(max-width:680px){.fvp-legend{gap:var(--s-4)}.fvp-card{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.fvp-table,.fvp-table tbody,.fvp-table tr,.fvp-table th,.fvp-table td{display:block;width:auto}.fvp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.fvp-group{background:transparent;border:0;padding:var(--s-6) 0 var(--s-2)}tbody:first-of-type .fvp-group{padding-top:var(--s-2)}.fvp-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:var(--s-4);margin-bottom:var(--s-3)}.fvp-feat{padding:0 0 var(--s-3);border-bottom:1px solid var(--line-faint)}.fvp-table .fvp-cell{display:flex;align-items:center;justify-content:space-between;text-align:right;padding:var(--s-2) 0 0;border-bottom:0;background:transparent!important}.fvp-cell:before{content:attr(data-tier);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}.fvp-cell--pro:before{content:attr(data-tier);color:var(--on-amber);background:var(--amber-soft);padding:2px 8px;border-radius:var(--r-pill)}.fvp-table tbody:last-child .fvp-row:last-child .fvp-feat{border-bottom:1px solid var(--line-faint)}.fvp-table tbody:last-child .fvp-row:last-child .fvp-cell{border-bottom:0}}
