*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;overflow-x:hidden}
img,svg,video{max-width:100%;height:auto;display:block}
figure:empty{display:none}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent,#3b82f6);outline-offset:2px}
.lg-sprite{display:none}
.lg-skip{position:absolute;left:-9999px;top:0;z-index:200;padding:10px 16px;background:var(--card,#111);color:var(--ink,#fff)}
.lg-skip:focus{left:8px;top:8px}
.icon{width:1em;height:1em;fill:currentColor;flex:none}


.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease,cubic-bezier(.22,.61,.36,1)),transform .55s var(--ease,cubic-bezier(.22,.61,.36,1))}
.js .reveal.is-in{opacity:1;transform:none}

.card,.lg-lift{transition:transform .25s var(--ease,cubic-bezier(.22,.61,.36,1)),box-shadow .25s ease,border-color .25s ease}
.card:hover,.lg-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover,0 18px 40px -18px rgba(0,0,0,.45));border-color:var(--line-2,rgba(128,128,128,.35))}
.card figure,.media,.lg-zoom{overflow:hidden}
.card figure img,.media img,.lg-zoom img{transition:transform .5s var(--ease,cubic-bezier(.22,.61,.36,1))}
.card:hover figure img,.media:hover img,.lg-zoom:hover img{transform:scale(1.04)}
.btn:active,button:active,.lg-submit:active{transform:translateY(1px)}

details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
.faq-caret{display:inline-flex;transition:transform .25s var(--ease,cubic-bezier(.22,.61,.36,1))}
details[open] .faq-caret{transform:rotate(180deg)}

header{position:relative}
.lg-nav-toggle{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line,rgba(128,128,128,.25));border-radius:10px;background:transparent}
@media (max-width:860px){
  .lg-nav-toggle{display:inline-flex}
  .lg-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:10px 18px 18px;background:var(--bg-2,var(--bg,#0c0e13));border-bottom:1px solid var(--line,rgba(128,128,128,.25))}
  .lg-nav.is-open{display:flex}
  .lg-nav a{padding:12px 2px;border-bottom:1px solid var(--line,rgba(128,128,128,.18))}
}

.lg-top{position:fixed;right:18px;bottom:18px;z-index:60;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line-2,rgba(128,128,128,.35));background:var(--card,#181e2a);color:var(--ink,#e8ecf4);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.lg-top.is-in{opacity:1;transform:none;pointer-events:auto}

.lg-cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;display:none;gap:14px;align-items:center;flex-wrap:wrap;max-width:960px;margin:0 auto;padding:16px 18px;border-radius:14px;border:1px solid var(--line-2,rgba(128,128,128,.35));background:var(--card,#181e2a);color:var(--ink,#e8ecf4);box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.lg-cookie.is-open{display:flex}
.lg-cookie p{margin:0;flex:1 1 320px;font-size:.92rem;line-height:1.5}
.lg-cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.lg-cookie button{padding:9px 16px;border-radius:9px;border:1px solid var(--line-2,rgba(128,128,128,.35));background:transparent;font-size:.9rem}
.lg-cookie button.lg-cookie-accept{background:var(--accent,#3b82f6);border-color:transparent;color:var(--on-accent,#fff)}

.lg-form{display:grid;gap:14px}
.lg-row{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media (max-width:560px){.lg-row{grid-template-columns:1fr}}
.lg-field{display:grid;gap:6px}
.lg-field label{font-size:.85rem;opacity:.85}
.lg-field input,.lg-field select,.lg-field textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line-2,rgba(128,128,128,.35));background:var(--surface,rgba(128,128,128,.08));color:inherit}
.lg-field.is-invalid input,.lg-field.is-invalid select{border-color:#e5484d}
.lg-field-err{display:none;font-size:.8rem;color:#e5484d}
.lg-field.is-invalid .lg-field-err{display:block}
.lg-submit{padding:13px 22px;border-radius:10px;border:0;background:var(--accent,#3b82f6);color:var(--on-accent,#fff);font-weight:600}
.lg-submit[disabled]{opacity:.6;cursor:progress}
.lg-consent{font-size:.8rem;opacity:.7}
.lg-form-status{display:none;padding:11px 14px;border-radius:10px;font-size:.9rem;border:1px solid transparent}
.lg-form-status.is-error{display:block;border-color:#e5484d;color:#e5484d;background:rgba(229,72,77,.08)}
.lg-form-status.is-ok{display:block;border-color:#30a46c;color:#30a46c;background:rgba(48,164,108,.08)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .card,.lg-lift,.card figure img,.media img,.lg-zoom img,.faq-caret,.lg-top{transition:none}
  .card:hover,.lg-lift:hover{transform:none}
  .card:hover figure img,.media:hover img,.lg-zoom:hover img{transform:none}
  .btn:active,button:active,.lg-submit:active{transform:none}
}




:root {
    
    --sp: clamp(14px, 1.15vw, 20px);
    --sp-1: calc(var(--sp) * .25);
    --sp-2: calc(var(--sp) * .5);
    --sp-3: var(--sp);
    --sp-4: calc(var(--sp) * 1.5);
    --sp-5: calc(var(--sp) * 2);
    --sp-6: calc(var(--sp) * 3);
    --sp-7: calc(var(--sp) * 4);
    --sp-8: calc(var(--sp) * 6);

    
    --fs-xs: clamp(.74rem, .72rem + .1vw, .8rem);
    --fs-sm: clamp(.84rem, .82rem + .12vw, .92rem);
    --fs-base: clamp(1rem, .96rem + .2vw, 1.09rem);
    --fs-md: clamp(1.12rem, 1.05rem + .35vw, 1.3rem);
    --fs-lg: clamp(1.32rem, 1.18rem + .7vw, 1.75rem);
    --fs-xl: clamp(1.62rem, 1.35rem + 1.3vw, 2.4rem);
    --fs-2xl: clamp(2rem, 1.5rem + 2.3vw, 3.2rem);
    --fs-3xl: clamp(2.45rem, 1.6rem + 3.8vw, 4.4rem);

    
    --measure: 68ch;

    --wrap: 1120px;
    --wrap-narrow: 880px;
    --wrap-wide: 1340px;
    --gutter: clamp(18px, 4vw, 40px);

    --radius-sm: calc(var(--radius, 16px) * .55);
    --radius-lg: calc(var(--radius, 16px) * 1.6);

    

    
    --lh-body: 1.65;
    --lh-head: 1.12;
    --track-head: -.018em;
    --weight-head: 700;
    --case-head: none;

    
    --fs-3xl-col: clamp(2.45rem, 10cqi, 4.4rem);
    --fs-2xl-col: clamp(2rem, 8cqi, 3.2rem);

    
    --eyebrow-display: inline-block;
    --eyebrow-size: var(--fs-xs);
    --eyebrow-weight: 600;
    --eyebrow-track: .13em;
    --eyebrow-case: uppercase;
    --eyebrow-color: var(--accent, #3b82f6);

    
    --btn-pad: .85em 1.6em;
    --btn-weight: 600;
    --btn-size: var(--fs-sm);
    --btn-case: none;
    --btn-track: normal;
    --btn-radius: var(--radius-sm);

    
    --cta-align: center;
    --cta-pad: var(--sp-7) var(--gutter);
    --cta-radius: var(--radius-lg);
    --cta-bg: var(--surface, rgba(128, 128, 128, .08));
    --cta-border: 1px solid var(--line-2, rgba(128, 128, 128, .3));
    --cta-color: inherit;

    
    --hdr-position: sticky;
    --hdr-blur: blur(10px);
    --hdr-bg: color-mix(in srgb, var(--bg, #0c0e13) 82%, transparent);
    --hdr-border: 1px solid var(--line, rgba(128, 128, 128, .18));
    --hdr-shadow: none;

    
    --card-bg: var(--card, rgba(128, 128, 128, .06));
    --card-border: 1px solid var(--line, rgba(128, 128, 128, .22));
    --card-radius: var(--radius, 16px);
    --card-shadow: none;
    --card-pad: var(--sp-4);

    
    --band-pad: var(--sp-8);

    --dur-1: .18s;
    --dur-2: .32s;
    --dur-3: .6s;

    --font-head: var(--font-display, ui-sans-serif, system-ui, sans-serif);
    --font-body: var(--font-text, ui-sans-serif, system-ui, sans-serif);
}



body {
    background: var(--bg, #0c0e13);
    color: var(--ink, #e8ecf4);
    font-family: var(--font-body);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
    font-synthesis-weight: none;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--font-head);
    font-weight: var(--weight-head);
    line-height: var(--lh-head);
    letter-spacing: var(--track-head);
    text-transform: var(--case-head);
    margin: 0 0 var(--sp-3);
    
    text-wrap: balance;
}

h1 { font-size: var(--fs-3xl); }
h2 { font-size: var(--fs-2xl); }
h3 { font-size: var(--fs-lg); letter-spacing: -.01em; }
h4 { font-size: var(--fs-md); letter-spacing: 0; }

p, li { text-wrap: pretty; }
p { margin: 0 0 var(--sp-3); }

.eyebrow {
    display: var(--eyebrow-display);
    font-size: var(--eyebrow-size);
    font-weight: var(--eyebrow-weight);
    letter-spacing: var(--eyebrow-track);
    text-transform: var(--eyebrow-case);
    color: var(--eyebrow-color);
    margin-bottom: var(--sp-2);
}

.lede {
    font-size: var(--fs-md);
    line-height: 1.55;
    color: var(--ink-soft, #aab3c4);
    max-width: var(--measure);
}

a:not(.btn):not(.brand) {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 1px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    transition: background-size var(--dur-2) var(--ease, ease);
}

a:not(.btn):not(.brand):hover { background-size: 100% 1px; }

hr {
    border: 0;
    height: 1px;
    background: var(--line, rgba(128, 128, 128, .25));
    margin: var(--sp-6) 0;
}

blockquote {
    margin: var(--sp-5) 0;
    padding-left: var(--sp-4);
    border-left: 3px solid var(--accent, #3b82f6);
    font-size: var(--fs-md);
    font-style: italic;
    color: var(--ink-soft, #aab3c4);
}

code, kbd {
    font-family: ui-monospace, "Fira Code", monospace;
    font-size: .9em;
    padding: .12em .38em;
    border-radius: var(--radius-sm);
    background: var(--surface, rgba(128, 128, 128, .1));
}

::selection { background: var(--accent, #3b82f6); color: var(--on-accent, #fff); }



.wrap {
    width: 100%;
    max-width: var(--wrap);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.wrap--narrow { max-width: var(--wrap-narrow); }
.wrap--wide { max-width: var(--wrap-wide); }


.band {
    position: relative;
    padding-block: var(--band-pad);
}

.band--tight { padding-block: var(--sp-6); }
.band--flush { padding-block: 0; }
.band--alt { background: var(--bg-2, rgba(128, 128, 128, .04)); }
.band--surface { background: var(--surface, rgba(128, 128, 128, .07)); }

.band--edge {
    border-block: 1px solid var(--line, rgba(128, 128, 128, .22));
}


.band > .wrap > * + * { margin-top: var(--sp-6); }
.band > .wrap > .band__head + * { margin-top: var(--sp-5); }


.band__head {
    max-width: var(--measure);
    margin-bottom: var(--sp-5);
}

.band__head--center {
    margin-inline: auto;
    text-align: center;
}


.split {
    display: grid;
    gap: var(--sp-6);
    align-items: center;
    grid-template-columns: 1fr;
}

@media (min-width: 900px) {
    .split { grid-template-columns: 1.05fr .95fr; }
    .split--wide-media { grid-template-columns: .85fr 1.15fr; }
    .split--reverse > :first-child { order: 2; }
}

.grid {
    display: grid;
    gap: var(--sp-4);
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
}

.grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); }
.grid--tight { gap: var(--sp-3); }


.prose { max-width: var(--measure); }
.prose > * + * { margin-top: var(--sp-3); }
.prose h2 { margin-top: var(--sp-6); }
.prose h3 { margin-top: var(--sp-5); }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li + li { margin-top: var(--sp-1); }
.prose img { border-radius: var(--radius, 16px); margin-block: var(--sp-4); }


figure { margin: 0; }


.parallax { overflow: hidden; border-radius: var(--radius, 16px); }
.parallax > img, .parallax > picture > img { width: 100%; display: block; }



.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55em;
    padding: var(--btn-pad);
    border: 1px solid transparent;
    border-radius: var(--btn-radius);
    font-weight: var(--btn-weight);
    font-size: var(--btn-size);
    text-transform: var(--btn-case);
    letter-spacing: var(--btn-track);
    text-decoration: none;
    background: var(--accent, #3b82f6);
    
    color: var(--on-accent, #fff);
    transition: transform var(--dur-1) var(--ease, ease),
                background var(--dur-1) ease, box-shadow var(--dur-2) ease;
}

.btn:hover { background: var(--accent-hover, var(--accent-dark, #2563eb)); box-shadow: var(--shadow, none); }
.btn--ghost { background: transparent; color: inherit; border-color: var(--line-2, rgba(128, 128, 128, .35)); }
.btn--ghost:hover { background: var(--surface, rgba(128, 128, 128, .1)); }
.btn--lg { padding: 1.05em 2em; font-size: var(--fs-base); }

.actions { display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: stretch; }

.band__head--center .actions, .cta .actions, [style*="text-align:center"] .actions { justify-content: center; }

.actions > .btn { font-size: var(--fs-base); padding: .95em 1.9em; }

.card {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--card-pad);
    border: var(--card-border);
    border-radius: var(--card-radius);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
}

.card > .icon { font-size: 1.7rem; color: var(--accent, #3b82f6); margin-bottom: var(--sp-1); }
.card h3 { margin: 0; font-size: var(--fs-md); }
.card p { margin: 0; color: var(--ink-soft, #aab3c4); font-size: var(--fs-sm); }
.card figure { margin: calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) var(--sp-2); border-radius: var(--radius, 16px) var(--radius, 16px) 0 0; }
.card figure img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }


.steps { counter-reset: lg-step; display: grid; gap: var(--sp-4); }
.step { counter-increment: lg-step; position: relative; padding-left: calc(var(--sp-6) + 8px); }
.step::before {
    content: counter(lg-step, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: -.1em;
    font-family: var(--font-head);
    font-size: var(--fs-lg);
    font-weight: 700;
    color: var(--accent, #3b82f6);
    opacity: .55;
}
.step h3 { margin-bottom: var(--sp-1); }
.step p { margin: 0; color: var(--ink-soft, #aab3c4); }

.stats { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.stat b {
    display: block;
    font-family: var(--font-head);
    font-size: var(--fs-xl);
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}
.stat span { font-size: var(--fs-sm); color: var(--muted, #8a93a6); }

.compare { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.compare th, .compare td { padding: var(--sp-3); text-align: left; border-bottom: 1px solid var(--line, rgba(128, 128, 128, .22)); }
.compare thead th { font-family: var(--font-head); font-size: var(--fs-sm); letter-spacing: .04em; text-transform: uppercase; color: var(--muted, #8a93a6); }
.compare tbody tr:hover { background: var(--surface, rgba(128, 128, 128, .06)); }

.table-scroll { overflow-x: auto; }

.facts { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); }
.fact { padding: var(--sp-3) 0; border-top: 1px solid var(--line, rgba(128, 128, 128, .22)); }
.fact dt { font-family: var(--font-head); font-weight: 600; margin-bottom: var(--sp-1); }
.fact dd { margin: 0; color: var(--ink-soft, #aab3c4); font-size: var(--fs-sm); }

.faq { display: grid; gap: var(--sp-2); }
.faq details {
    border: 1px solid var(--line, rgba(128, 128, 128, .22));
    border-radius: var(--radius-sm);
    background: var(--card, rgba(128, 128, 128, .05));
    overflow: hidden;
}
.faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    font-family: var(--font-head);
    font-weight: 600;
}
.faq details[open] summary { border-bottom: 1px solid var(--line, rgba(128, 128, 128, .22)); }
.faq details > :not(summary) { padding: var(--sp-3) var(--sp-4); margin: 0; color: var(--ink-soft, #aab3c4); }

.timeline { display: grid; gap: var(--sp-5); position: relative; padding-left: var(--sp-5); }
.timeline::before { content: ""; position: absolute; left: 5px; top: .5em; bottom: .5em; width: 1px; background: var(--line-2, rgba(128, 128, 128, .3)); }
.timeline > li { list-style: none; position: relative; }
.timeline > li::before { content: ""; position: absolute; left: calc(var(--sp-5) * -1 + 1px); top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--accent, #3b82f6); }

.checklist { display: grid; gap: var(--sp-2); padding: 0; margin: 0; }
.checklist li { list-style: none; display: flex; gap: var(--sp-2); align-items: flex-start; }
.checklist .icon { color: var(--accent, #3b82f6); margin-top: .28em; }

.persona { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.persona > * { padding: var(--sp-4); border-radius: var(--radius, 16px); background: var(--surface, rgba(128, 128, 128, .07)); }

.notice {
    display: flex;
    gap: var(--sp-3);
    padding: var(--sp-4);
    border-radius: var(--radius, 16px);
    border: 1px solid var(--line-2, rgba(128, 128, 128, .3));
    background: var(--surface, rgba(128, 128, 128, .07));
}
.notice .icon { color: var(--accent, #3b82f6); font-size: 1.3rem; flex: none; margin-top: .1em; }
.notice p:last-child { margin: 0; }


.lg-form-err:not(:empty) {
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    border: 1px solid #e5484d;
    color: #e5484d;
    background: rgba(229, 72, 77, .08);
}

.gallery { display: grid; gap: var(--sp-2); grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.gallery figure { margin: 0; border-radius: var(--radius-sm); overflow: hidden; }
.gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }


.team { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.member { display: flex; flex-direction: column; gap: var(--sp-1); }
.member .mark {
    width: 3.2em;
    height: 3.2em;
    margin-bottom: var(--sp-2);
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--surface, rgba(128, 128, 128, .1));
    border: 1px solid var(--line-2, rgba(128, 128, 128, .3));
    font-family: var(--font-head);
    font-size: var(--fs-md);
    color: var(--accent, #3b82f6);
}
.member h3 { margin: 0; font-size: var(--fs-md); }

.member .role { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--accent, #3b82f6); }
.member p { margin: 0; font-size: var(--fs-sm); color: var(--ink-soft, #aab3c4); }


.quotes { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
.quote {
    margin: 0;
    padding: var(--sp-4);
    border-radius: var(--radius, 16px);
    background: var(--surface, rgba(128, 128, 128, .07));
    border: 1px solid var(--line, rgba(128, 128, 128, .22));
    position: relative;
}
.quote::before {
    content: "\201C";
    position: absolute;
    top: -.18em;
    left: .28em;
    font-family: var(--font-head);
    font-size: 4rem;
    line-height: 1;
    color: var(--accent, #3b82f6);
    opacity: .22;
}
.quote p { margin: 0 0 var(--sp-3); position: relative; }
.quote cite { font-style: normal; font-size: var(--fs-sm); color: var(--muted, #8a93a6); }


.logos { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-6); justify-content: center; padding: 0; margin: 0; list-style: none; }
.logo {
    font-family: var(--font-head);
    font-size: var(--fs-sm);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted, #8a93a6);
    opacity: .85;
}


.article-lead { display: grid; gap: var(--sp-4); }
.article-lead figure { margin: 0; border-radius: var(--radius, 16px); overflow: hidden; }
.article-lead figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.article-lead figcaption { margin-top: var(--sp-2); font-size: var(--fs-xs); color: var(--muted, #8a93a6); }
.article-lead .meta { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); font-size: var(--fs-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--muted, #8a93a6); }
.article-lead .prose { max-width: var(--measure); }


.dateline {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-4);
    padding-block: var(--sp-2);
    border-top: 1px solid var(--line, rgba(128, 128, 128, .22));
    border-bottom: 1px solid var(--line, rgba(128, 128, 128, .22));
    font-size: var(--fs-xs);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted, #8a93a6);
}

.cta {
    text-align: var(--cta-align);
    padding: var(--cta-pad);
    border-radius: var(--cta-radius);
    background: var(--cta-bg);
    border: var(--cta-border);
    color: var(--cta-color);
}
.cta h2 { max-width: 18ch; margin-inline: auto; }
.cta .lede { margin-inline: auto; }


.page-hero { padding-block: var(--sp-7) var(--sp-5); }
.page-hero h1 { max-width: 20ch; }


@supports (container-type: inline-size) {
    .split > * { container-type: inline-size; }
    .split > * h1 { font-size: var(--fs-3xl-col); }
    .split > * h2 { font-size: var(--fs-2xl-col); }
}
.page-hero .lede { margin-top: var(--sp-3); }


.pricing {
    display: grid;
    gap: var(--sp-4);
    grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}
.price {
    font-family: var(--font-head);
    font-size: var(--fs-xl);
    font-weight: var(--weight-head);
    line-height: 1.1;
    margin: var(--sp-2) 0 var(--sp-3);
}

.price span {
    font-family: var(--font-body);
    font-size: var(--fs-sm);
    font-weight: 400;
    color: var(--muted, #8a93a6);
}


.site-header { position: var(--hdr-position); top: 0; z-index: 50; backdrop-filter: var(--hdr-blur); background: var(--hdr-bg); border-bottom: var(--hdr-border); box-shadow: var(--hdr-shadow); }
.header-inner { display: flex; align-items: center; gap: var(--sp-4); padding-block: var(--sp-2); }


@media (max-width: 860px) {
    .header-inner > .btn { display: none; }
}


.site-footer li:empty, .hdr-utility span:empty { display: none; }

.brand-name { white-space: nowrap; }
.brand { display: inline-flex; align-items: center; gap: .6em; font-family: var(--font-head); font-weight: 700; text-decoration: none; }
.brand img { width: 34px; height: 34px; }
.lg-nav { display: flex; align-items: center; gap: var(--sp-4); margin-left: auto; font-size: var(--fs-sm); }


@media (max-width: 860px) {
    .lg-nav { display: none; }
    .lg-nav.is-open { display: flex; }
    
    .header-inner > .lg-nav-toggle { margin-left: auto; }
}

.site-footer { padding-block: var(--sp-7) var(--sp-5); border-top: 1px solid var(--line, rgba(128, 128, 128, .22)); background: var(--bg-2, rgba(128, 128, 128, .04)); font-size: var(--fs-sm); }
.footer-cols { display: grid; gap: var(--sp-5); grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); }

.footer-cols h2 { font-size: var(--fs-sm); letter-spacing: .06em; text-transform: uppercase; color: var(--muted, #8a93a6); }
.footer-cols ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--sp-2); }
.footer-bottom { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line, rgba(128, 128, 128, .18)); color: var(--muted, #8a93a6); display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: center; justify-content: space-between; }




.reveal--mask { clip-path: inset(0 0 100% 0); transition: clip-path var(--dur-3) var(--ease, ease), opacity var(--dur-3) ease; opacity: 1; transform: none; }
.reveal--mask.is-in { clip-path: inset(0 0 0 0); }
.reveal--scale { transform: translateY(10px) scale(.97); }
.reveal--left { transform: translateX(-22px); }
.reveal--right { transform: translateX(22px); }
.reveal--left.is-in, .reveal--right.is-in, .reveal--scale.is-in { transform: none; }


.lg-line { display: block; overflow: hidden; }
.lg-line > span { display: block; }
.is-in .lg-line > span { animation: lg-line-in var(--dur-3) var(--ease, ease) both; }
.is-in .lg-line:nth-child(2) > span { animation-delay: .07s; }
.is-in .lg-line:nth-child(3) > span { animation-delay: .14s; }
.is-in .lg-line:nth-child(4) > span { animation-delay: .21s; }
@keyframes lg-line-in { from { transform: translateY(105%); } to { transform: none; } }


html[data-motion="rich"] .card--spotlight { position: relative; overflow: hidden; }
html[data-motion="rich"] .card--spotlight::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 0%),
                color-mix(in srgb, var(--accent, #3b82f6) 20%, transparent), transparent 65%);
    opacity: 0;
    transition: opacity var(--dur-2) ease;
    pointer-events: none;
}
html[data-motion="rich"] .card--spotlight:hover::before { opacity: 1; }


html[data-motion="rich"] .btn--sheen { position: relative; overflow: hidden; }
html[data-motion="rich"] .btn--sheen::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .28) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform .75s var(--ease, ease);
}
html[data-motion="rich"] .btn--sheen:hover::after { transform: translateX(100%); }


.ticker { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ticker__row { display: flex; gap: var(--sp-6); width: max-content; animation: lg-ticker 38s linear infinite; }
html[data-motion="calm"] .ticker__row { animation: none; }
@keyframes lg-ticker { to { transform: translateX(-50%); } }


.band--grain::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .28;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

.band--grid::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .5;
    background-image:
        linear-gradient(var(--line, rgba(128, 128, 128, .16)) 1px, transparent 1px),
        linear-gradient(90deg, var(--line, rgba(128, 128, 128, .16)) 1px, transparent 1px);
    background-size: 64px 64px;
    -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000, transparent 72%);
    mask-image: radial-gradient(ellipse at 50% 0%, #000, transparent 72%);
}

.band--glow::after {
    content: "";
    position: absolute;
    inset: -20% -10% auto;
    height: 460px;
    pointer-events: none;
    z-index: -1;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--accent, #3b82f6) 22%, transparent), transparent);
    filter: blur(30px);
}


.lg-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--accent, #3b82f6); z-index: 90; }

@supports (animation-timeline: scroll()) {
    html[data-motion="rich"] .lg-progress {
        animation: lg-progress linear both;
        animation-timeline: scroll(root block);
    }
    @keyframes lg-progress { to { transform: scaleX(1); } }
}


@supports (animation-timeline: view()) {
    html[data-motion="rich"] .parallax > img,
    html[data-motion="rich"] .parallax > picture > img {
        animation: lg-parallax linear both;
        animation-timeline: view();
        animation-range: entry 0% exit 100%;
        will-change: transform;
    }
    @keyframes lg-parallax {
        from { transform: translateY(-4%) scale(1.08); }
        to { transform: translateY(4%) scale(1.08); }
    }

    html[data-motion="rich"] .band__head--settle {
        animation: lg-settle linear both;
        animation-timeline: view();
        animation-range: entry 10% entry 65%;
    }
    @keyframes lg-settle {
        from { opacity: .25; transform: translateY(24px); }
        to { opacity: 1; transform: none; }
    }
}



.band--orbs { position: relative; overflow: hidden; }
.band--orbs > .wrap { position: relative; z-index: 1; }
.lg-orbs { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.lg-orb {
    position: absolute;
    
    --orb-w: var(--orb-size, 90px);
    left: min(var(--orb-x, 10%), calc(100% - var(--orb-w) - 8px));
    top: var(--orb-y, 20%);
    width: var(--orb-w);
    height: var(--orb-w);
    opacity: var(--orb-op, .5);
    filter: blur(var(--orb-blur, 0px));
    transform: rotate(var(--orb-tilt, 0deg));
}
.lg-orb > img { display: block; width: 100%; height: 100%; object-fit: contain; }


html[data-motion="standard"] .lg-orb > img,
html[data-motion="rich"] .lg-orb > img {
    animation: lg-orb-float var(--orb-dur, 8s) ease-in-out var(--orb-delay, 0s) infinite;
}
@keyframes lg-orb-float {
    0% { transform: translate3d(0, 0, 0) rotate(0deg); }
    50% { transform: translate3d(var(--orb-drift, 8px), var(--orb-rise, -24px), 0) rotate(var(--orb-spin, 8deg)); }
    100% { transform: translate3d(0, 0, 0) rotate(0deg); }
}


.lg-orb--mark {
    left: 50%; top: 50%;
    width: var(--mark-size, min(76vw, 680px)); height: var(--mark-size, min(76vw, 680px));
    margin: calc(var(--mark-size, min(76vw, 680px)) / -2) 0 0 calc(var(--mark-size, min(76vw, 680px)) / -2);
    opacity: .055; filter: none;
}
html[data-motion="rich"] .lg-orb--mark > img { animation: lg-mark-turn 90s linear infinite; }
@keyframes lg-mark-turn { to { transform: rotate(360deg); } }


@supports (animation-timeline: view()) {
    html[data-motion="rich"] .lg-orb:not(.lg-orb--mark) {
        animation: lg-orb-drift linear both;
        animation-timeline: view();
        animation-range: cover 0% cover 100%;
    }
    @keyframes lg-orb-drift {
        from { transform: rotate(var(--orb-tilt, 0deg)) translateY(var(--orb-depth, 30px)); }
        to { transform: rotate(var(--orb-tilt, 0deg)) translateY(calc(var(--orb-depth, 30px) * -1)); }
    }
}


@media (max-width: 1080px) {
    .lg-orb { --orb-w: calc(var(--orb-size, 90px) * .72); }
}


@media (max-width: 720px) {
    .lg-orb:not(.lg-orb--mark) { display: none; }
}


.brand img { transition: transform var(--dur-2, .28s) var(--ease, ease); }
html[data-motion="rich"] .brand:hover img { transform: rotate(-8deg) scale(1.08); }


@view-transition { navigation: auto; }







.tabs { display: grid; gap: var(--sp-4); }
.tabs__list { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.tabs__list button { padding: .6em 1.2em; border-radius: var(--radius-sm); border: 1px solid var(--line, rgba(128, 128, 128, .18)); background: transparent; color: inherit; font: inherit; cursor: pointer; transition: background .18s var(--ease, ease), border-color .18s var(--ease, ease); }
.tabs__list button:hover { border-color: var(--line-2, rgba(128, 128, 128, .3)); }
.tabs__list button.is-active { background: var(--accent, #3b82f6); color: var(--on-accent, #fff); border-color: transparent; }

.filter { display: grid; gap: var(--sp-4); }
.filter__bar { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.filter__bar button { padding: .5em 1.1em; border-radius: 999px; border: 1px solid var(--line, rgba(128, 128, 128, .18)); background: transparent; color: inherit; font: inherit; font-size: var(--fs-sm); cursor: pointer; }
.filter__bar button.is-active { background: var(--accent, #3b82f6); color: var(--on-accent, #fff); border-color: transparent; }
.filter__empty { color: var(--muted, #8a93a6); }

.compare-tool { display: grid; gap: var(--sp-4); }
.compare-tool__picks { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.compare-tool__cards { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.compare-tool select, .calc input { width: 100%; padding: .7em .9em; border-radius: var(--radius-sm); border: 1px solid var(--line-2, rgba(128, 128, 128, .3)); background: var(--surface, transparent); color: inherit; font: inherit; }

.calc { display: grid; gap: var(--sp-3); padding: var(--sp-4); border: 1px solid var(--line, rgba(128, 128, 128, .18)); border-radius: var(--radius, 16px); background: var(--surface, transparent); max-width: 26rem; }
.calc label { display: grid; gap: .4em; font-size: var(--fs-sm); color: var(--ink-soft, inherit); }
.calc output { font-family: var(--font-display, inherit); font-size: var(--fs-xl); font-variant-numeric: tabular-nums; }
.calc .calc__note { margin: 0; font-size: var(--fs-xs); color: var(--muted, #8a93a6); }



.lg-affiliate { padding: 8px var(--gutter); text-align: center; font-size: var(--fs-xs); background: var(--surface, transparent); color: var(--ink-soft, inherit); border-bottom: 1px solid var(--line, rgba(128, 128, 128, .18)); }
.lg-affiliate a { color: inherit; }

.lg-notices { border-top: 1px solid var(--line, rgba(128, 128, 128, .18)); padding: var(--sp-4) 0; font-size: var(--fs-xs); color: var(--muted, #8a93a6); background: var(--bg-2, transparent); }
.lg-notices p { margin: 0 0 .5em; max-width: 90ch; }
.lg-notices p:last-child { margin-bottom: 0; }
.lg-notices a { color: inherit; }


html.lg-locked, html.lg-locked body { overflow: hidden; }
.lg-age { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: var(--sp-4); background: rgba(0, 0, 0, .82); backdrop-filter: blur(4px); }
.lg-age-box { max-width: 30rem; width: 100%; text-align: center; background: var(--surface, #fff); color: var(--ink, #111); border: 1px solid var(--line-2, rgba(128, 128, 128, .3)); border-radius: var(--radius, 16px); padding: var(--sp-5); box-shadow: var(--shadow, 0 20px 50px rgba(0, 0, 0, .4)); }
.lg-age-box h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-3); }
.lg-age-box p { color: var(--ink-soft, inherit); margin: 0 0 var(--sp-4); }
.lg-age-actions { display: flex; gap: var(--sp-3); flex-wrap: wrap; justify-content: center; }
.lg-age-note { margin-top: var(--sp-4); color: var(--muted, #8a93a6); font-size: var(--fs-sm); }



.lg-crumbs { padding-top: var(--sp-4); font-size: var(--fs-sm); }
.lg-crumbs ol { display: flex; flex-wrap: wrap; gap: .5em; list-style: none; margin: 0; padding: 0; color: var(--muted, #8a93a6); }
.lg-crumbs li + li::before { content: "/"; margin-right: .5em; opacity: .55; }
.lg-crumbs a { color: inherit; text-decoration: none; }
.lg-crumbs a:hover { color: var(--ink, inherit); text-decoration: underline; }
.lg-crumbs [aria-current] { color: var(--ink-soft, inherit); }



.lg-map { position: relative; border: 1px solid var(--line, rgba(128, 128, 128, .18)); border-radius: var(--radius, 16px); overflow: hidden; background: var(--surface, transparent); aspect-ratio: 16 / 9; }
@media (max-width: 720px) { .lg-map { aspect-ratio: 4 / 3; } }
.lg-map-cover { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-3, 14px); padding: var(--sp-4, 20px); text-align: center; }
.lg-map-cover .icon { width: 34px; height: 34px; color: var(--accent, #3b82f6); }
.lg-map-address { margin: 0; font-size: var(--fs-md); max-width: 34ch; }
.lg-map-note { margin: 0; font-size: var(--fs-xs); color: var(--muted, #8a93a6); max-width: 40ch; }
.lg-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lg-map.is-loaded .lg-map-cover { display: none; }



@media (prefers-reduced-motion: reduce) {
    .reveal--mask { clip-path: none; transition: none; }
    .reveal--scale, .reveal--left, .reveal--right { transform: none; transition: none; }
    .lg-line > span { transform: none; transition: none; }
    .ticker__row { animation: none; }
    .lg-orb, .lg-orb > img { animation: none !important; }
    .btn, a:not(.btn):not(.brand) { transition: none; }
    html[data-motion="rich"] .parallax > img,
    html[data-motion="rich"] .band__head--settle,
    html[data-motion="rich"] .lg-progress { animation: none; }
    html[data-motion="rich"] .btn--sheen::after { transition: none; }
    ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

:root{
  --bg:#fdf7f8;
  --ink:#221519;
  --bg-2:#f6f0f1;
  --card:#f8f8f8;
  --ease:cubic-bezier(.34,1.56,.64,1);
  --line:rgba(0,0,0,.10);
  --muted:#6f6467;
  --accent:#c02a5c;
  --line-2:rgba(0,0,0,.17);
  --radius:20px;
  --shadow:0 18px 40px -24px rgba(15,23,42,.28);
  --surface:#ffffff;
  --ink-soft:#64595c;
  --on-accent:#ffffff;
  --accent-dark:#9d224b;
  --accent-soft:#edc3d1;
  --accent-hover:#9d224b;
  --shadow-hover:0 26px 54px -26px rgba(15,23,42,.34);
  --font-display:'Space Grotesk', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-text:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
}

:root{
  --fs-xs:clamp(0.856rem, 0.84rem + 0.0677vw, 0.901rem);
  --fs-sm:clamp(0.902rem, 0.885rem + 0.0713vw, 0.949rem);
  --fs-base:clamp(0.95rem, 0.932rem + 0.0751vw, 1rem);
  --fs-md:clamp(1.05rem, 1.02rem + 0.163vw, 1.16rem);
  --fs-lg:clamp(1.17rem, 1.11rem + 0.273vw, 1.35rem);
  --fs-xl:clamp(1.3rem, 1.2rem + 0.41vw, 1.57rem);
  --fs-2xl:clamp(1.44rem, 1.31rem + 0.58vw, 1.83rem);
  --fs-3xl:clamp(1.6rem, 1.42rem + 0.789vw, 2.12rem);
  --fs-3xl-col:clamp(1.36rem, 10cqi, 2.12rem);
  --fs-2xl-col:clamp(1.23rem, 8cqi, 1.83rem);
  --lh-body:1.45;
  --weight-head:700;
  --case-head:none;
  --track-head:-.01em;
  --wrap:1240px;
  --gutter:clamp(16px, 3vw, 32px);
  --measure:70ch;
  --sp:clamp(11px, .85vw, 14px);
  --radius:0;
  --band-pad:var(--sp-6);
  --eyebrow-case:uppercase;
  --eyebrow-track:.18em;
  --eyebrow-weight:700;
  --eyebrow-color:var(--ink);
  --eyebrow-size:var(--fs-xs);
  --card-bg:transparent;
  --card-border:1px solid var(--line);
  --card-shadow:none;
  --card-radius:0;
  --btn-radius:0;
  --btn-case:uppercase;
  --btn-track:.08em;
  --btn-weight:700;
  --btn-pad:.9em 1.8em;
  --cta-bg:transparent;
  --cta-border:0;
  --cta-radius:0;
  --cta-align:left;
  --cta-pad:var(--sp-4) 0 0;
  --hdr-position:static;
  --hdr-blur:none;
  --hdr-bg:transparent;
  --hdr-border:3px double var(--ink);
}
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);border-top:2px solid var(--ink)}
.cta h2{max-width:24ch;margin:0}
.cta .lede{margin:0}
.cta .actions{justify-content:flex-start}
.hdr--masthead .hdr-strip{border-bottom:1px solid var(--line);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hdr--masthead .hdr-strip .wrap{display:flex;justify-content:space-between;gap:var(--sp-3);padding-block:7px}
.hdr--masthead .hdr-wordmark{display:flex;align-items:center;justify-content:center;position:relative;padding-block:var(--sp-4)}
.hdr--masthead .brand-name{font-size:var(--fs-xl);letter-spacing:-.02em}
.hdr--masthead .lg-nav-toggle{position:absolute;right:var(--gutter)}
.hdr--masthead .hdr-navrow{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);border-block:1px solid var(--line)}
.hdr--masthead .lg-nav{margin:0;padding-block:var(--sp-2);font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase}

@media (max-width:860px){
  .hdr--masthead .hdr-navrow{border-block:0}
  .hdr--masthead .hdr-navrow:not(:has(.lg-nav.is-open)){display:none}
  .hdr--masthead .hdr-strip span+span{display:none}
}

.ftr--brand .ftr-lead{display:grid;gap:var(--sp-5);align-items:start}
@media (min-width:820px){.ftr--brand .ftr-lead{grid-template-columns:1.2fr 1fr}}
.ftr--brand .ftr-blurb p{max-width:46ch;color:var(--ink-soft)}

.ftr--brand .ftr-blurb h2{font-size:var(--fs-lg);letter-spacing:-.01em;text-transform:none;color:var(--ink)}


.band+.band{border-top:1px solid var(--line)}
.band__head{text-align:center;margin-inline:auto}
.band__head .eyebrow{letter-spacing:.18em}
.card{background:transparent;border:0;border-radius:0;padding:0}
.card+.card{border-top:1px solid var(--line);padding-top:var(--sp-4)}
@media (min-width:900px){
  .grid{gap:0 var(--sp-5)}
  .grid>.card{border-left:1px solid var(--line);padding-left:var(--sp-5)}
  .grid>.card:first-child{border-left:0;padding-left:0}
  .grid>.card+.card{border-top:0;padding-top:0}
}

@media (min-width:720px){
  .article-lead .prose>p:first-of-type::first-letter{
    float:left;font-family:var(--font-head);font-size:3.4em;line-height:.82;
    padding:.06em .1em 0 0;color:var(--accent)}
}
.article-lead figure img{aspect-ratio:21/9}
.quote{background:transparent;border:0;border-block:1px solid var(--line);border-radius:0;padding:var(--sp-4) 0;text-align:center}
.quote::before{display:none}

