:root {
    --h: 75;
    --s: 100;
    --l: 58%;
    --ac: hsl(var(--h) calc(var(--s) * 1%) var(--l));
    --on: #0a0a0a;
    --bg: #0a0a0a;
    --bg2: #111111;
    --bg3: #1a1a1a;
    --fg: #f4f4f2;
    --mu: #8d8d8d;
    --ln: #262626;
    --mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace;
    --sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
}

html[data-mode="light"] {
    --l: 40%;
    --on: #ffffff;
    --bg: #f3f3ef;
    --bg2: #ffffff;
    --bg3: #e6e6e0;
    --fg: #111111;
    --mu: #666666;
    --ln: #d2d2ca;
}

@media (prefers-color-scheme: light) {
    html[data-mode="auto"] {
        --l: 40%;
        --on: #ffffff;
        --bg: #f3f3ef;
        --bg2: #ffffff;
        --bg3: #e6e6e0;
        --fg: #111111;
        --mu: #666666;
        --ln: #d2d2ca;
    }
}

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

html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
}

body {
    font: 16px/1.5 var(--sans);
    background: var(--bg);
    color: var(--fg);
    min-height: 100vh;
    overflow-x: hidden;
}

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

button {
    font: inherit;
    color: inherit;
    cursor: pointer;
    background: none;
    border: 0;
}

.wrap {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 24px;
    font: 500 13px var(--mono);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border: 1px solid var(--ln);
    background: var(--bg2);
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    white-space: nowrap;
}

.btn:hover {
    border-color: var(--ac);
    color: var(--ac);
}

.btn.pri {
    background: var(--ac);
    border-color: var(--ac);
    color: var(--on);
}

.btn.pri:hover {
    background: var(--fg);
    border-color: var(--fg);
    color: var(--bg);
}

.btn.ghost {
    background: transparent;
}

.btn.lg {
    padding: 20px 34px;
    font-size: 14px;
}

.btn.sm {
    padding: 11px 18px;
    font-size: 12px;
}

.sq {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--ln);
    background: var(--bg2);
    transition: border-color 0.2s, color 0.2s;
}

.sq:hover {
    border-color: var(--ac);
    color: var(--ac);
}

.sq.dng {
    background: hsl(0 45% 28%);
    border-color: hsl(0 45% 28%);
    color: #fff;
}

.rv {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s, transform 0.7s;
}

.rv.in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        animation: none !important;
    }
    .rv {
        opacity: 1;
        transform: none;
    }
}
