/* ==========================================================
   11PLAY — ABOUT PAGE
   File: css/about.css

   Clean Search-First Layout
   - Strong H1 hierarchy
   - Clear subtitle
   - Left-aligned readable content
   - No visual clutter
   - No horizontal page overflow
   - Mobile-first
========================================================== */


/* ==========================================================
   TOKENS
========================================================== */

:root {
    color-scheme: dark;

    --bg: #050b16;
    --bg-soft: #081225;

    --surface: #0c1b30;
    --surface-2: #10243d;

    --border: rgba(148, 163, 184, 0.18);
    --border-blue: rgba(56, 189, 248, 0.32);

    --text: #f8fafc;
    --text-2: #cbd5e1;
    --muted: #94a3b8;

    --blue: #38bdf8;
    --blue-light: #7dd3fc;

    --green: #34d399;
    --red: #fb7185;

    --content-width: 980px;

    --radius: 20px;

    --shadow:
        0 12px 30px
        rgba(0, 0, 0, 0.22);
}


/* ==========================================================
   RESET
========================================================== */

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

html,
body {
    width: 100%;
    max-width: 100%;

    margin: 0;
    padding: 0;

    overflow-x: hidden;
}

html {
    background: var(--bg);

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

body {
    min-height: 100vh;
    min-height: 100svh;

    background:
        linear-gradient(
            180deg,
            var(--bg) 0%,
            var(--bg-soft) 55%,
            #050a13 100%
        );

    color: var(--text);

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

    font-size: 16px;
    line-height: 1.65;

    overflow-wrap: break-word;

    -webkit-font-smoothing: antialiased;
}

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

img,
svg {
    display: block;

    max-width: 100%;
    height: auto;
}

p,
h1,
h2,
h3,
ul,
ol {
    margin: 0;
}

ul,
ol {
    padding: 0;
}

:focus-visible {
    outline: 3px solid var(--blue);
    outline-offset: 3px;
}


/* ==========================================================
   TOPBAR
========================================================== */

.topbar {
    position: sticky;
    top: 0;

    z-index: 1000;

    width: 100%;

    border-bottom:
        1px solid
        var(--border);

    background:
        rgba(5, 11, 22, 0.98);
}

.topbar-inner {
    width:
        calc(100% - 28px);

    max-width:
        var(--content-width);

    margin: 0 auto;

    padding:
        10px
        0;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 14px;

    min-width: 0;
}


/* ==========================================================
   HOME BUTTON
========================================================== */

.home-btn {
    flex:
        0
        0
        auto;

    min-height: 42px;

    display: inline-flex;
    align-items: center;

    gap: 8px;

    padding:
        6px
        13px
        6px
        7px;

    border:
        1px solid
        var(--border-blue);

    border-radius: 999px;

    background:
        rgba(56, 189, 248, 0.1);

    color: #ffffff;

    font-size: 13px;
    font-weight: 750;

    white-space: nowrap;
}

.home-btn > span:first-child {
    width: 28px;
    height: 28px;

    flex:
        0
        0
        28px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background:
        rgba(56, 189, 248, 0.14);

    color: var(--blue-light);
}


/* ==========================================================
   TOP NAV
========================================================== */

.top-nav {
    min-width: 0;

    display: flex;
    align-items: center;

    gap: 5px;

    overflow-x: auto;
    overflow-y: hidden;

    white-space: nowrap;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;
}

.top-nav::-webkit-scrollbar {
    display: none;
}

.top-nav a {
    flex:
        0
        0
        auto;

    min-height: 36px;

    display: inline-flex;
    align-items: center;

    padding:
        6px
        10px;

    border-radius: 999px;

    color: var(--text-2);

    font-size: 12px;
    font-weight: 650;
}

.top-nav .active {
    border:
        1px solid
        var(--border-blue);

    background:
        rgba(56, 189, 248, 0.1);

    color: #ffffff;
}


/* ==========================================================
   MAIN
========================================================== */

.about-container {
    width:
        calc(100% - 28px);

    max-width:
        var(--content-width);

    margin: 0 auto;

    padding:
        24px
        0;
}


/* ==========================================================
   HERO
========================================================== */

.hero {
    width: 100%;

    margin-bottom: 16px;

    padding:
        34px
        32px;

    border:
        1px solid
        var(--border-blue);

    border-radius:
        var(--radius);

    background:
        linear-gradient(
            145deg,
            #102640,
            #09172a
        );

    box-shadow:
        var(--shadow);

    text-align: left;
}

.hero-content {
    width: 100%;
    max-width: 760px;
}


/* ==========================================================
   HERO LABEL
========================================================== */

.hero-eyebrow {
    display: block;

    margin-bottom: 8px;

    color:
        var(--blue-light);

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


/* ==========================================================
   MAIN H1
========================================================== */

.hero h1 {
    color: #ffffff;

    font-size:
        clamp(
            38px,
            6vw,
            56px
        );

    font-weight: 900;

    letter-spacing: -0.045em;

    line-height: 1.06;
}

.hero h1 span {
    color:
        var(--blue-light);
}


/* ==========================================================
   HERO SUBTITLE
========================================================== */

.subtitle {
    max-width: 680px;

    margin-top: 15px;

    color:
        var(--text-2);

    font-size: 16px;

    line-height: 1.65;
}

.subtitle strong {
    display: block;

    margin-bottom: 7px;

    color: #ffffff;

    font-size:
        clamp(
            19px,
            3vw,
            23px
        );

    font-weight: 800;

    line-height: 1.3;
}


/* ==========================================================
   CARD GRID
========================================================== */

.card-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

    gap: 14px;

    margin-bottom: 14px;
}

.card-grid > * {
    min-width: 0;
}


/* ==========================================================
   CARDS
========================================================== */

.card {
    width: 100%;

    margin-bottom: 14px;

    padding:
        26px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    background:
        linear-gradient(
            145deg,
            var(--surface-2),
            var(--surface)
        );

    box-shadow:
        var(--shadow);
}

.card.highlight {
    border-color:
        var(--border-blue);
}

.card.success {
    border-color:
        rgba(52, 211, 153, 0.28);
}

.card.danger,
.card.warning {
    border-color:
        rgba(251, 113, 133, 0.26);
}


/* ==========================================================
   CARD HEADER
========================================================== */

.card-head {
    display: flex;
    align-items: flex-start;

    gap: 12px;

    margin-bottom: 18px;

    min-width: 0;
}

.card-icon {
    width: 42px;
    height: 42px;

    flex:
        0
        0
        42px;

    display: grid;
    place-items: center;

    border-radius: 12px;

    background:
        rgba(56, 189, 248, 0.1);

    color:
        var(--blue-light);

    font-size: 18px;
    font-weight: 800;
}

.card.success .card-icon {
    background:
        rgba(52, 211, 153, 0.1);

    color:
        var(--green);
}

.card.danger .card-icon,
.card.warning .card-icon {
    background:
        rgba(251, 113, 133, 0.1);

    color:
        var(--red);
}

.card-head-text {
    min-width: 0;
    flex: 1;
}


/* ==========================================================
   CARD LABEL
========================================================== */

.card-label {
    display: block;

    margin-bottom: 4px;

    color:
        var(--blue-light);

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 0.06em;

    text-transform: uppercase;
}


/* ==========================================================
   CARD TITLES
========================================================== */

.card h2 {
    color: #ffffff;

    font-size:
        clamp(
            21px,
            3vw,
            26px
        );

    font-weight: 800;

    letter-spacing: -0.025em;

    line-height: 1.25;
}


/* ==========================================================
   CARD TEXT
========================================================== */

.card p {
    margin-bottom: 13px;

    color:
        var(--text-2);

    font-size: 15px;

    line-height: 1.75;
}

.card p:last-child {
    margin-bottom: 0;
}


/* ==========================================================
   LISTS
========================================================== */

.card ul {
    display: grid;

    gap: 10px;

    list-style: none;
}

.card li {
    position: relative;

    padding-left: 25px;

    color:
        var(--text-2);

    font-size: 14px;

    line-height: 1.7;
}

.card li::before {
    position: absolute;

    top: 0.3em;
    left: 0;

    content: "✓";

    color:
        var(--green);

    font-size: 14px;
    font-weight: 900;
}

.card.danger li::before,
.card.warning li::before {
    content: "—";

    color:
        var(--red);
}


/* ==========================================================
   LINKS
========================================================== */

.card a {
    color:
        var(--blue-light);

    font-weight: 700;

    text-decoration: underline;

    text-underline-offset: 3px;
}


/* ==========================================================
   VERSION
========================================================== */

.version-box {
    display: flex;
    justify-content: center;

    margin:
        24px
        0
        4px;
}

.version-box span {
    padding:
        6px
        12px;

    border:
        1px solid
        var(--border);

    border-radius: 999px;

    color:
        var(--muted);

    font-size: 11px;
}


/* ==========================================================
   FOOTER
========================================================== */

.copyright {
    margin-top: 28px;

    padding:
        28px
        14px
        max(
            30px,
            env(safe-area-inset-bottom)
        );

    border-top:
        1px solid
        var(--border);

    background:
        #040a13;

    text-align: center;
}

.copyright-logo {
    color: #ffffff;

    font-size: 24px;
    font-weight: 900;
}

.footer-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;

    gap: 6px;

    margin:
        12px
        0;
}

.footer-links a {
    padding:
        5px
        9px;

    color:
        var(--text-2);

    font-size: 12px;
}

.footer-links a[aria-current="page"] {
    color:
        var(--blue-light);
}

.copyright p {
    margin:
        3px
        0;

    color:
        var(--muted);

    font-size: 12px;
}


/* ==========================================================
   TABLET / MOBILE
========================================================== */

@media (max-width: 800px) {

    .topbar-inner {
        width:
            calc(100% - 20px);

        flex-direction: column;
        align-items: stretch;

        gap: 7px;
    }

    .home-btn {
        align-self: flex-start;
    }

    .top-nav {
        width: 100%;

        justify-content: flex-start;
    }

    .about-container {
        width:
            calc(100% - 20px);

        padding-top: 16px;
    }

    .card-grid {
        grid-template-columns: 1fr;

        gap: 0;
    }
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 600px) {

    .hero {
        padding:
            25px
            20px;
    }

    .hero-eyebrow {
        margin-bottom: 6px;

        font-size: 10px;
    }

    .hero h1 {
        font-size:
            clamp(
                34px,
                10.5vw,
                42px
            );
    }

    .subtitle {
        margin-top: 13px;

        font-size: 14px;

        line-height: 1.62;
    }

    .subtitle strong {
        margin-bottom: 6px;

        font-size: 19px;
    }

    .card {
        padding:
            20px
            18px;
    }

    .card-head {
        gap: 10px;

        margin-bottom: 14px;
    }

    .card-icon {
        width: 38px;
        height: 38px;

        flex-basis: 38px;

        font-size: 16px;
    }

    .card-label {
        font-size: 9px;
    }

    .card h2 {
        font-size: 21px;
    }

    .card p,
    .card li {
        font-size: 13.5px;
    }
}


/* ==========================================================
   VERY SMALL
========================================================== */

@media (max-width: 360px) {

    .topbar-inner,
    .about-container {
        width:
            calc(100% - 16px);
    }

    .hero {
        padding:
            22px
            16px;
    }

    .hero h1 {
        font-size: 31px;
    }

    .subtitle strong {
        font-size: 17px;
    }

    .card {
        padding:
            17px
            15px;
    }
}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}