@import url("ds/whetstone.css");
html[data-theme="light"] {
--bg: var(--c-bone);
--bg-elevated: #ECE7D6;
--bg-card: var(--c-bone);
--fg: var(--c-ink);
--fg-muted: #2A1B4F;
--fg-dim: #6B2FE0;
--accent: var(--c-magenta);
--accent-hot: var(--c-royal);
--brand: var(--c-royal);
--rule: #1F1A0E;
--rule-hot: var(--c-magenta);
}
html, body {
min-height: 100%;
background: var(--bg);
overflow-x: hidden;
}
body {
position: relative;
}
.ws-btn, .theme-toggle, .ws-nav-link { white-space: nowrap; }
.page-grid {
position: fixed; inset: 0;
pointer-events: none;
z-index: 0;
background-image:
linear-gradient(rgba(107,47,224,0.10) 1px, transparent 1px),
linear-gradient(90deg, rgba(107,47,224,0.10) 1px, transparent 1px);
background-size: 48px 48px;
mask-image: linear-gradient(180deg, transparent, #000 200px, #000 calc(100% - 200px), transparent);
}
html[data-theme="light"] .page-grid {
background-image:
linear-gradient(rgba(74,31,168,0.07) 1px, transparent 1px),
linear-gradient(90deg, rgba(74,31,168,0.07) 1px, transparent 1px);
}
main { position: relative; z-index: 1; }
.ws-nav {
position: sticky; top: 0; z-index: 50;
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: var(--s-5);
padding: var(--s-3) var(--s-7);
background: var(--bg);
border-bottom: var(--b-med) solid var(--fg);
}
.ws-nav-mark {
display: flex; align-items: center; gap: 10px;
text-decoration: none; border-bottom: 0; color: var(--fg);
}
.ws-nav-links {
display: flex; gap: 0;
justify-self: center;
border: var(--b-med) solid var(--fg);
box-shadow: 4px 4px 0 0 var(--brand);
}
.ws-nav-link {
font-family: var(--f-mono);
font-weight: 700;
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
padding: 10px 16px;
border: 0;
border-right: var(--b-med) solid var(--fg);
background: var(--bg);
color: var(--fg);
cursor: pointer;
text-decoration: none;
transition: all 80ms linear;
}
.ws-nav-link:last-child { border-right: 0; }
.ws-nav-link:hover { background: var(--brand); color: var(--c-bone); }
.ws-nav-link.is-active { background: var(--accent); color: var(--c-ink); }
html[data-theme="light"] .ws-nav-link:hover { color: var(--c-bone); }
.ws-nav-right { display: flex; align-items: center; gap: 10px; }
.theme-toggle {
font-family: var(--f-mono);
font-weight: 700;
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
padding: 8px 12px;
border: var(--b-med) solid var(--fg);
background: var(--bg);
color: var(--fg);
box-shadow: 3px 3px 0 0 var(--accent-hot);
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 8px;
transition: transform 80ms linear, box-shadow 80ms linear;
}
.theme-toggle:hover { transform: translate(-2px,-2px); box-shadow: 5px 5px 0 0 var(--accent); }
.theme-toggle:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 0 var(--accent); }
.theme-toggle .dot {
width: 10px; height: 10px;
background: var(--accent);
border: 1.5px solid var(--fg);
}
html[data-theme="light"] .theme-toggle .dot { background: var(--c-magenta); }
@media (max-width: 900px) {
.ws-nav { grid-template-columns: auto auto; row-gap: var(--s-3); padding: var(--s-3) var(--s-5); }
.ws-nav-links { grid-column: 1 / -1; overflow-x: auto; justify-self: stretch; }
.ws-nav-right .ws-badge { display: none; }
}
.section { padding: var(--s-8) 0; }
.section.tight { padding: var(--s-7) 0; }
.section.no-top { padding-top: 0; }
.section.surface-void {
background: var(--c-void);
color: var(--c-bone);
border-top: var(--b-med) solid var(--c-bone);
border-bottom: var(--b-med) solid var(--c-bone);
}
.section.surface-void {
--bg: var(--c-void);
--bg-elevated: var(--c-obsidian);
--bg-card: var(--c-obsidian);
--fg: var(--c-bone);
--fg-muted: var(--c-mist);
--fg-dim: var(--c-lilac);
--accent: var(--c-acid);
--accent-hot: var(--c-magenta);
--brand: var(--c-royal);
--rule: #2A1B4F;
--rule-hot: var(--c-royal);
}
.hero {
padding: var(--s-9) 0 var(--s-8);
position: relative;
}
.hero h1.display {
font: var(--t-display);
font-size: clamp(48px, 8.5vw, 120px);
letter-spacing: -0.045em;
line-height: 0.85;
margin: var(--s-5) 0 var(--s-6);
color: var(--fg);
text-wrap: balance;
}
.hero h1 .acc { color: var(--accent); }
.hero h1 .hot { color: var(--accent-hot); }
.hero h1 .strike {
position: relative;
display: inline-block;
}
.hero h1 .strike::after {
content: '';
position: absolute;
left: -4px; right: -4px;
top: 52%;
height: 8px;
background: var(--accent-hot);
}
.hero .sub {
font: var(--t-body);
font-size: clamp(18px, 1.6vw, 22px);
color: var(--fg-muted);
line-height: 1.45;
max-width: 720px;
margin: 0 0 var(--s-6);
text-wrap: pretty;
}
.hero .sub b { color: var(--accent); font-weight: 700; }
.hero-meta {
display: flex; align-items: center;
gap: var(--s-3);
flex-wrap: wrap;
margin-bottom: var(--s-4);
}
.hero-cta {
display: flex; gap: var(--s-4); align-items: center; flex-wrap: wrap;
margin-bottom: var(--s-7);
}
.copy-chip {
font-family: var(--f-mono);
font-size: 14px;
background: var(--c-void);
color: var(--c-acid);
border: var(--b-med) solid var(--c-bone);
padding: 0;
box-shadow: 4px 4px 0 0 var(--c-magenta);
display: inline-flex;
align-items: stretch;
gap: 0;
overflow: hidden;
}
.copy-chip .prompt { color: var(--c-magenta); padding: 12px 4px 12px 14px; align-self: center; }
.copy-chip .cmd { padding: 12px 14px 12px 4px; align-self: center; user-select: all; }
.copy-chip .copy-btn {
font-family: var(--f-mono);
font-weight: 700;
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
padding: 0 16px;
border: 0;
border-left: var(--b-med) solid var(--c-bone);
background: var(--c-acid);
color: var(--c-ink);
cursor: pointer;
transition: background 80ms linear;
align-self: stretch;
}
.copy-chip .copy-btn:hover { background: var(--c-magenta); color: var(--c-bone); }
.copy-chip .copy-btn.is-copied { background: var(--c-magenta); color: var(--c-bone); }
.hero-badges { display: flex; gap: 8px; flex-wrap: wrap; }
.hero-diff {
margin-top: var(--s-7);
display: grid;
grid-template-columns: 1fr;
gap: var(--s-4);
}
.hero-arch {
margin-top: var(--s-7);
}
.arch {
background: var(--c-void);
border: var(--b-med) solid var(--c-bone);
box-shadow: var(--sh-stack);
padding: var(--s-7);
font-family: var(--f-mono);
color: var(--c-mist);
display: grid;
grid-template-columns: 220px 1fr;
gap: var(--s-6);
align-items: stretch;
min-height: 360px;
position: relative;
}
.arch .node {
border: var(--b-med) solid var(--c-bone);
padding: var(--s-4);
background: var(--c-obsidian);
display: flex; flex-direction: column;
gap: 4px;
position: relative;
}
.arch .node .tag {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--c-lilac);
}
.arch .node .name {
font-family: var(--f-sans);
font-weight: 700;
font-size: 22px;
color: var(--c-bone);
letter-spacing: -0.02em;
}
.arch .node .desc { font-size: 11px; color: var(--c-mist); opacity: 0.8; line-height: 1.4; }
.arch .node.user { background: var(--c-acid); color: var(--c-ink); }
.arch .node.user .tag { color: var(--c-ink); opacity: 0.7; }
.arch .node.user .name { color: var(--c-ink); }
.arch .node.user .desc { color: var(--c-ink); opacity: 0.7; }
.arch .node.api { background: var(--c-magenta); color: var(--c-bone); }
.arch .node.api .tag { color: var(--c-bone); opacity: 0.8; }
.arch .node.api .name { color: var(--c-bone); }
.arch .col {
display: flex; flex-direction: column;
justify-content: center;
gap: var(--s-3);
}
.arch .right {
display: grid;
grid-template-columns: 1fr 80px 1fr;
gap: var(--s-4);
align-items: stretch;
}
.arch .rail {
display: flex; flex-direction: column; gap: var(--s-3);
}
.arch .lane {
border: var(--b-med) solid var(--c-bone);
background: var(--c-obsidian);
padding: var(--s-3) var(--s-4);
position: relative;
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
gap: var(--s-3);
}
.arch .lane.rtk { border-color: var(--c-magenta); box-shadow: 4px 4px 0 0 var(--c-magenta); }
.arch .lane.hr { border-color: var(--c-acid); box-shadow: 4px 4px 0 0 var(--c-acid); }
.arch .lane.mem { border-color: var(--c-lilac); box-shadow: 4px 4px 0 0 var(--c-royal); }
.arch .lane .ltag { font: var(--t-tag); color: var(--c-acid); letter-spacing: 0.14em; text-transform: uppercase; }
.arch .lane .desc { font-size: 12px; color: var(--c-mist); margin-top: 2px; }
.arch .lane .gain {
font-family: var(--f-mono);
font-weight: 700;
font-size: 13px;
background: var(--c-acid);
color: var(--c-ink);
padding: 4px 8px;
letter-spacing: 0.04em;
}
.arch .lane.rtk .gain { background: var(--c-magenta); color: var(--c-bone); }
.arch .lane.mem .gain { background: var(--c-royal); color: var(--c-bone); }
.arch .arrow-col {
display: flex; flex-direction: column;
justify-content: space-around;
align-items: center;
font-family: var(--f-mono);
color: var(--c-lilac);
font-size: 14px;
}
.arch .arrow-col .arrow { font-size: 22px; color: var(--c-acid); }
@media (max-width: 900px) {
.arch { grid-template-columns: 1fr; }
.arch .right { grid-template-columns: 1fr; }
.arch .arrow-col { flex-direction: row; }
}
.matrix-wrap {
border: var(--b-med) solid var(--fg);
background: var(--bg-card);
box-shadow: var(--sh-stack);
overflow-x: auto;
}
.matrix {
width: 100%;
border-collapse: collapse;
font-family: var(--f-mono);
font-size: 13px;
min-width: 760px;
}
.matrix th, .matrix td {
padding: 12px var(--s-3);
border-right: var(--b-med) solid var(--rule);
border-bottom: var(--b-med) solid var(--rule);
text-align: center;
vertical-align: middle;
white-space: nowrap;
}
.matrix th:last-child, .matrix td:last-child { border-right: 0; }
.matrix tr:last-child td { border-bottom: 0; }
.matrix thead th {
background: var(--c-void);
color: var(--c-acid);
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
padding: var(--s-3);
border-bottom: var(--b-med) solid var(--c-bone);
}
.matrix thead th:first-child {
text-align: left;
color: var(--c-magenta);
background: var(--c-obsidian);
}
.matrix tbody th {
text-align: left;
font-family: var(--f-sans);
font-weight: 700;
font-size: 14px;
color: var(--fg);
letter-spacing: -0.01em;
background: var(--bg-elevated);
}
.cell-yes { color: var(--c-acid); font-weight: 700; }
.cell-part { color: var(--c-lilac); }
.cell-no { color: var(--fg-dim); opacity: 0.5; }
.cell-bg-yes { background: rgba(214,255,46,0.08); }
.cell-bg-part { background: rgba(167,139,250,0.06); }
html[data-theme="light"] .cell-bg-yes { background: rgba(255,46,147,0.06); }
html[data-theme="light"] .cell-bg-part { background: rgba(107,47,224,0.06); }
html[data-theme="light"] .cell-yes { color: var(--c-magenta); }
html[data-theme="light"] .cell-part { color: var(--c-royal); }
.faq-list {
display: grid;
grid-template-columns: 1fr;
gap: 0;
border-top: var(--b-med) solid var(--fg);
}
.faq-item {
border-bottom: var(--b-med) solid var(--fg);
}
.faq-q {
width: 100%;
text-align: left;
background: transparent;
border: 0;
padding: var(--s-5) 0;
cursor: pointer;
display: grid;
grid-template-columns: 64px 1fr auto;
gap: var(--s-4);
align-items: center;
color: var(--fg);
font-family: var(--f-sans);
font-weight: 700;
font-size: 20px;
letter-spacing: -0.01em;
}
.faq-q .num {
font-family: var(--f-mono);
font-weight: 700;
font-size: 11px;
letter-spacing: 0.14em;
color: var(--accent);
}
.faq-q .glyph {
font-family: var(--f-mono);
font-weight: 700;
width: 36px; height: 36px;
border: var(--b-med) solid var(--fg);
display: flex; align-items: center; justify-content: center;
background: var(--bg-elevated);
transition: transform 80ms linear, background 80ms linear;
color: var(--accent-hot);
}
.faq-item.is-open .faq-q .glyph {
background: var(--accent-hot);
color: var(--c-bone);
}
.faq-a {
display: none;
padding: 0 0 var(--s-5) calc(64px + var(--s-4));
color: var(--fg-muted);
font-family: var(--f-sans);
font-size: 16px;
line-height: 1.55;
max-width: 760px;
}
.faq-item.is-open .faq-a { display: block; }
.faq-a code {
font-family: var(--f-mono);
font-size: 13px;
background: rgba(214,255,46,0.08);
color: var(--accent);
border: 1.5px solid var(--accent);
padding: 1px 6px;
}
html[data-theme="light"] .faq-a code { background: rgba(255,46,147,0.06); }
.docs-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: var(--s-4);
}
.doc-card {
display: flex;
flex-direction: column;
gap: var(--s-3);
padding: var(--s-5);
border: var(--b-med) solid var(--fg);
background: var(--bg-card);
box-shadow: 6px 6px 0 0 var(--brand);
text-decoration: none;
color: var(--fg);
transition: transform 80ms linear, box-shadow 80ms linear;
}
.doc-card:hover { transform: translate(-2px,-2px); box-shadow: 10px 10px 0 0 var(--accent-hot); color: var(--fg); }
.doc-card .eyebrow {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--accent);
}
.doc-card .title {
font-family: var(--f-sans);
font-weight: 700;
font-size: 22px;
letter-spacing: -0.02em;
color: var(--fg);
}
.doc-card .desc { font-size: 14px; color: var(--fg-muted); line-height: 1.45; }
.doc-card .more {
margin-top: auto;
font-family: var(--f-mono);
font-size: 12px;
letter-spacing: 0.14em;
color: var(--accent-hot);
text-transform: uppercase;
display: inline-flex; gap: 8px; align-items: center;
}
.releases {
display: grid;
grid-template-columns: 1fr;
gap: 0;
border-top: var(--b-med) solid var(--fg);
border-bottom: var(--b-med) solid var(--fg);
}
.release {
display: grid;
grid-template-columns: 200px 1fr 220px;
gap: var(--s-5);
padding: var(--s-5) 0;
border-bottom: var(--b-med) solid var(--rule);
align-items: start;
}
.release:last-child { border-bottom: 0; }
.release .when {
font-family: var(--f-mono);
font-size: 12px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--fg-dim);
display: flex; flex-direction: column; gap: 6px;
}
.release .ver-pill {
display: inline-block;
font-family: var(--f-sans);
font-weight: 700;
font-size: 18px;
letter-spacing: -0.02em;
padding: 4px 10px;
background: var(--accent);
color: var(--c-ink);
border: var(--b-med) solid var(--fg);
align-self: flex-start;
}
.release .body { color: var(--fg); }
.release .title {
font-family: var(--f-sans);
font-weight: 700;
font-size: 22px;
letter-spacing: -0.02em;
color: var(--fg);
margin-bottom: var(--s-3);
}
.release ul { margin: 0; padding: 0 0 0 var(--s-4); color: var(--fg-muted); font-size: 14px; line-height: 1.55; }
.release ul li { margin-bottom: 4px; }
.release .stats {
display: flex; flex-direction: column; gap: 6px;
border-left: var(--b-med) solid var(--rule);
padding-left: var(--s-4);
font-family: var(--f-mono);
font-size: 12px;
color: var(--fg-dim);
letter-spacing: 0.08em;
text-transform: uppercase;
}
.release .stats b { color: var(--accent); font-family: var(--f-sans); font-size: 15px; }
@media (max-width: 900px) {
.release { grid-template-columns: 1fr; }
.release .stats { border-left: 0; border-top: var(--b-med) solid var(--rule); padding: var(--s-3) 0 0; }
}
.modules-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--s-5);
}
.module {
display: flex;
flex-direction: column;
gap: var(--s-4);
padding: var(--s-5);
border: var(--b-med) solid var(--fg);
background: var(--bg-card);
box-shadow: var(--sh-md);
min-height: 380px;
position: relative;
}
.module.mag { box-shadow: var(--sh-mag); }
.module.stack { box-shadow: var(--sh-stack); }
.module .head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-3); }
.module .eyebrow {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--accent);
}
.module .glyph {
font-family: var(--f-mono);
font-weight: 700;
font-size: 18px;
width: 36px; height: 36px;
border: var(--b-med) solid var(--fg);
background: var(--bg-elevated);
display: flex; align-items: center; justify-content: center;
color: var(--accent-hot);
}
.module .title {
font-family: var(--f-sans);
font-weight: 700;
font-size: 36px;
letter-spacing: -0.03em;
color: var(--fg);
line-height: 1;
}
.module .desc { font-size: 14px; color: var(--fg-muted); line-height: 1.5; }
.module ul {
margin: 0; padding: 0; list-style: none;
display: flex; flex-direction: column; gap: 6px;
font-family: var(--f-mono);
font-size: 12px;
color: var(--fg-muted);
}
.module ul li { display: flex; gap: 8px; align-items: baseline; }
.module ul li::before {
content: '·';
color: var(--accent);
font-weight: 700;
}
.module .stat {
margin-top: auto;
display: flex; align-items: baseline; gap: 8px;
font-family: var(--f-sans);
font-weight: 700;
font-size: 56px;
letter-spacing: -0.03em;
color: var(--accent);
line-height: 0.9;
}
.module .stat .unit {
font-family: var(--f-mono);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--fg-dim);
}
.module.mag .stat { color: var(--c-magenta); }
@media (max-width: 900px) {
.modules-grid { grid-template-columns: 1fr; }
}
.demo {
border: var(--b-med) solid var(--fg);
background: var(--bg-card);
box-shadow: var(--sh-stack);
}
.demo-tabs {
display: flex;
border-bottom: var(--b-med) solid var(--fg);
background: var(--c-void);
}
.demo-tab {
flex: 1;
font-family: var(--f-mono);
font-weight: 700;
font-size: 12px;
letter-spacing: 0.14em;
text-transform: uppercase;
padding: var(--s-4) var(--s-4);
border: 0;
border-right: var(--b-med) solid var(--c-bone);
background: var(--c-void);
color: var(--c-mist);
cursor: pointer;
text-align: left;
display: grid;
grid-template-columns: auto 1fr;
gap: 12px;
align-items: center;
transition: background 80ms linear;
}
.demo-tab .ix {
color: var(--c-magenta);
}
.demo-tab:last-child { border-right: 0; }
.demo-tab:hover { background: var(--c-obsidian); color: var(--c-bone); }
.demo-tab.is-active { background: var(--c-acid); color: var(--c-ink); }
.demo-tab.is-active .ix { color: var(--c-ink); }
.demo-body {
padding: var(--s-6);
background: var(--c-void);
color: var(--c-mist);
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--s-5);
font-family: var(--f-mono);
font-size: 13px;
line-height: 1.5;
}
.demo-body .pane {
border: var(--b-med) solid var(--c-bone);
background: var(--c-obsidian);
padding: var(--s-4);
display: flex; flex-direction: column; gap: var(--s-3);
min-height: 320px;
}
.demo-body .pane .ptag {
font: var(--t-tag); letter-spacing: 0.14em; text-transform: uppercase;
color: var(--c-lilac);
border-bottom: var(--b-med) solid var(--c-royal);
padding-bottom: 6px;
}
.demo-body .pane .ptag .count {
float: right;
color: var(--c-magenta);
}
.demo-body .pane.out .ptag .count { color: var(--c-acid); }
.demo-body .pane pre {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
color: var(--c-mist);
font-size: 12px;
line-height: 1.55;
flex: 1;
overflow: hidden;
}
.demo-body .pane .err { color: var(--c-magenta); }
.demo-body .pane .ok { color: var(--c-acid); }
.demo-body .pane .dim { color: var(--c-lilac); opacity: 0.6; }
.demo-body .pane.out { border-color: var(--c-acid); box-shadow: 4px 4px 0 0 var(--c-acid); }
.demo-foot {
display: grid;
grid-template-columns: repeat(3, 1fr);
border-top: var(--b-med) solid var(--fg);
background: var(--c-magenta);
color: var(--c-bone);
}
.demo-foot .stat {
padding: var(--s-4);
border-right: var(--b-med) solid var(--c-bone);
font-family: var(--f-mono);
}
.demo-foot .stat:last-child { border-right: 0; }
.demo-foot .stat .v {
font-family: var(--f-sans);
font-weight: 700;
font-size: 32px;
letter-spacing: -0.02em;
line-height: 1;
}
.demo-foot .stat .l {
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
opacity: 0.85;
margin-top: 6px;
}
@media (max-width: 900px) {
.demo-tabs { flex-direction: column; }
.demo-tab { border-right: 0; border-bottom: var(--b-med) solid var(--c-bone); }
.demo-body { grid-template-columns: 1fr; }
.demo-foot { grid-template-columns: 1fr; }
.demo-foot .stat { border-right: 0; border-bottom: var(--b-med) solid var(--c-bone); }
}
.stat-rail-x {
display: grid;
grid-template-columns: repeat(4, 1fr);
border: var(--b-med) solid var(--fg);
background: var(--bg-card);
box-shadow: var(--sh-stack);
}
.stat-x { padding: var(--s-6) var(--s-5); border-right: var(--b-med) solid var(--fg); }
.stat-x:last-child { border-right: 0; }
.stat-x .ix {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--accent);
margin-bottom: var(--s-3);
}
.stat-x .num {
font-family: var(--f-sans);
font-weight: 700;
font-size: clamp(48px, 5vw, 72px);
letter-spacing: -0.04em;
color: var(--fg);
line-height: 1;
}
.stat-x .num .u {
font-family: var(--f-mono);
font-size: 0.32em;
color: var(--fg-dim);
letter-spacing: 0.04em;
margin-left: 6px;
}
.stat-x .num.acid { color: var(--accent); }
.stat-x .num.mag { color: var(--accent-hot); }
.stat-x .lbl {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--fg-muted);
margin-top: var(--s-3);
}
.stat-x .sub { font-family: var(--f-mono); font-size: 12px; color: var(--fg-dim); margin-top: 4px; letter-spacing: 0.04em; }
@media (max-width: 900px) {
.stat-rail-x { grid-template-columns: 1fr 1fr; }
.stat-x:nth-child(2) { border-right: 0; }
.stat-x:nth-child(1), .stat-x:nth-child(2) { border-bottom: var(--b-med) solid var(--fg); }
}
.marquee {
background: var(--accent);
color: var(--c-ink);
border-top: var(--b-med) solid var(--fg);
border-bottom: var(--b-med) solid var(--fg);
font-family: var(--f-mono);
font-weight: 700;
font-size: 14px;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 10px 0;
overflow: hidden;
white-space: nowrap;
}
.marquee-track {
display: inline-block;
animation: ws-marquee 28s linear infinite;
will-change: transform;
}
.marquee-track span { display: inline-block; padding: 0 var(--s-5); }
.marquee-track .sep { color: var(--c-magenta); }
@keyframes ws-marquee {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
.footer {
border-top: var(--b-thick) solid var(--fg);
background: var(--c-void);
color: var(--c-mist);
padding: var(--s-9) 0 var(--s-7);
position: relative;
overflow: hidden;
}
.footer .row {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
gap: var(--s-7);
align-items: start;
margin-bottom: var(--s-7);
}
.footer .col h4 {
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--c-acid);
margin: 0 0 var(--s-3);
}
.footer .col ul {
list-style: none;
margin: 0; padding: 0;
display: flex; flex-direction: column;
gap: 8px;
}
.footer .col ul a {
font-family: var(--f-mono);
font-size: 13px;
color: var(--c-mist);
text-decoration: none;
border-bottom: 0;
letter-spacing: 0.04em;
}
.footer .col ul a:hover { color: var(--c-acid); }
.footer .footer-mark {
display: flex; flex-direction: column; gap: var(--s-4);
}
.footer .footer-mark p {
font-size: 14px;
color: var(--c-mist);
line-height: 1.5;
max-width: 380px;
margin: 0;
}
.footer .meta {
border-top: var(--b-med) solid var(--c-bone);
padding-top: var(--s-4);
display: flex; justify-content: space-between;
font-family: var(--f-mono);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--c-lilac);
}
@media (max-width: 900px) {
.footer .row { grid-template-columns: 1fr; }
.footer .meta { flex-direction: column; gap: 6px; }
}
.footer .watermark {
position: absolute;
bottom: -120px; right: -60px;
font-family: var(--f-sans);
font-weight: 700;
font-size: clamp(160px, 24vw, 360px);
letter-spacing: -0.06em;
color: var(--c-obsidian);
line-height: 0.85;
pointer-events: none;
user-select: none;
z-index: 0;
}
.footer .row, .footer .meta { position: relative; z-index: 1; }
.eyebrow-row {
display: flex; align-items: center;
gap: var(--s-3);
margin-bottom: var(--s-3);
font: var(--t-tag);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--accent);
}
.eyebrow-row .bar {
width: 32px; height: 2px; background: var(--accent-hot);
}
.reveal { opacity: 0; transform: translateY(8px); transition: opacity 400ms ease, transform 400ms ease; }
.reveal.in { opacity: 1; transform: none; }
.hero-bignum {
display: grid;
grid-template-columns: 1fr;
gap: var(--s-3);
margin: var(--s-5) 0 var(--s-7);
}
.hero-bignum .topline {
font: var(--t-tag);
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--accent-hot);
}
.hero-bignum .number {
font-family: var(--f-sans);
font-weight: 700;
font-size: clamp(140px, 24vw, 360px);
letter-spacing: -0.06em;
line-height: 0.8;
color: var(--fg);
display: flex; align-items: baseline; gap: 12px;
flex-wrap: wrap;
}
.hero-bignum .number .pct { color: var(--accent-hot); font-size: 0.4em; }
.hero-bignum .number .arrow { font-family: var(--f-mono); color: var(--accent); font-size: 0.5em; }
.hero-bignum .number .now { color: var(--accent); }
.hero-bignum .caption {
font-family: var(--f-mono);
font-size: 13px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--fg-dim);
}
.codecard {
font-family: var(--f-mono);
font-size: 13px;
background: var(--c-void);
color: var(--c-mist);
border: var(--b-med) solid var(--c-bone);
padding: var(--s-4);
box-shadow: 4px 4px 0 0 var(--c-magenta);
line-height: 1.6;
}
.codecard .c { color: var(--c-lilac); opacity: 0.7; }
.codecard .p { color: var(--c-magenta); }
.codecard .ok { color: var(--c-acid); }
.codecard .k { color: var(--c-magenta); }