
:root {
    /* Authoritative Palette (Cool Slate) */
    --ground:#e9edf1;
    --surface:#dadee3;
    --surface-2:#c7ccd2;
    --line:#a5aaae;
    --ink-soft:#4a4d51;
    --ink:#27292b;
    --accent:#2f7f8a;
    --accent-ink:#fff;

    /* State Tints & Structural Tokens */
    --focus-ring:#2f7f8a;
    --surface-hover:#d1d6dc;
    --surface-active:#bfc4cb;
    --error-ink:#9e2a2b;
    --error-bg:#f5e6e6;
    --error-border:#c85a5b;
    --success-ink:#1b5e3c;
    --success-bg:#e2ece5;

    --buna-3d6:"Archivo", "Archivo Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    --buna-7cf:"Spectral", "Spectral Fallback", Georgia, Cambria, "Times New Roman", serif;
    --buna-249:"IBM Plex Mono", "IBM Plex Mono Fallback", "SF Mono", Consolas, Menlo, monospace;

    /* Strict Swiss Scale & Optical Weights */
    --font-weight-regular:400;
    --font-weight-medium:500;
    --font-weight-semibold:600;
    --font-weight-bold:700;

    --step--2:clamp(0.72rem, 0.70rem + 0.10vw, 0.80rem);
    --step--1:clamp(0.84rem, 0.81rem + 0.16vw, 0.94rem);
    --buna-d2f:clamp(1.00rem, 0.95rem + 0.25vw, 1.13rem);
    --buna-557:clamp(1.18rem, 1.10rem + 0.40vw, 1.38rem);
    --buna-a9a:clamp(1.42rem, 1.30rem + 0.60vw, 1.72rem);
    --buna-851:clamp(1.75rem, 1.55rem + 1.00vw, 2.25rem);
    --buna-772:clamp(2.15rem, 1.85rem + 1.50vw, 2.95rem);
    --buna-882:clamp(2.65rem, 2.20rem + 2.25vw, 3.90rem);
    --buna-0e9:clamp(3.25rem, 2.60rem + 3.25vw, 5.15rem);

    --space-3xs:clamp(0.25rem, 0.23rem + 0.10vw, 0.35rem);
    --space-2xs:clamp(0.50rem, 0.46rem + 0.20vw, 0.65rem);
    --space-xs:  clamp(0.75rem, 0.70rem + 0.25vw, 0.95rem);
    --space-s:   clamp(1.00rem, 0.92rem + 0.40vw, 1.30rem);
    --space-m:   clamp(1.50rem, 1.38rem + 0.60vw, 1.95rem);
    --space-l:   clamp(2.00rem, 1.80rem + 1.00vw, 2.75rem);
    --space-xl:  clamp(2.75rem, 2.40rem + 1.75vw, 4.00rem);
    --space-2xl:clamp(3.75rem, 3.20rem + 2.75vw, 5.75rem);
    --space-3xl:clamp(5.00rem, 4.20rem + 4.00vw, 7.80rem);

    /* Layout Boundaries */
    --container-max:1280px;
    --container-pad:clamp(1.00rem, 0.65rem + 1.75vw, 2.50rem);

    --reading-measure:65ch;
    --dense-measure:48ch;

    /* Chrome Heights */
    --header-height:68px;
    --section-strip-height:44px;
    --dock-height:64px;

    /* Motion & Easing Tokens (Unhurried Swiss Precision) */
    --ease-editorial:cubic-bezier(0.22, 1, 0.36, 1);
    --ease-sharp:cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);
    --duration-instant:120ms;
    --duration-fast:180ms;
    --duration-medium:280ms;
    --duration-deliberate:440ms;
    --duration-slow:720ms;

    /* Radii Rule: Strictly Zero */
    --radius-none:0px;
}

@view-transition {
    navigation:auto;
}

@media (prefers-reduced-motion: no-preference) {
    ::view-transition-old(root) {
        animation:240ms var(--ease-in-out) both vt-fade-out;
    }

    ::view-transition-new(root) {
        animation:280ms var(--ease-editorial) both vt-fade-in;
    }

    ::view-transition-old(hero),
    ::view-transition-new(hero) {
        animation-duration:460ms;
        animation-timing-function:var(--ease-editorial);
    }

    ::view-transition-old(page-title),
    ::view-transition-new(page-title) {
        animation-duration:380ms;
        animation-timing-function:var(--ease-editorial);
    }
}

@keyframes vt-fade-out {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-4px); }
}

@keyframes vt-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

*,
*::before,
*::after {
    box-sizing:border-box;
    margin:0;
    padding:0;
    border-radius:var(--radius-none);
}

html {
    -webkit-text-size-adjust:100%;
    -moz-text-size-adjust:100%;
    text-size-adjust:100%;
    background-color:var(--ground);
    color:var(--ink);
    font-size:16px;
    scroll-behavior:smooth;
    scroll-padding-top:calc(var(--header-height) + var(--section-strip-height) + 12px);
}

@media (max-width: 820px) {
    html {
        scroll-padding-top:calc(var(--header-height) + 12px);
    }
}

body {
    min-height:100vh;
    min-height:100dvh;
    background-color:var(--ground);
    color:var(--ink);
    font-family:var(--buna-7cf);
    font-size:var(--buna-d2f);
    line-height:1.62;
    font-weight:var(--font-weight-regular);
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    font-feature-settings:"cv02", "cv03", "cv04", "cv11";
    overflow-x:hidden;
    padding-bottom:0;
}

@media (max-width: 820px) {
    body {
        padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
    }
}

button,
input,
optgroup,
select,
textarea {
    font-family:inherit;
    font-size:inherit;
    line-height:inherit;
    color:inherit;
}

img,
svg,
picture,
video {
    display:block;
    max-width:100%;
    height:auto;
}

svg.icon {
    width:1.25em;
    height:1.25em;
    fill:currentColor;
    flex-shrink:0;
    vertical-align:middle;
}

/* Accessible Target Defaults */
a,
button,
input,
select,
textarea {
    touch-action:manipulation;
}

a {
    color:var(--ink);
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
    text-decoration-color:var(--line);
    transition:color var(--duration-fast) ease, text-decoration-color var(--duration-fast) ease;
}

a:hover {
    color:var(--accent);
    text-decoration-color:var(--accent);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline:2px solid var(--focus-ring);
    outline-offset:2px;
}

.tabular-nums,
[data-price],
.spec-value,
.stat-figure,
.ledger-metric,
time {
    font-variant-numeric:tabular-nums lining-nums;
    letter-spacing:-0.01em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family:var(--buna-3d6);
    font-weight:var(--font-weight-bold);
    color:var(--ink);
    line-height:1.12;
    letter-spacing:-0.025em;
    text-wrap:balance;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:manual;
}

h1 {
    font-size:var(--buna-882);
    font-weight:var(--font-weight-bold);
    line-height:1.05;
    letter-spacing:-0.035em;
    max-width:18ch;
}

h2 {
    font-size:var(--buna-772);
    line-height:1.10;
    letter-spacing:-0.03em;
    max-width:22ch;
}

h3 {
    font-size:var(--buna-a9a);
    line-height:1.20;
    letter-spacing:-0.02em;
}

h4 {
    font-size:var(--buna-557);
    line-height:1.25;
    letter-spacing:-0.015em;
}

p {
    max-width:var(--reading-measure);
    font-size:var(--buna-d2f);
    line-height:1.65;
    color:var(--ink);
}

p + p {
    margin-top:var(--space-s);
}

.standfirst,
.lede {
    font-size:var(--buna-557);
    line-height:1.55;
    color:var(--ink-soft);
    max-width:58ch;
    font-weight:var(--font-weight-regular);
}

.mono-meta {
    font-family:var(--buna-249);
    font-size:var(--step--1);
    letter-spacing:-0.01em;
    color:var(--ink-soft);
}

small,
.caption {
    font-family:var(--buna-249);
    font-size:var(--step--2);
    line-height:1.45;
    color:var(--ink-soft);
    display:block;
}

blockquote {
    border-left:2px solid var(--ink);
    padding-left:var(--space-m);
    margin:var(--space-l) 0;
    font-style:italic;
    font-size:var(--buna-557);
    line-height:1.5;
    color:var(--ink);
}

.asymmetric-lockup {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:var(--space-3xs);
    padding-bottom:var(--space-s);
    margin-bottom:var(--space-m);
}

.asymmetric-lockup::after {
    content:'';
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:1px;
    background-color:var(--line);
}

.asymmetric-lockup .lockup-primary {
    font-family:var(--buna-3d6);
    font-size:var(--buna-882);
    font-weight:var(--font-weight-bold);
    line-height:1.02;
    letter-spacing:-0.035em;
    color:var(--ink);
    transform:none;
}

.asymmetric-lockup .lockup-offset {
    font-family:var(--buna-3d6);
    font-size:var(--buna-772);
    font-weight:var(--font-weight-medium);
    line-height:1.05;
    letter-spacing:-0.025em;
    color:var(--ink-soft);
    padding-left:clamp(1.5rem, 5vw, 4.5rem);

    position:relative;
}

.asymmetric-lockup .lockup-offset::before {
    content:'';
    position:absolute;
    left:0;
    top:50%;
    width:clamp(1.0rem, 3.5vw, 3.0rem);
    height:1px;
    background-color:var(--line);
}

.shell-container {
    width:100%;
    max-width:var(--container-max);
    margin-left:auto;
    margin-right:auto;
    padding-left:var(--container-pad);
    padding-right:var(--container-pad);
}

.shell-container-dense {
    width:100%;
    max-width:960px;
    margin-left:auto;
    margin-right:auto;
    padding-left:var(--container-pad);
    padding-right:var(--container-pad);
}

.section-ledger {
    padding-top:var(--space-2xl);
    padding-bottom:var(--space-2xl);
    border-bottom:1px solid var(--line);
    position:relative;
}

.section-ledger:last-of-type {
    border-bottom:none;
}

.surface-band {
    background-color:var(--surface);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.grid-two-col {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-l);
    min-width:0;
}

@media (min-width: 821px) {
    .grid-two-col {
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        gap:var(--space-xl);
    }
}

.grid-editorial {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-l);
    min-width:0;
}

@media (min-width: 821px) {
    .grid-editorial {
        grid-template-columns:minmax(0, 320px) minmax(0, 1fr);
        gap:var(--space-2xl);
    }
}

.grid-three-col {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-m);
    min-width:0;
}

@media (min-width: 641px) and (max-width: 1024px) {
    .grid-three-col {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1025px) {
    .grid-three-col {
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:var(--space-l);
    }
}

.spec-ledger {
    border-top:1px solid var(--line);
    width:100%;
}

.ledger-row {
    display:grid;
    grid-template-columns:1fr;
    padding-top:var(--space-s);
    padding-bottom:var(--space-s);
    border-bottom:1px solid var(--line);
    align-items:baseline;
    gap:var(--space-2xs);
    min-width:0;
}

@media (min-width: 680px) {
    .ledger-row {
        grid-template-columns:240px minmax(0, 1fr);
        gap:var(--space-m);
    }
}

.ledger-row-three {
    display:grid;
    grid-template-columns:1fr;
    padding-top:var(--space-s);
    padding-bottom:var(--space-s);
    border-bottom:1px solid var(--line);
    align-items:baseline;
    gap:var(--space-2xs);
    min-width:0;
}

@media (min-width: 768px) {
    .ledger-row-three {
        grid-template-columns:200px minmax(0, 1fr) 180px;
        gap:var(--space-m);
    }
}

.ledger-key {
    font-family:var(--buna-249);
    font-size:var(--step--1);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.04em;
}

.ledger-val {
    font-family:var(--buna-7cf);
    font-size:var(--buna-d2f);
    color:var(--ink);
    line-height:1.55;
    min-width:0;
}

.ledger-meta {
    font-family:var(--buna-249);
    font-size:var(--step--1);
    color:var(--ink);
    text-align:left;
}

@media (min-width: 768px) {
    .ledger-meta {
        text-align:right;
    }
}

/* Full Width Incidental Plate Between Ledgers */
.ledger-plate-break {
    margin-top:var(--space-xl);
    margin-bottom:var(--space-xl);
    width:100%;
    border:1px solid var(--line);
    background-color:var(--surface);
    overflow:hidden;
}

.ledger-plate-break img {
    width:100%;
    height:auto;
    max-height:520px;
    object-fit:cover;
    object-position:center;
}

.ledger-plate-caption {
    padding:var(--space-xs) var(--space-s);
    border-top:1px solid var(--line);
    background-color:var(--surface);
    font-family:var(--buna-249);
    font-size:var(--step--2);
    color:var(--ink-soft);
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:var(--space-2xs);
}

.skip-link {
    position:absolute;
    top:-9999px;
    left:1rem;
    background-color:var(--ink);
    color:var(--accent-ink);
    padding:0.75rem 1.25rem;
    font-family:var(--buna-249);
    font-size:var(--step--1);
    text-decoration:none;
    border:1px solid var(--accent);
    z-index:9999;
}

.skip-link:focus {
    top:1rem;
}

.visually-hidden {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0, 0, 0, 0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration:0.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:0.01ms !important;
        scroll-behavior:auto !important;
    }

    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) {
        animation:none !important;
    }
}
