
:root {
    --ground:#141212;
    --surface:#1d1d1d;
    --surface-2:#2a2a2a;
    --line:#464646;
    --ink-soft:#b7b7b7;
    --ink:#e8e8e8;
    --accent:#268551;
    --accent-ink:#fff;
    --hairline:#b08d57;

    --ground-alpha-85:rgba(20, 18, 18, 0.88);
    --surface-alpha-92:rgba(29, 29, 29, 0.94);
    --hairline-alpha-25:rgba(176, 141, 87, 0.25);
    --hairline-alpha-40:rgba(176, 141, 87, 0.40);
    --accent-alpha-15:rgba(38, 133, 81, 0.15);

    --godu-269:'Cinzel', 'Cinzel Fallback', 'Times New Roman', Georgia, serif;
    --godu-d86:'Inter', 'Inter Fallback', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --godu-551:'JetBrains Mono', 'JetBrains Mono Fallback', 'SF Mono', Menlo, Consolas, monospace;

    --step--2:clamp(0.70rem, 0.67rem + 0.15vw, 0.80rem);
    --step--1:clamp(0.81rem, 0.77rem + 0.22vw, 0.94rem);
    --godu-9df:  clamp(0.94rem, 0.88rem + 0.30vw, 1.10rem);
    --godu-684:  clamp(1.10rem, 1.01rem + 0.48vw, 1.34rem);
    --godu-153:  clamp(1.30rem, 1.16rem + 0.72vw, 1.68rem);
    --godu-22d:  clamp(1.55rem, 1.34rem + 1.06vw, 2.15rem);
    --godu-033:  clamp(1.85rem, 1.54rem + 1.56vw, 2.78rem);
    --godu-c5b:  clamp(2.20rem, 1.78rem + 2.12vw, 3.60rem);

    --space-3xs:clamp(0.25rem, 0.23rem + 0.10vw, 0.35rem);
    --space-2xs:clamp(0.45rem, 0.40rem + 0.25vw, 0.65rem);
    --space-xs:  clamp(0.70rem, 0.62rem + 0.40vw, 0.95rem);
    --space-s:   clamp(0.95rem, 0.85rem + 0.50vw, 1.30rem);
    --space-m:   clamp(1.40rem, 1.25rem + 0.75vw, 1.95rem);
    --space-l:   clamp(2.00rem, 1.75rem + 1.25vw, 2.90rem);
    --space-xl:  clamp(2.80rem, 2.40rem + 2.00vw, 4.20rem);
    --space-2xl:clamp(4.00rem, 3.40rem + 3.00vw, 6.20rem);

    --max-content:1240px;
    --max-reading:65ch;
    --frame-inset:14px;
    --top-strip-height:4px;
    --dock-height:64px;

    --ease-out:cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);
    --duration-fast:140ms;
    --duration-normal:240ms;
    --duration-slow:420ms;
}

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

html {
    font-size:100%;
    line-height:1.55;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    background-color:var(--ground);
    color:var(--ink);
    scroll-behavior:smooth;
    scroll-padding-top:calc(var(--top-strip-height) + 1rem);
}

body {
    font-family:var(--godu-d86);
    font-weight:400;
    font-size:var(--godu-9df);
    line-height:1.6;
    color:var(--ink);
    background-color:var(--ground);
    min-height:100vh;
    position:relative;
    overflow-x:hidden;

    padding-bottom:var(--dock-height);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

@media (min-width: 900px) {
    body { padding-bottom:0; }
}

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

input,
button,
textarea,
select {
    font:inherit;
    color:inherit;
}

@media (max-width: 48rem) {
    input:not([type='checkbox']):not([type='radio']),
    select,
    textarea { font-size:max(16px, 1rem) !important; }
}

button {
    cursor:pointer;
    background:none;
    border:none;
}

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

table {
    border-collapse:collapse;
    width:100%;
}

ul[role='list'],
ol[role='list'] { list-style:none; }

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family:var(--godu-269);
    font-weight:700;
    line-height:1.18;
    letter-spacing:0.02em;
    color:var(--ink);
    text-wrap:balance;
    overflow-wrap:break-word;
}

h1 {
    font-size:var(--godu-c5b);
    letter-spacing:0.03em;
    margin-bottom:var(--space-s);
}

h2 {
    font-size:var(--godu-033);
    letter-spacing:0.025em;
    margin-bottom:var(--space-xs);
}

h3 {
    font-size:var(--godu-153);
    font-weight:600;
    margin-bottom:var(--space-2xs);
}

h4 {
    font-size:var(--godu-684);
    font-weight:600;
}

p {
    max-width:var(--max-reading);
    margin-bottom:var(--space-s);
    color:var(--ink);
}

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

.lede {
    font-size:var(--godu-684);
    line-height:1.5;
    color:var(--ink-soft);
    max-width:58ch;
}

.caption,
figcaption {
    font-family:var(--godu-551);
    font-size:var(--step--1);
    color:var(--ink-soft);
    letter-spacing:0.01em;
}

.tabular {
    font-family:var(--godu-551);
    font-variant-numeric:tabular-nums;
}

.badge,
.tag {
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    font-family:var(--godu-551);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    padding:0.25rem 0.6rem;
    border:1px solid var(--line);
    background:var(--surface);
    color:var(--ink-soft);
    min-height:28px;
}

hr {
    border:0;
    border-top:1px solid var(--line);
    margin:var(--space-l) 0;
}

.rule-ledger {
    display:block;
    width:100%;
    height:1px;
    background-color:var(--line);
    position:relative;
    margin:var(--space-m) 0;
}

.rule-ledger::before {
    content:'';
    position:absolute;
    top:-3px;
    left:0;
    width:18px;
    height:7px;
    border-left:1px solid var(--hairline);
    border-right:1px solid var(--hairline);
}

.site-frame-top {
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:var(--top-strip-height);
    background:var(--hairline);
    z-index:1000;
}

.boxed-container {
    width:100%;
    max-width:var(--max-content);
    margin-inline:auto;
    padding-inline:var(--space-s);
}

@media (min-width: 768px) {
    .boxed-container { padding-inline:var(--space-m); }

}

.grid-stack {
    display:flex;
    flex-direction:column;
    gap:var(--space-m);
}

.grid-2col {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-m);
}

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

.grid-3col {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-m);
}

@media (min-width: 768px) {
    .grid-3col { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

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

.editorial-held-row {
    display:flex;
    flex-direction:column;
    gap:var(--space-m);
    padding-block:var(--space-l);
    border-bottom:1px solid var(--line);
    position:relative;
}

@media (min-width: 900px) {
    .editorial-held-row {
        flex-direction:row;
        gap:var(--space-xl);
        align-items:flex-start;
    }

    .editorial-held-side {
        flex:0 0 38%;
        position:sticky;

        top:calc(var(--top-strip-height) + 2rem);
    }

    .editorial-content-side {
        flex:1 1 62%;
        min-width:0;
    }
}

.ledger-grid-bg { position:relative; }

.ledger-grid-bg::after {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background-image:linear-gradient(to bottom, var(--line) 1px, transparent 1px);
    background-size:100% 48px;
    opacity:0.18;
    z-index:0;
}

.ledger-grid-bg > * {
    position:relative;
    z-index:1;
}

.icon {
    width:1.25em;
    height:1.25em;
    display:inline-block;
    vertical-align:-0.2em;
    fill:currentColor;
    flex-shrink:0;
}

.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;
}

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

@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;
    }
}
