/* transXperience landing 2.0: motion and interaction layer.
   Loaded after custom.css. Only transform, opacity and color animate. */
:root{
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
    --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
    --dur-press: 140ms;
    --dur-hover: 200ms;
    --dur-ui: 240ms;
    --dur-enter: 480ms;
    --stagger: 60ms;
    --accent: #aa3000;
    --ink: #1a1c1c;

    /* fine-line visual system */
    --line: 1px;
    --line-strong: rgba(26, 28, 28, 0.9);
    --line-soft: rgba(26, 28, 28, 0.16);
    --paper: #fdfdfc;
    --radius-card: 22px;
    --radius-media: 16px;
    --radius-field: 14px;
    --radius-pill: 999px;
    --shadow-rest: 0 1px 2px rgba(26, 28, 28, 0.04), 0 10px 30px -18px rgba(26, 28, 28, 0.22);
    --shadow-lift: 0 2px 6px rgba(26, 28, 28, 0.06), 0 28px 56px -28px rgba(26, 28, 28, 0.34);
    --shadow-accent: 0 2px 6px rgba(170, 48, 0, 0.10), 0 30px 60px -30px rgba(170, 48, 0, 0.55);
    --focus-ring: 0 0 0 4px rgba(170, 48, 0, 0.16);
    --font-display: 'Anybody', ui-sans-serif, system-ui, sans-serif;
    --font-serif: 'Cormorant', 'Cormorant Garamond', Georgia, serif;
    --logo-h: 84px;
    --logo-h-compact: 56px;
}
@media (max-width: 767px){
    :root{ --logo-h: 58px; --logo-h-compact: 44px; --radius-card: 18px; }
}

/* 1. Hero entrance: shorter travel, faster, tight stagger */
@keyframes v2-rise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.animate-fade-up{ animation:v2-rise var(--dur-enter) var(--ease-out) both !important; }
#hero h1.animate-fade-up{ animation-delay:0ms !important; }
#hero p.animate-fade-up{ animation-delay:calc(var(--stagger) * 1) !important; }
#hero [data-v2-step="2"]{ animation-delay:calc(var(--stagger) * 2) !important; }
#hero [data-v2-step="3"]{ animation-delay:calc(var(--stagger) * 3) !important; }
#hero [data-v2-step="4"]{ animation-delay:calc(var(--stagger) * 4) !important; }
/* the cover settles into its tilt instead of just fading */
@keyframes v2-cover{ from{ opacity:0; transform:rotate(0deg) scale(0.96); } to{ opacity:1; transform:rotate(3deg) scale(1); } }
#hero .v2-cover{ animation:v2-cover 700ms var(--ease-out) 120ms both; }

/* 2. Scroll reveal: shorter, staggered by JS through --i */
.reveal-hidden{
    opacity:0; transform:translateY(16px);
    transition:opacity var(--dur-enter) var(--ease-out), transform var(--dur-enter) var(--ease-out);
    transition-delay:calc(var(--i, 0) * var(--stagger));
}
.reveal-visible{ opacity:1; transform:none; }

/* 3. Press feedback on everything pressable */
.brutalist-button, .brutalist-button-secondary{
    transition:transform var(--dur-press) var(--ease-out), box-shadow var(--dur-press) var(--ease-out), background-color var(--dur-hover) ease, color var(--dur-hover) ease;
}
.brutalist-button:active, .brutalist-button-secondary:active{ transform:translate(0,0) scale(0.97); }
#subscribe-form button, .testimonial-arrow, .testimonial-dot, .track-btn, .more > summary .more-icon, #nav-toggle{
    transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-hover) ease, color var(--dur-hover) ease, box-shadow var(--dur-press) var(--ease-out);
}
#subscribe-form button:active, #nav-toggle:active, .track-btn:active, .more > summary:active .more-icon{ transform:scale(0.96); }
.testimonial-arrow:active{ transform:translateY(-50%) scale(0.94); }

/* 4. Hover only where a real pointer exists */
.tier-card, .v2-flip{
    transition:opacity var(--dur-enter) var(--ease-out), transform var(--dur-ui) var(--ease-out), box-shadow var(--dur-ui) var(--ease-out), background-color var(--dur-hover) ease, color var(--dur-hover) ease;
    transition-delay:calc(var(--i, 0) * var(--stagger));
}
.tier-card img{ transition:transform 400ms var(--ease-out); }
.brutalist-button:hover, .brutalist-button-secondary:hover{ transform:none; }
.track-btn:hover{ transform:none; box-shadow:none; }
.track-btn.is-playing{ border-color:currentColor; }
.testimonial-arrow:hover{ transform:translateY(-50%); }
@media (hover: hover) and (pointer: fine){
    .brutalist-button:hover, .brutalist-button-secondary:hover{ transform:translateY(-1px); }
    .tier-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); }
    .tier-card.v2-featured:hover{ box-shadow:var(--shadow-accent); }
    .tier-card:hover img{ transform:scale(1.04); }
    .testimonial-arrow:hover{ transform:translateY(-50%) scale(1.06); }
    .track-btn:hover{ border-color:currentColor; }
    .v2-link{ transition:color var(--dur-hover) ease; }
    .v2-social{ transition:transform var(--dur-hover) var(--ease-out), color var(--dur-hover) ease; }
    .v2-social:hover{ transform:scale(1.15); color:var(--accent); }
    .v2-logo-link{ transition:transform var(--dur-ui) var(--ease-out); }
    .v2-logo-link:hover{ transform:scale(1.03); }
}
@media (min-width: 1024px){
    .tier-card.v2-featured{ transform:scale(1.04); z-index:10; }
    @media (hover: hover) and (pointer: fine){
        .tier-card.v2-featured:hover{ transform:scale(1.04) translateY(-6px); }
    }
}

/* 5. Nav: same compaction as 1.0, on the shared curve */
#site-nav .v2-logo{ height:var(--logo-h); width:auto; transition:height 280ms var(--ease-out); }
#site-nav > div:first-child{ transition:padding 280ms var(--ease-out); }
/* active section marker slides under the link */
.nav-link{ position:relative; }
.nav-link::after{
    content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
    background:var(--accent); transform:scaleX(0); transform-origin:0 50%;
    transition:transform var(--dur-ui) var(--ease-out);
}
.nav-link.active::after{ transform:scaleX(1); }

/* 6. Mobile menu: drawer-like entry, faster exit */
#mobile-nav-panel{ transform-origin:top; }
#mobile-nav-panel.v2-open{
    display:flex;
    animation:v2-panel var(--dur-ui) var(--ease-drawer) both;
}
@keyframes v2-panel{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
#mobile-nav-panel .mobile-nav-link{ opacity:0; transform:translateY(-4px); }
#mobile-nav-panel.v2-open .mobile-nav-link{ animation:v2-rise 260ms var(--ease-out) both; animation-delay:calc(var(--i,0) * 40ms); }

/* 7. Sticky CTA and cookie banner: enter with the drawer curve, exit quicker */
#sticky-cta{ transition:transform 180ms var(--ease-out) !important; }
#sticky-cta:not(.translate-y-full){ transition:transform 320ms var(--ease-drawer) !important; }
#cookie-banner:not(.hidden){
    transition:opacity 320ms var(--ease-out), transform 320ms var(--ease-drawer);
    @starting-style{ opacity:0; transform:translateY(100%); }
}

/* 8. Testimonials: on-screen movement uses ease-in-out; dots morph into a pill */
.testimonial-track{ transition:transform 520ms var(--ease-in-out); }
.testimonial-dot{ transition:transform var(--dur-ui) var(--ease-out), opacity var(--dur-ui) ease; transform-origin:center; }
.testimonial-dot[aria-current="true"]{ transform:scaleX(2.4); }
.testimonial-dots{ gap:1rem; }

/* 9. "+" reveal: animate the height where the browser allows it */
@supports (interpolate-size: allow-keywords){
    :root{ interpolate-size:allow-keywords; }
    .more::details-content{
        block-size:0; overflow:hidden;
        transition:block-size 300ms var(--ease-out), content-visibility 300ms allow-discrete;
    }
    .more[open]::details-content{ block-size:auto; }
}
.more-body{ animation:v2-rise 300ms var(--ease-out) both; }

/* 10. Marquee: slower and paused while the pointer rests on it */
.animate-marquee{ animation-duration:120s; }
@media (hover: hover){ .v2-marquee:hover .animate-marquee{ animation-play-state:paused; } }

/* 11. Form fields: focus shadow uses the same press curve */
.js-comment-form input, .js-comment-form textarea, #subscribe-form{ transition:box-shadow var(--dur-ui) var(--ease-out); }

/* Reduced motion: keep fades that help reading, drop movement */
@media (prefers-reduced-motion: reduce){
    .animate-fade-up, #hero .v2-cover{ animation:v2-fade 200ms ease both !important; }
    #hero .v2-cover{ transform:rotate(3deg); }
    @keyframes v2-fade{ from{ opacity:0; } to{ opacity:1; } }
    .reveal-hidden{ transform:none; transition:opacity 200ms ease; transition-delay:0ms; }
    .tier-card, .v2-flip, .tier-card img, #site-nav img, #site-nav > div:first-child,
    .nav-link::after, #sticky-cta, .testimonial-track, .testimonial-dot, .more::details-content{ transition:none !important; }
    #mobile-nav-panel.v2-open, #mobile-nav-panel.v2-open .mobile-nav-link{ animation:none; opacity:1; transform:none; }
    .brutalist-button:active, .brutalist-button-secondary:active{ transform:none; }
}


/* ============================================================
   Fine-line visual system (2.0)
   Hairlines instead of 2px frames, soft depth instead of block
   shadows, rounded bodies, light display type with a serif voice.
   ============================================================ */

html{ background:var(--paper); }
body{ background:transparent; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

/* lines */
.border-2{ border-width:var(--line); }
.border-b-2{ border-bottom-width:var(--line); }
.border-t-2{ border-top-width:var(--line); }
.border-y-2{ border-top-width:var(--line); border-bottom-width:var(--line); }
.border-r-2{ border-right-width:var(--line); }
.border-on-background{ border-color:var(--line-soft); }
.brutalist-border{ border:var(--line) solid var(--line-soft); border-radius:var(--radius-card); }
.border-surface-variant{ border-color:var(--line-soft); }

/* bodies: rounded, softly lifted */
.tier-card, .v2-flip, #who-we-are article, .testimonial-carousel, .js-comment-form, #project-roots > div > div:first-child{
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-rest);
    background-clip:padding-box;
}
#project-roots > div > div:first-child{ border:var(--line) solid var(--line-soft); }
.tier-card .brutalist-border{ border-radius:var(--radius-media); box-shadow:none; overflow:hidden; }
.tier-card.v2-featured{ box-shadow:var(--shadow-accent); border-color:rgba(170,48,0,.35); }
.testimonial-carousel{ overflow:hidden; }
.material-foil, .material-marble, .material-paper{ border-radius:var(--radius-card); }

/* heading plates lose the stamp frame */
.material-stamp{ background-image:none; border:0 !important; background-color:transparent !important; backdrop-filter:none !important; padding-left:0 !important; padding-right:0 !important; }

/* buttons: pills with a hairline */
.brutalist-button, .brutalist-button-secondary{ border-radius:var(--radius-pill); letter-spacing:.14em; font-weight:500; }
.brutalist-button{ background:var(--ink); color:#fff; border:var(--line) solid var(--ink); box-shadow:none; }
.brutalist-button:active{ box-shadow:none; }
.brutalist-button-secondary{ background:transparent; color:var(--ink); border:var(--line) solid var(--line-strong); box-shadow:none; }
.brutalist-button-secondary:active{ box-shadow:none; }
@media (hover: hover) and (pointer: fine){
    .brutalist-button:hover{ background:var(--accent); border-color:var(--accent); box-shadow:var(--shadow-accent); }
    .brutalist-button-secondary:hover{ background:var(--ink); color:#fff; box-shadow:var(--shadow-lift); }
}
#sticky-cta{ border-top-width:var(--line); }

/* fields */
.js-comment-form input, .js-comment-form textarea{ border-radius:var(--radius-field); border:var(--line) solid var(--line-soft); background:#fff; }
.js-comment-form input:focus, .js-comment-form textarea:focus{ box-shadow:var(--focus-ring) !important; border-color:var(--accent); outline:none; }
#subscribe-form{ border-radius:var(--radius-pill); overflow:hidden; background:#fff; padding:6px; gap:6px; }
#subscribe-form:focus-within{ box-shadow:var(--focus-ring) !important; border-color:var(--accent); }
#subscribe-form input[type="email"]{ background:transparent; padding-left:1.25rem; }
#subscribe-form button{ border-radius:var(--radius-pill); letter-spacing:.14em; font-weight:500; padding-top:1rem; padding-bottom:1rem; }
@media (max-width: 767px){ #subscribe-form{ border-radius:var(--radius-card); } }

/* type: light display, serif accent, calmer labels */
.font-display-xl, .text-display-xl{ font-family:var(--font-display); }
.text-display-xl{ font-weight:300; letter-spacing:-0.035em; line-height:.95; font-variation-settings:"wdth" 108; }
.text-headline-lg{ font-weight:350; letter-spacing:-0.025em; font-variation-settings:"wdth" 105; }
.text-headline-md{ font-weight:380; letter-spacing:-0.02em; font-variation-settings:"wdth" 104; }
.text-headline-sm{ font-weight:450; letter-spacing:-0.01em; }
.text-label-lg{ font-weight:500; letter-spacing:.12em; font-size:13px; }
.text-label-sm{ font-weight:500; letter-spacing:.14em; }
h1, h2, h3{ text-wrap:balance; }
.v2-serif{
    font-family:var(--font-serif); font-style:italic; font-weight:400;
    text-transform:none; letter-spacing:-0.01em; font-variation-settings:normal;
    font-size:1.12em; line-height:1;
}
.v2-serif--accent{ color:var(--accent); }
.v2-brand{ text-transform:none; }
/* one authored moment: the serif word focuses in */
@keyframes v2-focus{ from{ opacity:0; filter:blur(10px); transform:translateY(6px); } to{ opacity:1; filter:blur(0); transform:none; } }
#hero h1 .v2-serif{ display:inline-block; animation:v2-focus 900ms var(--ease-out) 220ms both; }

/* symbols: thin strokes, framed in hairline circles where they lead a block */
.material-symbols-outlined{ font-variation-settings:'FILL' 0, 'wght' 200; }
.v2-flip > .material-symbols-outlined{
    width:56px; height:56px; border-radius:50%;
    border:var(--line) solid currentColor; display:inline-flex; align-items:center; justify-content:center;
    font-size:26px !important; margin-bottom:1.5rem; opacity:.9;
}
.tier-card li .material-symbols-outlined{ font-size:20px; margin-top:2px; }
#nav-toggle{ border:var(--line) solid var(--line-strong); border-radius:50%; background:transparent; }
#nav-toggle .material-symbols-outlined{ font-variation-settings:'FILL' 0, 'wght' 250; }
.testimonial-arrow{ border:var(--line) solid var(--line-strong); border-radius:50%; background:rgba(255,255,255,.85); }
.testimonial-arrow .material-symbols-outlined{ font-variation-settings:'FILL' 0, 'wght' 200; }
.track-btn{ border-width:var(--line); border-color:var(--line-soft); border-radius:var(--radius-pill); padding:.55rem .9rem; }
.v2-flip:hover .track-btn{ border-color:rgba(255,255,255,.45); }
.track-bar{ margin:6px 1rem 0; height:1px; border-radius:1px; }
.track-icon{ font-variation-settings:'FILL' 0, 'wght' 250; }
.more-icon{ border-width:var(--line); border-radius:50%; width:44px; height:44px; }
.more-icon::before, .more-icon::after{ width:16px; height:1px; }

/* nav */
#site-nav{ background:rgba(253,253,252,.78); -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px); }
#site-nav.nav-compact .v2-logo{ height:var(--logo-h-compact); }
#site-nav .nav-link, #mobile-nav-panel .mobile-nav-link{ font-weight:500; }
#site-nav .v2-soon{ color:rgba(26,28,28,.42); }
#site-nav .v2-soon small{ font-size:9px; letter-spacing:.14em; margin-left:4px; vertical-align:2px; }
#site-nav .brutalist-button{ padding:.7rem 1.4rem; }
main.pt-40{ padding-top:calc(var(--logo-h) + 88px); }
.scroll-progress{ height:1px; bottom:-1px; }

/* marquee: hairline band, serif rhythm */
.v2-marquee{ background:transparent !important; border-color:var(--line-soft) !important; }
.v2-marquee span{ color:var(--ink) !important; opacity:.5 !important; font-weight:300 !important; letter-spacing:.06em; }

/* testimonials: finer dots */
.testimonial-dot{ width:6px; height:6px; }
.testimonial-card + .testimonial-card{ border-color:var(--line-soft); }

/* footer */
#site-footer{ border-top-width:var(--line); }
#site-footer .v2-logo{ height:calc(var(--logo-h) * .9); width:auto; }

/* cookie banner floats as a card */
#cookie-banner{ left:16px; right:16px; bottom:16px; border-radius:var(--radius-card); border:var(--line) solid rgba(255,255,255,.12); box-shadow:var(--shadow-lift); }
#cookie-banner .brutalist-button-secondary{ color:#fff; border-color:rgba(255,255,255,.5); }
@media (hover: hover) and (pointer: fine){ #cookie-banner .brutalist-button-secondary:hover{ background:#fff; color:var(--ink); } }

@media (prefers-reduced-motion: reduce){
    #hero h1 .v2-serif{ animation:v2-fade 200ms ease both; filter:none; }
}

/* 2.0 pass 2: remaining block shadows, badges, nested frames */
[class*=" shadow-[8px_8px_0px"], [class*=" shadow-[12px_12px_0px"]{ box-shadow:var(--shadow-accent) !important; border-color:rgba(170,48,0,.35) !important; }
[class*="hover:shadow-[12px_12px_0px"]:hover, [class*="hover:shadow-[16px_16px_0px"]:hover{ box-shadow:var(--shadow-lift) !important; }
.bg-primary.text-white.w-max, .bg-primary.text-white.inline-block{
    border-radius:var(--radius-pill); padding:.35rem .85rem; font-weight:500; letter-spacing:.14em; font-size:11px; line-height:1;
}
.tier-card .brutalist-border{ border:0; background:transparent; }
.tier-card .brutalist-border img{ border-radius:var(--radius-media); }
[class*="focus:shadow-["]:focus{ box-shadow:var(--focus-ring) !important; border-color:var(--accent) !important; outline:none; }
[class*="focus-within:shadow-["]:focus-within{ box-shadow:var(--focus-ring) !important; border-color:var(--accent) !important; }
form input.brutalist-border, form textarea.brutalist-border{ border-radius:var(--radius-field); }

/* 2.0 pass 3: equal bio boxes, the toggle travels to the end of the text */
#who-we-are > div{ align-items:stretch; }
#who-we-are article{ align-self:stretch; display:flex; flex-direction:column; }
.more{ display:flex; flex-direction:column; }
.more[open] > summary{ order:2; margin-top:1.25rem; }
.more[open] > summary .more-icon::after{ opacity:0; }
.more-icon::after{ transition:opacity 160ms var(--ease-out), transform .35s var(--ease-out); }
#site-footer .v2-logo{ height:var(--logo-h); }

/* footer: four aligned columns, hairline rules, quiet headings */
#site-footer{ row-gap:2.5rem; }
.v2-foot-title{
    font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
    color:rgba(26,28,28,.45); margin-bottom:1rem;
}
.v2-foot-list{ display:flex; flex-direction:column; gap:.75rem; }
.v2-social-row{ display:flex; gap:1rem; align-items:center; }
.v2-social{ width:40px; height:40px; border:var(--line) solid var(--line-soft); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:var(--ink); }
@media (hover: hover) and (pointer: fine){ .v2-social:hover{ border-color:var(--accent); color:var(--accent); transform:none; } }

/* grid columns the compiled Tailwind build does not ship */
.col-span-6{ grid-column:span 6 / span 6; }
@media (min-width: 768px){
    .md\:col-span-2{ grid-column:span 2 / span 2; }
    .md\:col-span-3{ grid-column:span 3 / span 3; }
    .md\:col-span-5{ grid-column:span 5 / span 5; }
}
#site-footer .v2-foot-list a{ white-space:nowrap; }
@media (min-width: 768px){ #site-footer{ align-items:start; } }

/* Footer legal line: copyright and the illustrative-images notice. Smaller than
   the rest of the footer so it reads as fine print and stops competing with the
   navigation columns next to it. */
.v2-legal{
    font-size:10px;
    line-height:15px;
    letter-spacing:.06em;
    font-weight:500;
}

/* Spec list on the "How it's made" page. Two columns on desktop so the term and
   the value read as a printed colophon; stacks on phones where that would break. */
.v2-spec{ display:grid; gap:0; }
.v2-spec > div{
    display:grid;
    grid-template-columns:1fr;
    gap:2px 24px;
    padding:10px 0;
    border-bottom:var(--line) solid var(--line-soft);
}
.v2-spec > div:last-child{ border-bottom:0; }
.v2-spec dt{
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-size:11px;
    color:var(--ink);
}
.v2-spec dd{ margin:0; }
@media (min-width:640px){
    .v2-spec > div{ grid-template-columns:132px 1fr; align-items:baseline; }
}

/* Crowdfunding mirror. The figures ship inside the HTML, so the block reads
   correctly without JavaScript; the script only refreshes it and animates the bar. */
.cp{ display:flex; flex-direction:column; gap:18px; }
.cp-top{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; }
.cp-raised{ font-size:clamp(32px,6vw,52px); line-height:1; font-weight:800;
            letter-spacing:-.03em; color:var(--accent); font-variant-numeric:tabular-nums; }
.cp-of{ font-size:15px; color:var(--ink); opacity:.6; }
.cp-goal{ font-weight:700; font-variant-numeric:tabular-nums; }
.cp-bar{ position:relative; height:6px; background:var(--line-soft); border-radius:var(--radius-pill);
         overflow:hidden; }
.cp-bar > span{ display:block; height:100%; width:0; background:var(--accent);
                border-radius:var(--radius-pill); transition:width 900ms var(--ease-out); }
.cp-meta{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 18px;
          font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.cp-meta .cp-pct{ color:var(--accent); }
.cp-meta .cp-days{ color:var(--ink); opacity:.55; }
.cp-note{ font-size:14px; color:var(--ink); opacity:.7; max-width:56ch; margin:0; }
@media (prefers-reduced-motion: reduce){ .cp-bar > span{ transition:none; } }

/* "How it's made": editorial rhythm. The purged Tailwind build has no space-y-*
   or mb-3, so the blocks were touching; spacing and a calmer type scale live here,
   scoped to this page only. */
.v2-article h1{
    font-size:clamp(30px,4.6vw,48px);
    line-height:1.08;
    letter-spacing:-.015em;
    margin-bottom:24px;
}
.v2-article .v2-lede{ max-width:38rem; line-height:1.6; margin-bottom:56px; }
.v2-flow{ max-width:40rem; }
.v2-flow > * + *{ margin-top:56px; }
.v2-flow h2{
    font-size:clamp(16px,1.6vw,19px);
    line-height:1.35;
    letter-spacing:.07em;
    font-weight:700;
    margin:0 0 16px;
    padding-top:20px;
    border-top:var(--line) solid var(--line-soft);
}
.v2-flow p{ margin:0; line-height:1.75; }
.v2-flow p + p{ margin-top:1em; }
.v2-editions p strong{ display:block; margin-bottom:2px; letter-spacing:.01em; }
.v2-editions p + p{ margin-top:1.4em; }
.v2-faq > div + div{
    margin-top:24px;
    padding-top:24px;
    border-top:var(--line) solid var(--line-soft);
}
.v2-faq h3{ font-size:12px; line-height:1.5; letter-spacing:.1em; margin-bottom:6px; }
.v2-flow .brutalist-border .text-headline-sm{ font-size:clamp(19px,2.2vw,24px); line-height:1.3; margin:4px 0 20px; }
@media (min-width:768px){
    .v2-flow > * + *{ margin-top:80px; }
    .v2-article .v2-lede{ margin-bottom:72px; }
}
/* Closing call to action: the button takes the home hero's proportions and one
   authored motion lives in the arrow. */
.v2-cta-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:12px;
    min-height:56px;
}
.v2-cta-btn .material-symbols-outlined{
    font-size:20px; line-height:1;
    transition:transform var(--dur-ui) var(--ease-out);
}
.v2-cta-btn:focus-visible{ outline:2px solid var(--accent); outline-offset:4px; }
@media (hover: hover) and (pointer: fine){
    .v2-cta-btn:hover .material-symbols-outlined{ transform:translateX(4px); }
}
@media (prefers-reduced-motion: reduce){
    .v2-cta-btn .material-symbols-outlined{ transition:none; transform:none !important; }
}
