/* ==========================================================================
   SciEspresso site stylesheet
   Tokens mirror the app's search-first redesign (see design handoff).
   One stylesheet for every page; no per-page <style> blocks.
   ========================================================================== */

:root {
    /* Surfaces */
    --paper: #FBFAF7;
    --surface: #FFFFFF;

    /* Ink */
    --ink: #171412;
    --ink-2: #4A443E;
    --ink-3: #6B645C;

    /* Accents */
    --blue: #0B3D91;
    --blue-tint: rgba(11, 61, 145, 0.05);
    --electric: #33C9FF;
    --brass: #C5A059;
    --brass-text: #7A5A16;
    --brass-tint: rgba(197, 160, 89, 0.09);
    --brass-border: rgba(197, 160, 89, 0.55);

    /* Lines */
    --hairline: rgba(0, 0, 0, 0.07);
    --border: rgba(0, 0, 0, 0.09);
    --border-strong: rgba(0, 0, 0, 0.16);

    /* Type */
    --serif: "Newsreader", Georgia, "Times New Roman", serif;
    --sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

    --measure: 1080px;
    --pad: 28px;
}

@media (prefers-color-scheme: dark) {
    :root {
        --paper: #121217;
        --surface: #1A1A21;
        --ink: #E0E0E0;
        --ink-2: #BDBDC4;
        --ink-3: #9A968F;
        --blue: #85E0FF;
        --blue-tint: rgba(133, 224, 255, 0.07);
        --brass-text: #DFBA76;
        --hairline: rgba(255, 255, 255, 0.09);
        --border: rgba(255, 255, 255, 0.12);
        --border-strong: rgba(255, 255, 255, 0.2);
    }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img, video, picture { max-width: 100%; }

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }

.wrap { max-width: var(--measure); margin: 0 auto; padding: 0 var(--pad); }

.skip {
    position: absolute;
    left: -9999px;
}
.skip:focus {
    left: 16px; top: 12px;
    z-index: 200;
    background: var(--surface);
    border: 1px solid var(--blue);
    border-radius: 8px;
    padding: 8px 14px;
    font-weight: 600;
}

/* --------------------------------------------------------------- type ---- */

h1, h2, h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.01em; }

h1 {
    font-size: clamp(2.05rem, 4.6vw, 3.15rem);
    line-height: 1.14;
    text-wrap: balance;
}

h2 {
    font-size: clamp(1.6rem, 3.2vw, 2.1rem);
    line-height: 1.2;
    text-wrap: balance;
}

h3 { font-size: 1.16rem; line-height: 1.3; }

p { text-wrap: pretty; }

.lede {
    font-size: clamp(1.03rem, 1.6vw, 1.17rem);
    line-height: 1.55;
    color: var(--ink-2);
    max-width: 62ch;
}

.label {
    font-family: var(--mono);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ink-3);
}

.meta { font-family: var(--mono); font-size: 0.7rem; color: var(--ink-3); }

.section-head {
    display: flex;
    align-items: baseline;
    gap: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 34px;
    flex-wrap: wrap;
}
.section-head .label { flex: 0 0 auto; padding-top: 6px; }
.section-head h2 { flex: 1 1 340px; }
.section-head p { flex: 1 1 320px; color: var(--ink-3); font-size: 0.95rem; max-width: 46ch; }
.section-head-icon { flex: 0 0 auto; width: 72px; height: 72px; object-fit: contain; align-self: center; order: 5; margin-left: auto; }

/* ---------------------------------------------------------------- nav ---- */

.nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background: color-mix(in srgb, var(--paper) 92%, transparent);
    backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--border);
}

.nav-inner {
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 12px 0;
    flex-wrap: wrap;
}

.nav-logo { height: 34px; width: auto; display: block; }

.nav-links {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
}

.nav-links a {
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
}
.nav-links a:hover { color: var(--blue); text-decoration: none; }
.nav-links a.cta {
    color: var(--surface);
    background: var(--blue);
    border-radius: 8px;
    padding: 9px 15px;
    letter-spacing: 0.08em;
}
@media (prefers-color-scheme: dark) {
    .nav-links a.cta { color: #121217; }
}
.nav-links a.cta:hover { opacity: 0.88; color: var(--surface); }
@media (prefers-color-scheme: dark) {
    .nav-links a.cta:hover { color: #121217; }
}

/* ------------------------------------------------------------ buttons ---- */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--sans);
    font-size: 0.94rem;
    font-weight: 600;
    border-radius: 10px;
    padding: 14px 22px;
    border: 1px solid transparent;
    cursor: pointer;
}
.btn:hover { text-decoration: none; }

.btn-primary { background: var(--blue); color: var(--surface); }
.btn-primary:hover { opacity: 0.88; color: var(--surface); }
@media (prefers-color-scheme: dark) {
    .btn-primary { color: #121217; }
    .btn-primary:hover { color: #121217; }
}

.btn-outline {
    background: transparent;
    color: var(--blue);
    border-color: color-mix(in srgb, var(--blue) 40%, transparent);
}
.btn-outline:hover { background: var(--blue-tint); }

.btn-text { font-size: 0.9rem; font-weight: 500; color: var(--blue); }

.store-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.store-badge { height: 44px; width: auto; display: block; }
.store-badge:hover { opacity: 0.85; }

/* --------------------------------------------------------------- page ---- */

.section { padding: 76px 0; }
.section + .section { padding-top: 0; }
.section-rule { border-top: 1px solid var(--border); padding-top: 76px; }

.section-soft {
    background: color-mix(in srgb, var(--brass) 6%, var(--paper));
    border-radius: 22px;
    padding: 56px var(--pad);
    margin: 40px calc(-1 * var(--pad));
}
@media (prefers-color-scheme: dark) {
    .section-soft { background: color-mix(in srgb, var(--brass) 6%, var(--surface)); }
}

/* --------------------------------------------------------------- hero ---- */

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
    gap: 56px;
    align-items: start;
    padding: 68px 0 76px;
}

.hero h1 { margin: 16px 0 18px; }
.hero .lede { margin-bottom: 28px; }
.hero-note { margin-top: 16px; font-size: 0.88rem; color: var(--ink-3); }

html { scroll-behavior: smooth; }

/* ---------------------------------------------- paper specimen (card) ---- */

.specimen {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
}

.specimen-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 16px;
    border-bottom: 1px solid var(--border);
    background: var(--blue-tint);
}
.specimen-bar .label { letter-spacing: 0.1em; }

.paper-row { padding: 16px; border-bottom: 1px solid var(--hairline); }
.paper-row:last-child { border-bottom: 0; }

.paper-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
    flex-wrap: wrap;
}

.accent-bar {
    width: 3px;
    height: 11px;
    border-radius: 2px;
    background: var(--electric);
    flex: 0 0 auto;
}

.journal {
    font-family: var(--mono);
    font-size: 0.63rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--blue);
}

.paper-title {
    font-family: var(--serif);
    font-size: 1.04rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--ink);
}

.tag-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 11px; }

.tag {
    font-family: var(--mono);
    font-size: 0.6rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-2);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    padding: 3px 6px;
}
.tag-quiet { border-color: var(--hairline); color: var(--ink-3); }
.tag-n { text-transform: none; }

.paper-body { padding: 16px; }
.paper-body .label { display: block; margin-bottom: 9px; letter-spacing: 0.1em; }
.paper-body p { font-size: 0.95rem; line-height: 1.6; color: var(--ink); }

.paper-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    border-top: 1px solid var(--hairline);
    flex-wrap: wrap;
}

/* ---------------------------------------------------- specimen tabs ---- */

.tab-input { position: absolute; opacity: 0; pointer-events: none; }

.tab-nav {
    display: flex;
    gap: 2px;
    padding: 10px 16px 0;
    border-bottom: 1px solid var(--hairline);
}

.tab-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--mono);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--ink-3);
    padding: 9px 14px;
    border-radius: 8px 8px 0 0;
    cursor: pointer;
    border: 1px solid transparent;
    border-bottom: none;
    transform: translateY(1px);
}
.tab-label:hover { color: var(--ink); }

#tab-summary:checked ~ .tab-nav label[for="tab-summary"],
#tab-audio:checked ~ .tab-nav label[for="tab-audio"] {
    color: var(--blue);
    background: var(--paper);
    border-color: var(--hairline);
}

.tab-panel { display: none; }
#tab-summary:checked ~ #panel-summary { display: block; }
#tab-audio:checked ~ #panel-audio { display: block; }

.audio-mock {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 16px;
    border-bottom: 1px solid var(--hairline);
}

.audio-icon {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid var(--border);
    display: block;
}

.audio-body { flex: 1 1 auto; min-width: 0; }
.audio-body .label { display: block; margin-bottom: 9px; letter-spacing: 0.08em; }

.waveform { display: flex; align-items: flex-end; gap: 3px; height: 26px; margin-bottom: 8px; }
.waveform span {
    flex: 1 1 auto;
    background: color-mix(in srgb, var(--blue) 45%, var(--border-strong));
    border-radius: 2px;
    min-width: 2px;
}
.waveform span:nth-child(4n+1) { height: 40%; }
.waveform span:nth-child(4n+2) { height: 90%; background: var(--blue); }
.waveform span:nth-child(4n+3) { height: 60%; }
.waveform span:nth-child(4n) { height: 25%; }
.waveform span:nth-child(-n+7) { background: var(--blue); }

.audio-scrub { display: flex; justify-content: space-between; }

/* --------------------------------------------------------------- flow ---- */

.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }

.step { padding: 0 28px; border-left: 1px solid var(--border); }
.step:first-child { padding-left: 0; border-left: 0; }
.step:last-child { padding-right: 0; }

.step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--blue-tint);
    margin-bottom: 16px;
}
.step-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: var(--blue);
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.step-n {
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--blue);
    letter-spacing: 0.08em;
    display: block;
    margin-bottom: 12px;
}
.step h3 { margin-bottom: 8px; }
.step p { color: var(--ink-3); font-size: 0.95rem; }

/* ----------------------------------------------------------- features ---- */

.features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }

.feature { background: var(--paper); padding: 26px 24px; }
.feature h3 { margin-bottom: 8px; }
.feature p { color: var(--ink-3); font-size: 0.95rem; }
.feature .meta { display: block; margin-top: 12px; color: var(--ink-3); }

/* ----------------------------------------------------------- coverage ---- */

.coverage {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

/* Topic art. The tiles carry their own cream field, so they need no fill. */
.topic-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 18px 14px;
    margin-bottom: 26px;
}
.topic img {
    width: 100%;
    max-width: 76px;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border: 1px solid var(--border);
    border-radius: 10px;
    display: block;
}
.topic figcaption {
    font-size: 0.8rem;
    line-height: 1.3;
    color: var(--ink-2);
    margin-top: 9px;
    max-width: 13ch;
}

.topic-featured {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}
.topic-card {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px;
    color: var(--ink);
}
.topic-card:hover { border-color: var(--blue); text-decoration: none; }
.topic-card img {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    object-fit: cover;
    border-radius: 9px;
    border: 1px solid var(--border);
}
.topic-card h3 { font-size: 1rem; margin-bottom: 6px; }
.topic-sample { font-size: 0.85rem; color: var(--ink-3); line-height: 1.5; }
.topic-sample .tag { margin-left: 4px; vertical-align: 1px; }

.topic-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.topic-pills .chip { font-size: 0.82rem; padding: 7px 13px; }

.area {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--paper);
    padding: 20px;
}
.area img {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    object-fit: cover;
    border: 1px solid var(--border);
    border-radius: 9px;
    display: block;
}
.area h3 { font-size: 1.02rem; margin-bottom: 3px; }
.area p { font-size: 0.88rem; color: var(--ink-3); }

.chip {
    font-size: 0.86rem;
    color: var(--ink);
    border: 1px solid var(--border-strong);
    border-radius: 999px;
    padding: 8px 14px;
    background: transparent;
}
a.chip:hover { background: var(--blue-tint); border-color: var(--blue); text-decoration: none; }

/* ------------------------------------------------------------ screens ---- */

.screens {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    padding: 24px 4px 26px;
    scroll-snap-type: x mandatory;
}

@media (min-width: 800px) {
    .screens { justify-content: center; }
}

.screen {
    flex: 0 0 232px;
    scroll-snap-align: start;
    transition: transform 0.25s ease;
}
.screen img {
    width: 100%;
    height: auto;
    display: block;
    border: 6px solid var(--surface);
    border-radius: 22px;
    box-shadow: 0 18px 36px -18px rgba(0, 0, 0, 0.35), 0 2px 0 var(--border);
}
.screen-tilt-left { transform: rotate(-4deg) translateY(10px); }
.screen-tilt-right { transform: rotate(4deg) translateY(10px); }
.screen-lift { transform: translateY(-6px); position: relative; z-index: 1; }
.screen-tilt-left:hover, .screen-tilt-right:hover, .screen-lift:hover { transform: translateY(-2px) scale(1.02); }
.screen figcaption {
    font-family: var(--mono);
    font-size: 0.68rem;
    color: var(--ink-3);
    margin-top: 10px;
    letter-spacing: 0.02em;
}

/* Intro clip is 16:9. aspect-ratio holds the box before the file loads;
   object-fit: contain keeps it from stretching if the clip is ever re-cut
   at another ratio. */
.video-shell {
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--paper);
    line-height: 0;
    max-width: 620px;
    margin-bottom: 26px;
}
.video-shell video {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    background: var(--paper);
    display: block;
}

/* ------------------------------------------------------------ pricing ---- */

.plans {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}

.plan {
    position: relative;
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    padding: 26px 24px;
    background: var(--surface);
}
.plan-featured { border: 1.5px solid var(--blue); background: var(--blue-tint); }

.plan-badge {
    position: absolute;
    top: -12px;
    left: 24px;
    background: var(--blue);
    color: var(--surface);
    font-family: var(--mono);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 5px 11px;
    border-radius: 999px;
}
@media (prefers-color-scheme: dark) { .plan-badge { color: #121217; } }

.plan-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.plan h3 { font-size: 1.3rem; }
.plan-price { font-family: var(--serif); font-size: 1.45rem; font-weight: 500; }
.plan-price small { font-family: var(--mono); font-size: 0.68rem; font-weight: 400; color: var(--ink-3); }
.plan-for { font-family: var(--mono); font-size: 0.68rem; color: var(--ink-3); letter-spacing: 0.03em; margin-bottom: 18px; }

.plan ul { list-style: none; }
.plan li {
    font-size: 0.94rem;
    color: var(--ink-2);
    padding: 11px 0 11px 26px;
    border-top: 1px solid var(--hairline);
    position: relative;
}
.plan li:first-child { border-top: 0; }
.plan li::before {
    content: "✓";
    position: absolute;
    left: 0; top: 10px;
    width: 17px; height: 17px;
    border-radius: 50%;
    font-size: 0.62rem;
    line-height: 17px;
    text-align: center;
    color: var(--surface);
    background: color-mix(in srgb, var(--ink) 55%, transparent);
}
@media (prefers-color-scheme: dark) {
    .plan li::before { color: #121217; }
}
.plan li.not-has {
    color: var(--ink-3);
}
.plan li.not-has::before {
    content: "–";
    background: transparent;
    border: 1px solid var(--border-strong);
    color: var(--ink-3);
}
.plan-featured li.has::before { background: var(--blue); }
.plan-featured li:first-child { color: var(--ink); font-weight: 500; }

.plan-note { font-family: var(--mono); font-size: 0.7rem; color: var(--ink-3); margin-top: 18px; }

/* -------------------------------------------------------------- trust ---- */

.split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.builders-img { width: 148px; height: auto; margin-bottom: 18px; display: block; }

.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

.member img {
    width: 176px;
    height: 176px;
    max-width: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    border: 1px solid var(--border);
    display: block;
    margin-bottom: 16px;
}
.member h3 { font-size: 1.1rem; margin-bottom: 2px; }
.member .role {
    font-family: var(--mono);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--brass-text);
    display: block;
    margin-bottom: 10px;
}
.member p { font-size: 0.92rem; color: var(--ink-3); }

.callout {
    border: 1px solid var(--brass-border);
    background: var(--brass-tint);
    border-radius: 12px;
    padding: 22px;
}
.callout h3 { margin-bottom: 8px; }
.callout p { font-size: 0.95rem; color: var(--ink-2); }

/* ------------------------------------------------------------- footer ---- */

.footer {
    border-top: 1px solid var(--border);
    padding: 52px 0 44px;
    margin-top: 76px;
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 0.8fr));
    gap: 36px;
    margin-bottom: 38px;
}

.footer-logo { height: 28px; width: auto; display: block; margin-bottom: 16px; }

.footer-disclaimer { font-size: 0.82rem; color: var(--ink-3); max-width: 48ch; }
.footer-disclaimer strong { color: var(--ink-2); }

.footer h4 {
    font-family: var(--mono);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-bottom: 14px;
}

.footer-col ul { list-style: none; display: grid; gap: 9px; }
.footer-col a { font-size: 0.9rem; color: var(--ink-2); }
.footer-col a:hover { color: var(--blue); }

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 22px;
    border-top: 1px solid var(--hairline);
    flex-wrap: wrap;
}
.footer-bottom .meta { color: var(--ink-3); }

.social { display: flex; gap: 10px; }
.social a {
    width: 36px; height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--ink-3);
}
.social a:hover { color: var(--blue); border-color: var(--blue); }
.social svg { width: 17px; height: 17px; fill: currentColor; }

/* --------------------------------------------------------------- doc ----- */
/* Legal pages and the deep-link interstitials */

.doc { max-width: 720px; margin: 0 auto; padding: 60px var(--pad) 20px; }
.doc h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin-bottom: 6px; }
.doc .updated { font-family: var(--mono); font-size: 0.72rem; color: var(--ink-3); margin-bottom: 34px; }
.doc h2 {
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin: 36px 0 12px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}
.doc p, .doc li { font-size: 0.97rem; color: var(--ink-2); margin-bottom: 12px; }
.doc strong { color: var(--ink); }
.doc ul { padding-left: 20px; }
.doc .caps { font-family: var(--mono); font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); }
.back-link { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; display: inline-block; margin-bottom: 28px; }

.interstitial {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px 24px;
    gap: 0;
}
.interstitial img.mark { height: 30px; width: auto; margin-bottom: 26px; }
.interstitial h1 { font-size: clamp(1.6rem, 4vw, 2.1rem); margin-bottom: 12px; }
.interstitial p { color: var(--ink-3); max-width: 44ch; margin-bottom: 28px; font-size: 0.97rem; }
.interstitial .btn-group { display: grid; gap: 10px; width: 100%; max-width: 320px; }
.interstitial .btn { width: 100%; }
.interstitial .footer-link { margin-top: 34px; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); }

/* ---------------------------------------------------------- responsive --- */

@media (max-width: 940px) {
    .hero { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-bottom: 60px; }
    .steps { grid-template-columns: minmax(0, 1fr); }
    .step { padding: 22px 0; border-left: 0; border-top: 1px solid var(--border); }
    .step:first-child { padding-top: 0; border-top: 0; }
    .split { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .footer-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
    .topic-featured { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
    :root { --pad: 20px; }
    .section { padding: 56px 0; }
    .section-rule { padding-top: 56px; }
    .features { grid-template-columns: minmax(0, 1fr); }
    .plans { grid-template-columns: minmax(0, 1fr); }
    .team { grid-template-columns: minmax(0, 1fr); gap: 30px; }

    .nav-inner { min-height: 60px; }
    .nav-links { gap: 14px; width: 100%; margin-left: 0; }
    .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .footer { margin-top: 56px; }
    .section-soft { padding: 40px var(--pad); margin: 28px 0; border-radius: 16px; }
    .screen-tilt-left, .screen-tilt-right, .screen-lift { transform: none; }
}
