
/* home-only layout */
.hero { padding-block: clamp(48px, 7vw, 96px) clamp(48px, 6vw, 80px); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero h1 { margin-top: 18px; }
.hero .lead { margin-top: 24px; }
.hero-safe { margin-top: 16px; padding-left: 14px; border-left: 3px solid var(--rung-2); font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.3; font-weight: 500; max-width: 34ch; }
.cta-row { display: flex; gap: var(--sp-3); flex-wrap: wrap; margin-top: 32px; }
@media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; } }

.feed { font-family: var(--font-mono); font-size: var(--fs-xs); overflow: hidden; }
.feed-row { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--divider); }
.feed-row:last-child { border-bottom: 0; }
.feed-row .rail-key { display: block; color: var(--text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feed-row .cp { color: var(--text-faint); font-size: var(--fs-2xs); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feed-row time { color: var(--text-faint); }
.feed-row.new { animation: arrive 2.4s var(--ease) 0.4s both; }
@keyframes arrive { 0% { background: var(--accent-subtle); } 100% { background: transparent; } }
.live { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--band-good-fg); }
.live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--band-good-solid); animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: 0.35; } }

.path { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--border); border-radius: var(--r-3); background: var(--surface); margin-top: 40px; }
.path > div { padding: 14px 16px; border-right: 1px solid var(--divider); }
.path > div:last-child { border-right: 0; }
.path b { display: block; font-family: var(--font-display); font-size: var(--fs-lg); }
.path span { font-size: var(--fs-sm); color: var(--text-muted); }
.path .kernel { background: var(--accent-subtle); }
@media (max-width: 860px) { .path { grid-template-columns: repeat(2, 1fr); } .path > div { border-bottom: 1px solid var(--divider); } }

.stat-big { white-space: nowrap; font-family: var(--font-display); font-weight: 700; font-size: clamp(3.5rem, 1.5rem + 7vw, 7.5rem); line-height: 0.85; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-6); }
.three > div { border-top: 2px solid var(--text); padding-top: var(--sp-4); }
.three h3 { font-size: var(--fs-xl); margin-bottom: var(--sp-2); }
.three p { color: var(--text-muted); font-size: var(--fs-md); }
@media (max-width: 860px) { .three { grid-template-columns: 1fr; } }

.anatomy { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--sp-8); align-items: start; }
.code { background: var(--surface-inverse); color: var(--text-inverse); border-radius: var(--r-3); padding: 20px 22px; font: var(--fs-sm)/1.65 var(--font-mono); overflow-x: auto; margin: 0; }
.code .k { opacity: 0.6; }
.parts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--r-3); overflow: hidden; }
.parts > div { background: var(--surface); padding: 18px 20px; }
.parts .n { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--text-faint); letter-spacing: var(--tracking-label); }
.parts h3 { font-size: var(--fs-xl); margin: 4px 0 6px; }
.parts p { font-size: var(--fs-md); color: var(--text-muted); }
.parts .platform { background: var(--surface-2); }
.classes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-6); }
@media (max-width: 960px) { .anatomy { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .parts { grid-template-columns: 1fr; } }

.ladder { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; align-items: end; }
.step { display: flex; flex-direction: column; justify-content: flex-end; }
.step .bar { border-radius: var(--r-2) var(--r-2) 0 0; padding: 14px; display: flex; flex-direction: column; justify-content: space-between; }
.step .bar b { font-family: var(--font-display); font-size: var(--fs-3xl); line-height: 1; }
.step .bar span { font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.step h3 { font-size: var(--fs-lg); margin-top: 12px; }
.step p { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 4px; }
.step:nth-child(1) .bar { height: 96px; background: var(--rung-0-bg); color: var(--rung-0-fg); border-top: 4px solid var(--rung-0); }
.step:nth-child(2) .bar { height: 132px; background: var(--rung-1-bg); color: var(--rung-1-fg); border-top: 4px solid var(--rung-1); }
.step:nth-child(3) .bar { height: 168px; background: var(--rung-2-bg); color: var(--rung-2-fg); border-top: 4px solid var(--rung-2); }
.step:nth-child(4) .bar { height: 204px; background: var(--rung-3-bg); color: var(--rung-3-fg); border-top: 4px solid var(--rung-3); }
.step:nth-child(5) .bar { height: 240px; background: var(--rung-4-bg); color: var(--rung-4-fg); }
.step:nth-child(6) .bar { height: 276px; background: var(--rung-5-bg); color: var(--rung-5-fg); }
.ladder-note { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-6); margin-top: var(--sp-10); }
.ladder-note p { font-size: var(--fs-md); color: var(--text-muted); }
.ladder-note b { color: var(--text); }
@media (max-width: 860px) { .ladder { grid-template-columns: repeat(3, 1fr); row-gap: 28px; } .ladder-note { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .ladder { grid-template-columns: repeat(2, 1fr); } }

.disc { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--sp-4); }
.disc > div { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-3); padding: 18px; border-top: 4px solid var(--c); }
.disc h3 { font-size: var(--fs-xl); color: var(--c); }
.disc p { font-size: var(--fs-md); margin-top: 6px; }
.disc .post { font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); margin-top: 12px; }

.hz-wrap { overflow-x: auto; }
.hz { border-collapse: separate; border-spacing: 4px; font-family: var(--font-mono); font-size: var(--fs-2xs); min-width: 760px; width: 100%; }
.hz th { font-weight: 500; color: var(--text-muted); text-align: left; padding: 4px 6px; letter-spacing: 0.04em; vertical-align: bottom; }
.hz td { height: 40px; border: 1px solid; border-radius: var(--r-2); text-align: center; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.hz th[scope=row] { color: var(--text); font-size: var(--fs-xs); white-space: nowrap; }
.hz .cov { background: var(--hz-covered-bg); color: var(--hz-covered-fg); border-color: var(--hz-covered-border); }
.hz .wai { background: var(--hz-waived-bg); color: var(--hz-waived-fg); border-color: var(--hz-waived-border); }
.hz .unc { background: var(--hz-uncovered-bg); color: var(--hz-uncovered-fg); border-color: var(--hz-uncovered-border); }
.hz .out { background: var(--hz-oos-bg); color: var(--hz-oos-fg); border-color: var(--hz-oos-border); font-weight: 400; }
.hz-sum { display: flex; gap: var(--sp-8); flex-wrap: wrap; margin-top: var(--sp-6); }
.hz-sum div b { display: block; font-family: var(--font-display); font-size: var(--fs-3xl); line-height: 1; font-variant-numeric: tabular-nums; }
.hz-sum div span { font-size: var(--fs-sm); color: var(--text-muted); }

.chain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; align-items: stretch; }
.blk { background: var(--surface); border: 1px solid var(--border); padding: 16px; font-family: var(--font-mono); font-size: var(--fs-2xs); line-height: 1.7; position: relative; }
.blk + .blk { border-left: 0; }
.blk:first-child { border-radius: var(--r-3) 0 0 var(--r-3); }
.blk:last-child { border-radius: 0 var(--r-3) var(--r-3) 0; }
.blk .t { font-size: var(--fs-xs); font-weight: 600; color: var(--text); margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }
.blk dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0 10px; color: var(--text-muted); }
.blk dd { margin: 0; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.replay { display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap; margin-top: var(--sp-4); padding: 14px 16px; border: 1px solid var(--band-good-border); background: var(--band-good-bg); color: var(--band-good-fg); border-radius: var(--r-3); font-size: var(--fs-md); }
.two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-10); align-items: start; }
.ticks { list-style: none; padding: 0; margin: var(--sp-6) 0 0; display: grid; gap: 12px; }
.ticks li { padding-left: 26px; position: relative; font-size: var(--fs-md); color: var(--text-muted); }
.ticks li b { color: var(--text); }
.ticks li::before { content: ""; position: absolute; left: 0; top: 7px; width: 14px; height: 4px; background: var(--rung-2); }
@media (max-width: 860px) { .chain, .two { grid-template-columns: 1fr; } .blk + .blk { border-left: 1px solid var(--border); border-top: 0; } .blk:first-child, .blk:last-child { border-radius: var(--r-3); } }

.gaps { list-style: none; margin: 0; padding: 0; }
.gaps li { display: flex; justify-content: space-between; gap: var(--sp-3); padding: 10px 16px; border-bottom: 1px solid var(--divider); font-family: var(--font-mono); font-size: var(--fs-xs); }
.gaps li:last-child { border-bottom: 0; }

.topo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.unit { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-3); padding: 14px 16px; }
.unit b { font-family: var(--font-mono); font-size: var(--fs-sm); }
.unit p { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 4px; }
.unit .lang { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--text-faint); text-transform: uppercase; letter-spacing: var(--tracking-label); }
.unit.svc { background: var(--surface-2); border-style: dashed; }
@media (max-width: 860px) { .topo { grid-template-columns: repeat(2, 1fr); } }

.roles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-6); }
.roles h3 { font-size: var(--fs-xl); }
.roles p { font-size: var(--fs-md); color: var(--text-muted); margin-top: 6px; }
.roles .never { font-size: var(--fs-sm); margin-top: 10px; color: var(--text-faint); }
@media (max-width: 960px) { .roles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .roles { grid-template-columns: 1fr; } }

.posts3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-6); }
.posts3 a { text-decoration: none; color: var(--text); display: block; border-top: 2px solid var(--text); padding-top: var(--sp-4); }
.posts3 a:hover h3 { color: var(--accent-text); text-decoration: underline; }
.posts3 h3 { font-size: var(--fs-xl); margin-top: 8px; }
.posts3 p { color: var(--text-muted); font-size: var(--fs-md); margin-top: 8px; }
@media (max-width: 860px) { .posts3 { grid-template-columns: 1fr; } }

.partner { background: var(--surface-inverse); color: var(--text-inverse); border-radius: var(--r-3); padding: clamp(28px, 4vw, 56px); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--sp-10); }
.partner .eyebrow { color: var(--text-inverse); opacity: 0.7; }
.partner .lead { color: var(--text-inverse); opacity: 0.82; }
.partner ul { margin: var(--sp-6) 0 0; padding-left: 1.2em; display: grid; gap: 8px; font-size: var(--fs-md); }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; color-scheme: inherit; }
.form .full { grid-column: 1 / -1; }
.form label { display: block; font-size: var(--fs-sm); font-weight: 500; margin-bottom: 6px; }
.form input, .form textarea { width: 100%; min-height: 44px; border-radius: var(--r-2); border: 1px solid color-mix(in srgb, var(--text-inverse) 30%, transparent); background: color-mix(in srgb, var(--text-inverse) 7%, transparent); color: var(--text-inverse); font: inherit; font-size: var(--fs-md); padding: 10px 12px; }
.form textarea { min-height: 96px; resize: vertical; }
.form .btn-primary { background: var(--text-inverse); color: var(--surface-inverse); }
.form-note { font-size: var(--fs-sm); opacity: 0.75; }
@media (max-width: 860px) { .partner, .form { grid-template-columns: 1fr; } }
