/* ==========================================================================
   Nova Scripts — design system
   Monochrome by design: the brand is a white/ink tile, so hierarchy comes from
   type, spacing and light — never from colour. Status colours are functional only.
   ========================================================================== */

/* ── Fonts ─────────────────────────────────────────────────────────────── */
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(../fonts/geist-latin-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(../fonts/geist-latin-ext-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(../fonts/geist-mono-latin-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url(../fonts/geist-mono-latin-ext-wght-normal.woff2) format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── Tokens ────────────────────────────────────────────────────────────── */
:root {
    --bg: #08080a;
    --bg-raise: #0c0c0f;
    --surface: #111114;
    --surface-2: #16161a;
    --surface-3: #1e1e23;

    --line: rgb(255 255 255 / .07);
    --line-2: rgb(255 255 255 / .11);
    --line-3: rgb(255 255 255 / .2);

    --fg: #f4f4f1;
    --fg-2: #a6a6ae;
    --fg-3: #707079;
    --fg-4: #4a4a52;

    --paper: #ecedf0;
    --ink: #0a0b0d;

    --ok: #5ee38f;
    --warn: #f5c451;
    --err: #ff7a6b;

    --r-sm: 10px;
    --r: 14px;
    --r-lg: 20px;
    --r-xl: 28px;

    --font: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

    --ease: cubic-bezier(.16, 1, .3, 1);
    --ease-io: cubic-bezier(.65, 0, .35, 1);

    --container: 1240px;
    --gutter: clamp(16px, 4vw, 40px);
    --header-h: 68px;
    --section-y: clamp(88px, 10vw, 140px);

    color-scheme: dark;
}

/* ── Reset & base ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    background: var(--bg);
    scrollbar-color: var(--surface-3) var(--bg);
    scrollbar-width: thin;
}

body {
    min-height: 100vh;
    /* Film grain keeps large flat areas from looking synthetic. It is painted into the
       page background (not a fixed overlay), so scrolling never re-composites it. */
    background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    color: var(--fg-2);
    font: 400 15px/1.6 var(--font);
    letter-spacing: -.006em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: clip;
}

img, svg, video, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; }
h1, h2, h3, h4 { color: var(--fg); font-weight: 600; letter-spacing: -.035em; line-height: 1.1; text-wrap: balance; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }

::selection { background: var(--fg); color: var(--ink); }

:focus-visible {
    outline: 2px solid var(--fg);
    outline-offset: 3px;
    border-radius: 6px;
}

.i {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
/* Filled glyphs inside the sprite (styles apply to the referenced symbol content). */
symbol .fill { fill: currentColor; stroke: none; }

.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 200;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--fg);
    color: var(--ink);
    font-weight: 600;
    transform: translateY(-160%);
    transition: transform .3s var(--ease);
}
.skip-link:focus { transform: none; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }



/* ── Typography ────────────────────────────────────────────────────────── */
.mono { font-family: var(--mono); letter-spacing: 0; }
.muted { color: var(--fg-3); }

.display-1 {
    font-size: clamp(44px, 8.4vw, 124px);
    line-height: .9;
    letter-spacing: -.06em;
}
.display-2 {
    font-size: clamp(34px, 5vw, 68px);
    line-height: 1;
    letter-spacing: -.048em;
}
.display-2 .muted, .display-1 .muted, .hero__title .muted { color: var(--fg-3); }

/* SplitText line masks clip at the box edge; give accents (İ, Ğ) and descenders (ç, ş, g) room. */
.line-mask { padding-block: .1em .18em; margin-block: -.1em -.18em; }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    font: 500 12px/1 var(--mono);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.eyebrow .i { width: 14px; height: 14px; }
.eyebrow img { border-radius: 4px; }
.eyebrow__num {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--fg);
}
.eyebrow__num::after {
    content: '';
    width: 32px;
    height: 1px;
    background: var(--line-3);
}

.section-lead {
    margin-top: 20px;
    max-width: 44ch;
    font-size: 16px;
    color: var(--fg-2);
}
.section-lead + .link-arrow { margin-top: 28px; }

/* ── Layout ────────────────────────────────────────────────────────────── */
.container {
    width: 100%;
    max-width: calc(var(--container) + var(--gutter) * 2);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.section { padding-block: var(--section-y); }

.section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px 48px;
    margin-bottom: clamp(48px, 6vw, 80px);
}
.section-head h2 { max-width: 16ch; }
.section-head__side {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    max-width: 380px;
}

.site-main { position: relative; }
.section--flush { padding-top: 0; }

.cta-panel {
    padding: clamp(32px, 5vw, 64px);
    border: 1px solid var(--line);
    border-radius: var(--r-xl);
    background: radial-gradient(90% 120% at 100% 0%, rgb(255 255 255 / .05), transparent 60%);
}

/* ── Buttons & links ───────────────────────────────────────────────────── */
.btn {
    --h: 44px;
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: var(--h);
    padding: 0 18px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 12px;
    font: 500 14px/1 var(--font);
    letter-spacing: -.01em;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .3s, border-color .3s, color .3s, opacity .3s;
}
.btn .i { width: 16px; height: 16px; transition: transform .5s var(--ease); }
.btn:hover .i:last-child:not(:first-child) { transform: translateX(3px); }
.btn:disabled, .btn.is-disabled { opacity: .45; pointer-events: none; }

/* Label roll: the text slides out the top and its own shadow slides in from below. */
.btn__label {
    display: inline-block;
    text-shadow: 0 calc(var(--h) * .75) 0 currentColor;
    transition: transform .55s var(--ease);
}
.btn:hover .btn__label { transform: translateY(calc(var(--h) * -.75)); }

.btn--sm { --h: 36px; padding: 0 14px; border-radius: 10px; font-size: 13px; }
.btn--lg { --h: 52px; padding: 0 24px; border-radius: 14px; font-size: 15px; }
.btn--block { width: 100%; }

.btn--primary { background: var(--fg); color: var(--ink); }
.btn--primary:hover { background: #fff; }
.btn--ghost {
    background: rgb(255 255 255 / .03);
    border-color: var(--line-2);
    color: var(--fg);
}
.btn--ghost:hover { background: rgb(255 255 255 / .06); border-color: var(--line-3); }
.btn--danger { background: rgb(255 122 107 / .1); border-color: rgb(255 122 107 / .25); color: var(--err); }
.btn--danger:hover { background: rgb(255 122 107 / .16); }

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 4px;
    font-size: 14px;
    font-weight: 500;
    color: var(--fg);
    background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
    transition: background-size .5s var(--ease);
}
.link-arrow .i { width: 16px; height: 16px; transition: transform .5s var(--ease); }
.link-arrow:hover { background-size: 0 1px; background-position: 100% 100%; }
.link-arrow:hover .i { transform: translateX(4px); }

.icon-btn {
    position: relative;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    color: var(--fg);
    transition: background-color .25s, border-color .25s;
}
.icon-btn:hover { background: rgb(255 255 255 / .05); border-color: var(--line-3); }
.icon-btn__badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--fg);
    color: var(--ink);
    font: 600 10px/18px var(--mono);
    text-align: center;
    transition: transform .5s var(--ease);
}
.icon-btn__badge.is-empty { transform: scale(0); }
.icon-btn__badge.is-bump { animation: bump .6s var(--ease); }

/* ── Small pieces ──────────────────────────────────────────────────────── */
.pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 34px;
    padding: 4px 14px 4px 4px;
    border: 1px solid var(--line-2);
    border-radius: 999px;
    background: rgb(255 255 255 / .03);
    font-size: 13px;
    color: var(--fg-2);
    transition: border-color .3s, background-color .3s, color .3s;
}
.pill:hover { border-color: var(--line-3); color: var(--fg); background: rgb(255 255 255 / .05); }
.pill .i { width: 14px; height: 14px; transition: transform .5s var(--ease); }
.pill:hover .i { transform: translateX(3px); }
.pill__tag {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--fg);
    color: var(--ink);
    font: 600 10.5px/1 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 9px;
    border: 1px solid var(--line-2);
    border-radius: 7px;
    background: rgb(8 8 10 / .82);
    font: 500 10.5px/1 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fg);
}
.tag .i { width: 12px; height: 12px; stroke-width: 2.2; }
.tag--solid { background: var(--fg); border-color: var(--fg); color: var(--ink); }
.tag--code { text-transform: none; letter-spacing: 0; }

.chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 999px;
    font-size: 13px;
    color: var(--fg-2);
    white-space: nowrap;
    transition: background-color .3s, border-color .3s, color .3s;
}
.chip:hover { color: var(--fg); border-color: var(--line-3); }
.chip.is-active, .chip[aria-pressed='true'] { background: var(--fg); border-color: var(--fg); color: var(--ink); }
.chip__count { font: 500 11px var(--mono); opacity: .55; }

.dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fg-3);
    flex-shrink: 0;
}
.dot--live { position: relative; background: var(--ok); }
.dot--live::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--ok);
    opacity: 0;
}
/* Ambient loops run only while on screen (.is-on is toggled by app.js). */
.no-js .dot--live::after, .motion-off .dot--live::after, .dot--live.is-on::after { animation: live 2.2s var(--ease) infinite; }

.status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 24px;
    padding: 0 10px;
    border: 1px solid var(--line-2);
    border-radius: 999px;
    font: 500 10.5px/1 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fg-2);
    white-space: nowrap;
}
.status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status--paid, .status--active { color: var(--ok); border-color: rgb(94 227 143 / .25); background: rgb(94 227 143 / .06); }
.status--pending, .status--review, .status--disputed { color: var(--warn); border-color: rgb(245 196 81 / .25); background: rgb(245 196 81 / .06); }
.status--cancelled, .status--failed, .status--refunded, .status--revoked, .status--chargeback { color: var(--err); border-color: rgb(255 122 107 / .25); background: rgb(255 122 107 / .06); }

.price {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    font: 500 14px/1 var(--mono);
    color: var(--fg);
    white-space: nowrap;
}
.price s { font-size: 12px; color: var(--fg-4); }

.kbd {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid var(--line-2);
    border-bottom-width: 2px;
    border-radius: 6px;
    font: 500 11px var(--mono);
    color: var(--fg-2);
}

/* Cursor-following light on cards and panels. */
[data-spotlight] { position: relative; }
[data-spotlight]::before,
[data-spotlight]::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    transition: opacity .5s;
    z-index: 3;
}
[data-spotlight]::before {
    padding: 1px;
    background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgb(255 255 255 / .38), transparent 42%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}
[data-spotlight]::after {
    background: radial-gradient(520px circle at var(--mx, 50%) var(--my, 50%), rgb(255 255 255 / .045), transparent 45%);
}
[data-spotlight]:hover::before,
[data-spotlight]:hover::after { opacity: 1; }

/* ── Header ────────────────────────────────────────────────────────────── */
.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 60;
    height: var(--header-h);
    border-bottom: 1px solid transparent;
    transition: background-color .45s, border-color .45s, backdrop-filter .45s, transform .6s var(--ease);
    view-transition-name: site-header;
}
.site-header.is-scrolled {
    background: rgb(8 8 10 / .72);
    backdrop-filter: saturate(150%) blur(18px);
    -webkit-backdrop-filter: saturate(150%) blur(18px);
    border-color: var(--line);
}
.site-header__inner {
    display: flex;
    align-items: center;
    gap: 28px;
    height: 100%;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.035em;
    color: var(--fg-3);
}
.brand__mark {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    transition: transform .7s var(--ease);
}
.brand:hover .brand__mark { transform: rotate(-10deg) scale(1.06); }
.brand__word span { color: var(--fg); }

.nav { display: flex; gap: 2px; }
.nav__link {
    position: relative;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 14px;
    color: var(--fg-2);
    transition: color .25s;
}
.nav__link::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 3px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: 100% 50%;
    transition: transform .5s var(--ease);
}
.nav__link:hover { color: var(--fg); }
.nav__link:hover::after, .nav__link.is-active::after { transform: scaleX(1); transform-origin: 0 50%; }
.nav__link.is-active { color: var(--fg); }

.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

.lang-switch {
    display: flex;
    padding: 2px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    font: 500 11px/1 var(--mono);
}
.lang-switch a {
    padding: 7px 8px;
    border-radius: 8px;
    color: var(--fg-3);
    transition: color .25s, background-color .25s;
}
.lang-switch a:hover { color: var(--fg); }
.lang-switch a.is-active { background: var(--surface-3); color: var(--fg); }

.user-menu { position: relative; }
.user-menu__trigger {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    list-style: none;
    cursor: pointer;
    transition: border-color .25s;
}
.user-menu__trigger::-webkit-details-marker { display: none; }
.user-menu__trigger:hover, .user-menu[open] .user-menu__trigger { border-color: var(--line-3); }
.user-menu__trigger img { width: 100%; height: 100%; object-fit: cover; }
.avatar-initial { font-size: 13px; font-weight: 600; color: var(--fg); }
.user-menu__panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 244px;
    padding: 6px;
    border: 1px solid var(--line-2);
    border-radius: 16px;
    background: rgb(17 17 20 / .96);
    backdrop-filter: blur(16px);
    box-shadow: 0 30px 80px -20px rgb(0 0 0 / .8);
    animation: pop .35s var(--ease);
    transform-origin: 90% 0;
}
.user-menu__head {
    display: grid;
    gap: 2px;
    margin-bottom: 6px;
    padding: 10px 10px 12px;
    border-bottom: 1px solid var(--line);
}
.user-menu__head strong { color: var(--fg); font-size: 14px; font-weight: 600; }
.user-menu__head span { overflow: hidden; font-size: 12px; color: var(--fg-3); text-overflow: ellipsis; white-space: nowrap; }
.user-menu__panel a,
.user-menu__panel button {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 10px;
    border-radius: 9px;
    font-size: 13.5px;
    color: var(--fg-2);
    text-align: left;
    transition: background-color .2s, color .2s;
}
.user-menu__panel a:hover,
.user-menu__panel button:hover { background: var(--surface-3); color: var(--fg); }
.user-menu__panel .i { width: 16px; height: 16px; }

.burger {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 36px;
    height: 36px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
}
.burger span {
    width: 14px;
    height: 1.5px;
    background: var(--fg);
    transition: transform .5s var(--ease);
}
.burger[aria-expanded='true'] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.burger[aria-expanded='true'] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }

.scroll-progress {
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--fg));
    transform: scaleX(0);
    transform-origin: 0 50%;
    opacity: .5;
}

.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 55;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: calc(var(--header-h) + 32px) var(--gutter) calc(32px + env(safe-area-inset-bottom));
    background: var(--bg);
}
.mobile-menu__nav { display: flex; flex-direction: column; }
.mobile-menu__nav a {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    font-size: clamp(30px, 8vw, 44px);
    font-weight: 600;
    letter-spacing: -.05em;
    color: var(--fg);
}
.mobile-menu__nav a .mono { font-size: 12px; font-weight: 500; color: var(--fg-3); letter-spacing: .06em; }
.mobile-menu__nav a.is-active { color: var(--fg-3); }
.mobile-menu__foot { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mobile-menu__foot .lang-switch { grid-column: 1 / -1; justify-self: start; }

@media (max-width: 1120px) {
    .nav, .header-discord { display: none; }
    .burger { display: flex; }
}
@media (max-width: 560px) {
    .site-header .lang-switch, .header-login { display: none; }
    .brand__word { display: none; }
}

/* ── Preloader ─────────────────────────────────────────────────────────── */
.preloader {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
}
.intro-done .preloader, .no-js .preloader, .motion-off .preloader { display: none; }
.preloader__panel {
    position: absolute;
    left: 0;
    right: 0;
    height: 50.5%;
    background: var(--bg);
}
.preloader__panel--top { top: 0; border-bottom: 1px solid var(--line); }
.preloader__panel--bottom { bottom: 0; }
.preloader__center {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    perspective: 700px;
}
.preloader__mark {
    position: relative;
    width: 72px;
    height: 72px;
    transform-style: preserve-3d;
}
.preloader__face {
    position: absolute;
    inset: 0;
    border-radius: 18px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}
.preloader__face--light { transform: rotateY(180deg); }
.preloader__meta {
    display: flex;
    justify-content: space-between;
    width: 220px;
    font: 500 11px/1 var(--mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.preloader__count { color: var(--fg); font-variant-numeric: tabular-nums; }
.preloader__bar { width: 220px; height: 1px; overflow: hidden; background: var(--line-2); }
.preloader__bar span {
    display: block;
    height: 100%;
    background: var(--fg);
    transform: scaleX(0);
    transform-origin: 0 50%;
}

/* ── Hero ──────────────────────────────────────────────────────────────── */
.hero {
    position: relative;
    padding-top: calc(var(--header-h) + clamp(56px, 9vw, 120px));
    overflow: clip;
}
.hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--line) 1px, transparent 1px),
        linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 64px 64px;
    background-position: 50% -1px;
    mask-image: radial-gradient(ellipse 70% 55% at 50% 0%, #000 25%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 70% 55% at 50% 0%, #000 25%, transparent 75%);
}
.hero__beam {
    position: absolute;
    top: -38%;
    left: 50%;
    width: min(1200px, 140vw);
    height: 900px;
    transform: translateX(-50%);
    background: radial-gradient(closest-side, rgb(255 255 255 / .1), transparent);
}
.hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.hero__title {
    max-width: 12ch;
    margin-top: 32px;
    font-size: clamp(46px, 8.6vw, 128px);
    line-height: .9;
    letter-spacing: -.062em;
}
.hero__lead {
    max-width: 580px;
    margin-top: 30px;
    font-size: clamp(16px, 1.35vw, 18px);
    line-height: 1.6;
    color: var(--fg-2);
}
.hero__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 38px;
}
.hero__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 26px;
    margin-top: 44px;
    font-size: 11.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.hero__meta li { display: inline-flex; align-items: center; gap: 7px; }
.hero__meta .i { width: 13px; height: 13px; color: var(--fg-2); stroke-width: 2; }

.stage {
    margin-top: clamp(56px, 8vw, 104px);
    perspective: 1800px;
}
.stage__frame {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 7.4;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: var(--r-xl);
    background: radial-gradient(120% 90% at 50% 0%, #131317 0%, #09090b 62%);
    box-shadow:
        inset 0 1px 0 rgb(255 255 255 / .06),
        0 80px 140px -60px rgb(0 0 0 / .9);
    transform-origin: 50% 0;
    will-change: transform;
}
.stage__frame::before {
    content: '';
    position: absolute;
    top: 0;
    left: 12%;
    right: 12%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / .55), transparent);
    z-index: 2;
}
.stage__stars { position: absolute; inset: 0; width: 100%; height: 100%; }
.stage__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--line) 1px, transparent 1px),
        linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 48px 48px;
    background-position: 50% 50%;
    mask-image: radial-gradient(ellipse 55% 65% at 50% 50%, #000, transparent 85%);
    -webkit-mask-image: radial-gradient(ellipse 55% 65% at 50% 50%, #000, transparent 85%);
    opacity: .55;
}
.stage__spot {
    position: absolute;
    top: 45%;
    left: 50%;
    width: 1280px;
    height: 1280px;
    margin: -640px 0 0 -640px;
    background: radial-gradient(closest-side, rgb(255 255 255 / .075), transparent);
    pointer-events: none;
    will-change: transform;
}
.stage__lockup {
    position: relative;
    z-index: 1;
    will-change: transform;
    width: min(64%, 832px);
}
.stage__corner {
    position: absolute;
    z-index: 2;
    width: 14px;
    height: 14px;
    border: 0 solid var(--fg-3);
}
.stage__corner--tl { top: 18px; left: 18px; border-top-width: 1px; border-left-width: 1px; }
.stage__corner--tr { top: 18px; right: 18px; border-top-width: 1px; border-right-width: 1px; }
.stage__corner--bl { bottom: 18px; left: 18px; border-bottom-width: 1px; border-left-width: 1px; }
.stage__corner--br { bottom: 18px; right: 18px; border-bottom-width: 1px; border-right-width: 1px; }
.stage__label {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.stage__label--tl { top: 20px; left: 46px; }
.stage__label--tr { top: 20px; right: 46px; }
.stage__label--bl { bottom: 20px; left: 46px; }
.stage__label--br { bottom: 20px; right: 46px; }

@media (max-width: 760px) {
    .stage__frame { aspect-ratio: 4 / 3.2; border-radius: var(--r-lg); }
    .stage__lockup { width: 88%; }
    .stage__label--tr, .stage__label--br { display: none; }
}

/* ── Marquee ───────────────────────────────────────────────────────────── */
.marquee {
    margin-top: clamp(80px, 10vw, 140px);
    padding: 24px 0;
    overflow: hidden;
    border-block: 1px solid var(--line);
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee__track { display: flex; width: max-content; will-change: transform; }
.no-js .marquee__track, .motion-off .marquee__track { animation: marquee 50s linear infinite; }
.marquee__group { display: flex; flex-shrink: 0; align-items: center; }
.marquee__item {
    padding: 0 30px;
    font-size: clamp(18px, 2vw, 26px);
    font-weight: 500;
    letter-spacing: -.035em;
    white-space: nowrap;
    color: var(--fg-2);
}
.marquee__sep .i { width: 11px; height: 11px; color: var(--fg-4); }

/* ── Featured rail ─────────────────────────────────────────────────────── */
.featured { overflow: clip; }
.rail { position: relative; overflow: hidden; }
.rail__track {
    display: flex;
    align-items: stretch;
    gap: 20px;
    width: max-content;
    padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2));
}
.rail__item {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: clamp(300px, 34vw, 470px);
    flex-shrink: 0;
}
.rail__index { font-size: 11px; letter-spacing: .1em; color: var(--fg-3); }
.rail__more {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 10px;
    width: clamp(240px, 22vw, 320px);
    margin-top: 29px;
    padding: 28px;
    flex-shrink: 0;
    border: 1px dashed var(--line-3);
    border-radius: var(--r-lg);
    color: var(--fg);
    transition: background-color .4s, border-color .4s;
}
.rail__more:hover { background: rgb(255 255 255 / .03); border-style: solid; }
.rail__more .mono { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.rail__more strong { font-size: 30px; font-weight: 600; line-height: 1.02; letter-spacing: -.045em; }
.rail__more .i {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 28px;
    height: 28px;
    transition: transform .6s var(--ease);
}
.rail__more:hover .i { transform: translate(4px, -4px); }

@media (max-width: 900px), (hover: none) {
    .rail {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .rail::-webkit-scrollbar { display: none; }
    .rail__item, .rail__more { scroll-snap-align: center; }
    .rail__item { width: min(84vw, 420px); }
}

/* ── Product card ──────────────────────────────────────────────────────── */
.product-card { height: 100%; }
.product-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .025), rgb(255 255 255 / .008));
    transition: border-color .5s;
}
.product-card__link:hover { border-color: var(--line-2); }
.product-card__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
}
.product-card__media .cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.4s var(--ease);
}
.product-card__link:hover .cover { transform: scale(1.045); }
.product-card__flags { position: absolute; top: 14px; left: 14px; display: flex; gap: 6px; }
.product-card__resource {
    position: absolute;
    bottom: 12px;
    left: 14px;
    font-size: 11px;
    letter-spacing: .03em;
    color: var(--fg-3);
}
.product-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 10px;
    padding: 20px 20px 22px;
}
.product-card__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.product-card__name { font-size: 18px; letter-spacing: -.035em; }
.product-card__tagline {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.55;
    color: var(--fg-2);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.product-card--lg .product-card__body { padding: 24px 24px 26px; }
.product-card--lg .product-card__name { font-size: 22px; }

.fw-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.fw-list li {
    padding: 6px 8px;
    border: 1px solid var(--line-2);
    border-radius: 6px;
    font: 500 10.5px/1 var(--mono);
    letter-spacing: .04em;
    color: var(--fg-2);
}
.fw-list .fw-list__version { margin-left: auto; border-color: transparent; color: var(--fg-3); }

/*
 * Cover art only animates while hovered (or in the product hero while on screen).
 * The animation is declared only in those states: SVG transforms run on the main
 * thread, and Chrome keeps servicing even paused SVG animations every frame.
 */
.cover .cv-float,
.cover .cv-pulse,
.cover .cv-ping,
.cover .cv-progress {
    transform-box: fill-box;
    transform-origin: center;
}
.cover .cv-progress { transform-origin: left center; }
.cover .cv-dash { stroke-dasharray: 600; stroke-dashoffset: 0; transition: stroke-dashoffset 1.6s var(--ease); }
a:hover .cover .cv-float, .is-live .cover .cv-float { animation: cv-float 3.2s var(--ease-io) infinite alternate; }
a:hover .cover .cv-pulse, .is-live .cover .cv-pulse { animation: cv-pulse 1.6s ease-in-out infinite; }
a:hover .cover .cv-ping, .is-live .cover .cv-ping { animation: cv-ping 2.2s var(--ease) infinite; }
a:hover .cover .cv-progress, .is-live .cover .cv-progress { animation: cv-progress 3s var(--ease-io) infinite; }

/* ── Bento ─────────────────────────────────────────────────────────────── */
.bento {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.bento__card {
    display: flex;
    flex-direction: column;
    min-height: 380px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .03), rgb(255 255 255 / .008));
}
.bento__card--perf { grid-column: span 2; }
.bento__visual {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    min-height: 200px;
    padding: 28px 28px 0;
}
.bento__text { padding: 24px 28px 28px; }
.bento__text h3 { margin-bottom: 8px; font-size: 18px; }
.bento__text p { max-width: 48ch; font-size: 14.5px; color: var(--fg-2); }

.resmon__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    font-size: 12px;
    color: var(--fg-3);
}
.resmon__value { color: var(--fg-3); }
.resmon__value b {
    font: 600 clamp(40px, 5vw, 60px)/1 var(--font);
    letter-spacing: -.055em;
    color: var(--fg);
    font-variant-numeric: tabular-nums;
}
.resmon__chart { width: 100%; height: 140px; overflow: visible; }
.resmon__line { fill: none; stroke: var(--fg); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.resmon__baseline { stroke: var(--line-3); stroke-dasharray: 2 5; vector-effect: non-scaling-stroke; }
.resmon__scale {
    display: flex;
    justify-content: space-between;
    padding-top: 8px;
    font-size: 10px;
    color: var(--fg-4);
}

.fw-detect__screen {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgb(0 0 0 / .35);
    font-size: 12.5px;
    color: var(--fg-2);
}
.fw-detect__screen em { font-style: normal; color: #b5c7a4; }
.fw-detect__out { display: inline-flex; align-items: center; gap: 8px; }
.fw-detect__out b { font-weight: 500; color: var(--fg); }
.fw-detect__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.fw-detect__chips .chip { transition: background-color .5s var(--ease), color .5s, border-color .5s; }

.changelog-ticker {
    height: 200px;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    mask-image: linear-gradient(transparent, #000 22%, #000 78%, transparent);
    -webkit-mask-image: linear-gradient(transparent, #000 22%, #000 78%, transparent);
}
.changelog-ticker ul { display: flex; flex-direction: column; }
.changelog-ticker ul.is-running { animation: ticker 14s linear infinite; }
.changelog-ticker ul.is-paused { animation-play-state: paused; }
.changelog-ticker li {
    display: flex;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    color: var(--fg-2);
}
.changelog-ticker li .mono { min-width: 52px; font-size: 11.5px; color: var(--fg); }

.secure { gap: 8px; }
.secure__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgb(0 0 0 / .25);
    font-size: 12px;
    color: var(--fg-2);
}
.secure__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 6px;
    background: rgb(94 227 143 / .1);
    font: 500 10.5px/1 var(--mono);
    color: var(--ok);
}
.secure__badge--blocked { background: rgb(255 122 107 / .1); color: var(--err); }
.secure__badge .i { width: 11px; height: 11px; stroke-width: 2.4; }

@media (max-width: 980px) {
    .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .bento { grid-template-columns: minmax(0, 1fr); }
    .bento__card--perf { grid-column: auto; }
    .bento__card { min-height: 0; }
}

/* ── Code ──────────────────────────────────────────────────────────────── */
.code {
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: 14px;
    background: #0b0b0d;
}
.code__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 38px;
    padding: 0 6px 0 16px;
    border-bottom: 1px solid var(--line);
    font: 500 11px/1 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.code__copy {
    padding: 6px 10px;
    border-radius: 7px;
    font: 500 11px/1 var(--mono);
    letter-spacing: .04em;
    color: var(--fg-2);
    transition: background-color .2s, color .2s;
}
.code__copy:hover { background: var(--surface-3); color: var(--fg); }
.code__copy.is-copied { color: var(--ok); }
.code pre {
    padding: 18px 20px;
    overflow-x: auto;
    font: 13px/1.75 var(--mono);
    color: #d4d4ce;
    tab-size: 4;
}
.code--mini pre { padding: 18px; font-size: 12.5px; line-height: 1.7; }
.code code { font: inherit; }
.tk-comment { color: #5f5f68; font-style: italic; }
.tk-keyword { color: var(--fg); font-weight: 600; }
.tk-string { color: #b5c7a4; }
.tk-number, .tk-bool { color: #dbb97f; }
.tk-fn { color: #a9c2dc; }
.tk-prop { color: #cfcfd6; }

/* ── Install / terminal ────────────────────────────────────────────────── */
.install__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    align-items: center;
    gap: clamp(40px, 6vw, 96px);
}
.steps {
    display: flex;
    flex-direction: column;
    margin: 44px 0 32px;
    border-top: 1px solid var(--line);
}
.steps__item {
    display: flex;
    gap: 24px;
    padding: 22px 0;
    border-bottom: 1px solid var(--line);
}
.steps__num { padding-top: 3px; font-size: 12px; color: var(--fg-3); }
.steps__item h3 { margin-bottom: 6px; font-size: 17px; }
.steps__item p { font-size: 14.5px; color: var(--fg-2); }

.terminal {
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: var(--r-lg);
    background: #0a0a0c;
    box-shadow: 0 50px 120px -40px rgb(0 0 0 / .95);
}
.terminal__bar {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 44px;
    padding: 0 16px;
    border-bottom: 1px solid var(--line);
    background: rgb(255 255 255 / .02);
    font-size: 12px;
    color: var(--fg-3);
}
.terminal__dots { display: flex; gap: 6px; }
.terminal__dots i {
    width: 10px;
    height: 10px;
    border: 1px solid var(--line-2);
    border-radius: 50%;
    background: var(--surface-3);
}
.terminal__status { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; font-size: 11px; }
.terminal__body {
    min-height: 336px;
    padding: 22px 22px 26px;
    overflow-x: auto;
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--fg-2);
    white-space: pre;
}
.terminal__line { display: block; }
.terminal__line--cmd { color: var(--fg); }
.terminal__line--ok { color: var(--ok); }
.terminal__line--dim { color: var(--fg-4); }
.terminal__cursor {
    display: inline-block;
    width: 8px;
    height: 15px;
    vertical-align: -3px;
    background: var(--fg);
}
.terminal__cursor.is-on { animation: blink 1.1s steps(1) infinite; }

@media (max-width: 960px) {
    .install__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── Stats ─────────────────────────────────────────────────────────────── */
.stats { border-block: 1px solid var(--line); }
.stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.stats__item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 52px 28px;
    border-left: 1px solid var(--line);
}
.stats__item:first-child { border-left: 0; padding-left: 0; }
.stats__value {
    font-size: clamp(40px, 5vw, 76px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.055em;
    color: var(--fg);
    font-variant-numeric: tabular-nums;
}
.stats__value small { margin-left: 4px; font-size: .38em; letter-spacing: 0; color: var(--fg-3); }
.stats__label { font-size: 13px; color: var(--fg-3); }

@media (max-width: 760px) {
    .stats__grid { grid-template-columns: 1fr 1fr; }
    .stats__item { padding: 32px 20px; }
    .stats__item:nth-child(odd) { border-left: 0; padding-left: 0; }
    .stats__item:nth-child(n + 3) { border-top: 1px solid var(--line); }
}

/* ── Accordion ─────────────────────────────────────────────────────────── */
.faq-group { padding: 48px 0; border-top: 1px solid var(--line); }
.faq-group__title { font-size: clamp(28px, 3vw, 40px); letter-spacing: -.045em; }
.faq-cta { margin-top: 48px; }
.faq-preview__grid {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(40px, 6vw, 96px);
}
.accordion { border-top: 1px solid var(--line); }
.accordion__item { border-bottom: 1px solid var(--line); }
.accordion__item summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 0;
    list-style: none;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -.02em;
    color: var(--fg);
    cursor: pointer;
}
.accordion__item summary::-webkit-details-marker { display: none; }
.accordion__icon { position: relative; width: 14px; height: 14px; margin-top: 7px; flex-shrink: 0; }
.accordion__icon::before,
.accordion__icon::after {
    content: '';
    position: absolute;
    top: 6px;
    left: 0;
    width: 14px;
    height: 1.5px;
    background: var(--fg-2);
    transition: transform .5s var(--ease);
}
.accordion__icon::after { transform: rotate(90deg); }
.accordion__item[open]:not(.is-closing) .accordion__icon::after { transform: rotate(0); }
.accordion__body { overflow: hidden; }
.accordion__inner { padding: 0 48px 26px 0; }
.accordion__inner p { font-size: 15px; line-height: 1.75; color: var(--fg-2); }

@media (max-width: 900px) {
    .faq-preview__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.site-footer {
    position: relative;
    margin-top: var(--section-y);
    overflow: hidden;
    border-top: 1px solid var(--line);
}
.page-home .site-footer { margin-top: 0; }
.footer-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    padding: clamp(72px, 9vw, 128px) 0;
    border-bottom: 1px solid var(--line);
}
.footer-cta h2 { max-width: 15ch; }
.footer-cta__side { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.footer-cta__invite { font-size: 12px; color: var(--fg-4); }
.discord-stats { display: flex; gap: 20px; font-size: 13px; color: var(--fg-3); }
.discord-stats span { display: inline-flex; align-items: center; gap: 7px; }
.discord-stats b { font-weight: 600; color: var(--fg); font-variant-numeric: tabular-nums; }

.footer-grid {
    display: grid;
    grid-template-columns: 1.6fr repeat(4, 1fr);
    gap: 40px;
    padding: 64px 0;
}
.footer-brand p { max-width: 32ch; margin-top: 18px; font-size: 14px; color: var(--fg-3); }
.footer-col { display: flex; flex-direction: column; gap: 10px; }
.footer-col h3 {
    margin-bottom: 8px;
    font: 500 11.5px/1 var(--mono);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.footer-col a { width: fit-content; font-size: 14px; color: var(--fg-2); transition: color .2s; }
.footer-col a:hover { color: var(--fg); }
.footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    padding: 24px 0;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    color: var(--fg-4);
}
.footer-wordmark {
    display: flex;
    justify-content: center;
    gap: .2em;
    margin-bottom: -.12em;
    padding-top: 16px;
    font-size: clamp(56px, 16.2vw, 270px);
    font-weight: 600;
    line-height: .8;
    letter-spacing: -.068em;
    white-space: nowrap;
    user-select: none;
}
.footer-wordmark span {
    display: inline-block;
    background: linear-gradient(180deg, rgb(244 244 241 / .92) 10%, rgb(244 244 241 / 0) 92%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.footer-wordmark span + span { background-image: linear-gradient(180deg, rgb(112 112 121 / .9) 10%, rgb(112 112 121 / 0) 92%); }

@media (max-width: 900px) {
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-brand { grid-column: 1 / -1; }
}

/* ── Page chrome ───────────────────────────────────────────────────────── */
.page-hero {
    position: relative;
    padding-top: calc(var(--header-h) + clamp(56px, 8vw, 112px));
    padding-bottom: clamp(40px, 5vw, 64px);
}
.page-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}
.page-hero__bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--line) 1px, transparent 1px),
        linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(ellipse 60% 80% at 20% 0%, #000 20%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse 60% 80% at 20% 0%, #000 20%, transparent 70%);
}
.page-hero__bg::after {
    content: '';
    position: absolute;
    top: -60%;
    left: -10%;
    width: 900px;
    height: 900px;
    background: radial-gradient(closest-side, rgb(255 255 255 / .07), transparent);
}
.page-title {
    font-size: clamp(42px, 6.6vw, 96px);
    line-height: .94;
    letter-spacing: -.058em;
}
.page-title--narrow { max-width: 15ch; }
.page-title--sm { font-size: clamp(36px, 5vw, 68px); }
.page-lead { max-width: 58ch; margin-top: 22px; font-size: clamp(16px, 1.3vw, 18px); color: var(--fg-2); }
.page-hero__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; }

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 28px;
    font: 500 12px/1 var(--mono);
    letter-spacing: .04em;
    color: var(--fg-3);
}
.breadcrumbs a:hover { color: var(--fg); }
.breadcrumbs .i { width: 12px; height: 12px; color: var(--fg-4); }

/* ── Forms ─────────────────────────────────────────────────────────────── */
.form { display: flex; flex-direction: column; gap: 18px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field label, .field__label { font-size: 13px; font-weight: 500; color: var(--fg-2); }
.field__hint { font-size: 12.5px; color: var(--fg-3); }
.field__error { font-size: 12.5px; color: var(--err); }
.field__top { display: flex; justify-content: space-between; align-items: baseline; }
.field__top a { font-size: 12.5px; color: var(--fg-3); }
.field__top a:hover { color: var(--fg); }

.input,
.field input:not([type='checkbox']):not([type='radio']),
.field select,
.field textarea {
    width: 100%;
    height: 46px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgb(255 255 255 / .025);
    font-size: 14.5px;
    color: var(--fg);
    transition: border-color .25s, background-color .25s, box-shadow .25s;
}
.field textarea { height: auto; min-height: 150px; padding: 12px 14px; line-height: 1.6; resize: vertical; }
.input::placeholder, .field input::placeholder, .field textarea::placeholder { color: var(--fg-4); }
.input:hover, .field input:hover, .field select:hover, .field textarea:hover { border-color: var(--line-3); }
.input:focus, .field input:focus, .field select:focus, .field textarea:focus {
    outline: none;
    border-color: rgb(255 255 255 / .35);
    background: rgb(255 255 255 / .04);
    box-shadow: 0 0 0 4px rgb(255 255 255 / .06);
}
.field.has-error input, .field.has-error textarea { border-color: rgb(255 122 107 / .5); }

select.input, .field select {
    padding-right: 40px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6a6ae' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-position: right 12px center;
    background-size: 16px;
    background-repeat: no-repeat;
    cursor: pointer;
}
select option { background: var(--surface); color: var(--fg); }

.checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--fg-2);
    cursor: pointer;
}
.checkbox a { color: var(--fg); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-3); }
.checkbox input {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex-shrink: 0;
    border: 1px solid var(--line-3);
    border-radius: 5px;
    appearance: none;
    cursor: pointer;
    transition: background-color .2s, border-color .2s;
}
.checkbox input:checked { background: var(--fg); border-color: var(--fg); }
.checkbox input:checked::after {
    content: '';
    width: 9px;
    height: 5px;
    border-bottom: 2px solid var(--ink);
    border-left: 2px solid var(--ink);
    transform: translate(0, -1px) rotate(-45deg);
}

.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 600px) {
    .form-row { grid-template-columns: 1fr; }
}

/* ── Panels & tables ───────────────────────────────────────────────────── */
.panel {
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .022), rgb(255 255 255 / .006));
}
.panel + .panel { margin-top: 20px; }
.panel__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--line);
}
.panel__head h2 { font-size: 17px; letter-spacing: -.025em; }
.panel__head p { margin-top: 2px; font-size: 13px; color: var(--fg-3); }
.panel__body { padding: 24px; }

.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th {
    padding: 12px 24px;
    border-bottom: 1px solid var(--line);
    font: 500 11px/1 var(--mono);
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
    color: var(--fg-3);
    white-space: nowrap;
}
.data-table td {
    padding: 16px 24px;
    border-bottom: 1px solid var(--line);
    color: var(--fg-2);
    vertical-align: middle;
}
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr { transition: background-color .2s; }
.data-table tbody tr:hover { background: rgb(255 255 255 / .02); }
.data-table .num { text-align: right; font-family: var(--mono); color: var(--fg); white-space: nowrap; }
.data-table th.num { color: var(--fg-3); }
.data-table a { color: var(--fg); }
.data-table a:hover { text-decoration: underline; text-underline-offset: 3px; }
.table-sub { margin-top: 3px; font-size: 12px; color: var(--fg-3); }
.table-scroll { overflow-x: auto; }

.empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 64px 24px;
    text-align: center;
}
.empty__icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border: 1px solid var(--line-2);
    border-radius: 14px;
    color: var(--fg-2);
}
.empty h3 { font-size: 18px; }
.empty p { max-width: 40ch; font-size: 14.5px; color: var(--fg-3); }

/* ── Store ─────────────────────────────────────────────────────────────── */
.store-toolbar {
    position: sticky;
    top: var(--header-h);
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
    padding: 14px 0;
}
/* Transparent at rest, so the page grain shows through. Once stuck under the header it
   gets the header's frosted glass, full-bleed, and reads as a second header row. */
.store-toolbar::before {
    content: '';
    position: absolute;
    inset: 0 calc(50% - 50vw);
    z-index: -1;
    border-bottom: 1px solid var(--line);
    background: rgb(8 8 10 / .72);
    backdrop-filter: saturate(150%) blur(18px);
    -webkit-backdrop-filter: saturate(150%) blur(18px);
    opacity: 0;
    transition: opacity .35s;
    pointer-events: none;
}
.store-toolbar.is-stuck::before { opacity: 1; }
.store-search { position: relative; display: block; flex: 1 1 240px; max-width: 320px; }
.store-search .input { height: 40px; padding-left: 40px; border-radius: 999px; }
.store-search .i { position: absolute; top: 11px; left: 14px; width: 18px; height: 18px; color: var(--fg-3); pointer-events: none; }
.store-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.store-toolbar__end { display: flex; gap: 8px; margin-left: auto; }
.store-toolbar select.input { width: auto; height: 40px; border-radius: 999px; font-size: 13px; }
.store-count { font: 500 12px var(--mono); color: var(--fg-3); }

.product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
@media (max-width: 1040px) { .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .product-grid { grid-template-columns: minmax(0, 1fr); }
    .store-toolbar__end { margin-left: 0; width: 100%; }
    .store-toolbar__end select { flex: 1; }
    .store-search { max-width: none; }
}

/* ── Product page ──────────────────────────────────────────────────────── */
.product-page { position: relative; padding-top: calc(var(--header-h) + clamp(32px, 5vw, 64px)); }
.product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    align-items: start;
    gap: clamp(32px, 4vw, 56px);
}
.product-head { display: flex; flex-direction: column; gap: 18px; }
.product-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.product-title { font-size: clamp(40px, 5.8vw, 84px); line-height: .94; letter-spacing: -.058em; }
.product-tagline { max-width: 44ch; font-size: clamp(16px, 1.4vw, 19px); color: var(--fg-2); }

.product-media {
    position: relative;
    margin-top: 40px;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border: 1px solid var(--line-2);
    border-radius: var(--r-xl);
}
.product-media .cover { width: 100%; height: 100%; object-fit: cover; }
.product-media__play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgb(0 0 0 / .2);
    transition: background-color .4s;
}
.product-media__play span {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: var(--fg);
    color: var(--ink);
    transition: transform .6s var(--ease);
}
.product-media__play .i { width: 26px; height: 26px; margin-left: 4px; }
.product-media__play:hover { background: rgb(0 0 0 / .1); }
.product-media__play:hover span { transform: scale(1.08); }
.product-media__play[hidden] { display: none; }
.product-media iframe { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; border: 0; }

.buy-card {
    position: sticky;
    top: calc(var(--header-h) + 24px);
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding: 26px;
    border: 1px solid var(--line-2);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .04), rgb(255 255 255 / .012)), var(--bg);
    box-shadow: 0 40px 100px -50px rgb(0 0 0 / .9);
}
.buy-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; }
.buy-card__amount { font-size: 42px; font-weight: 600; line-height: 1; letter-spacing: -.05em; color: var(--fg); }
.buy-card__price s { font-size: 16px; color: var(--fg-4); }
.buy-card__actions { display: flex; flex-direction: column; gap: 10px; }
.buy-card__actions form { display: contents; }
.buy-card__owned {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid rgb(94 227 143 / .25);
    border-radius: 12px;
    background: rgb(94 227 143 / .06);
    font-size: 13.5px;
    color: var(--ok);
}
.perks { display: flex; flex-direction: column; gap: 2px; }
.perks li { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: 13.5px; color: var(--fg-2); }
.perks .i { width: 16px; height: 16px; margin-top: 2px; color: var(--fg); }

.spec-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
    border-top: 1px solid var(--line);
}
.spec-list div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.spec-list .spec-list__wide { grid-column: 1 / -1; }
.spec-list dt { font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.spec-list dd { margin-top: 7px; font-size: 14px; color: var(--fg); }

.product-section { margin-top: clamp(64px, 7vw, 96px); }
.product-section__title {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 28px;
    font-size: clamp(24px, 2.4vw, 32px);
    letter-spacing: -.045em;
}
.product-section__title .mono { font-size: 12px; font-weight: 500; letter-spacing: .06em; color: var(--fg-3); }
.product-summary { max-width: 64ch; font-size: 16.5px; line-height: 1.75; color: var(--fg-2); }

.feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--line);
}
.feature { padding: 26px 26px 28px; background: var(--bg); transition: background-color .4s; }
.feature:hover { background: var(--bg-raise); }
.feature__num { font: 500 11px/1 var(--mono); color: var(--fg-4); }
.feature h3 { margin: 16px 0 8px; font-size: 16.5px; letter-spacing: -.025em; }
.feature p { font-size: 14px; line-height: 1.65; color: var(--fg-2); }

.dep-list { display: flex; flex-wrap: wrap; gap: 8px; }
.dep-list li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    font: 500 12.5px/1 var(--mono);
    color: var(--fg);
}
.dep-list .i { width: 14px; height: 14px; color: var(--fg-3); }

.changelog { position: relative; padding-left: 28px; border-left: 1px solid var(--line-2); }
.changelog__entry { position: relative; padding-bottom: 32px; }
.changelog__entry:last-child { padding-bottom: 0; }
.changelog__entry::before {
    content: '';
    position: absolute;
    top: 7px;
    left: -33px;
    width: 9px;
    height: 9px;
    border: 1px solid var(--fg-3);
    border-radius: 50%;
    background: var(--bg);
}
.changelog__entry:first-child::before { border-color: var(--fg); background: var(--fg); box-shadow: 0 0 0 4px rgb(244 244 241 / .12); }
.changelog__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.changelog__version { font: 600 14px var(--mono); color: var(--fg); }
.changelog__date { font-size: 13px; color: var(--fg-3); }
.changelog__entry li { position: relative; padding: 4px 0 4px 18px; font-size: 14px; color: var(--fg-2); }
.changelog__entry li::before { content: '—'; position: absolute; left: 0; color: var(--fg-4); }

.related { margin-top: clamp(80px, 9vw, 128px); }

.mobile-buy {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 40;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 10px 10px 18px;
    border: 1px solid var(--line-2);
    border-radius: 16px;
    background: rgb(17 17 20 / .9);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    transform: translateY(140%);
    transition: transform .6s var(--ease);
}
.mobile-buy.is-visible { transform: none; }
.mobile-buy strong { display: block; font-size: 15px; color: var(--fg); letter-spacing: -.02em; }
.mobile-buy span { font: 500 13px var(--mono); color: var(--fg-2); }

@media (max-width: 1000px) {
    .product-layout { grid-template-columns: minmax(0, 1fr); }
    .buy-card { position: static; }
    .mobile-buy { display: flex; }
}
@media (max-width: 640px) {
    .feature-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── Docs ──────────────────────────────────────────────────────────────── */
.docs-layout {
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr) 200px;
    align-items: start;
    gap: clamp(32px, 4vw, 56px);
    padding-top: calc(var(--header-h) + 40px);
}
.docs-sidebar, .docs-toc {
    position: sticky;
    top: calc(var(--header-h) + 32px);
    max-height: calc(100vh - var(--header-h) - 56px);
    overflow-y: auto;
    scrollbar-width: none;
}
.docs-sidebar__search { position: relative; display: block; margin-bottom: 28px; }
.docs-sidebar__search .input { height: 38px; padding-left: 36px; font-size: 13px; border-radius: 10px; }
.docs-sidebar__search .i { position: absolute; top: 10px; left: 12px; width: 17px; height: 17px; color: var(--fg-3); pointer-events: none; }
.docs-nav__group + .docs-nav__group { margin-top: 28px; }
.docs-nav__title {
    margin-bottom: 10px;
    font: 500 11px/1 var(--mono);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.docs-nav__links { display: flex; flex-direction: column; border-left: 1px solid var(--line); }
.docs-nav__links a {
    margin-left: -1px;
    padding: 7px 14px;
    border-left: 1px solid transparent;
    font-size: 14px;
    color: var(--fg-2);
    transition: color .2s, border-color .2s;
}
.docs-nav__links a:hover { color: var(--fg); border-left-color: var(--line-3); }
.docs-nav__links a.is-active { color: var(--fg); border-left-color: var(--fg); }

.docs-toc__title { margin-bottom: 12px; font: 500 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.docs-toc__help { margin: 36px 0 12px; font-size: 13px; color: var(--fg-3); }
.docs-toc nav a { display: block; padding: 5px 0; font-size: 13px; color: var(--fg-3); transition: color .2s; }
.docs-toc nav a.is-sub { padding-left: 12px; }
.docs-toc nav a:hover, .docs-toc nav a.is-active { color: var(--fg); }

.docs-article { min-width: 0; padding-bottom: 40px; }
.docs-article__head { padding-bottom: 32px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.docs-article__head h1 { font-size: clamp(34px, 4vw, 52px); letter-spacing: -.05em; }
.docs-article__lead { margin-top: 14px; font-size: 16px; color: var(--fg-2); }
.docs-article__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }

.prose { font-size: 15.5px; line-height: 1.78; color: var(--fg-2); }
.prose > * + * { margin-top: 18px; }
.prose h2, .prose h3, .prose h4 { position: relative; scroll-margin-top: calc(var(--header-h) + 24px); }
.prose h2 { margin-top: 56px; font-size: 26px; letter-spacing: -.035em; }
.prose h3 { margin-top: 38px; font-size: 19px; letter-spacing: -.025em; }
.prose h4 { margin-top: 28px; font-size: 16px; }
.prose .anchor {
    position: absolute;
    left: -1.1em;
    color: var(--fg-4);
    font-weight: 400;
    opacity: 0;
    transition: opacity .2s;
}
.prose h2:hover .anchor, .prose h3:hover .anchor { opacity: 1; }
.prose a:not(.anchor) { color: var(--fg); text-decoration: underline; text-decoration-color: var(--line-3); text-underline-offset: 3px; transition: text-decoration-color .2s; }
.prose a:not(.anchor):hover { text-decoration-color: var(--fg); }
.prose strong { font-weight: 600; color: var(--fg); }
.prose ul, .prose ol { padding-left: 22px; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin: 6px 0; padding-left: 4px; }
.prose li::marker { color: var(--fg-4); }
.prose :not(pre) > code {
    padding: 2px 6px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface-2);
    font: 13px var(--mono);
    color: var(--fg);
}
.prose hr { margin: 44px 0; border: 0; border-top: 1px solid var(--line); }
.prose .code { margin: 22px 0 26px; }
.prose blockquote { padding-left: 18px; border-left: 2px solid var(--line-3); }

.callout {
    margin: 24px 0;
    padding: 16px 18px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgb(255 255 255 / .025);
}
.callout > p { margin: 0; }
.callout > * + * { margin-top: 10px; }
.callout__label {
    display: block;
    margin-bottom: 8px;
    font: 600 10.5px/1 var(--mono);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fg);
}
.callout--tip { border-color: rgb(94 227 143 / .22); background: rgb(94 227 143 / .04); }
.callout--tip .callout__label { color: var(--ok); }
.callout--warning, .callout--important { border-color: rgb(245 196 81 / .25); background: rgb(245 196 81 / .045); }
.callout--warning .callout__label, .callout--important .callout__label { color: var(--warn); }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table-wrap th {
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: rgb(255 255 255 / .02);
    font: 500 11px/1 var(--mono);
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
    color: var(--fg-3);
}
.table-wrap td { padding: 12px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.table-wrap tr:last-child td { border-bottom: 0; }

.docs-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 64px; }
.docs-pager a {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    transition: border-color .3s, background-color .3s;
}
.docs-pager a:hover { border-color: var(--line-3); background: rgb(255 255 255 / .02); }
.docs-pager span { font: 500 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); }
.docs-pager strong { font-size: 16px; font-weight: 600; color: var(--fg); letter-spacing: -.02em; }
.docs-pager .is-next { grid-column: 2; text-align: right; align-items: flex-end; }

.docs-mobile-nav { display: none; margin-bottom: 24px; }

@media (max-width: 1180px) {
    .docs-layout { grid-template-columns: 220px minmax(0, 1fr); }
    .docs-toc { display: none; }
}
@media (max-width: 860px) {
    .docs-layout { grid-template-columns: minmax(0, 1fr); }
    .docs-sidebar { display: none; }
    .docs-mobile-nav { display: block; }
}

/* ── About ─────────────────────────────────────────────────────────────── */
.statement {
    max-width: 24ch;
    font-size: clamp(30px, 4.2vw, 60px);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -.045em;
    color: var(--fg);
}
.js .statement[data-highlight] .word { color: var(--fg-4); transition: color .3s; }
.js .statement[data-highlight] .word.is-lit { color: var(--fg); }

.values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--line);
}
.value { display: flex; flex-direction: column; gap: 14px; padding: 32px 28px 36px; background: var(--bg); }
.value__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    color: var(--fg);
}
.value h3 { margin-top: 12px; font-size: 18px; }
.value p { font-size: 14.5px; color: var(--fg-2); }

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

/* Team members as Discord profile cards; animated art plays on hover (see initTeamCards). */
.member {
    --accent: #1c1c21;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .03), transparent 60%), var(--bg-raise);
    transition: border-color .4s var(--ease), transform .6s var(--ease);
}
.member:hover { border-color: var(--line-3); transform: translateY(-3px); }
.member__banner {
    position: relative;
    height: 116px;
    background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 45%, #000));
}
.member__banner img { width: 100%; height: 100%; object-fit: cover; }
.member__banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgb(8 8 10 / .55));
}
.member__top {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: -46px 18px 0;
}
.member__avatar { position: relative; width: 92px; height: 92px; flex: none; }
.member__face {
    display: grid;
    place-items: center;
    width: 92px;
    height: 92px;
    border: 5px solid var(--bg-raise);
    border-radius: 50%;
    background: var(--surface-2);
    object-fit: cover;
}
.member__face--empty .i { width: 40%; height: 40%; color: var(--fg-4); stroke-width: 1; }
/* Decorations are drawn 20% larger than the avatar they frame. */
.member__deco { position: absolute; inset: -9px; width: calc(100% + 18px); height: calc(100% + 18px); pointer-events: none; }
.member__nitro {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 8px;
    padding: 5px 9px;
    border: 1px solid rgb(255 115 250 / .28);
    border-radius: 999px;
    background: rgb(255 115 250 / .08);
    font: 600 10.5px/1 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #ff9cf8;
}
.member__nitro .i { width: 12px; height: 12px; }
.member__plate {
    position: relative;
    isolation: isolate;
    margin: 14px 12px 0;
    padding: 12px;
    overflow: hidden;
    border-radius: 12px;
}
.member__plate-art {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.member__plate-video { opacity: 0; transition: opacity .4s var(--ease); }
.member__plate-video.is-playing { opacity: 1; }
.member__plate:has(.member__plate-art)::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgb(12 12 15 / .82), rgb(12 12 15 / .35) 70%, transparent);
}
.member__name { font-size: 21px; letter-spacing: -.03em; line-height: 1.15; }
.member--styled .member__name {
    background: linear-gradient(90deg, var(--name-a), var(--name-b));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 0 10px color-mix(in srgb, var(--name-a) 45%, transparent));
}
.member__handle { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; font-size: 12.5px; color: var(--fg-2); }
.member__tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 6px;
    border-radius: 5px;
    background: rgb(255 255 255 / .09);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    color: var(--fg);
}
.member__tag img { width: 14px; height: 14px; }
.member__roles { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 24px 0; }
.member__roles li {
    padding: 5px 9px;
    border: 1px solid var(--line-2);
    border-radius: 999px;
    font: 500 10.5px/1 var(--mono);
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fg);
}
.member__bio { margin: 12px 24px 0; font-size: 13.5px; color: var(--fg-2); }
.member__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: auto 24px 0;
    padding: 18px 0 22px;
    font-size: 13px;
    color: var(--fg-3);
    transition: color .3s var(--ease);
}
.member__link .i { width: 15px; height: 15px; }
.member__link:hover { color: var(--fg); }

/* The Discord server, under the team. */
.guild {
    position: relative;
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raise);
}
.guild__banner { position: absolute; inset: 0; }
.guild__banner img { width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.guild__banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgb(12 12 15 / .94) 25%, rgb(12 12 15 / .55) 60%, rgb(12 12 15 / .2));
}
.guild__body { position: relative; display: flex; align-items: center; gap: 22px; padding: 28px; }
.guild__icon { width: 72px; height: 72px; flex: none; border-radius: 22px; border: 1px solid var(--line-2); }
.guild__info { flex: 1; min-width: 0; }
.guild__eyebrow {
    display: flex;
    align-items: center;
    gap: 6px;
    font: 500 11px/1 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fg-3);
}
.guild__eyebrow .i { width: 14px; height: 14px; }
.guild h3 { margin-top: 8px; font-size: 24px; letter-spacing: -.035em; }
.guild__stats { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 6px; font-size: 13.5px; color: var(--fg-2); }
.guild__stats span { display: inline-flex; align-items: center; gap: 7px; }
.guild__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-4); }
.guild__dot--on { background: var(--ok); box-shadow: 0 0 10px rgb(94 227 143 / .6); }

.principles { border-top: 1px solid var(--line); }
.principles li {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 24px;
    padding: 28px 0;
    border-bottom: 1px solid var(--line);
}
.principles .mono { font-size: 12px; color: var(--fg-3); padding-top: 4px; }
.principles h3 { font-size: 20px; letter-spacing: -.03em; }
.principles p { font-size: 15px; color: var(--fg-2); }

@media (max-width: 980px) {
    .values-grid { grid-template-columns: minmax(0, 1fr); }
    .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .guild__body { flex-wrap: wrap; }
    .guild__body .btn { width: 100%; justify-content: center; }
    .principles li { grid-template-columns: 48px minmax(0, 1fr); }
    .principles p { grid-column: 2; }
}

@media (max-width: 680px) {
    .team-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── Contact ───────────────────────────────────────────────────────────── */
.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
}
.discord-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 26px;
    padding: 32px;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: var(--r-xl);
    background:
        radial-gradient(120% 100% at 0% 0%, rgb(255 255 255 / .07), transparent 55%),
        var(--surface);
}
.discord-card__mark { width: 88px; height: 88px; }
.discord-card h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -.045em; }
.discord-card p { font-size: 15px; color: var(--fg-2); }
.discord-card__text { margin-top: 10px; }
.discord-card .btn, .form__submit { align-self: flex-start; }
.contact-list { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.contact-list li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.contact-list span { color: var(--fg-3); }
.contact-list a, .contact-list b { color: var(--fg); font-weight: 500; }
.form-card {
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--line);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, rgb(255 255 255 / .025), rgb(255 255 255 / .006));
}
.form-card h2 { margin-bottom: 6px; font-size: 22px; }
.form-card > p { margin-bottom: 28px; font-size: 14.5px; color: var(--fg-3); }

@media (max-width: 900px) {
    .contact-layout { grid-template-columns: minmax(0, 1fr); }
}

/* ── Auth ──────────────────────────────────────────────────────────────── */
.auth {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: calc(var(--header-h) + 48px) var(--gutter) 80px;
}
.auth-card {
    width: min(440px, 100%);
    padding: clamp(28px, 4vw, 40px);
    border: 1px solid var(--line-2);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, rgb(255 255 255 / .035), rgb(255 255 255 / .01)), var(--bg);
    box-shadow: 0 60px 140px -60px rgb(0 0 0 / .95);
}
.auth-card__mark { width: 46px; height: 46px; margin-bottom: 26px; border-radius: 12px; }
.auth-card h1 { font-size: 28px; letter-spacing: -.045em; }
.auth-card__sub { margin-top: 8px; margin-bottom: 28px; font-size: 14.5px; color: var(--fg-2); }
.divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 24px 0;
    font: 500 10.5px/1 var(--mono);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fg-4);
}
.divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.auth-foot { margin-top: 26px; font-size: 14px; text-align: center; color: var(--fg-3); }
.auth-foot a { color: var(--fg); font-weight: 500; }
.auth-note { margin-top: 10px; font-size: 12.5px; text-align: center; color: var(--fg-4); }

/* ── Account & admin shell ─────────────────────────────────────────────── */
.dash {
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    align-items: start;
    gap: clamp(28px, 4vw, 56px);
    padding-top: calc(var(--header-h) + 48px);
}
.dash-nav { position: sticky; top: calc(var(--header-h) + 32px); display: flex; flex-direction: column; gap: 2px; }
.dash-nav__user {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    padding: 0 12px 20px;
    border-bottom: 1px solid var(--line);
}
.dash-nav__user img, .dash-nav__user .avatar {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    font-weight: 600;
    color: var(--fg);
}
.dash-nav__user strong { display: block; overflow: hidden; font-size: 14px; color: var(--fg); text-overflow: ellipsis; white-space: nowrap; }
.dash-nav__user span { display: block; overflow: hidden; font-size: 12px; color: var(--fg-3); text-overflow: ellipsis; white-space: nowrap; }
.dash-nav__user > div { min-width: 0; }
.dash-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 14px;
    color: var(--fg-2);
    transition: background-color .2s, color .2s;
}
.dash-nav a:hover { color: var(--fg); background: rgb(255 255 255 / .03); }
.dash-nav a.is-active { background: var(--surface-2); color: var(--fg); }
.dash-nav a .i { width: 17px; height: 17px; }
.dash-nav__count { margin-left: auto; font: 500 11px var(--mono); color: var(--fg-3); }
.dash-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 32px; }
.dash-head h1 { font-size: clamp(30px, 3.4vw, 44px); letter-spacing: -.05em; }
.dash-head p { margin-top: 8px; font-size: 14.5px; color: var(--fg-3); }

.license {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--line);
}
.license:last-child { border-bottom: 0; }
.license__thumb { overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--line); border-radius: 10px; }
.license__thumb .cover { width: 100%; height: 100%; object-fit: cover; }
.license__name { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; letter-spacing: -.025em; color: var(--fg); }
.license__meta { margin-top: 4px; font: 500 12px var(--mono); color: var(--fg-3); }
.license__key {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 6px 6px 6px 10px;
    border: 1px dashed var(--line-3);
    border-radius: 8px;
    font: 500 12px var(--mono);
    color: var(--fg-2);
    max-width: 100%;
}
.license__key span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.license__actions { display: flex; gap: 8px; }
.copy-btn {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    border-radius: 6px;
    color: var(--fg-3);
    transition: background-color .2s, color .2s;
}
.copy-btn:hover { background: var(--surface-3); color: var(--fg); }
.copy-btn.is-copied { color: var(--ok); }
.copy-btn .i { width: 14px; height: 14px; }

.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.kpi {
    padding: 22px 22px 24px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .025), transparent);
}
.kpi { display: block; transition: border-color .3s; }
a.kpi:hover { border-color: var(--line-3); }
.kpi__label { font-size: 13px; color: var(--fg-3); }
.kpi__value { margin-top: 14px; font-size: 32px; font-weight: 600; line-height: 1; letter-spacing: -.045em; color: var(--fg); font-variant-numeric: tabular-nums; }
.kpi__sub { margin-top: 10px; font-size: 12.5px; color: var(--fg-3); }
.kpi--attention { border-color: rgb(245 196 81 / .3); }
.kpi__sub a { color: var(--fg-2); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-3); }

.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.detail-grid div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.detail-grid dt { font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.detail-grid dd { margin-top: 7px; font-size: 14px; color: var(--fg); overflow-wrap: anywhere; }

.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.filter-bar .input { width: 240px; height: 36px; font-size: 13px; border-radius: 10px; }
.message { padding: 22px 24px; border-bottom: 1px solid var(--line); }
.message:last-child { border-bottom: 0; }
.message.is-unread { background: rgb(255 255 255 / .02); }
.message__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; }
.message__head strong { color: var(--fg); font-size: 15px; }
.message__meta { font: 500 12px var(--mono); color: var(--fg-3); }
.message__body { margin-top: 10px; font-size: 14.5px; color: var(--fg-2); white-space: pre-wrap; }
.message__actions { display: flex; gap: 8px; margin-top: 14px; }

@media (max-width: 960px) {
    .dash { grid-template-columns: minmax(0, 1fr); }
    .dash-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 6px; }
    .dash-nav__user { display: none; }
    .dash-nav a { padding: 8px 12px; border: 1px solid var(--line); }
    .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .license { grid-template-columns: 88px minmax(0, 1fr); padding: 16px; }
    .license__actions { grid-column: 1 / -1; }
    .license__actions .btn { flex: 1; }
    .detail-grid { grid-template-columns: minmax(0, 1fr); }
    .data-table th, .data-table td { padding-inline: 14px; }
}

/* ── Checkout ──────────────────────────────────────────────────────────── */
.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
}
.progress-steps {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    font: 500 11.5px/1 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fg-4);
}
.progress-steps span { display: inline-flex; align-items: center; gap: 8px; }
.progress-steps .is-done { color: var(--fg-3); }
.progress-steps .is-current { color: var(--fg); }
.progress-steps .i { width: 12px; height: 12px; }

.cart-item {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--line);
}
.cart-item:last-child { border-bottom: 0; }
.cart-item__thumb { overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--line); border-radius: 10px; }
.cart-item__thumb .cover { width: 100%; height: 100%; object-fit: cover; }
.cart-item h3 { font-size: 16px; letter-spacing: -.025em; }
.cart-item p { margin-top: 4px; font-size: 13px; color: var(--fg-3); }
.cart-item__end { display: flex; align-items: center; gap: 14px; }
.cart-item__remove { color: var(--fg-3); transition: color .2s; }
.cart-item__remove:hover { color: var(--err); }

.summary {
    position: sticky;
    top: calc(var(--header-h) + 24px);
    padding: 24px;
    border: 1px solid var(--line-2);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / .035), rgb(255 255 255 / .01)), var(--bg);
}
.summary h2 { margin-bottom: 14px; font-size: 17px; }
.summary__row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; font-size: 14px; color: var(--fg-2); }
.summary__row span:last-child { font-family: var(--mono); color: var(--fg); }
.summary__total { align-items: baseline; margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 15px; color: var(--fg); }
.summary__total strong { font-size: 28px; font-weight: 600; letter-spacing: -.045em; font-family: var(--font) !important; }
.summary .btn { margin-top: 20px; }
.summary .field { margin-top: 20px; }
.summary .field input { font-family: var(--mono); letter-spacing: .04em; }
.summary .summary__secondary { margin-top: 10px; }
.summary__terms { margin-top: 18px; }
.summary__continue { margin-top: 18px; }
.summary__rows { margin-top: 16px; }
.panel__cta { margin-top: 20px; }
.admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.admin-actions .summary__note { flex-basis: 100%; margin-top: 6px; }
.summary__note { display: flex; gap: 8px; margin-top: 16px; font-size: 12.5px; color: var(--fg-3); }
.summary__note .i { width: 15px; height: 15px; margin-top: 2px; }

.methods { display: flex; flex-direction: column; gap: 10px; }
.method {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--line-2);
    border-radius: 14px;
    cursor: pointer;
    transition: border-color .25s, background-color .25s;
}
.method:hover { border-color: var(--line-3); }
.method:has(input:checked) { border-color: var(--fg); background: rgb(255 255 255 / .03); }
.method input {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
    border: 1px solid var(--line-3);
    border-radius: 50%;
    appearance: none;
    cursor: pointer;
}
.method input:checked { border-color: var(--fg); }
.method input:checked::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--fg); }
.method__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    color: var(--fg);
}
.method strong { display: block; font-size: 15px; font-weight: 600; color: var(--fg); }
.method p { margin-top: 3px; font-size: 13.5px; color: var(--fg-3); }

.bank-details { display: flex; flex-direction: column; }
.bank-details div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
}
.bank-details dt { font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.bank-details dd { display: flex; align-items: center; gap: 8px; font: 500 15px var(--mono); color: var(--fg); text-align: right; overflow-wrap: anywhere; }
.bank-details .is-key dd { font-size: 18px; }

.test-card {
    padding: 22px;
    border-radius: 18px;
    background: var(--paper);
    color: var(--ink);
    aspect-ratio: 1.586;
    max-width: 360px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 30px 80px -30px rgb(0 0 0 / .9);
}
.test-card__top { display: flex; justify-content: space-between; align-items: center; font: 600 12px var(--mono); letter-spacing: .1em; }
.test-card__top img { width: 32px; height: 32px; border-radius: 9px; }
.test-card__number { font: 600 20px var(--mono); letter-spacing: .08em; }
.test-card__bottom { display: flex; justify-content: space-between; font: 500 11px var(--mono); letter-spacing: .08em; opacity: .6; }

.success-mark {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: 28px;
    border-radius: 20px;
    background: var(--fg);
    color: var(--ink);
}
.success-mark .i { width: 32px; height: 32px; stroke-width: 2.2; }
.success-mark path { stroke-dasharray: 24; stroke-dashoffset: 24; animation: draw .9s .3s var(--ease) forwards; }

@media (max-width: 1000px) {
    .checkout { grid-template-columns: minmax(0, 1fr); }
    .summary { position: static; }
}
@media (max-width: 600px) {
    .cart-item { grid-template-columns: 88px minmax(0, 1fr); padding: 16px; }
    .cart-item__end { grid-column: 1 / -1; justify-content: space-between; }
    .bank-details div { flex-direction: column; align-items: flex-start; }
    .bank-details dd { text-align: left; }
}

/* ── Legal & error ─────────────────────────────────────────────────────── */
.legal-layout { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: clamp(32px, 5vw, 80px); }
.legal-nav { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; }
@media (max-width: 860px) {
    .legal-layout { grid-template-columns: minmax(0, 1fr); }
    .legal-nav { position: static; }
}

.error-page {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: calc(var(--header-h) + 40px) var(--gutter) 80px;
    text-align: center;
}
.error-page__code {
    font-size: clamp(120px, 26vw, 360px);
    font-weight: 600;
    line-height: .8;
    letter-spacing: -.08em;
    background: linear-gradient(180deg, var(--fg) 10%, transparent 95%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.error-page h1 { margin-top: 24px; font-size: clamp(24px, 3vw, 36px); }
.error-page p { max-width: 44ch; margin: 12px auto 32px; color: var(--fg-2); }
.error-page__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* ── Toasts & cursor chip ──────────────────────────────────────────────── */
.toasts {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(380px, calc(100vw - 40px));
    pointer-events: none;
}
.toast {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 12px 14px 14px;
    border: 1px solid var(--line-2);
    border-radius: 14px;
    background: rgb(22 22 26 / .94);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 24px 60px -16px rgb(0 0 0 / .7);
    font-size: 14px;
    color: var(--fg);
    pointer-events: auto;
    animation: toast-in .7s var(--ease) both;
}
.toast p { flex: 1; padding-top: 2px; line-height: 1.5; }
.toast__icon {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    border-radius: 8px;
    background: var(--surface-3);
    color: var(--fg);
}
.toast__icon .i { width: 15px; height: 15px; stroke-width: 2; }
.toast--success .toast__icon { background: rgb(94 227 143 / .12); color: var(--ok); }
.toast--error .toast__icon { background: rgb(255 122 107 / .12); color: var(--err); }
.toast__close { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; color: var(--fg-3); }
.toast__close:hover { background: var(--surface-3); color: var(--fg); }
.toast__close .i { width: 14px; height: 14px; }
.toast.is-leaving { animation: toast-out .45s var(--ease) forwards; }

.cursor-chip {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 85;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 12px 9px 14px;
    border-radius: 999px;
    background: var(--fg);
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    pointer-events: none;
    white-space: nowrap;
    opacity: 0;
    transform: scale(.4);
    will-change: transform;
    transition: opacity .3s;
}
.cursor-chip .i { width: 14px; height: 14px; stroke-width: 2; }
.cursor-chip.is-visible { opacity: 1; }
@media (hover: none), (pointer: coarse) { .cursor-chip { display: none; } }

/* ── Lite tier (weaker GPUs, see app.js) ───────────────────────────────── */
.lite .site-header.is-scrolled,
.lite .store-toolbar::before { background: rgb(8 8 10 / .94); }
.lite .store-toolbar::before { backdrop-filter: none; -webkit-backdrop-filter: none; }
.lite .site-header.is-scrolled,
.lite .user-menu__panel,
.lite .toast,
.lite .mobile-buy {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.lite [data-spotlight]::before { display: none; }

/* ── Motion states (set by JS) ─────────────────────────────────────────── */
.js:not(.motion-off) [data-reveal],
.js:not(.motion-off) [data-hero-item] { opacity: 0; }
.js:not(.motion-off) [data-hero-title],
.js:not(.motion-off) [data-split] { visibility: hidden; }
.js:not(.motion-off) .stage { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
    .js [data-reveal], .js [data-hero-item], .js .stage { opacity: 1 !important; }
    .js [data-hero-title], .js [data-split] { visibility: visible !important; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Cross-document page transitions (Chrome, Edge, Safari 18+). */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .35s var(--ease-io) both; }
::view-transition-new(root) { animation: vt-in .7s var(--ease) both; }
::view-transition-group(site-header) { animation-duration: 0s; }
@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
}

/* ── Keyframes ─────────────────────────────────────────────────────────── */
@keyframes live {
    0% { transform: scale(1); opacity: .6; }
    70%, 100% { transform: scale(3.2); opacity: 0; }
}
@keyframes blink { 50% { opacity: 0; } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes ticker { to { transform: translateY(-50%); } }
@keyframes pop { from { opacity: 0; transform: scale(.96) translateY(-4px); } }
@keyframes bump { 40% { transform: scale(1.35); } }
@keyframes toast-in { from { opacity: 0; transform: translateY(16px) scale(.97); } }
@keyframes toast-out { to { opacity: 0; transform: translateX(24px); } }
@keyframes vt-out { to { opacity: 0; transform: translateY(-10px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(18px); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes cv-float { from { transform: translateY(-5px); } to { transform: translateY(6px); } }
@keyframes cv-pulse { 50% { opacity: .35; } }
@keyframes cv-ping { from { transform: scale(.6); opacity: .9; } to { transform: scale(1.8); opacity: 0; } }
@keyframes cv-progress { 0% { transform: scaleX(.1); } 100% { transform: scaleX(1); } }

/* Maintenance page (errors/maintenance.php) */
.maintenance__mark { width: 96px; height: 96px; margin: 0 auto 28px; }
.maintenance h1 { margin-top: 0; }

/* Tebex checkout */
.steps--flush { margin: 0; border-top: 0; }
.steps--flush .steps__item:first-child { padding-top: 0; }
.steps--flush .steps__item:last-child { border-bottom: 0; padding-bottom: 0; }
.buy-card__secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--fg-3);
}
.buy-card__secure .i { width: 14px; height: 14px; }
.product-description { max-width: 68ch; }
.product-description img { max-width: 100%; height: auto; border-radius: 12px; }
.summary__note a.link-arrow { margin-left: 4px; font-size: 12.5px; }
.license__keymaster { font-size: 13px; color: var(--fg-3); }

/* ── Reviews ───────────────────────────────────────────────────────────── */
.stars { position: relative; display: inline-flex; flex-shrink: 0; width: max-content; line-height: 0; vertical-align: -2px; }
.stars__row { display: inline-flex; gap: 2px; white-space: nowrap; color: rgb(255 255 255 / .14); }
.stars__fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--fg); }
.stars .i { width: 14px; height: 14px; }
.stars--sm .i { width: 12px; height: 12px; }
.stars--sm .stars__row { gap: 1px; }
.stars--lg .i { width: 20px; height: 20px; }

.product-rating {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    font-size: 14px;
    color: var(--fg-2);
    transition: color .25s;
}
.product-rating strong { color: var(--fg); font-weight: 600; }
.product-rating:hover { color: var(--fg); }

.product-card__rating { display: flex; align-items: center; gap: 8px; margin: -2px 0 8px; font-size: 12px; color: var(--fg-3); }

.product-section__title .product-section__count {
    align-self: center;
    padding: 3px 9px;
    border: 1px solid var(--line-2);
    border-radius: 999px;
    font-size: 11px;
    color: var(--fg-2);
}

.reviews { display: flex; flex-direction: column; gap: 20px; }

.reviews-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: center;
    padding: 26px 28px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raise);
}
.reviews-summary__score { display: flex; flex-direction: column; gap: 10px; }
.reviews-summary__score strong { font-size: 52px; line-height: .9; font-weight: 600; letter-spacing: -.05em; color: var(--fg); }
.reviews-summary__score > span:last-child { font-size: 13px; color: var(--fg-3); }
.reviews-summary__bars { display: flex; flex-direction: column; gap: 8px; }
.reviews-summary__bars li { display: grid; grid-template-columns: 10px 12px minmax(0, 1fr) 28px; align-items: center; gap: 8px; font-size: 12px; color: var(--fg-3); }
.reviews-summary__bars li .i { width: 11px; height: 11px; color: var(--fg-3); }
.reviews-summary__bars li > span:last-child { text-align: right; }
.reviews-summary__bar { height: 6px; overflow: hidden; border-radius: 999px; background: rgb(255 255 255 / .06); }
.reviews-summary__bar i { display: block; height: 100%; border-radius: inherit; background: var(--fg); }

.review-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--ok); white-space: nowrap; }
.review-verified .i { width: 12px; height: 12px; stroke-width: 2.2; }

.review-form,
.review-mine {
    padding: 22px 24px;
    border: 1px solid var(--line-2);
    border-radius: var(--r-lg);
    background: var(--surface);
}
.review-form { display: flex; flex-direction: column; gap: 16px; }
.review-form[hidden] { display: none; }
.review-form__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.review-form__head strong { font-size: 16px; color: var(--fg); letter-spacing: -.02em; }
.review-form .field textarea { min-height: 120px; }
.review-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }

.review-mine { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.review-mine strong { margin-right: 8px; color: var(--fg); }
.review-mine p { margin-top: 6px; font-size: 14px; color: var(--fg-2); }
.review-mine__actions { display: flex; gap: 8px; }

.star-input { border: 0; }
.star-input legend { margin-bottom: 8px; font-size: 13px; color: var(--fg-2); }
.star-input__row { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.star-input input { position: absolute; opacity: 0; pointer-events: none; }
.star-input label { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: rgb(255 255 255 / .16); cursor: pointer; transition: color .15s, background-color .15s, transform .2s var(--ease); }
.star-input label .i { width: 26px; height: 26px; }
.star-input input:checked ~ label { color: var(--fg); }
.star-input__row:hover input:checked ~ label { color: rgb(255 255 255 / .16); }
.star-input__row label:hover,
.star-input__row label:hover ~ label { color: var(--fg); }
.star-input label:hover { transform: scale(1.08); }
.star-input input:focus-visible + label { background: rgb(255 255 255 / .06); box-shadow: 0 0 0 2px rgb(255 255 255 / .35); }
.star-input.has-error label { color: rgb(255 122 107 / .35); }

.reviews-note,
.reviews-empty { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--fg-2); }
.reviews-note .i { width: 16px; height: 16px; margin-top: 3px; color: var(--fg-3); }
.reviews-note a { color: var(--fg); text-decoration: underline; text-underline-offset: 3px; }
.reviews-empty { color: var(--fg-3); }

.review-list { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.review { padding: 24px 0; border-bottom: 1px solid var(--line); }
.review__head { display: flex; align-items: center; gap: 12px; }
.review__head strong { display: block; font-size: 15px; color: var(--fg); letter-spacing: -.015em; }
.review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 4px; font-size: 12px; color: var(--fg-3); }
.review__avatar,
.review-pop__avatar {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 50%;
    background: var(--surface-3);
    font-weight: 600;
    color: var(--fg);
}
.review__avatar { width: 40px; height: 40px; font-size: 15px; }
.review__avatar img,
.review-pop__avatar img { width: 100%; height: 100%; object-fit: cover; }
.review__body { max-width: 68ch; margin-top: 14px; font-size: 15px; line-height: 1.7; color: var(--fg-2); overflow-wrap: anywhere; }
.review__reply {
    max-width: 68ch;
    margin-top: 14px;
    padding: 14px 16px;
    border-left: 2px solid var(--line-3);
    border-radius: 0 var(--r-sm) var(--r-sm) 0;
    background: rgb(255 255 255 / .025);
}
.review__reply strong { font-size: 13px; color: var(--fg); }
.review__reply strong span { margin-left: 6px; font-weight: 400; color: var(--fg-3); }
.review__reply p { margin-top: 6px; font-size: 14px; line-height: 1.65; color: var(--fg-2); }

@media (max-width: 640px) {
    .reviews-summary { grid-template-columns: minmax(0, 1fr); padding: 22px; }
    .review-form, .review-mine { padding: 18px; }
}

/* Corner pop-up with recent reviews (initReviewPopup). */
.review-pop {
    position: fixed;
    left: 20px;
    bottom: calc(20px + env(safe-area-inset-bottom));
    z-index: 85;
    display: flex;
    align-items: flex-start;
    width: min(360px, calc(100vw - 24px));
    border: 1px solid var(--line-2);
    border-radius: 16px;
    background: rgb(20 20 24 / .92);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    box-shadow: 0 24px 60px -18px rgb(0 0 0 / .75);
    opacity: 0;
    visibility: hidden;
    transform: translateY(18px) scale(.98);
    transition: opacity .45s var(--ease), transform .7s var(--ease), visibility 0s linear .7s;
}
.review-pop.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .45s var(--ease), transform .7s var(--ease), visibility 0s;
}
.review-pop__link { display: flex; flex: 1; gap: 12px; min-width: 0; padding: 14px 4px 14px 14px; }
.review-pop__avatar { width: 36px; height: 36px; font-size: 14px; }
.review-pop__content { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.review-pop__top { display: flex; align-items: center; gap: 8px; }
.review-pop__top strong { overflow: hidden; font-size: 14px; color: var(--fg); letter-spacing: -.015em; white-space: nowrap; text-overflow: ellipsis; }
.review-pop__text { display: -webkit-box; overflow: hidden; font-size: 13.5px; line-height: 1.5; color: var(--fg-2); -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.review-pop__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; font-size: 11.5px; color: var(--fg-3); }
.review-pop__meta [data-review-pop-product] { color: var(--fg-2); }
.review-pop__link:hover [data-review-pop-product] { color: var(--fg); text-decoration: underline; text-underline-offset: 3px; }
.review-pop__close { display: grid; place-items: center; flex-shrink: 0; width: 28px; height: 28px; margin: 8px 8px 0 0; border-radius: 8px; color: var(--fg-3); }
.review-pop__close:hover { background: var(--surface-3); color: var(--fg); }
.review-pop__close .i { width: 14px; height: 14px; }
/* Above the product page's mobile buy bar. */
@media (max-width: 1000px) {
    body:has(.mobile-buy.is-visible) .review-pop { bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@media (max-width: 640px) {
    .review-pop { left: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    .review-pop, .review-pop.is-visible { transform: none; }
}
.lite .review-pop { background: rgb(20 20 24 / .98); backdrop-filter: none; -webkit-backdrop-filter: none; }

.claim-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.claim-form .field { flex: 1 1 260px; }

/* ── Gallery: card slideshow (initSlides) ─────────────────────────────────── */
.cover--slides { position: relative; display: block; overflow: hidden; }
.cover__slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.07);
    transition: opacity 1.1s var(--ease-io), transform 7s cubic-bezier(.2, .6, .3, 1);
}
.cover__slide.is-active { opacity: 1; transform: scale(1); }
.cover__dots { position: absolute; right: 14px; bottom: 14px; z-index: 1; display: flex; gap: 4px; }
.cover__dots i { width: 10px; height: 3px; border-radius: 2px; background: rgb(255 255 255 / .28); box-shadow: 0 1px 4px rgb(0 0 0 / .4); transition: width .6s var(--ease), background-color .6s; }
.cover__dots i.is-active { width: 22px; background: rgb(255 255 255 / .92); }
@media (prefers-reduced-motion: reduce) {
    .cover__slide { transition: none; transform: none; }
    .cover__dots { display: none; }
}

/* ── Gallery: product page (initGallery) ─────────────────────────────────── */
.product-media--gallery { background: #000; }
.product-media__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .55s var(--ease-io);
}
.product-media__slide.is-active { opacity: 1; }
.product-media__open { position: absolute; inset: 0; z-index: 1; cursor: zoom-in; }
.product-media__nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-top: -22px;
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: 50%;
    background: rgb(8 8 10 / .62);
    color: var(--fg);
    opacity: 0;
    transition: opacity .3s, background-color .3s, transform .4s var(--ease);
}
.product-media__nav--prev { left: 16px; }
.product-media__nav--next { right: 16px; }
.product-media__nav .i { width: 20px; height: 20px; }
.product-media--gallery:hover .product-media__nav,
.product-media__nav:focus-visible { opacity: 1; }
.product-media__nav:hover { background: rgb(8 8 10 / .85); transform: scale(1.06); }
.product-media__count {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgb(8 8 10 / .62);
    font-size: 12px;
    color: var(--fg);
    pointer-events: none;
}
.product-media__count .i { width: 13px; height: 13px; color: var(--fg-2); }
.product-media--gallery .product-media__play { z-index: 2; }
/* In a gallery the video belongs to the first image; the other images open the viewer instead. */
.product-media--gallery:not(.is-first) .product-media__play { display: none; }
.product-media.is-video .product-media__count { display: none; }
@media (hover: none) {
    .product-media__nav { opacity: 1; width: 38px; height: 38px; margin-top: -19px; }
}

.product-thumbs {
    display: flex;
    gap: 10px;
    margin-top: 12px;
    padding: 2px;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
}
.product-thumbs::-webkit-scrollbar { display: none; }
.product-thumbs button {
    flex: 0 0 auto;
    width: clamp(84px, 11vw, 116px);
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: var(--surface);
    opacity: .5;
    scroll-snap-align: center;
    transition: opacity .3s, border-color .3s, transform .4s var(--ease);
}
.product-thumbs button:hover { opacity: .85; }
.product-thumbs button[aria-current='true'] { opacity: 1; border-color: rgb(255 255 255 / .7); }
.product-thumbs button:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.product-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.product-thumbs__video { position: relative; }
.product-thumbs__video span {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgb(0 0 0 / .35);
    color: #fff;
}
.product-thumbs__video .i { width: 22px; height: 22px; margin-left: 2px; filter: drop-shadow(0 1px 4px rgb(0 0 0 / .6)); }

.gallery-box {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: clamp(16px, 4vw, 56px) clamp(56px, 7vw, 96px);
    border: 0;
    background: transparent;
    color: var(--fg);
}
.gallery-box[open] { display: grid; place-items: center; }
.gallery-box::backdrop { background: rgb(4 4 6 / .92); }
.gallery-box__img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 14px;
    box-shadow: 0 40px 120px -30px rgb(0 0 0 / .9);
    opacity: 0;
    transform: scale(.985);
    transition: opacity .35s var(--ease-io), transform .5s var(--ease);
}
.gallery-box__img.is-in { opacity: 1; transform: none; }
.gallery-box__btn {
    position: fixed;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: 50%;
    background: rgb(20 20 24 / .8);
    color: var(--fg);
    transition: background-color .3s, transform .4s var(--ease);
}
.gallery-box__btn:hover { background: rgb(40 40 46 / .9); transform: scale(1.06); }
.gallery-box__btn .i { width: 20px; height: 20px; }
.gallery-box__close { top: 18px; right: 18px; }
.gallery-box__prev { top: 50%; left: 18px; margin-top: -23px; }
.gallery-box__next { top: 50%; right: 18px; margin-top: -23px; }
.gallery-box__count { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); font-size: 12.5px; color: var(--fg-2); }
@media (max-width: 640px) {
    .gallery-box { padding: 64px 12px; }
    .gallery-box__prev, .gallery-box__next { top: auto; bottom: 12px; margin-top: 0; }
    .gallery-box__prev { left: 12px; }
    .gallery-box__next { right: 12px; }
}

.adm-gallery { display: flex; flex-wrap: wrap; gap: 6px; }
.adm-gallery img { width: 52px; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid var(--line-2); border-radius: 6px; }
