/* =========================================
   Shea Fegan — Minimal Dark Document
   ========================================= */

:root {
    --bg: #0b0b0d;
    --surface: #141416;
    --surface-hover: #19191c;
    --text: #f5f5f7;
    --muted: #a1a1a6;
    --subtle: #6e6e73;
    --accent: #d6d6d8;
    --border: rgba(255, 255, 255, 0.08);
    --quote-bg: rgba(255, 255, 255, 0.04);

    --document-width: 760px;
    --radius: 18px;
}

/* -----------------------------------------
   Base
   ----------------------------------------- */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 60px 24px;
    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(255, 255, 255, 0.055),
            transparent 35%
        ),
        var(--bg);
    color: var(--text);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Display",
        "SF Pro Text",
        "Helvetica Neue",
        Arial,
        sans-serif;

    font-size: 17px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* -----------------------------------------
   Main document
   ----------------------------------------- */

main {
    width: min(100%, var(--document-width));
    margin: 0 auto;
    padding: 72px 76px;

    background: rgba(20, 20, 22, 0.92);
    border: 1px solid var(--border);
    border-radius: 24px;

    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.35),
        0 1px 0 rgba(255, 255, 255, 0.03) inset;

    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

/* -----------------------------------------
   Typography
   ----------------------------------------- */

h1 {
    margin: 0;

    color: var(--text);
    font-size: clamp(2.6rem, 6vw, 4.2rem);
    font-weight: 700;
    letter-spacing: -0.055em;
    line-height: 1.05;
}

h1 + p {
    margin-top: 14px;
    margin-bottom: 48px;

    color: var(--muted);
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: -0.01em;
}

h2 {
    margin-top: 64px;
    margin-bottom: 18px;

    color: var(--text);
    font-size: 1.65rem;
    font-weight: 650;
    letter-spacing: -0.035em;
    line-height: 1.2;
}

p {
    margin: 0 0 24px;
    color: #d2d2d5;
}

strong {
    color: var(--text);
}

em {
    color: var(--muted);
}

/* -----------------------------------------
   Portrait image
   ----------------------------------------- */
img {
    display: block;

    width: min(100%, 430px);
    height: 620px;

    margin: 0 auto 58px;

    object-fit: cover;
    object-position: center;

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

    box-shadow:
        0 25px 60px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(255, 255, 255, 0.02);
}

/* -----------------------------------------
   Quotes
   ----------------------------------------- */

blockquote {
    margin: 36px 0;
    padding: 22px 28px;

    color: #ededf0;
    background: var(--quote-bg);

    border-left: 2px solid rgba(255, 255, 255, 0.35);
    border-radius: 0 12px 12px 0;

    font-size: 1.2rem;
    font-style: italic;
    letter-spacing: -0.01em;
}

/* -----------------------------------------
   List
   ----------------------------------------- */

ul {
    margin: 28px 0 36px;
    padding-left: 1.4rem;

    color: #c8c8cc;
}

li {
    margin: 7px 0;
    padding-left: 5px;
}

li::marker {
    color: var(--subtle);
}

/* -----------------------------------------
   Footer
   ----------------------------------------- */

footer {
    margin-top: 80px;
    padding-top: 28px;

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

    color: var(--subtle);
    font-size: 0.85rem;
    line-height: 1.6;
}

footer p {
    margin: 4px 0;
    color: inherit;
}

/* -----------------------------------------
   Selection
   ----------------------------------------- */

::selection {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

/* -----------------------------------------
   Scrollbar
   ----------------------------------------- */

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: var(--bg);
}

::-webkit-scrollbar-thumb {
    background: #303033;
    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: #454548;
}

/* -----------------------------------------
   Mobile
   ----------------------------------------- */

@media (max-width: 700px) {
    body {
        padding: 0;
        font-size: 16px;
        line-height: 1.7;
    }

    main {
        width: 100%;
        min-height: 100vh;

        padding: 42px 22px 48px;

        border: 0;
        border-radius: 0;

        box-shadow: none;
        background: var(--bg);
    }

    h1 {
        font-size: 2.8rem;
        letter-spacing: -0.06em;
    }

    h1 + p {
        margin-top: 12px;
        margin-bottom: 38px;
        font-size: 1rem;
    }

    /*
       Keep the portrait prominent on mobile while
       preventing it from becoming ridiculously tall.
    */
    img {
        width: min(88vw, 430px);
        max-height: 65vh;

        margin: 0 auto 46px;

        border-radius: 14px;
    }

    h2 {
        margin-top: 52px;
        margin-bottom: 16px;

        font-size: 1.45rem;
    }

    p {
        margin-bottom: 22px;
    }

    blockquote {
        margin: 30px 0;
        padding: 18px 20px;

        font-size: 1.05rem;
    }

    ul {
        padding-left: 1.25rem;
    }

    footer {
        margin-top: 60px;
    }
}

/* -----------------------------------------
   Very small phones
   ----------------------------------------- */

@media (max-width: 400px) {
    main {
        padding-left: 18px;
        padding-right: 18px;
    }

    h1 {
        font-size: 2.45rem;
    }

    img {
        width: 92vw;
        height: 62vh;
    }
}

/* -----------------------------------------
   Reduced motion
   ----------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
