:root {
    --ink: #252923;
    --muted: #687064;
    --paper: #fbfbf8;
    --line: #e1e5dd;
    --surface: #f0f3ec;
    --strong-line: #d3dccd;
    --accent: #52634d;
    --accent-soft: #eaf0e3;
    --shadow: #e6ece0;
    --brand-green: #164735;
    color: var(--ink);
    background: var(--paper);
    font-family: "DM Sans", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }

body { min-width: 320px; margin: 0; }

a { color: var(--ink); }

button { font: inherit; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

[x-cloak] { display: none !important; }

.public-shell { width: min(100% - 4rem, 1100px); margin: 0 auto; }

.public-site-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 92px; border-bottom: 1px solid var(--line); }

.public-project-name { min-width: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 1.18rem; font-weight: 700; letter-spacing: -.04em; text-decoration: none; }

a.public-project-name:hover { text-decoration: underline; text-underline-offset: .2em; }

.public-nav { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }

.public-nav a { color: var(--ink); font-size: .86rem; font-weight: 600; text-decoration: none; white-space: nowrap; }

.public-nav a:hover { text-decoration: underline; text-underline-offset: .25em; }

.public-header { margin: 6.5rem 0 4rem; }

.public-header > p, .release-kicker, .section-label { margin: 0 0 1.45rem; color: var(--accent); font-family: "DM Mono", monospace; font-size: .7rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }

.public-header > p a { color: inherit; text-decoration: none; }

.public-header > p a:hover { text-decoration: underline; }

.public-header > p span { margin-inline: .5rem; color: #999; }

.public-header h1 { max-width: 900px; margin: 0 0 3rem; font-size: clamp(3.5rem, 7.5vw, 6.6rem); font-weight: 600; letter-spacing: -.075em; line-height: .98; overflow-wrap: anywhere; }

.header-rule { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .93rem; }

.header-rule svg { flex: none; width: 1.5rem; height: 1.5rem; color: var(--accent); }

.release-list { padding-bottom: 2rem; }

.channel-nav { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 2rem; }

.channel-nav a, .release-channels a, .release-channels span { display: inline-block; padding: .3rem .6rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-family: "DM Mono", monospace; font-size: .72rem; text-decoration: none; }

.channel-nav a:hover, .release-channels a:hover { border-color: var(--strong-line); background: var(--surface); }

.channel-nav a[aria-current="page"] { border-color: #b9c9ae; background: var(--accent-soft); color: var(--accent); }

.release-channels { display: flex; flex-wrap: wrap; gap: .4rem; margin: .7rem 0 0; }

.archive-label { margin: 3.5rem 0 1.2rem; color: var(--accent); font-family: "DM Mono", monospace; font-size: .7rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }

.release-card { padding: 2.2rem 0 2.5rem; border-top: 1px solid var(--line); }

.release-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; }

.release-card h2, .changelog-entry h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 600; letter-spacing: -.065em; line-height: 1.1; }

.release-card h2 a, .changelog-entry h2 a { color: var(--ink); text-decoration: none; }

.release-card h2 a:hover, .changelog-entry h2 a:hover { text-decoration: underline; text-underline-offset: .15em; }

.release-card time, .changelog-entry time { color: var(--muted); font-family: "DM Mono", monospace; font-size: .73rem; white-space: nowrap; }

.release-notes-link { margin: .8rem 0 0; font-size: .88rem; font-weight: 600; }

.release-notes-link a, .checksum-link a { color: var(--accent); text-decoration: none; }

.release-notes-link a:hover, .checksum-link a:hover { text-decoration: underline; text-underline-offset: .2em; }

.featured-release { margin-bottom: 1.2rem; padding: 2.4rem 2.6rem 2.5rem; border: 1px solid var(--strong-line); background: #fff; box-shadow: 12px 12px 0 var(--shadow); }

.featured-release h2 { font-size: clamp(2.5rem, 4.5vw, 4rem); }

.featured-release .release-kicker { margin-bottom: .8rem; }

.featured-release .download { border-color: var(--line); }

.release-card:not(.featured-release) .download { max-width: 750px; }

.release-card:not(.featured-release) .install-panel { margin-top: 1.6rem; }

.install-panel { margin: 2rem 0 0; padding-top: 1.45rem; border-top: 1px solid var(--line); }

.install-panel h3 { margin: 0 0 1rem; font-size: 1rem; font-weight: 600; letter-spacing: -.025em; }

.install-tabs { display: flex; gap: .35rem; margin: 0 0 .9rem; }

.install-tabs button { padding: .45rem .75rem; border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--muted); cursor: pointer; font-size: .79rem; font-weight: 700; }

.install-tabs button:hover, .install-tabs button.active { border-color: var(--strong-line); background: var(--accent-soft); color: var(--accent); }

.install-license-note { margin: 0 0 .9rem; color: var(--muted); font-size: .8rem; line-height: 1.6; }

.install-command { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border-radius: 4px; background: #232323; color: #f4f4f4; }

.install-command code { flex: 1; min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; font-family: "DM Mono", monospace; font-size: .8rem; line-height: 1.7; }

.install-command button { flex: none; padding: .35rem .6rem; border: 1px solid #626262; border-radius: 3px; background: transparent; color: #d0d0d0; cursor: pointer; font-size: .7rem; }

.install-command button:hover { border-color: #aaa; color: white; }

.download { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 72px; padding: .9rem 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }

.release-card .install-panel + .download { margin-top: 1.8rem; }

.download strong, .download small { display: block; }

.download strong { overflow-wrap: anywhere; font-size: .9rem; font-weight: 600; }

.download small { margin-top: .22rem; color: var(--muted); font-family: "DM Mono", monospace; font-size: .68rem; text-transform: uppercase; }

.download > span:last-child { flex: none; color: var(--accent); font-size: .84rem; font-weight: 700; }

.download:hover > span:last-child { text-decoration: underline; text-underline-offset: .2em; }

.download-arrow { width: 1em; height: 1em; margin-left: .25rem; vertical-align: -.12em; }

.checksum-link { margin: 1rem 0 0; font-size: .8rem; font-weight: 600; }

.release-section { display: grid; grid-template-columns: minmax(150px, .36fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); padding: 3rem 0 4rem; border-top: 1px solid var(--line); }

.release-section .section-label { margin: .3rem 0 0; }

.release-section.install-panel { margin: 0; }

.release-section .install-switcher, .release-section > h2, .release-section > p, .release-section .release-signature-body { grid-column: 2; }

.release-section.install-panel .install-switcher, .release-section .release-signature-body { grid-row: 1; }

.release-section h2 { margin: 0 0 1.2rem; font-size: clamp(2rem, 3vw, 2.7rem); font-weight: 600; letter-spacing: -.06em; }

.release-signature-body p { max-width: 760px; margin: 0 0 1rem; color: #444; line-height: 1.65; }

.release-signature-body p:last-child { margin-bottom: 0; }

.release-signature-key { font-size: .8rem; color: var(--muted); }

.release-signature-key code { padding: .2em .4em; border-radius: 3px; background: var(--surface); color: var(--ink); font-family: "DM Mono", monospace; font-size: .85em; }

.release-downloads { display: block; }

.release-downloads .section-label { margin-bottom: .65rem; }

.release-downloads h2 { margin-bottom: 2rem; }

.release-downloads .download { max-width: 850px; }

.withdrawn-release { padding: 2rem; background: var(--surface); }

.withdrawn-release h2 { grid-column: 2; }

.withdrawn-release p { margin: 0; color: #555; line-height: 1.6; }

.notes { max-width: 760px; overflow-wrap: anywhere; color: #444; font-size: .98rem; line-height: 1.75; }

.notes > :first-child { margin-top: 0; }

.notes > :last-child { margin-bottom: 0; }

.notes h2, .notes h3 { margin: 1.8rem 0 .7rem; color: var(--ink); letter-spacing: -.045em; line-height: 1.2; }

.notes h2 { font-size: 1.6rem; }

.notes h3 { font-size: 1.2rem; }

.notes p, .notes ul, .notes ol { margin: 0 0 1.2rem; }

.notes pre { overflow-x: auto; padding: 1.25rem; border-radius: 4px; background: #232323; color: #f4f4f4; }

.notes pre code { padding: 0; background: transparent; color: inherit; }

.notes code, .checksum code { padding: .2em .4em; border-radius: 3px; background: var(--surface); color: var(--ink); font-family: "DM Mono", monospace; font-size: .85em; }

.checksum { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem; max-width: 850px; padding: .2rem 0 1.6rem; font-size: .76rem; }

.checksum > span { color: var(--muted); font-family: "DM Mono", monospace; font-size: .68rem; }

.checksum code { overflow-wrap: anywhere; user-select: all; }

.checksum button { padding: .2rem .5rem; border: 1px solid var(--strong-line); border-radius: 3px; background: transparent; color: var(--ink); cursor: pointer; font-size: .73rem; }

.checksum button:hover { background: var(--surface); }

.checksum small { color: var(--muted); }

.changelog-list { padding-bottom: 2rem; }

.changelog-entry { display: grid; grid-template-columns: minmax(160px, .32fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 6rem); padding: 2.6rem 0 3.5rem; border-top: 1px solid var(--line); }

.changelog-entry header { display: flex; flex-direction: column; gap: .8rem; }

.changelog-entry .notes { max-width: 700px; }

.empty-releases { padding: 2.4rem 0 5rem; border-top: 1px solid var(--line); color: var(--muted); }

.empty-releases p { margin: 0; }

.public-footer { display: flex; justify-content: flex-end; margin-top: 3rem; padding: 1.7rem 0 2.3rem; border-top: 1px solid var(--line); }

.public-footer a { display: inline-flex; color: var(--brand-green); }

.public-footer a:hover { color: #0f3527; }

.public-footer .brand-mark { width: 24px; height: 24px; }

.license-shell { display: flex; flex-direction: column; justify-content: center; min-height: 100vh; padding: 3rem 0; }

.license-card { max-width: 26rem; margin: 0 auto; padding: 2.5rem; border: 1px solid var(--line); border-radius: 8px; background: white; }

.license-card h1 { margin: 0 0 .75rem; font-size: 1.6rem; letter-spacing: -.02em; }

.license-card .card-intro { margin: 0 0 1.75rem; color: var(--muted); font-size: .92rem; line-height: 1.5; }

.license-card form { display: flex; flex-direction: column; gap: .9rem; }

.license-card input[type="text"] { padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 5px; font: inherit; font-family: "DM Mono", monospace; font-size: .9rem; }

.license-card input[type="text"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }

.license-card button[type="submit"] { padding: .7rem 1rem; border: none; border-radius: 5px; background: var(--ink); color: white; font-weight: 600; font-size: .9rem; cursor: pointer; }

.license-card button[type="submit"]:hover { background: #404040; }

.form-error { margin: 0 0 1.25rem; padding: .6rem .8rem; border-radius: 5px; background: #fbeaea; color: #8a2c2c; font-size: .85rem; }

@media (max-width: 700px) {
    .public-shell { width: min(100% - 2.5rem, 1100px); }

    .public-site-header { min-height: 75px; }

    .public-nav { gap: 1rem; }

    .public-nav a { font-size: .75rem; }

    .public-header { margin: 4.5rem 0 3rem; }

    .public-header h1 { margin-bottom: 2.5rem; font-size: clamp(3rem, 12vw, 5rem); }

    .featured-release { padding: 1.5rem; box-shadow: 7px 7px 0 var(--shadow); }

    .release-card header { align-items: flex-start; flex-direction: column; gap: .6rem; }

    .release-section, .changelog-entry { display: block; padding: 2.5rem 0 3rem; }

    .release-section .section-label { margin-bottom: 1.4rem; }

    .changelog-entry header { margin-bottom: 1.5rem; }

    .install-command { align-items: flex-start; }

    .install-command code { font-size: .7rem; }
}
