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

:root {
    --bg: #fff;
    --bg2: #f7f7f7;
    --bg3: #efefef;
    --inv: #000;
    --inv2: #111;
    --text: #000;
    --text2: #262626;
    --text3: #5e5e5e;
    --text4: #8a8a8a;
    --border: #c4c4c4;
    --border2: #9a9a9a;
    --ok: #22c55e;
    --warn: #f59e0b;
    --err: #ef4444;
    --font: 'Inter', -apple-system, 'Segoe UI', sans-serif;
    --mono: 'JetBrains Mono', monospace;
    --ease: .18s ease;
    --nav-bg: rgba(255,255,255,.92);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg: #0a0a0a;
        --bg2: #111;
        --bg3: #1a1a1a;
        --inv: #fff;
        --inv2: #e5e5e5;
        --text: #fff;
        --text2: #d4d4d4;
        --text3: #a3a3a3;
        --text4: #666;
        --border: #2a2a2a;
        --border2: #3a3a3a;
        --nav-bg: rgba(10,10,10,.92);
    }
    :root:not([data-theme="light"]) .ios .tile.active { border-color: #fff }
    :root:not([data-theme="light"]) .ios .tile .st.down .d { background: #333 }
    /* Keep inv-bg elements dark instead of flipping to white */
    :root:not([data-theme="light"]) .fb.dark,
    :root:not([data-theme="light"]) .pricing-plan.featured,
    :root:not([data-theme="light"]) .np-strip,
    :root:not([data-theme="light"]) .marquee-bar,
    :root:not([data-theme="light"]) .rt-config,
    :root:not([data-theme="light"]) .pwa-visual,
    :root:not([data-theme="light"]) .terminal,
    :root:not([data-theme="light"]) footer { background: #1a1a1a }
    :root:not([data-theme="light"]) .fb.dark:hover { background: #222 }
    :root:not([data-theme="light"]) .fb-tier.pro { border-color: #fff; color: #fff }
    :root:not([data-theme="light"]) .pricing-plan.featured { color: #fff }
    :root:not([data-theme="light"]) .pricing-plan.featured .pp-cta { background: #fff; color: #000; border-color: #fff }
    :root:not([data-theme="light"]) .pricing-plan.featured .pp-cta:hover { background: transparent; color: #fff }
    :root:not([data-theme="light"]) .rt-list .tag { color: var(--text3) }
}

:root[data-theme="dark"] {
    --bg: #0a0a0a;
    --bg2: #111;
    --bg3: #1a1a1a;
    --inv: #fff;
    --inv2: #e5e5e5;
    --text: #fff;
    --text2: #d4d4d4;
    --text3: #a3a3a3;
    --text4: #666;
    --border: #2a2a2a;
    --border2: #3a3a3a;
    --nav-bg: rgba(10,10,10,.92);
}

[data-theme="dark"] .ios .tile.active { border-color: #fff }
[data-theme="dark"] .ios .tile .st.down .d { background: #333 }
[data-theme="dark"] .fb.dark,
[data-theme="dark"] .pricing-plan.featured,
[data-theme="dark"] .np-strip,
[data-theme="dark"] .marquee-bar,
[data-theme="dark"] .rt-config,
[data-theme="dark"] .pwa-visual,
[data-theme="dark"] .terminal,
[data-theme="dark"] footer { background: #1a1a1a }
[data-theme="dark"] .fb.dark:hover { background: #222 }
[data-theme="dark"] .fb-tier.pro { border-color: #fff; color: #fff }
[data-theme="dark"] .pricing-plan.featured { color: #fff }
[data-theme="dark"] .pricing-plan.featured .pp-cta { background: #fff; color: #000; border-color: #fff }
[data-theme="dark"] .pricing-plan.featured .pp-cta:hover { background: transparent; color: #fff }
[data-theme="dark"] .rt-list .tag { color: var(--text3) }

html {
    scroll-behavior: smooth
}

body {
    font-family: var(--font);
    background: var(--bg);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden
}

a {
    color: inherit;
    text-decoration: none
}

.w {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px
}

@media(max-width:720px) {
    .w {
        padding: 0 24px
    }
}

.mono {
    font-family: var(--mono)
}

.dim {
    color: var(--text3)
}

/* NAV */
nav {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 60px;
    background: var(--nav-bg);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center
}

.nav-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px
}

@media(max-width:720px) {
    .nav-inner {
        padding: 0 24px
    }
}

.nav-logo {
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -.04em
}

.nav-logo sup {
    font-size: .42em;
    font-weight: 900;
    vertical-align: super;
    margin-left: 1px
}

.nav-links {
    display: flex;
    gap: 24px;
    align-items: center
}

.nav-links a {
    font-size: 13px;
    font-weight: 500;
    color: var(--text3);
    transition: color var(--ease)
}

.nav-links a:hover {
    color: var(--text)
}

.nav-gh {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--inv);
    color: var(--bg);
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border: 1px solid var(--inv);
    transition: all var(--ease)
}

.nav-gh:hover {
    background: var(--bg);
    color: var(--inv)
}

.nav-gh svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.theme-toggle {
    background: none;
    border: 1px solid var(--border);
    color: var(--text3);
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color var(--ease), border-color var(--ease);
    flex-shrink: 0
}

.theme-toggle:hover {
    color: var(--text);
    border-color: var(--text)
}

.theme-toggle svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

@media(max-width:680px) {
    .nav-links {
        display: none
    }
}

/* HERO */
.hero {
    min-height: calc(100vh - 60px);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    border-bottom: 1px solid var(--border)
}

@media(max-width:900px) {
    .hero {
        grid-template-columns: 1fr;
        min-height: auto
    }
}

.hero-left {
    padding: 80px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--border)
}

@media(max-width:900px) {
    .hero-left {
        padding: 60px 24px 40px;
        border-right: 0;
        border-bottom: 1px solid var(--border)
    }
}

.hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mono);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--text3);
    margin-bottom: 28px
}

.hero-kicker .live {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--ok)
}

.hero-kicker .live::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ok);
    box-shadow: 0 0 6px var(--ok);
    animation: blink 3s infinite;
    display: inline-block
}

@keyframes blink {
    0%, 100% { opacity: 1 }
    50% { opacity: .35 }
}

.hero-h1 {
    font-size: clamp(54px, 7vw, 104px);
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: .9;
    margin-bottom: 28px
}

.hero-h1 sup {
    font-size: .38em;
    font-weight: 900;
    vertical-align: super
}

.hero-tag {
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.25;
    margin-bottom: 20px;
    max-width: 22ch
}

.hero-tag em {
    font-style: italic;
    color: var(--text3);
    font-weight: 400
}

.hero-lede {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text2);
    max-width: 44ch;
    margin-bottom: 36px
}

.hero-cta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 48px
}

.cta-primary {
    background: var(--inv);
    color: var(--bg);
    padding: 14px 28px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    border: 1px solid var(--inv);
    transition: all var(--ease);
    display: inline-flex;
    align-items: center;
    gap: 8px
}

.cta-primary:hover {
    background: var(--bg);
    color: var(--inv)
}

.cta-ghost {
    padding: 14px 28px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    border: 1px solid var(--border);
    color: var(--text2);
    transition: all var(--ease)
}

.cta-ghost:hover {
    border-color: var(--inv);
    color: var(--inv)
}

.hero-proof {
    display: flex;
    gap: 0;
    border-top: 1px solid var(--border);
    padding-top: 28px;
    flex-wrap: wrap
}

.hero-proof-item {
    padding: 0 32px 0 0;
    margin-right: 32px;
    border-right: 1px solid var(--border)
}

.hero-proof-item:last-child {
    border-right: 0;
    padding-right: 0;
    margin-right: 0
}

.hero-proof-item .n {
    font-size: 28px;
    font-weight: 900;
    letter-spacing: -.03em;
    line-height: 1
}

.hero-proof-item .l {
    font-size: 11px;
    color: var(--text3);
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-top: 4px
}

.hero-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 32px;
    background: var(--bg2);
    position: relative;
    overflow: hidden
}

@media(max-width:900px) {
    .hero-right {
        padding: 40px 24px
    }
}

.hero-right::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);
    background-size: 32px 32px;
    opacity: .5;
    pointer-events: none
}

.ios {
    position: relative;
    z-index: 1;
    width: 300px;
    height: 620px;
    background: #000;
    border-radius: 44px;
    padding: 8px;
    box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .35), 0 0 0 1px #d8d8d8
}

.ios .island {
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    width: 96px;
    height: 28px;
    background: #000;
    border-radius: 18px;
    z-index: 5
}

.ios .home-ind {
    position: absolute;
    bottom: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: 110px;
    height: 4px;
    background: #000;
    border-radius: 2px;
    z-index: 5
}

.ios .scr {
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 36px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: var(--font)
}

.ios .stbar {
    height: 42px;
    padding: 14px 22px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 600;
    color: #000
}

.ios .stbar .icons {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #000
}

.ios .tbar {
    padding: 10px 18px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border)
}

.ios .tbar h2 {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.02em
}

.ios .tbar .live {
    font-family: var(--mono);
    font-size: 8.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ok);
    display: flex;
    align-items: center;
    gap: 5px
}

.ios .tbar .live::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ok);
    box-shadow: 0 0 5px var(--ok);
    animation: blink 2s infinite
}

.ios .body {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column
}

.ios .filt {
    display: flex;
    gap: 5px;
    padding: 10px 18px 6px
}

.ios .filt .pill {
    flex-shrink: 0;
    padding: 4px 9px;
    border: 1px solid var(--border);
    color: var(--text3);
    font-family: var(--mono);
    font-size: 8.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .1em
}

.ios .filt .pill.on {
    background: #000;
    color: #fff;
    border-color: #000
}

.ios .tiles {
    padding: 6px 18px 10px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1
}

.ios .tile {
    border: 1px solid var(--border);
    padding: 10px 12px
}

.ios .tile.active {
    border-color: #000;
    border-width: 1.5px
}

.ios .tile.down {
    opacity: .55
}

.ios .tile .hd {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px
}

.ios .tile .hd .n {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: -.01em
}

.ios .tile .hd .u {
    font-family: var(--mono);
    font-size: 8px;
    color: var(--text3);
    margin-top: 2px
}

.ios .tile .st {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: var(--mono);
    font-size: 8px;
    font-weight: 600
}

.ios .tile .st .d {
    width: 5px;
    height: 5px;
    border-radius: 50%
}

.ios .tile .st.up {
    color: var(--ok)
}

.ios .tile .st.up .d {
    background: var(--ok);
    box-shadow: 0 0 4px var(--ok);
    animation: blink 3s infinite
}

.ios .tile .st.down {
    color: var(--text4)
}

.ios .tile .st.down .d {
    background: #ddd
}

.ios .tile .mt {
    display: flex;
    justify-content: space-between;
    margin-top: 5px;
    font-family: var(--mono);
    font-size: 8.5px;
    color: var(--text3)
}

.ios .tile .mt b {
    color: #000;
    font-weight: 700
}

.ios .tile .spk {
    width: 100%;
    height: 13px;
    margin-top: 3px
}

.ios .tile .ft {
    display: flex;
    justify-content: space-between;
    padding-top: 6px;
    margin-top: 6px;
    border-top: 1px dashed #efefef;
    gap: 5px
}

.ios .tile .bdg {
    padding: 1px 5px;
    border: 1px solid;
    font-family: var(--mono);
    font-size: 7.5px;
    font-weight: 600;
    letter-spacing: .04em
}

.ios .tile .bdg.ok {
    border-color: var(--ok);
    color: var(--ok)
}

.ios .tile .bdg.warn {
    border-color: var(--warn);
    color: var(--warn)
}

.ios .tile .bdg.dim {
    border-color: #ccc;
    color: #888
}

.ios .np {
    padding: 9px 18px;
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-columns: 32px 1fr auto;
    gap: 9px;
    align-items: center;
    background: var(--bg2)
}

.ios .np .cv {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, #c0593b 0%, #7a3220 50%, #1f0e08 100%);
    position: relative
}

.ios .np .cv::after {
    content: "";
    position: absolute;
    inset: 11px;
    border: 1px solid rgba(245, 230, 207, .5);
    border-radius: 50%
}

.ios .np .col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px
}

.ios .np .t {
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.ios .np .a {
    font-size: 8.5px;
    color: var(--text3);
    font-family: var(--mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.ios .np .fmt {
    font-family: var(--mono);
    font-size: 7.5px;
    font-weight: 700;
    border: 1px solid var(--ok);
    color: var(--ok);
    padding: 1px 4px
}

.ios .tab {
    display: flex;
    justify-content: space-around;
    padding: 6px 4px 16px;
    border-top: 1px solid var(--border)
}

.ios .tab .it {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    font-family: var(--mono);
    font-size: 7.5px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text4);
    flex: 1;
    padding: 4px 0
}

.ios .tab .it.on {
    color: #000
}

.ios .tab .it svg {
    width: 15px;
    height: 15px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round
}

.ios .tab .it.on svg {
    stroke-width: 2.2
}

/* MARQUEE */
.marquee-bar {
    background: var(--inv);
    color: #9a9a9a;
    padding: 13px 0;
    border-bottom: 1px solid #2a2a2a;
    overflow: hidden
}

.marquee-track {
    display: inline-flex;
    white-space: nowrap;
    animation: marquee 38s linear infinite
}

.marquee-track span {
    font-family: var(--mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .2em;
    padding: 0 28px
}

.marquee-track .sep {
    opacity: .25
}

@keyframes marquee {
    from { transform: translateX(0) }
    to { transform: translateX(-50%) }
}

/* PULL */
.pull {
    padding: 90px 48px;
    border-bottom: 1px solid var(--border);
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 60px;
    align-items: start
}

@media(max-width:720px) {
    .pull {
        padding: 60px 24px;
        grid-template-columns: 1fr;
        gap: 20px
    }
}

.pull-label {
    font-family: var(--mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--text4);
    padding-top: 10px;
    border-top: 1px solid var(--border)
}

.pull-q {
    font-size: clamp(26px, 3.4vw, 46px);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.18;
    color: var(--text)
}

.pull-q em {
    font-style: italic;
    color: var(--text3);
    font-weight: 400
}

/* SECTIONS */
.section {
    padding: 100px 48px;
    border-bottom: 1px solid var(--border)
}

@media(max-width:720px) {
    .section {
        padding: 60px 24px
    }
}

.section.alt {
    background: var(--bg2)
}

.section-label {
    font-family: var(--mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .24em;
    color: var(--text4);
    margin-bottom: 16px
}

.section-title {
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: .95;
    margin-bottom: 24px
}

.section-title em {
    font-style: italic;
    font-weight: 400;
    color: var(--text3)
}

.section-sub {
    font-size: 17px;
    color: var(--text3);
    line-height: 1.6;
    max-width: 62ch;
    margin-bottom: 56px
}

/* NOW PLAYING STRIP */
.np-strip {
    background: var(--inv);
    color: #fff;
    padding: 40px 48px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

@media(max-width:720px) {
    .np-strip {
        padding: 40px 24px;
        grid-template-columns: 1fr;
        gap: 28px
    }
}

.np-meta {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.np-meta .label {
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: #555
}

.np-meta .track-name {
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 900;
    letter-spacing: -.03em;
    line-height: 1.1
}

.np-meta .track-artist {
    font-size: 16px;
    color: #666;
    margin-top: 4px
}

.np-meta .service-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    border: 1px solid #2a2a2a;
    padding: 5px 10px;
    color: #555;
    margin-top: 8px;
}

.np-meta .service-badge .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--warn);
    box-shadow: 0 0 6px var(--warn)
}

.np-visual {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.np-bar {
    display: flex;
    gap: 3px;
    align-items: flex-end;
    height: 60px
}

.np-bar-col {
    flex: 1;
    background: #222;
    border-radius: 1px;
    animation: dance var(--dur) ease-in-out infinite alternate;
}

@keyframes dance {
    from { transform: scaleY(.2) }
    to { transform: scaleY(1) }
}

.np-bar-col:nth-child(1) { --dur: 0.6s }
.np-bar-col:nth-child(2) { --dur: 0.9s; animation-delay: .1s }
.np-bar-col:nth-child(3) { --dur: 0.7s; animation-delay: .2s }
.np-bar-col:nth-child(4) { --dur: 1.1s; animation-delay: .05s }
.np-bar-col:nth-child(5) { --dur: 0.8s; animation-delay: .15s }
.np-bar-col:nth-child(6) { --dur: 0.65s; animation-delay: .25s }
.np-bar-col:nth-child(7) { --dur: 1.0s; animation-delay: .08s }
.np-bar-col:nth-child(8) { --dur: 0.75s; animation-delay: .18s }
.np-bar-col:nth-child(9) { --dur: 0.85s; animation-delay: .3s }
.np-bar-col:nth-child(10) { --dur: 0.7s; animation-delay: .12s }
.np-bar-col:nth-child(11) { --dur: 0.95s; animation-delay: .22s }
.np-bar-col:nth-child(12) { --dur: 0.6s; animation-delay: .06s }

.np-bar-col.active {
    background: var(--warn)
}

.np-chain {
    display: flex;
    align-items: center;
    gap: 0;
    font-family: var(--mono);
    font-size: 10px;
    color: #444;
    text-transform: uppercase;
    letter-spacing: .1em;
    flex-wrap: wrap;
}

.np-chain .node {
    border: 1px solid #2a2a2a;
    padding: 5px 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.np-chain .node.active {
    border-color: var(--warn);
    color: var(--warn)
}

.np-chain .node.bitperfect {
    border-color: var(--ok);
    color: var(--ok)
}

.np-chain .arr {
    padding: 0 4px;
    color: #333
}

/* FEATURES BENTO */
.feat-bento {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border)
}

.fb {
    background: var(--bg);
    padding: 36px 32px;
    position: relative
}

.fb:hover {
    background: var(--bg2)
}

.fb.span2 {
    grid-column: span 2
}

.fb.span3 {
    grid-column: span 3
}

.fb.span4 {
    grid-column: span 4
}

.fb.dark {
    background: var(--inv);
    color: #fff
}

.fb.dark:hover {
    background: var(--inv2)
}

.fb.dark .fb-icon {
    border-color: #3a3a3a;
    color: #9a9a9a
}

.fb.dark h3 {
    color: #fff
}

.fb.dark p {
    color: #c4c4c4
}

.fb.dark .fb-chip {
    border-color: #3a3a3a;
    color: #9a9a9a
}

@media(max-width:900px) {
    .fb.span2,
    .fb.span3,
    .fb.span4 {
        grid-column: span 6
    }
}

.fb-tier {
    position: absolute;
    top: 18px;
    right: 20px;
    font-family: var(--mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: .16em;
    padding: 3px 7px;
    border: 1px solid
}

.fb-tier.pro {
    border-color: #000;
    color: #000
}

.fb-tier.starter {
    border-color: var(--text4);
    color: var(--text3)
}

.fb.dark .fb-tier.pro {
    border-color: #fff;
    color: #fff
}

.fb-icon {
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text3);
    margin-bottom: 20px
}

.fb-icon svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round
}

.fb h3 {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin-bottom: 10px;
    line-height: 1.25
}

.fb p {
    font-size: 13px;
    color: var(--text2);
    line-height: 1.7
}

.fb.dark p {
    color: #c4c4c4
}

.fb-chip {
    display: inline-block;
    margin-top: 16px;
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .16em;
    border: 1px solid var(--border);
    padding: 3px 7px;
    color: var(--text4)
}

/* PIPELINE */
.pipeline-frame {
    border: 1px solid var(--border);
    padding: 32px 24px 24px;
    background: var(--bg);
    overflow-x: auto
}

.pipeline-frame svg {
    display: block;
    width: 100%;
    max-width: 1000px;
    height: auto;
    margin: 0 auto
}

.pn rect {
    fill: #fff;
    stroke: var(--border);
    stroke-width: 1
}

.pn rect.active-r {
    fill: rgb(245 158 11 / .06);
    stroke: var(--warn)
}

.pn rect.bp-r {
    fill: rgb(34 197 94 / .06);
    stroke: var(--ok)
}

.pn text {
    fill: var(--text);
    font-family: var(--font);
    font-size: 11px;
    font-weight: 700
}

.pn text.sub {
    font-size: 9px;
    fill: var(--text3);
    font-weight: 400
}

.pn text.active-t {
    fill: var(--warn)
}

.pn text.bp-t {
    fill: var(--ok)
}

.pl {
    stroke: var(--border2);
    stroke-width: 1.5;
    fill: none;
    stroke-dasharray: 4 3
}

.pl.active {
    stroke: var(--warn);
    stroke-width: 2;
    stroke-dasharray: none
}

.pl.bp {
    stroke: var(--ok);
    stroke-width: 2;
    stroke-dasharray: none
}

.pipeline-legend {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 16px;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .12em
}

.pipeline-legend span {
    display: flex;
    align-items: center;
    gap: 7px
}

.pipeline-legend .sw {
    width: 18px;
    height: 2px;
    display: inline-block
}

.pipeline-legend .sw.dashed {
    background: none;
    border-bottom: 2px dashed var(--border2)
}

.pipeline-legend .sw.active {
    background: var(--warn)
}

.pipeline-legend .sw.bp {
    background: var(--ok)
}

/* RT / SYSTEMD section */
.rt-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 0;
    border: 1px solid var(--border)
}

@media(max-width:820px) {
    .rt-grid {
        grid-template-columns: 1fr
    }
}

.rt-col {
    padding: 36px 32px;
    border-right: 1px solid var(--border)
}

.rt-col:last-child {
    border-right: 0
}

@media(max-width:820px) {
    .rt-col {
        border-right: 0;
        border-bottom: 1px solid var(--border)
    }
}

.rt-col h3 {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.02em;
    margin-bottom: 14px
}

.rt-col p {
    font-size: 14px;
    color: var(--text2);
    line-height: 1.7;
    margin-bottom: 24px
}

.rt-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0
}

.rt-list li {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px;
    font-size: 13px;
    color: var(--text2);
    padding: 11px 0;
    border-bottom: 1px solid var(--border);
    align-items: baseline
}

.rt-list li:last-child {
    border-bottom: 0
}

.rt-list .tag {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 600
}

.rt-config {
    background: var(--inv);
    color: #d4d4d4;
    padding: 24px 24px 20px;
    font-family: var(--mono);
    font-size: 12px;
    line-height: 1.9;
    height: 100%
}

.rt-config .cmt {
    color: #7a7a7a
}

.rt-config .k {
    color: var(--warn)
}

.rt-config .v {
    color: #fff
}

.rt-config .ok {
    color: var(--ok)
}

/* STATS DETAIL */
.detail-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 1px solid var(--border)
}

@media(max-width:720px) {
    .detail-cols {
        grid-template-columns: 1fr
    }
}

.detail-col {
    padding: 40px 32px;
    border-right: 1px solid var(--border)
}

.detail-col:last-child {
    border-right: 0
}

@media(max-width:720px) {
    .detail-col {
        border-right: 0;
        border-bottom: 1px solid var(--border)
    }
}

.detail-col .n {
    font-size: 56px;
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1;
    margin-bottom: 8px
}

.detail-col h4 {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 10px;
    letter-spacing: -.01em
}

.detail-col p {
    font-size: 13px;
    color: var(--text2);
    line-height: 1.7
}

.detail-col .n-unit {
    font-size: 18px;
    color: var(--text3);
    font-weight: 400
}

/* MOBILE / PWA */
.pwa-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid var(--border)
}

@media(max-width:820px) {
    .pwa-grid {
        grid-template-columns: 1fr
    }
}

.pwa-text {
    padding: 48px 40px
}

.pwa-text h3 {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.02em;
    margin-bottom: 18px;
    line-height: 1.15
}

.pwa-text p {
    font-size: 14px;
    color: var(--text2);
    line-height: 1.7;
    margin-bottom: 14px
}

.pwa-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 18px
}

.pwa-list .item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
    color: var(--text2)
}

.pwa-list .item:last-child {
    border-bottom: 0
}

.pwa-list .tag {
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 600;
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .12em
}

.pwa-visual {
    background: var(--inv);
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-left: 1px solid var(--border);
    position: relative;
    overflow: hidden
}

@media(max-width:820px) {
    .pwa-visual {
        border-left: 0;
        border-top: 1px solid var(--border);
        padding: 48px 24px
    }
}

.pwa-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 24px 24px
}

.pwa-phone {
    position: relative;
    width: 220px;
    background: #fff;
    border-radius: 30px;
    padding: 8px;
    box-shadow: 0 24px 60px -10px rgba(0, 0, 0, .4)
}

.pwa-phone .island {
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    width: 74px;
    height: 20px;
    background: #000;
    border-radius: 12px;
    z-index: 5
}

.pwa-phone .scr {
    background: #fff;
    border-radius: 22px;
    aspect-ratio: 9/16;
    padding: 36px 14px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.pwa-phone .row1 {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    font-weight: 700;
    color: #000;
    margin-bottom: 4px
}

.pwa-phone .h {
    font-size: 14px;
    font-weight: 900;
    letter-spacing: -.03em
}

.pwa-phone .d {
    font-family: var(--mono);
    font-size: 7px;
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .1em;
    display: flex;
    align-items: center;
    gap: 4px
}

.pwa-phone .d::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ok);
    box-shadow: 0 0 4px var(--ok);
    animation: blink 3s infinite
}

.pwa-phone .face {
    border: 1px solid var(--border);
    padding: 14px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-top: 14px
}

.pwa-phone .face svg {
    width: 42px;
    height: 42px;
    stroke: #000;
    fill: none;
    stroke-width: 1.3;
    stroke-linecap: round;
    stroke-linejoin: round
}

.pwa-phone .face .lbl {
    font-family: var(--mono);
    font-size: 7.5px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #000
}

.pwa-phone .face .sub {
    font-family: var(--mono);
    font-size: 6.5px;
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .14em
}

.pwa-phone .toast {
    background: #000;
    color: #fff;
    padding: 8px 10px;
    margin-top: auto;
    display: flex;
    gap: 8px;
    align-items: center
}

.pwa-phone .toast svg {
    width: 14px;
    height: 14px;
    stroke: #f59e0b;
    fill: none;
    stroke-width: 1.8;
    flex-shrink: 0
}

.pwa-phone .toast .t {
    font-size: 8px;
    font-weight: 700
}

.pwa-phone .toast .ts {
    font-family: var(--mono);
    font-size: 6.5px;
    color: #bcbcbc;
    margin-top: 1px
}

/* SETUP / TERMINAL */
.setup-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start
}

@media(max-width:820px) {
    .setup-inner {
        grid-template-columns: 1fr
    }
}

.setup-lede {
    font-size: 16px;
    color: var(--text2);
    line-height: 1.7;
    margin-bottom: 32px
}

.setup-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0
}

.setup-list li {
    display: flex;
    align-items: baseline;
    gap: 16px;
    font-size: 14px;
    color: var(--text2);
    padding: 12px 0;
    border-bottom: 1px solid var(--border)
}

.setup-list li:last-child {
    border-bottom: 0
}

.setup-list .tag {
    font-family: var(--mono);
    font-size: 9px;
    color: var(--text3);
    min-width: 80px;
    text-transform: uppercase;
    letter-spacing: .12em
}

.terminal {
    background: var(--inv);
    padding: 28px 28px 24px;
    position: relative
}

.terminal::before {
    content: "INSTALL";
    position: absolute;
    top: 16px;
    right: 20px;
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .2em;
    color: #7a7a7a
}

.terminal code {
    font-family: var(--mono);
    font-size: 12.5px;
    line-height: 1.9;
    color: #bcbcbc;
    display: block;
    word-break: break-all
}

.terminal .cmt {
    color: #7a7a7a
}

.terminal .cmd {
    color: #e8e8e8;
    font-weight: 600
}

.terminal .url {
    color: var(--ok)
}

.terminal .flag {
    color: var(--warn)
}

.platforms {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 1px solid var(--border);
    margin-top: 28px;
    background: var(--border)
}

.platform {
    background: var(--bg);
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px
}

.platform .name {
    font-size: 13px;
    font-weight: 700
}

.platform .detail {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--text3)
}

/* PRICING */
.pricing-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    border: 1px solid var(--border);
    margin-top: 0
}

@media(max-width:820px) {
    .pricing-grid {
        grid-template-columns: 1fr
    }
}

.pricing-plan {
    padding: 42px 32px;
    display: flex;
    flex-direction: column;
    gap: 0;
    border-right: 1px solid var(--border)
}

.pricing-plan:last-child {
    border-right: 0
}

@media(max-width:820px) {
    .pricing-plan {
        border-right: 0;
        border-bottom: 1px solid var(--border)
    }

    .pricing-plan:last-child {
        border-bottom: 0
    }
}

.pricing-plan.featured {
    background: var(--inv);
    color: #fff
}

.pricing-plan.featured .pp-border {
    border-color: #3a3a3a
}

.pricing-plan.featured .pp-row {
    border-color: #262626;
    color: #d4d4d4
}

.pricing-plan.featured .pp-row .ck {
    color: var(--ok)
}

.pricing-plan.featured .pp-period,
.pricing-plan.featured .pp-tier {
    color: #9a9a9a
}

.pricing-plan.featured .pp-desc {
    color: #bcbcbc
}

.pricing-plan.featured .pp-row b {
    color: #fff
}

.pp-tier {
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--text4);
    margin-bottom: 18px
}

.pp-price {
    font-size: 50px;
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: 1;
    margin-bottom: 6px
}

.pp-price .currency {
    font-size: 24px;
    font-weight: 700;
    vertical-align: top;
    margin-right: 4px
}

.pp-period {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .16em;
    margin-bottom: 22px
}

.pp-desc {
    font-size: 13.5px;
    color: var(--text2);
    line-height: 1.65;
    margin-bottom: 0
}

.pp-border {
    border-top: 1px solid var(--border);
    padding-top: 20px;
    padding-bottom: 24px;
    margin: 24px 0 0
}

.pp-rows {
    display: flex;
    flex-direction: column;
    gap: 0
}

.pp-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 13px;
    color: var(--text2);
    padding: 8px 0;
    border-bottom: 1px solid var(--border)
}

.pp-row:last-child {
    border-bottom: 0
}

.pp-row .ck {
    color: var(--ok);
    font-weight: 700;
    font-size: 11px;
    min-width: 14px;
    flex-shrink: 0
}

.pp-row .na {
    color: var(--text4);
    min-width: 14px;
    flex-shrink: 0
}

.pp-cta {
    margin-top: auto;
    padding: 13px 24px;
    text-align: center;
    border: 1px solid var(--inv);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    transition: all var(--ease);
    cursor: pointer;
    display: block
}

.pp-cta:hover {
    background: var(--inv);
    color: var(--bg)
}

.pricing-plan.featured .pp-cta {
    border-color: #fff;
    color: #000;
    background: #fff
}

.pricing-plan.featured .pp-cta:hover {
    background: transparent;
    color: #fff
}

.pricing-note {
    margin-top: 36px;
    padding: 20px 24px;
    border: 1px solid var(--border);
    background: var(--bg);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 24px;
    align-items: start
}

@media(max-width:720px) {
    .pricing-note {
        grid-template-columns: 1fr
    }
}

.pricing-note .lbl {
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--text4);
    white-space: nowrap
}

.pricing-note .txt {
    font-size: 13px;
    color: var(--text2);
    line-height: 1.65
}

/* HOW TO PURCHASE */
.howto {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid var(--border);
    margin-top: 48px
}

@media(max-width:720px) {
    .howto {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:480px) {
    .howto {
        grid-template-columns: 1fr
    }
}

.howto-step {
    padding: 24px;
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 8px
}

.howto-step:last-child {
    border-right: 0
}

@media(max-width:720px) {
    .howto-step:nth-child(2) {
        border-right: 0
    }

    .howto-step:nth-child(1),
    .howto-step:nth-child(2) {
        border-bottom: 1px solid var(--border)
    }
}

.howto-step .n {
    font-family: var(--mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--text4);
    letter-spacing: .2em
}

.howto-step .t {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.3
}

.howto-step .d {
    font-size: 12px;
    color: var(--text3);
    line-height: 1.5
}

/* FOOTER */
footer {
    background: var(--inv);
    color: #fff;
    padding: 64px 48px 40px
}

@media(max-width:720px) {
    footer {
        padding: 48px 24px 32px
    }
}

.footer-top {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 48px;
    border-bottom: 1px solid #1a1a1a
}

@media(max-width:820px) {
    .footer-top {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:480px) {
    .footer-top {
        grid-template-columns: 1fr
    }
}

.footer-brand .logo {
    font-size: 24px;
    font-weight: 900;
    letter-spacing: -.04em;
    margin-bottom: 14px
}

.footer-brand .logo sup {
    font-size: .42em;
    vertical-align: super
}

.footer-brand .tagline {
    font-size: 14px;
    color: #bcbcbc;
    line-height: 1.65;
    max-width: 30ch;
    margin-bottom: 20px
}

.footer-brand .version {
    font-family: var(--mono);
    font-size: 10px;
    color: #7a7a7a;
    text-transform: uppercase;
    letter-spacing: .16em
}

.footer-col h4 {
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: #7a7a7a;
    margin-bottom: 18px
}

.footer-col a {
    display: block;
    font-size: 13px;
    color: #bcbcbc;
    margin-bottom: 11px;
    transition: color var(--ease)
}

.footer-col a:hover {
    color: #fff
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 28px;
    font-family: var(--mono);
    font-size: 9px;
    color: #9a9a9a;
    text-transform: uppercase;
    letter-spacing: .14em
}

.footer-bottom a {
    color: #9a9a9a;
    transition: color var(--ease)
}

.footer-bottom a:hover {
    color: #fff
}

/* FAQ */
.faq { max-width: 720px; margin: 0 auto; }

.faq-item { border-bottom: 1px solid var(--border); }

.faq-item:first-child { border-top: 1px solid var(--border); }

.faq-item input[type="checkbox"] { display: none; }

.faq-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
    gap: 16px;
    user-select: none;
}

.faq-label svg {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    stroke: var(--text3);
    transition: transform var(--ease);
}

.faq-item input:checked ~ .faq-label svg { transform: rotate(45deg); }

.faq-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .22s ease;
}

.faq-item input:checked ~ .faq-body { grid-template-rows: 1fr; }

.faq-body-inner {
    overflow: hidden;
    font-size: 14px;
    line-height: 1.7;
    color: var(--text3);
    padding-bottom: 0;
    transition: padding-bottom .22s ease;
}

.faq-item input:checked ~ .faq-body .faq-body-inner { padding-bottom: 20px; }

/* Hero carousel */
.hero-carousel {
    position: relative;
    width: 100%;
    max-width: 380px;
    aspect-ratio: 1419 / 2796;
    margin: 0 auto;
}

.hero-screenshot {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity .7s ease;
    filter: drop-shadow(0 32px 64px rgba(0,0,0,.18));
}

.hero-screenshot.active { opacity: 1; }

.hero-dots {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin-top: 16px;
}

.hero-dots .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--border);
    cursor: pointer;
    transition: background var(--ease);
}

.hero-dots .dot.active { background: var(--text); }

/* PWA screenshot */
.pwa-screenshot {
    width: 100%;
    max-width: 280px;
    height: auto;
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 24px 48px rgba(0,0,0,.16));
}

/* Hero carousel controls */
.hero-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.hero-ctrl {
    width: 32px;
    height: 32px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    transition: background var(--ease), border-color var(--ease);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.hero-ctrl:hover {
    background: var(--bg2);
    border-color: var(--text);
}

.hero-ctrl svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hero-ctrl .ic-pause rect,
.hero-ctrl .ic-play polygon { fill: currentColor; stroke: none; }
.hero-ctrl .ic-play { display: none; }
#heroPlay.paused .ic-pause { display: none; }
#heroPlay.paused .ic-play { display: inline; }

/* Coming soon ribbon */
.ribbon {
    position: fixed;
    top: 36px;
    right: -42px;
    z-index: 1000;
    background: var(--warn);
    color: #000;
    font-family: var(--mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.6;
    padding: 6px 52px;
    transform: rotate(45deg);
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

@keyframes ribbon-shake {
    0%   { transform: rotate(45deg) translateX(0); }
    15%  { transform: rotate(45deg) translateX(-8px); }
    30%  { transform: rotate(45deg) translateX(8px); }
    45%  { transform: rotate(45deg) translateX(-6px); }
    60%  { transform: rotate(45deg) translateX(6px); }
    75%  { transform: rotate(45deg) translateX(-3px); }
    90%  { transform: rotate(45deg) translateX(3px); }
    100% { transform: rotate(45deg) translateX(0); }
}

.ribbon.shake { animation: ribbon-shake .6s ease; }

.cta-soon {
    position: relative;
}

.cta-soon::after {
    content: 'Coming soon';
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--warn);
    white-space: nowrap;
}

/* HOW IT COMPARES */
.cmp-scroll {
    margin-top: 32px;
    overflow-x: auto;
    border: 1px solid var(--border);
    background: var(--bg);
}

.cmp {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}

.cmp th, .cmp td {
    padding: 14px 16px;
    text-align: center;
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    vertical-align: middle;
}

.cmp th {
    font-family: var(--mono);
    font-size: var(--font-size-xxs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    background: var(--bg2);
    color: var(--text2);
    border-bottom-width: 2px;
}

.cmp td.cmp-cap, .cmp th.cmp-cap {
    text-align: left;
    color: var(--text2);
    font-weight: 500;
    background: var(--bg2);
    min-width: 220px;
}

.cmp tr:last-child td { border-bottom: 0; }
.cmp td:last-child, .cmp th:last-child { border-right: 0; }

.cmp .cmp-ag {
    background: var(--accent-primary, var(--warn));
    color: #000;
    font-weight: 600;
    border-right-color: var(--warn);
}

.cmp tr:hover td:not(.cmp-ag):not(.cmp-cap) { background: var(--bg2); }

.cmp .cmp-yes { color: var(--ok); font-weight: 700; }
.cmp .cmp-no { color: var(--text4); }
.cmp .cmp-part { color: var(--warn); font-size: var(--font-size-xs); }

.cmp .cmp-ag.cmp-yes,
.cmp .cmp-ag.cmp-no,
.cmp .cmp-ag.cmp-part { color: #000; }

.cmp-note {
    margin-top: 12px;
    font-family: var(--mono);
    font-size: var(--font-size-xxs);
    color: var(--text3);
    text-transform: uppercase;
    letter-spacing: .08em;
}

@media (max-width: 720px) {
    .cmp { font-size: var(--font-size-xs); }
    .cmp th, .cmp td { padding: 10px 12px; }
}

/* LAYERS DIAGRAM */
.layers {
    margin: 40px 0 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
}

.layer {
    display: grid;
    grid-template-columns: 90px 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 18px 24px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-left: 4px solid var(--border);
    transition: all var(--ease);
}

.layer.ag {
    border-left-color: var(--warn);
    background: var(--bg);
}

.layer-tag {
    font-family: var(--mono);
    font-size: var(--font-size-xxs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--text3);
}

.layer.ag .layer-tag { color: var(--warn); }

.layer-name {
    font-size: var(--font-size-md);
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
}

.layer-sub {
    font-size: var(--font-size-xs);
    color: var(--text3);
    margin-top: 4px;
}

.layer > div:nth-child(2) {
    display: flex;
    flex-direction: column;
}

.layer-mark {
    font-family: var(--mono);
    font-size: var(--font-size-xxs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--warn);
    white-space: nowrap;
}

.layer-mark.dim {
    color: var(--text4);
    font-weight: 500;
}

.layers-takeaway {
    max-width: 880px;
    margin: 24px auto 0;
    padding: 20px 24px;
    background: var(--bg);
    border-left: 4px solid var(--warn);
    border: 1px solid var(--border);
    border-left-width: 4px;
    border-left-color: var(--warn);
}

.layers-takeaway p {
    font-size: var(--font-size-sm);
    line-height: 1.6;
    color: var(--text2);
    margin: 0;
}

@media (max-width: 720px) {
    .layer {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 18px;
    }
    .layer-mark { white-space: normal; }
}
