/* ============================================================
   Pika Product Lab — Alpine Dawn design system
   ----
   Token set is the source of truth for the whole site. Adjust
   here and the rest of the file cascades. Mirrors the structure
   of CardCue's design system on purpose: family resemblance
   lives in layout grammar, not chrome.
   ============================================================ */

:root {
    /* ---- Surfaces (Apple cool-neutral palette) ---- */
    --cream: #fbfbfd;          /* main page background, Apple off-white */
    --paper: #ffffff;          /* card surface, pure white */
    --sand:  #f5f5f7;          /* section divider gray (Apple signature) */

    /* ---- Ink (Apple deep grays) ---- */
    --ink:   #1d1d1f;          /* primary text, Apple near-black */
    --ink-2: #515154;          /* secondary text */
    --ink-3: #86868b;          /* muted / meta */

    /* ---- Accent: dawn pink warming to amber ---- */
    --accent:      #d1736b;    /* dawn pink, primary accent */
    --accent-deep: #a14f47;    /* deeper for hover / button bg */
    --accent-warm: #d49558;    /* soft amber, warming complement */
    --accent-glow: rgba(209, 115, 107, .12);
    --brand-gradient: linear-gradient(135deg, var(--accent-warm), var(--accent));
    --mesh-gradient: radial-gradient(at 20% 20%, rgba(212, 149, 88, .14) 0%, transparent 50%),
                     radial-gradient(at 80% 30%, rgba(209, 115, 107, .12) 0%, transparent 55%),
                     radial-gradient(at 50% 90%, rgba(212, 149, 88, .08) 0%, transparent 60%);

    /* ---- Semantic ---- */
    --moss:   #6b8e5c;         /* alpine green, success-y notes */
    --rust:   #b15c3a;         /* notable, sparing */

    /* ---- Borders (cool neutral hairlines) ---- */
    --border:        rgba(29, 29, 31, .08);
    --border-strong: rgba(29, 29, 31, .15);

    /* ---- Depth / shadows — softer, more diffuse Apple-style ---- */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 2px 6px rgba(0, 0, 0, .04);
    --shadow-md: 0 6px 18px rgba(0, 0, 0, .06), 0 2px 6px rgba(0, 0, 0, .04);
    --shadow-lg: 0 24px 60px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .05);
    --shadow-xl: 0 48px 120px rgba(0, 0, 0, .12), 0 18px 40px rgba(0, 0, 0, .07);
    --shadow-glow: 0 0 80px rgba(209, 115, 107, .18);

    /* ---- Nav surface (translucent Apple-style blur background) ---- */
    --nav-bg: rgba(251, 251, 253, .82);
    --mobile-menu-bg: rgba(255, 255, 255, .96);
    --site-bg-noise-color: rgba(0, 0, 0, .015);
}

/* ============================================================
   DARK MODE — alpine dusk
   Toggle via <html data-theme="dark">. Falls back to prefers-
   color-scheme when no explicit choice is set.
   ============================================================ */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --cream: #000000;
        --paper: #1d1d1f;
        --sand:  #1d1d1f;
        --ink:   #f5f5f7;
        --ink-2: #a1a1a6;
        --ink-3: #6e6e73;
        --accent:      #e08077;
        --accent-deep: #d1736b;
        --accent-warm: #e0a060;
        --accent-glow: rgba(224, 128, 119, .18);
        --border:        rgba(255, 255, 255, .08);
        --border-strong: rgba(255, 255, 255, .15);
        --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);
        --shadow-md: 0 4px 12px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);
        --shadow-lg: 0 20px 50px rgba(0, 0, 0, .6), 0 6px 16px rgba(0, 0, 0, .4);
        --shadow-xl: 0 40px 90px rgba(0, 0, 0, .7), 0 14px 30px rgba(0, 0, 0, .5);
        --shadow-glow: 0 0 80px rgba(224, 128, 119, .35);
        --nav-bg: rgba(0, 0, 0, .80);
        --mobile-menu-bg: rgba(29, 29, 31, .96);
        --site-bg-noise-color: rgba(255, 255, 255, .02);
    }
}
[data-theme="dark"] {
    --cream: #000000;
    --paper: #1d1d1f;
    --sand:  #1d1d1f;
    --ink:   #f5f5f7;
    --ink-2: #a1a1a6;
    --ink-3: #6e6e73;
    --accent:      #e08077;
    --accent-deep: #d1736b;
    --accent-warm: #e0a060;
    --accent-glow: rgba(224, 128, 119, .18);
    --border:        rgba(255, 255, 255, .08);
    --border-strong: rgba(255, 255, 255, .15);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);
    --shadow-lg: 0 20px 50px rgba(0, 0, 0, .6), 0 6px 16px rgba(0, 0, 0, .4);
    --shadow-xl: 0 40px 90px rgba(0, 0, 0, .7), 0 14px 30px rgba(0, 0, 0, .5);
    --shadow-glow: 0 0 80px rgba(224, 128, 119, .35);
    --nav-bg: rgba(0, 0, 0, .80);
    --mobile-menu-bg: rgba(29, 29, 31, .96);
    --site-bg-noise-color: rgba(255, 255, 255, .02);
}

    /* ---- Radius ---- */
    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 16px;
    --r-xl: 22px;
    --r-card: 18px;
    --r-pill: 980px;

    /* ---- Spacing ---- */
    --s-1: 4px;
    --s-2: 8px;
    --s-3: 12px;
    --s-4: 16px;
    --s-5: 20px;
    --s-6: 28px;
    --s-7: 40px;
    --s-8: 64px;
    --s-9: 96px;
}

/* ============================================================
   RESET + BASE
   ============================================================ */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif;
    color: var(--ink);
    background: var(--cream);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    transition: background-color .25s ease, color .25s ease;
}
a { color: var(--accent-deep); text-decoration: none; }
a:hover { color: var(--ink); }

/* WCAG 2.2 SC 2.4.7 — visible keyboard focus.
   Same approach as CardCue: only on :focus-visible so mouse clicks
   don't trigger the ring. */
*:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible { outline-offset: 3px; }

img, svg { display: block; max-width: 100%; }
.w { max-width: 1080px; margin: 0 auto; padding: 0 24px; }

/* ============================================================
   TYPOGRAPHY
   ----
   Display is Fraunces (variable), with the SOFT axis pushed up
   for the editorial / parent-brand feel. Body is system-stack.
   ============================================================ */
/* Apple-esque headline typography: SF Pro Display / system sans for
   primary headings. Editorial Fraunces is reserved for pull quotes,
   stat numbers, and the thesis paragraph treatment further below. */
.display, h1, h2, h3 {
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif;
    font-variation-settings: normal;
    color: var(--ink);
}
h1 { font-weight: 700; line-height: 1.05; letter-spacing: -0.035em; }
h2 { font-weight: 600; line-height: 1.1;  letter-spacing: -0.025em; }
h3 { font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; }

/* Editorial serif moments — Fraunces, kept intentionally. */
.pq, .quote {
    font-family: 'Fraunces', ui-serif, 'Iowan Old Style', 'Georgia', serif;
    font-variation-settings: 'opsz' 96, 'SOFT' 50, 'WONK' 0;
    letter-spacing: -0.01em;
    color: var(--ink);
}

p { font-size: 17px; line-height: 1.65; color: var(--ink-2); }
.lede { font-size: 20px; line-height: 1.55; color: var(--ink); }
.meta { font-size: 13px; color: var(--ink-3); letter-spacing: .02em; }
.eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
}

/* ============================================================
   NAV — translucent sticky, Apple grammar
   ============================================================ */
nav.site-nav {
    position: sticky;
    top: 0; left: 0; right: 0;
    z-index: 200;
    background: var(--nav-bg);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid var(--border);
    transition: background-color .25s ease;
}
.nav-inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 12px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 52px;
}
.nav-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 48, 'SOFT' 60, 'wght' 600;
    font-size: 19px;
    letter-spacing: -0.01em;
    text-decoration: none;
}
.nav-logo:hover { color: var(--ink); }
.nav-logo .mark { width: 26px; height: 26px; color: var(--accent); }
.nav-links { display: flex; gap: 26px; align-items: center; }
.nav-links a {
    font-size: 13.5px;
    color: var(--ink-2);
    text-decoration: none;
    transition: color .15s ease;
}
.nav-links a:hover, .nav-links a.active { color: var(--ink); }
.nav-cta {
    background: var(--ink);
    color: var(--cream) !important;
    padding: 8px 18px;
    border-radius: var(--r-pill);
    font-weight: 500;
    font-size: 13.5px;
    transition: background .2s ease;
}
.nav-cta:hover { background: var(--accent-deep); color: var(--cream) !important; }

.nav-toggle {
    display: none;
    background: transparent;
    border: 0;
    padding: 10px;
    margin: -10px;
    width: 44px;
    height: 44px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}
.nav-toggle .bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--ink);
    border-radius: 2px;
    transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle .bar + .bar { margin-top: 5px; }
nav.nav-open .nav-toggle .bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
nav.nav-open .nav-toggle .bar:nth-child(2) { opacity: 0; }
nav.nav-open .nav-toggle .bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 720px) {
    .nav-inner { padding: 10px 18px; }
    .nav-toggle { display: inline-flex; }
    .nav-links {
        position: absolute;
        top: 100%; left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px 18px 20px;
        background: var(--mobile-menu-bg);
        backdrop-filter: blur(24px) saturate(1.8);
        -webkit-backdrop-filter: blur(24px) saturate(1.8);
        border-bottom: 1px solid var(--border);
        box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
        display: none;
    }
    nav.nav-open .nav-links { display: flex; animation: navSlide .22s ease; }
    .nav-links a {
        padding: 14px 6px;
        font-size: 16px;
        font-weight: 500;
        color: var(--ink);
        border-bottom: 1px solid var(--border);
    }
    .nav-links a:last-child { border-bottom: 0; }
    .nav-cta { margin-top: 12px; text-align: center; padding: 14px 20px; font-size: 15px; }
}
@keyframes navSlide {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: none; }
}

/* ============================================================
   HERO — typographic, calm
   ============================================================ */
.hero {
    padding: 96px 0 80px;
    position: relative;
    overflow: hidden;
}
.hero::before {
    content: '';
    position: absolute;
    top: -160px; left: 50%;
    transform: translateX(-50%);
    width: 1200px; height: 800px;
    background: radial-gradient(ellipse at center, var(--accent-glow) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}
/* Full-width alpine ridges across the entire hero base.
   Two separate SVGs so site.js can parallax them at different rates. */
.hero-ridges {
    position: absolute;
    left: 0; right: 0;
    bottom: 0;
    height: 260px;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}
.hero-ridges svg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    will-change: transform;
}
.ridge-far  { /* moves slowest in parallax */ }
.ridge-near { /* moves faster, closer to natural scroll */ }

/* Cue floats in the bottom-right region, standing in front of the ridges.
   Pulled inward from the page edge so he doesn't feel about-to-fall-off. */
.hero-cue {
    position: absolute;
    right: clamp(120px, 14vw, 220px);
    bottom: 56px;
    width: clamp(160px, 16vw, 220px);
    z-index: 2;
    pointer-events: none;
}
.hero-cue .cue-stage {
    position: relative;
    display: block;
    width: 100%;
}
.hero-cue .cue {
    width: 100%;
    display: block;
    filter: drop-shadow(0 18px 32px rgba(42, 38, 32, .20))
            drop-shadow(0 0 22px var(--accent-glow));
    animation: cueBob 6s ease-in-out infinite;
}
/* Below 880px, drop Cue out of absolute positioning and stack him below
   the text — no more overlap, no more padding-right reservation needed. */
@media (max-width: 880px) {
    .hero-cue {
        position: relative;
        right: auto;
        bottom: auto;
        width: 140px;
        margin: 16px 32px 0 auto;
        display: block;
    }
}
@media (max-width: 480px) {
    .hero-cue { width: 110px; margin: 16px auto 0; }
}
.hero .w { position: relative; z-index: 1; }
.hero .eyebrow { margin-bottom: 18px; }
.hero h1 {
    font-size: clamp(40px, 6.4vw, 76px);
    font-variation-settings: 'opsz' 144, 'SOFT' 70, 'WONK' 0;
    margin-bottom: 24px;
    max-width: 880px;
}
.hero h1 .ink { color: var(--ink); }
.hero h1 .accent {
    color: transparent;
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
}
.hero .lede {
    max-width: 580px;
    margin-bottom: 32px;
}
.hero-cta-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: var(--r-pill);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
    cursor: pointer;
    border: 0;
    line-height: 1;
}
.btn-primary {
    background: var(--ink);
    color: var(--cream);
}
.btn-primary:hover { background: var(--accent-deep); color: var(--cream); }
.btn-secondary {
    background: transparent;
    color: var(--ink);
    border: 1.5px solid var(--border-strong);
}
.btn-secondary:hover {
    border-color: var(--ink);
    color: var(--ink);
}
.btn svg { width: 16px; height: 16px; }

/* ============================================================
   SECTION
   ============================================================ */
section.s {
    /* Apple-style breathing room. */
    padding: 112px 0;
}
@media (max-width: 720px) {
    section.s { padding: 72px 0; }
}
section.s.s-sand {
    background: var(--sand);
}
.sec-head { margin-bottom: 44px; max-width: 720px; }
.sec-head .eyebrow { margin-bottom: 14px; }
.sec-head h2 {
    font-size: clamp(28px, 4.2vw, 44px);
    font-variation-settings: 'opsz' 96, 'SOFT' 60, 'WONK' 0;
    margin-bottom: 14px;
}
.sec-head .lede { color: var(--ink-2); }

/* ============================================================
   THESIS BLOCK — editorial, serif prose
   ============================================================ */
.thesis {
    max-width: 680px;
    margin: 0 auto;
}
.thesis p {
    font-family: 'Fraunces', ui-serif, 'Iowan Old Style', Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 40, 'wght' 400;
    font-size: 20px;
    line-height: 1.65;
    color: var(--ink);
    margin-bottom: 22px;
}
.thesis p:last-child { margin-bottom: 0; }
.thesis p em {
    font-style: italic;
    color: var(--accent-deep);
}
.thesis p strong { font-weight: 600; color: var(--ink); }

/* ============================================================
   PRODUCT FEATURE — CardCue card on the index
   ============================================================ */
.product-card {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 48px;
    box-shadow: 0 10px 40px rgba(42, 38, 32, .04);
}
.product-card .pc-copy .eyebrow { margin-bottom: 14px; }
.product-card h3 {
    font-size: clamp(28px, 3.6vw, 38px);
    font-variation-settings: 'opsz' 72, 'SOFT' 60;
    margin-bottom: 12px;
}
.product-card .pc-tagline {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 40, 'wght' 400;
    font-style: italic;
    font-size: 18px;
    color: var(--ink-2);
    margin-bottom: 18px;
}
.product-card p { margin-bottom: 22px; color: var(--ink-2); }
.product-card .pc-visual {
    aspect-ratio: 4 / 5;
    border-radius: var(--r-card);
    background: linear-gradient(160deg, #1a1a1a 0%, #0a5cd6 70%, #7536b8 100%);
    box-shadow: 0 24px 60px rgba(42, 38, 32, .18);
    position: relative;
    overflow: hidden;
}
.product-card .pc-visual .glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, .15), transparent 60%);
}

@media (max-width: 840px) {
    .product-card {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 32px 28px;
    }
    .product-card .pc-visual { max-width: 320px; margin: 0 auto; }
}

/* ============================================================
   WHAT'S NEXT — quiet teaser
   ============================================================ */
.whats-next {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.whats-next .eyebrow { margin-bottom: 18px; }
.whats-next p {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 36, 'SOFT' 50, 'wght' 400;
    font-style: italic;
    font-size: 22px;
    line-height: 1.5;
    color: var(--ink);
}

/* ============================================================
   ARTICLE — long-form prose (studio, privacy)
   ============================================================ */
.article {
    max-width: 680px;
    margin: 0 auto;
    padding: 56px 24px 80px;
}
.article > .eyebrow { margin-bottom: 16px; }
.article h1 {
    font-size: clamp(36px, 5.4vw, 58px);
    font-variation-settings: 'opsz' 120, 'SOFT' 65;
    margin-bottom: 24px;
}
.article .lede {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 30, 'SOFT' 45, 'wght' 400;
    font-size: 22px;
    line-height: 1.55;
    color: var(--ink-2);
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--border);
}
.article section { margin-bottom: 44px; }
.article h2 {
    font-size: 26px;
    font-variation-settings: 'opsz' 60, 'SOFT' 55;
    margin-bottom: 14px;
    padding-top: 8px;
}
.article h2::before {
    content: '';
    display: block;
    width: 36px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
    margin-bottom: 18px;
}
.article h3 {
    font-size: 18px;
    font-weight: 600;
    margin-top: 28px;
    margin-bottom: 10px;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--ink);
    font-variation-settings: normal;
}
.article p {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 18, 'SOFT' 35, 'wght' 400;
    font-size: 18px;
    line-height: 1.75;
    color: var(--ink);
    margin-bottom: 18px;
}
.article p em { font-style: italic; color: var(--accent-deep); }
.article ul, .article ol { margin: 0 0 22px 22px; }
.article li {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 18, 'SOFT' 35, 'wght' 400;
    font-size: 17px;
    line-height: 1.7;
    color: var(--ink);
    margin-bottom: 8px;
}
.article li::marker { color: var(--accent); }
.article .pq {
    margin: 28px -10px;
    padding: 20px 26px;
    border-left: 3px solid var(--accent);
    background: var(--paper);
    border-radius: 0 var(--r-card) var(--r-card) 0;
    font-style: italic;
    font-size: 21px;
    line-height: 1.45;
    color: var(--ink);
    font-variation-settings: 'opsz' 36, 'SOFT' 55, 'wght' 500;
}
.article hr {
    border: 0;
    height: 1px;
    background: var(--border);
    margin: 40px 0;
}

/* Entity facts block (studio page) */
.entity-facts {
    margin-top: 32px;
    padding: 24px 26px;
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
}
.entity-facts dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 8px 24px;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
}
.entity-facts dt {
    font-size: 12px;
    font-weight: 700;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: .08em;
    padding-top: 2px;
}
.entity-facts dd {
    font-size: 15px;
    color: var(--ink);
    font-variation-settings: normal;
}
.entity-facts dd code {
    font-family: ui-monospace, 'SF Mono', Menlo, monospace;
    font-size: 13px;
    background: var(--sand);
    padding: 2px 7px;
    border-radius: 5px;
}

/* ============================================================
   CONTACT FORM
   ============================================================ */
.contact-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 64px;
    align-items: start;
}
@media (max-width: 880px) {
    .contact-grid { grid-template-columns: 1fr; gap: 40px; }
}

.contact-form { display: grid; gap: 18px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-2);
}
.field input, .field textarea, .field select {
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 16px;
    padding: 12px 14px;
    border: 1px solid var(--border-strong);
    border-radius: var(--r-md);
    background: var(--paper);
    color: var(--ink);
    transition: border-color .2s ease, background .2s ease;
}
.field input:focus, .field textarea:focus, .field select:focus {
    outline: 0;
    border-color: var(--accent);
    background: #fff;
}
.field textarea { resize: vertical; min-height: 140px; }
/* Honeypot: hidden from real users, visible to bots */
.field-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.contact-aside {
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 28px;
}
.contact-aside h3 {
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    font-variation-settings: normal;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-3);
    margin-bottom: 14px;
}
.contact-aside p {
    font-size: 15px;
    color: var(--ink-2);
    margin-bottom: 14px;
}
.contact-aside p:last-child { margin-bottom: 0; }
.contact-aside a { color: var(--accent-deep); font-weight: 500; }
.contact-aside a:hover { color: var(--ink); }

/* ============================================================
   FOOTER
   ============================================================ */
footer.site-footer {
    margin-top: 80px;
    padding: 48px 0 32px;
    border-top: 1px solid var(--border);
    background: var(--sand);
}
.footer-inner {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 32px;
}
.footer-brand .footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--ink);
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 48, 'SOFT' 60, 'wght' 600;
    font-size: 18px;
    text-decoration: none;
}
.footer-brand .footer-logo .mark { width: 24px; height: 24px; color: var(--accent); }
.footer-brand p {
    font-size: 14px;
    color: var(--ink-2);
    max-width: 320px;
    line-height: 1.6;
}
.footer-col h4 {
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    font-variation-settings: normal;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--ink-3);
    margin-bottom: 14px;
}
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: 9px; }
.footer-col a {
    font-size: 14px;
    color: var(--ink-2);
    text-decoration: none;
}
.footer-col a:hover { color: var(--ink); }
.footer-bottom {
    border-top: 1px solid var(--border);
    padding-top: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 13px;
    color: var(--ink-3);
}
@media (max-width: 720px) {
    .footer-inner { grid-template-columns: 1fr; gap: 28px; }
}

/* ============================================================
   404 + THANK-YOU — centered single-card pages
   ============================================================ */
.center-card {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
}
.center-card-inner {
    max-width: 480px;
    text-align: center;
}
.center-card-inner h1 {
    font-size: clamp(34px, 5vw, 48px);
    font-variation-settings: 'opsz' 96, 'SOFT' 65;
    margin-bottom: 18px;
}
.center-card-inner p {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 45, 'wght' 400;
    font-size: 19px;
    color: var(--ink-2);
    margin-bottom: 28px;
}

/* ============================================================
   CUE — mascot image styling
   ============================================================ */
.nav-logo .mark img,
.footer-brand .footer-logo .mark img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.nav-logo .mark,
.footer-brand .footer-logo .mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.nav-logo .mark { width: 32px; height: 32px; }
.footer-brand .footer-logo .mark { width: 30px; height: 30px; }

/* ============================================================
   HERO — split-column with Cue illustration
   ============================================================ */
/* Hero text takes the full width but reserves space on the right for Cue.
   Padding-right scales with viewport so Cue's column never gets crowded. */
.hero-text {
    max-width: 780px;
    padding-right: clamp(0px, 26vw, 360px);
}
/* Reset reservation below the breakpoint where Cue stops being absolute. */
@media (max-width: 880px) {
    .hero-text { padding-right: 0; max-width: none; }
}
.hero-grid { /* legacy fallback if needed by other pages */
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 48px;
    align-items: center;
}
.hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    min-height: 200px;
}
.hero-visual .cue {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 200px;
    filter: drop-shadow(0 18px 32px rgba(42, 38, 32, .16))
            drop-shadow(0 0 22px var(--accent-glow));
    animation: cueBob 6s ease-in-out infinite;
}
@keyframes cueBob {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}
@media (max-width: 720px) {
    .hero-text { padding-right: 0; max-width: none; }
}

/* ============================================================
   PILLARS — three visual concept cards
   ============================================================ */
.pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.pillar {
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 26px 24px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.pillar:hover {
    transform: translateY(-2px);
    border-color: var(--accent);
    box-shadow: 0 12px 30px rgba(42, 38, 32, .06);
}
.pillar .pi {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--accent-glow);
    color: var(--accent-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.pillar .pi svg { width: 24px; height: 24px; }
.pillar h3 {
    font-size: 19px;
    font-variation-settings: 'opsz' 48, 'SOFT' 55, 'wght' 600;
    margin-bottom: 8px;
    color: var(--ink);
}
.pillar p {
    font-size: 14.5px;
    color: var(--ink-2);
    line-height: 1.55;
}
@media (max-width: 720px) {
    .pillars { grid-template-columns: 1fr; }
}

/* ============================================================
   FOUNDER CARD — headshot + tight bio
   ============================================================ */
.founder-card {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 28px;
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 28px 30px;
    max-width: 640px;
    margin: 24px auto 0;
}
.founder-card img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 6px 16px rgba(42, 38, 32, .12);
}
.founder-card .fc-role {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--accent-deep);
    margin-bottom: 6px;
}
.founder-card h3 {
    font-size: 22px;
    font-variation-settings: 'opsz' 60, 'SOFT' 60;
    margin-bottom: 8px;
}
.founder-card p {
    font-size: 14.5px;
    color: var(--ink-2);
    line-height: 1.55;
}
@media (max-width: 600px) {
    .founder-card { grid-template-columns: 1fr; text-align: center; padding: 28px 22px; }
    .founder-card img { margin: 0 auto; }
}

/* ============================================================
   PRODUCT STRIP — compact horizontal product card
   ============================================================ */
.product-strip {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 22px;
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 22px 26px;
    margin-top: 18px;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s, transform .2s;
}
.product-strip:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
    color: inherit;
}
.product-strip .ps-icon {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    background: linear-gradient(160deg, #1565e6, #0a5cd6 50%, #7536b8);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.product-strip .ps-icon img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}
.product-strip .ps-text h4 {
    font-size: 17px;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 3px;
}
.product-strip .ps-text p {
    font-size: 14px;
    color: var(--ink-2);
    margin: 0;
}
.product-strip .ps-arrow {
    color: var(--accent-deep);
    font-size: 20px;
}
@media (max-width: 600px) {
    .product-strip { grid-template-columns: auto 1fr; }
    .product-strip .ps-arrow { display: none; }
}

/* ============================================================
   WHAT'S NEXT — ghost cards for future products
   ============================================================ */
.next-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    max-width: 720px;
    margin: 32px auto 0;
}
.next-card {
    background: var(--sand);
    border: 1.5px dashed var(--border-strong);
    border-radius: var(--r-card);
    padding: 28px 24px;
    text-align: center;
    color: var(--ink-3);
    transition: border-color .2s, color .2s;
}
.next-card:hover {
    border-color: var(--accent);
    color: var(--ink-2);
}
.next-card .nc-shape {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--paper);
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.next-card .nc-shape svg { width: 28px; height: 28px; opacity: .5; }
.next-card h4 {
    font-size: 15px;
    font-weight: 600;
    color: var(--ink-2);
    margin-bottom: 4px;
}
.next-card p {
    font-size: 13px;
    color: var(--ink-3);
    margin: 0;
}
@media (max-width: 600px) {
    .next-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   CUE INTRO — small "meet Cue" moment
   ============================================================ */
.cue-intro {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 28px;
    align-items: center;
    max-width: 680px;
    margin: 0 auto;
}
.cue-intro .ci-mascot {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: var(--accent-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.cue-intro .ci-mascot img { width: 90%; height: 90%; object-fit: contain; }
.cue-intro h3 {
    font-size: 22px;
    font-variation-settings: 'opsz' 60, 'SOFT' 60;
    margin-bottom: 6px;
}
.cue-intro p {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 50, 'wght' 400;
    font-size: 17px;
    color: var(--ink-2);
    font-style: italic;
    line-height: 1.55;
}
@media (max-width: 600px) {
    .cue-intro { grid-template-columns: 1fr; text-align: center; }
    .cue-intro .ci-mascot { margin: 0 auto; }
}

/* ============================================================
   CONTACT ASIDE MASCOT
   ============================================================ */
.contact-aside .aside-mascot {
    width: 90px;
    height: 90px;
    margin: -8px auto 14px;
    display: block;
}

/* ============================================================
   MOTION — scroll reveal + reduced-motion respect
   ============================================================ */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .8s cubic-bezier(.16, 1, .3, 1), transform .8s cubic-bezier(.16, 1, .3, 1);
}
.reveal.in {
    opacity: 1;
    transform: none;
}
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }

@media (prefers-reduced-motion: reduce) {
    .reveal, .reveal.in { opacity: 1; transform: none; transition: none; }
    .cue, .stat-num, .hero h1, .marquee-track {
        animation: none !important;
    }
    html { scroll-behavior: auto; }
}

/* ============================================================
   THEME TOGGLE — sun/moon button in nav
   ============================================================ */
.theme-toggle {
    background: transparent;
    border: 1px solid var(--border-strong);
    color: var(--ink-2);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s;
    padding: 0;
    flex-shrink: 0;
}
.theme-toggle:hover {
    color: var(--ink);
    border-color: var(--ink);
    background: var(--paper);
}
.theme-toggle svg { width: 16px; height: 16px; }
.theme-toggle .sun { display: none; }
[data-theme="dark"] .theme-toggle .moon { display: none; }
[data-theme="dark"] .theme-toggle .sun  { display: block; }

/* ============================================================
   "LIVE" PILL — hero status indicator
   ============================================================ */
.live-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px 6px 12px;
    border-radius: var(--r-pill);
    background: var(--paper);
    border: 1px solid var(--border);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ink-2);
    margin-bottom: 22px;
    box-shadow: var(--shadow-sm);
}
.live-pill .live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--moss);
    box-shadow: 0 0 0 0 rgba(107, 142, 92, .55);
    animation: livePulse 2s ease-in-out infinite;
}
.live-pill a {
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
}
.live-pill a:hover { color: var(--accent-deep); }
@keyframes livePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(107, 142, 92, .55); }
    50%      { box-shadow: 0 0 0 10px rgba(107, 142, 92, 0); }
}

/* ============================================================
   CHIRP RINGS — animated rings emanating from Cue
   ============================================================ */
.cue-stage {
    position: relative;
    z-index: 1;
    display: inline-block;
}

/* ============================================================
   STATS STRIP — magazine-style key numbers row
   ============================================================ */
.stats-strip {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    padding: 40px 0;
    border-block: 1px solid var(--border);
    background:
        radial-gradient(ellipse at center, var(--accent-glow) 0%, transparent 70%);
}
.stat {
    text-align: center;
    padding: 0 12px;
    position: relative;
}
.stat + .stat::before {
    content: "";
    position: absolute;
    left: 0; top: 16%; bottom: 16%;
    width: 1px;
    background: var(--border-strong);
}
.stat-num {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 96, 'SOFT' 60, 'wght' 600;
    font-size: clamp(28px, 4vw, 44px);
    color: var(--ink);
    letter-spacing: -1px;
    line-height: 1;
    margin-bottom: 6px;
}
.stat-num em {
    color: var(--accent);
    font-style: normal;
}
.stat-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--ink-3);
}
@media (max-width: 720px) {
    .stats-strip { grid-template-columns: repeat(2, 1fr); gap: 24px 0; padding: 28px 16px; }
    .stat + .stat::before { display: none; }
    .stat:nth-child(odd):not(:first-child)::before {
        content: "";
        position: absolute;
        top: -12px; left: 16%; right: 16%;
        width: auto; height: 1px;
        background: var(--border-strong);
    }
}

/* ============================================================
   BENTO GRID — varied tile composition
   ============================================================ */
.bento {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 200px;
    gap: 16px;
}
.bento-tile {
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 28px;
    overflow: hidden;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
}
.bento-tile:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    border-color: var(--accent);
}
.bento-tile.no-hover:hover { transform: none; box-shadow: var(--shadow-sm); border-color: var(--border); }

/* Tile spans */
.bt-quote      { grid-column: span 6; grid-row: span 2; }
.bt-stat       { grid-column: span 2; grid-row: span 1; }
.bt-cred       { grid-column: span 2; grid-row: span 1; }
.bt-meet       { grid-column: span 2; grid-row: span 1; }
.bt-founder    { grid-column: span 4; grid-row: span 2; }

/* Quote tile */
.bt-quote {
    background: linear-gradient(135deg, var(--paper), var(--cream));
    padding: 40px 44px;
    justify-content: center;
}
.bt-quote .quote-mark {
    font-family: 'Fraunces', serif;
    font-size: 80px;
    line-height: 0.6;
    color: var(--accent);
    opacity: .6;
    margin-bottom: 8px;
}
.bt-quote .quote-text {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 60, 'SOFT' 60, 'wght' 500;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.32;
    color: var(--ink);
    letter-spacing: -0.5px;
}
.bt-quote .quote-attr {
    font-size: 12px;
    color: var(--ink-3);
    margin-top: 18px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Cue tile (large character moment) */
.bt-cue {
    background: linear-gradient(160deg, #d49558 0%, #d1736b 100%);
    padding: 0;
    align-items: center;
    justify-content: center;
}
.bt-cue::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 60%, rgba(255, 255, 255, .25), transparent 60%);
}
.bt-cue .cue-stage {
    position: relative;
    width: 78%;
    max-width: 220px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bt-cue .cue-stage img {
    width: 100%;
    filter: drop-shadow(0 16px 24px rgba(42, 38, 32, .25));
}

/* Stat tile */
.bt-stat {
    justify-content: space-between;
}
.bt-stat .stat-eyebrow {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--ink-3);
}
.bt-stat .stat-big {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 96, 'SOFT' 65, 'wght' 600;
    font-size: clamp(36px, 4.5vw, 56px);
    line-height: 1;
    letter-spacing: -1.5px;
    color: var(--ink);
}
.bt-stat .stat-big em {
    color: var(--accent);
    font-style: normal;
}
.bt-stat .stat-cap {
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.4;
}

/* Credential tile */
.bt-cred {
    background: var(--cream);
    justify-content: space-between;
}
.bt-cred .cred-eyebrow {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
}
.bt-cred .cred-text {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 36, 'SOFT' 55, 'wght' 500;
    font-size: 18px;
    line-height: 1.35;
    color: var(--ink);
}

/* Meet Cue tile */
.bt-meet {
    background: var(--sand);
    flex-direction: row;
    align-items: center;
    gap: 14px;
}
.bt-meet img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--accent-glow);
    padding: 4px;
}
.bt-meet .meet-eyebrow {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
    margin-bottom: 4px;
}
.bt-meet h4 {
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.25;
}

/* Founder tile */
.bt-founder {
    background: linear-gradient(155deg, var(--paper), var(--sand));
    flex-direction: row;
    gap: 24px;
    align-items: center;
    padding: 32px;
}
.bt-founder img {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: var(--shadow-md);
    flex-shrink: 0;
}
.bt-founder .f-role {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--accent-deep);
    margin-bottom: 6px;
}
.bt-founder h3 {
    font-size: 22px;
    font-variation-settings: 'opsz' 60, 'SOFT' 60, 'wght' 600;
    margin-bottom: 8px;
    color: var(--ink);
}
.bt-founder p {
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.55;
}

@media (max-width: 880px) {
    .bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: minmax(180px, auto); }
    .bt-quote, .bt-founder { grid-column: span 2; grid-row: span 1; }
    .bt-stat, .bt-cred, .bt-meet { grid-column: span 1; grid-row: span 1; }
}
@media (max-width: 560px) {
    .bento { grid-template-columns: 1fr; }
    .bt-quote, .bt-stat, .bt-cred, .bt-meet, .bt-founder {
        grid-column: span 1; grid-row: span 1;
    }
    .bt-founder { flex-direction: column; text-align: center; padding: 32px 24px; }
}

/* ============================================================
   MULTI-DEVICE SHOWCASE — iPhone + Watch composite
   ============================================================ */
.showcase {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}
.showcase-text {
    max-width: 480px;
}
.showcase-text .eyebrow { margin-bottom: 14px; }
.showcase-text h2 {
    font-size: clamp(32px, 4.5vw, 48px);
    font-variation-settings: 'opsz' 96, 'SOFT' 65, 'wght' 600;
    margin-bottom: 16px;
    letter-spacing: -1px;
}
.showcase-text p {
    font-size: 17px;
    color: var(--ink-2);
    line-height: 1.6;
    margin-bottom: 20px;
}
.showcase-stage {
    position: relative;
    width: 100%;
    max-width: 520px;
    height: 640px;
    margin: 0 auto;
}
.device-phone {
    position: absolute;
    right: 0;
    top: 24px;
    width: 240px;
    height: 500px;
    border-radius: 36px;
    background: #000;
    box-shadow: var(--shadow-xl), inset 0 0 0 2px rgba(255, 255, 255, .08);
    padding: 8px;
    transform: rotate(3deg);
    z-index: 1;
}
.device-phone .device-screen {
    width: 100%;
    height: 100%;
    border-radius: 28px;
    background: linear-gradient(160deg, #1a1a1a 0%, #0a5cd6 70%, #7536b8 100%);
    position: relative;
    overflow: hidden;
}
.device-phone .device-screen-img {
    background: #000;
}
.device-phone .device-screen-img img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: top center;
}
.device-watch {
    position: absolute;
    left: 16px;
    bottom: 60px;
    width: 170px;
    height: 210px;
    border-radius: 40px;
    background: #1a1a1a;
    box-shadow: var(--shadow-xl);
    padding: 10px;
    z-index: 2;
    transform: rotate(-5deg);
}
.device-watch::before, .device-watch::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 64%;
    height: 14px;
    background: #2a2420;
    border-radius: 6px 6px 14px 14px;
    z-index: -1;
}
.device-watch::before { top: -8px; }
.device-watch::after  { bottom: -8px; border-radius: 14px 14px 6px 6px; }
.device-watch .device-screen {
    width: 100%;
    height: 100%;
    border-radius: 32px;
    background: #0a5cd6;
    overflow: hidden;
}
.device-notif {
    position: absolute;
    bottom: 0;
    right: 24px;
    width: 290px;
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 14px 16px;
    box-shadow: var(--shadow-lg);
    z-index: 3;
    transform: rotate(1.5deg);
    display: flex;
    gap: 12px;
    align-items: flex-start;
}
.device-notif img {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
}
.device-notif .notif-app {
    font-size: 10px;
    font-weight: 700;
    color: var(--ink-3);
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 3px;
}
.device-notif .notif-title {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 2px;
}
.device-notif .notif-body {
    font-size: 12.5px;
    color: var(--ink-2);
    line-height: 1.4;
}

/* Cue beside the devices, top-left of the stage */
.showcase-cue {
    position: absolute;
    top: 12px;
    left: 12px;
    width: 150px;
    z-index: 4;
}
.showcase-cue img {
    width: 100%;
    display: block;
    filter: drop-shadow(0 12px 24px rgba(42, 38, 32, .15))
            drop-shadow(0 0 18px var(--accent-glow));
    animation: cueBob 5.5s ease-in-out infinite;
}

@media (max-width: 980px) {
    .showcase { grid-template-columns: 1fr; gap: 40px; }
    .showcase-stage { max-width: 460px; height: 580px; }
    .device-phone { width: 210px; height: 440px; right: 12px; top: 16px; }
    .device-watch { width: 150px; height: 184px; left: 12px; bottom: 48px; }
    .device-notif { width: 250px; right: 20px; }
    .showcase-cue { width: 120px; }
}
@media (max-width: 540px) {
    .showcase-stage { max-width: 100%; height: 520px; }
    .device-phone { width: 180px; height: 376px; right: 8px; }
    .device-watch { width: 130px; height: 160px; left: 8px; bottom: 40px; }
    .device-notif { width: 220px; right: 8px; }
}

/* ============================================================
   WORK / CASE STUDIES
   ============================================================ */
.work-intro {
    /* Widened from 760 so the long hero line ("Fifteen years of
       interactive product,") has room to sit on a single row at
       wide viewports without overflowing the container. */
    max-width: 1080px;
    margin: 0 auto 60px;
    text-align: center;
}
.work-intro h1 {
    /* Font max 58px is the size at which the 35-char long line fits
       inside the 1080-px-wide intro at letter-spacing -0.028em.
       Combined with .hero-line nowrap, exactly 2 lines from ~360px up. */
    font-size: clamp(18px, 4.6vw, 58px);
    font-variation-settings: 'opsz' 144, 'SOFT' 70, 'wght' 600;
    line-height: 1.05;
    letter-spacing: -0.028em;
    margin-bottom: 22px;
}
.work-intro h1 .hero-line {
    display: block;
    white-space: nowrap;
}
.work-intro h1 em { color: var(--accent-deep); font-style: normal; }
.work-intro p.lede {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 36, 'SOFT' 50;
    font-size: clamp(18px, 2vw, 22px);
    color: var(--ink-2);
}

.timeline-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    max-width: 920px;
    margin: 0 auto 64px;
    border-block: 1px solid var(--border);
    padding: 28px 0;
    position: relative;
}
.timeline-cell {
    text-align: center;
    padding: 0 12px;
    position: relative;
}
.timeline-cell + .timeline-cell::before {
    content: "";
    position: absolute;
    left: 0;
    top: 20%;
    bottom: 20%;
    width: 1px;
    background: var(--border-strong);
}
.timeline-year {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 60, 'SOFT' 60, 'wght' 600;
    font-size: clamp(20px, 2.2vw, 26px);
    color: var(--ink);
    line-height: 1.1;
    letter-spacing: -0.5px;
}
.timeline-co {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--ink-3);
    margin-top: 6px;
}
@media (max-width: 720px) {
    .timeline-strip { grid-template-columns: repeat(2, 1fr); gap: 18px 0; padding: 22px 0; }
    .timeline-cell + .timeline-cell::before { display: none; }
}

.case-study {
    max-width: 1000px;
    margin: 0 auto 96px;
    padding: 44px 0 56px;
    position: relative;
    border-top: 4px solid var(--cs-color, var(--accent));
}
.case-study::before {
    content: "";
    position: absolute;
    top: -4px; left: 0;
    width: 56px; height: 4px;
    background: var(--ink);
}
.cs-image {
    margin: 0 0 36px;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    aspect-ratio: 1200 / 630;
    background: var(--paper);
    transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
.cs-image:hover { transform: translateY(-4px); }
.cs-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.cs-top {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px 24px;
    align-items: end;
    margin-bottom: 32px;
}
.cs-dates {
    grid-column: 1 / -1;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: var(--cs-color, var(--accent-deep));
}
.cs-name {
    font-size: clamp(36px, 5.6vw, 56px);
    font-variation-settings: 'opsz' 120, 'SOFT' 65, 'wght' 600;
    letter-spacing: -1.5px;
    line-height: 1;
    color: var(--ink);
}
.cs-role {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 50, 'wght' 400;
    font-style: italic;
    font-size: 18px;
    color: var(--ink-2);
    margin: 0;
    padding-bottom: 12px;
}

.cs-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 28px;
}
@media (max-width: 760px) {
    .cs-grid { grid-template-columns: 1fr; gap: 28px; }
    .cs-top { grid-template-columns: 1fr; }
    .cs-role { padding-bottom: 0; }
}
.cs-hero-stat {
    border-left: 2px solid var(--cs-color, var(--accent));
    padding: 4px 0 4px 22px;
}
.cs-stat-num {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 144, 'SOFT' 70, 'wght' 600;
    font-size: clamp(40px, 5.5vw, 64px);
    line-height: 1;
    letter-spacing: -2px;
    color: var(--ink);
    margin-bottom: 12px;
}
.cs-stat-num small {
    font-size: 0.55em;
    font-weight: 500;
    color: var(--ink-3);
    letter-spacing: -0.5px;
}
.cs-stat-cap {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 24, 'SOFT' 50;
    font-style: italic;
    font-size: 16px;
    color: var(--ink-2);
    line-height: 1.5;
}

.cs-body p {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 18, 'SOFT' 35, 'wght' 400;
    font-size: 17px;
    line-height: 1.7;
    color: var(--ink);
    margin-bottom: 16px;
}
.cs-body p:last-child { margin-bottom: 0; }
.cs-body strong { color: var(--cs-color-deep, var(--accent-deep)); font-weight: 600; }
.cs-body em { font-style: italic; color: var(--ink-2); }

.cs-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.cs-pill {
    padding: 6px 14px;
    border-radius: var(--r-pill);
    background: var(--paper);
    border: 1px solid var(--border);
    font-size: 12.5px;
    color: var(--ink-2);
    font-weight: 500;
}
.cs-pill.cs-link {
    background: var(--ink);
    color: var(--cream);
    border-color: var(--ink);
    text-decoration: none;
    transition: background .2s;
}
.cs-pill.cs-link:hover {
    background: var(--cs-color-deep, var(--accent-deep));
    color: var(--cream);
}

/* In-case screenshot pair (e.g., ALEX product screens) */
.cs-screens {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin: 8px 0 28px;
}
.cs-screen {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cs-screen .cs-screen-frame {
    aspect-ratio: 16 / 9;
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    transition: transform .25s cubic-bezier(.16, 1, .3, 1);
}
.cs-screen:hover .cs-screen-frame { transform: translateY(-3px); }
.cs-screen img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.cs-screen figcaption {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 18, 'SOFT' 45, 'wght' 400;
    font-style: italic;
    font-size: 14px;
    color: var(--ink-2);
    text-align: center;
    line-height: 1.4;
}
@media (max-width: 600px) {
    .cs-screens { grid-template-columns: 1fr; }
}

/* Single-image mascot moment (e.g., Sam in the Upkey case) */
.cs-mascot {
    margin: 8px auto 28px;
    max-width: 520px;
}
.cs-mascot figure {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cs-mascot .cs-mascot-frame {
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(180deg, #e6f4ff 0%, #c5e6ff 100%);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s cubic-bezier(.16, 1, .3, 1);
}
.cs-mascot:hover .cs-mascot-frame { transform: translateY(-3px); }
.cs-mascot img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
}
.cs-mascot figcaption {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 18, 'SOFT' 45, 'wght' 400;
    font-style: italic;
    font-size: 14px;
    color: var(--ink-2);
    text-align: center;
    line-height: 1.4;
}

/* Per-brand accent variables */
.cs-cardcue { --cs-color: #1565e6; --cs-color-deep: #0a5cd6; }
.cs-gainwell { --cs-color: #4ee0a0; --cs-color-deep: #2535d6; }
.cs-upkey { --cs-color: #4faae8; --cs-color-deep: #2e8bcf; }
.cs-jellyvision { --cs-color: #6a4cc4; --cs-color-deep: #4a2da0; }

/* ============================================================
   APP TOUR — grid of phone-framed screenshots
   ============================================================ */
.screens-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 36px 28px;
    max-width: 920px;
    margin: 0 auto;
}
.screen-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    text-align: left;
}
.screen-frame {
    aspect-ratio: 9 / 19.5;
    background: #000;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: var(--shadow-lg), inset 0 0 0 2px rgba(255, 255, 255, .05);
    position: relative;
    padding: 6px;
    transition: transform .35s cubic-bezier(.16, 1, .3, 1), box-shadow .35s;
}
.screen-card:hover .screen-frame {
    transform: translateY(-6px);
    box-shadow: var(--shadow-xl), inset 0 0 0 2px rgba(255, 255, 255, .08);
}
.screen-frame::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: 32%;
    height: 14px;
    background: #000;
    border-radius: 0 0 12px 12px;
    z-index: 2;
}
.screen-frame img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 22px;
}
.screen-cap {
    padding: 0 4px;
}
.screen-cap .sc-eyebrow {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
    margin-bottom: 4px;
    display: block;
}
.screen-cap h4 {
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 4px;
}
.screen-cap p {
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.5;
    margin: 0;
}

/* ============================================================
   CREDENTIALS STRIP — "built by 15 years at"
   ============================================================ */
.creds-strip {
    text-align: center;
    padding: 40px 0;
    border-block: 1px solid var(--border);
}
.creds-eyebrow {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ink-3);
    margin-bottom: 22px;
}
.creds-list {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 28px;
}
.creds-list .cred-logo {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 36, 'SOFT' 50, 'wght' 600;
    font-size: clamp(16px, 2vw, 22px);
    color: var(--ink-2);
    letter-spacing: -0.3px;
    transition: color .2s ease;
}
.creds-list .cred-logo:hover { color: var(--ink); }
.creds-list .cred-sep {
    color: var(--ink-3);
    opacity: .5;
    font-size: 14px;
}

/* ============================================================
   EDITORIAL PULL QUOTE — big serif moment
   ============================================================ */
.pull-quote-block {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    padding: 0 24px;
    position: relative;
}
.pull-quote-block::before {
    content: """;
    position: absolute;
    top: -60px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Fraunces', serif;
    font-size: 160px;
    line-height: 1;
    color: var(--accent);
    opacity: .18;
}
.pull-quote-block .pq-text {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 144, 'SOFT' 65, 'wght' 500;
    font-size: clamp(28px, 4.4vw, 44px);
    line-height: 1.28;
    letter-spacing: -0.8px;
    color: var(--ink);
}
.pull-quote-block .pq-text em {
    color: var(--accent-deep);
    font-style: italic;
}
.pull-quote-block .pq-attr {
    margin-top: 26px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--ink-3);
}

/* ============================================================
   EMAIL SIGNUP — footer hero
   ============================================================ */
.signup {
    background: linear-gradient(160deg, var(--paper) 0%, var(--sand) 100%);
    border-radius: 28px;
    padding: 44px 40px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 28px;
    align-items: center;
    margin-bottom: 56px;
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    position: relative;
    overflow: hidden;
}
.signup::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -10%;
    width: 380px;
    height: 380px;
    background: radial-gradient(circle, var(--accent-glow), transparent 70%);
    pointer-events: none;
}
.signup-mascot {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--accent-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.signup-mascot img { width: 84%; height: 84%; object-fit: contain; }
.signup-text { position: relative; z-index: 1; }
.signup-text h3 {
    font-size: clamp(22px, 2.8vw, 28px);
    font-variation-settings: 'opsz' 60, 'SOFT' 60, 'wght' 600;
    margin-bottom: 4px;
    color: var(--ink);
    letter-spacing: -0.4px;
}
.signup-text p {
    font-size: 14px;
    color: var(--ink-2);
    margin: 0;
}
.signup-form {
    display: flex;
    gap: 8px;
    position: relative;
    z-index: 1;
}
.signup-form input {
    width: 240px;
    padding: 12px 16px;
    font-size: 14.5px;
    border: 1px solid var(--border-strong);
    border-radius: var(--r-pill);
    background: var(--cream);
    color: var(--ink);
    font-family: inherit;
    transition: border-color .2s, background .2s;
}
.signup-form input:focus {
    outline: 0;
    border-color: var(--accent);
    background: var(--paper);
}
.signup-form button {
    background: var(--ink);
    color: var(--cream);
    border: 0;
    border-radius: var(--r-pill);
    padding: 12px 22px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s;
    font-family: inherit;
}
.signup-form button:hover { background: var(--accent-deep); }
@media (max-width: 760px) {
    .signup { grid-template-columns: 1fr; gap: 18px; text-align: center; padding: 32px 28px; }
    .signup-mascot { margin: 0 auto; }
    .signup-form { flex-direction: column; align-items: stretch; }
    .signup-form input { width: 100%; }
}

/* ============================================================
   MAGNETIC BUTTON HOVER (subtle CSS-only)
   ============================================================ */
.btn-primary {
    position: relative;
    overflow: hidden;
}
.btn-primary::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 35%, rgba(255, 255, 255, .18) 50%, transparent 65%);
    transform: translateX(-100%);
    transition: transform .55s ease;
    pointer-events: none;
}
.btn-primary:hover::after { transform: translateX(100%); }

/* ============================================================
   HERO TUNING — depth + composition lift
   ============================================================ */
.hero-text h1 {
    font-variation-settings: 'opsz' 144, 'SOFT' 75, 'WONK' 0;
    letter-spacing: -2.5px;
}
.hero-visual .cue {
    filter: drop-shadow(0 28px 50px rgba(42, 38, 32, .18))
            drop-shadow(0 0 30px var(--accent-glow));
}

/* Mesh wash behind sections for crispness */
.s-mesh {
    position: relative;
    background: var(--cream);
}
.s-mesh::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--mesh-gradient);
    pointer-events: none;
    z-index: 0;
}
.s-mesh > .w { position: relative; z-index: 1; }

/* ============================================================
   FOOTER tweak — soften
   ============================================================ */
footer.site-footer {
    background: var(--sand);
    border-top: 1px solid var(--border);
}
[data-theme="dark"] footer.site-footer {
    background: var(--paper);
}

/* ============================================================
   SERVICES PAGE
   ============================================================ */
.services-intro {
    max-width: 780px;
    margin: 0 auto 56px;
    text-align: center;
}
.services-intro h1 {
    font-size: clamp(40px, 6vw, 72px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    margin-bottom: 20px;
}
.services-intro h1 em { color: var(--accent-deep); font-style: normal; }
.services-intro .lede {
    font-size: clamp(18px, 2vw, 21px);
    color: var(--ink-2);
    line-height: 1.55;
    max-width: 640px;
    margin: 0 auto;
}

/* Featured service: fractional / interim product leadership */
.service-feature {
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 48px;
    margin-bottom: 18px;
    box-shadow: var(--shadow-md);
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 48px;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.service-feature::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 88% 12%, var(--accent-glow), transparent 55%);
    pointer-events: none;
}
.service-feature > * { position: relative; z-index: 1; }
.service-feature .sf-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
    margin-bottom: 16px;
}
.service-feature .sf-badge::before {
    content: "";
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--accent);
}
.service-feature h2 {
    font-size: clamp(27px, 3.2vw, 38px);
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin-bottom: 16px;
}
.service-feature p {
    font-size: 16px;
    color: var(--ink-2);
    line-height: 1.65;
    margin-bottom: 14px;
}
.service-feature p:last-of-type { margin-bottom: 0; }
.sf-card {
    background: var(--cream);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 26px 28px;
}
.sf-card h3 {
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--ink-3);
    margin-bottom: 16px;
    letter-spacing: 1.2px;
}
.sf-list { list-style: none; display: grid; gap: 13px; }
.sf-list li {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    font-size: 15px;
    color: var(--ink);
    line-height: 1.45;
}
.sf-list li svg {
    width: 18px; height: 18px;
    color: var(--accent-deep);
    flex-shrink: 0;
    margin-top: 1px;
}
@media (max-width: 820px) {
    .service-feature { grid-template-columns: 1fr; gap: 28px; padding: 32px 26px; }
}

/* Supporting services grid (reuses .pillars look with a number) */
.svc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.svc-card {
    background: var(--paper);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 28px 26px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.svc-card:hover {
    transform: translateY(-2px);
    border-color: var(--accent);
    box-shadow: var(--shadow-md);
}
.svc-card .svc-num {
    font-family: 'Fraunces', ui-serif, Georgia, serif;
    font-variation-settings: 'opsz' 48, 'SOFT' 60, 'wght' 600;
    font-size: 22px;
    color: var(--accent-deep);
    margin-bottom: 14px;
}
.svc-card h3 {
    font-size: 18px;
    letter-spacing: -0.015em;
    margin-bottom: 8px;
    color: var(--ink);
}
.svc-card p {
    font-size: 14.5px;
    color: var(--ink-2);
    line-height: 1.55;
}
@media (max-width: 820px) {
    .svc-grid { grid-template-columns: 1fr; }
}

/* "See the work" proof link, reuses product-strip pattern */
.proof-link {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 22px;
    align-items: center;
    background: var(--sand);
    border: 1px solid var(--border);
    border-radius: var(--r-card);
    padding: 26px 30px;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s, transform .2s;
    max-width: 720px;
    margin: 0 auto;
}
.proof-link:hover { border-color: var(--accent); transform: translateY(-1px); color: inherit; }
.proof-link h3 { font-size: 19px; letter-spacing: -0.02em; margin-bottom: 4px; color: var(--ink); }
.proof-link p { font-size: 14.5px; color: var(--ink-2); margin: 0; }
.proof-link .pl-arrow { color: var(--accent-deep); font-size: 22px; }
@media (max-width: 520px) {
    .proof-link { padding: 22px; }
    .proof-link .pl-arrow { display: none; }
}

/* Homepage "work with me" pillar */
.consult-band {
    background: linear-gradient(160deg, var(--sand) 0%, var(--cream) 100%);
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 48px 52px;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 40px;
    align-items: center;
}
.consult-band .cb-eyebrow {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--accent-deep);
    margin-bottom: 14px;
    display: block;
}
.consult-band h2 {
    font-size: clamp(26px, 3.2vw, 38px);
    letter-spacing: -0.025em;
    line-height: 1.12;
    margin-bottom: 14px;
}
.consult-band p { font-size: 16px; color: var(--ink-2); line-height: 1.6; margin: 0; }
.consult-band .cb-cta { display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 820px) {
    .consult-band { grid-template-columns: 1fr; gap: 26px; padding: 36px 30px; }
    .consult-band .cb-cta { flex-direction: row; flex-wrap: wrap; }
}

/* ============================================================
   Print friendliness
   ============================================================ */
@media print {
    nav, footer.site-footer, .nav-cta, body::before { display: none; }
    body { background: #fff; color: #000; }
    .article { max-width: 100%; padding: 0; }
}
