.rh {
	--rh-accent: #4dff4d;
	--rh-on: #000;
	--rh-bg: #121212;
	--rh-text: #f5f5f5;
	--rh-muted: rgba(255, 255, 255, .72);
	--rh-line: rgba(255, 255, 255, .16);
	--rh-soft: rgba(255, 255, 255, .06);
	background: var(--rh-bg);
	color: var(--rh-text);
	font: inherit;
	line-height: 1.6;
	padding: clamp(1.25rem, 4vw, 3rem);
	border-radius: 16px;
	max-width: 1100px;
	margin: 0 auto;
	box-sizing: border-box;
}
.rh.rh-light { --rh-bg: #ffffff; --rh-text: #111; --rh-muted: rgba(0, 0, 0, .7); --rh-line: rgba(0, 0, 0, .15); --rh-soft: rgba(0, 0, 0, .04); }
.rh.rh-inherit { --rh-bg: transparent; --rh-text: inherit; --rh-muted: inherit; --rh-line: rgba(128, 128, 128, .3); --rh-soft: rgba(128, 128, 128, .08); padding: 0; }
.rh *, .rh *::before, .rh *::after { box-sizing: border-box; }
.rh h2, .rh h3, .rh p, .rh li, .rh span, .rh button, .rh label { color: inherit; }
.rh a { color: var(--rh-accent); }
.rh [hidden] { display: none !important; }

.rh-hero { margin: 0 0 2rem; }
.rh-kicker { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--rh-accent) !important; font-weight: 700; margin: 0 0 .5rem; }
.rh-title { margin: 0 0 .75rem; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.05; letter-spacing: -.025em; }
.rh-lede { margin: 0; max-width: 62ch; font-size: 1.1rem; opacity: .8; }
.rh-stats { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.75rem 0 0; }
.rh-stat { border: 1px solid var(--rh-line); border-radius: 12px; padding: .75rem 1.1rem; background: var(--rh-soft); }
.rh-stat b { display: block; font-size: 1.5rem; line-height: 1.1; color: var(--rh-accent); }
.rh-stat span { font-size: .82rem; opacity: .75; }

.rh-controls { position: sticky; top: 0; z-index: 5; margin: 0 -.25rem 1.5rem; padding: .75rem .25rem; background: var(--rh-bg); border-bottom: 1px solid var(--rh-line); }
.rh-chips { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.rh-chip { border: 1px solid var(--rh-line); background: transparent; color: inherit; padding: .5rem .95rem; border-radius: 999px; font: inherit; font-size: .9rem; cursor: pointer; }
.rh-chip:hover { border-color: var(--rh-accent); }
.rh .rh-chip.is-on { background: var(--rh-accent); border-color: var(--rh-accent); color: var(--rh-on); font-weight: 700; }
.rh-chip:focus-visible, .rh-toggle input:focus-visible { outline: 2px solid var(--rh-accent); outline-offset: 2px; }
.rh-toggle { display: inline-flex; align-items: center; gap: .45rem; margin-left: auto; font-size: .9rem; cursor: pointer; }
.rh-toggle input { accent-color: var(--rh-accent); width: 1.05rem; height: 1.05rem; }
.rh-count { margin: .6rem 0 0; font-size: .85rem; opacity: .75; }
.rh-empty { opacity: .75; padding: 1.5rem 0; }

.rh-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.rh-timeline::before { content: ""; position: absolute; left: 148px; top: 0; bottom: 0; width: 2px; background: var(--rh-line); }
.rh-item { display: grid; grid-template-columns: 130px 1fr; gap: 36px; position: relative; margin: 0 0 1.25rem; }
.rh-item::before { content: ""; position: absolute; left: 142px; top: 1.15rem; width: 14px; height: 14px; border-radius: 50%; background: var(--rh-bg); border: 3px solid var(--rh-accent); }
.rh-year { text-align: right; padding-top: .85rem; font-weight: 800; font-size: 1.05rem; color: var(--rh-accent) !important; }
.rh-card { border: 1px solid var(--rh-line); border-radius: 14px; padding: 1.1rem 1.25rem; background: var(--rh-soft); margin-left: 12px; }
.rh-card h3 { margin: 0 0 .35rem; font-size: 1.15rem; line-height: 1.3; }
.rh-card p { margin: 0; opacity: .8; }
.rh-badge { display: inline-block; margin: .75rem .5rem 0 0; padding: .15rem .6rem; border: 1px solid var(--rh-accent); border-radius: 999px; font-size: .72rem; color: var(--rh-accent) !important; }
.rh-src { display: inline-block; margin-top: .75rem; font-size: .85rem; }

.rh-section { margin: 3rem 0 0; }
.rh-section > h2 { margin: 0 0 1rem; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.02em; }
.rh-shifts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.rh-shift { border: 1px solid var(--rh-line); border-radius: 14px; padding: 1.25rem; background: var(--rh-soft); }
.rh-shift__n { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 8px; background: var(--rh-accent); color: var(--rh-on) !important; font-weight: 800; margin-bottom: .6rem; }
.rh-shift h3 { margin: 0 0 .35rem; font-size: 1.1rem; }
.rh-shift p { margin: 0; opacity: .8; }

.rh-cta { margin: 3rem 0 0; padding: 1.75rem; border: 2px dashed var(--rh-accent); border-radius: 16px; display: flex; gap: 1.25rem; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.rh-cta h2 { margin: 0 0 .3rem; font-size: 1.4rem; }
.rh-cta p { margin: 0; opacity: .8; max-width: 52ch; }
.rh-btns { display: flex; gap: .75rem; flex-wrap: wrap; }
.rh .rh-btn { display: inline-block; padding: .8rem 1.4rem; border-radius: 10px; background: var(--rh-accent); color: var(--rh-on); font-weight: 800; text-decoration: none; }
.rh .rh-btn:hover { opacity: .88; }
.rh .rh-btn--ghost { background: transparent; border: 1px solid var(--rh-line); color: inherit; }

.rh-sources { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--rh-line); font-size: .9rem; }
.rh-sources h2 { font-size: 1.1rem; margin: 0 0 .5rem; }
.rh-sources ul { margin: .5rem 0 0; padding-left: 1.1rem; }
.rh-sources li { margin: .25rem 0; }
.rh-note { opacity: .75; margin: 0 0 .5rem; }

@media (max-width: 720px) {
	.rh-timeline::before { left: 7px; }
	.rh-item { grid-template-columns: 1fr; gap: .25rem; padding-left: 30px; }
	.rh-item::before { left: 0; top: .35rem; }
	.rh-year { text-align: left; padding-top: 0; }
	.rh-card { margin-left: 0; }
	.rh-toggle { margin-left: 0; }
}
