.rc-head h1 { font-size: clamp(2.1rem, 5vw, 3.6rem); max-width: 22ch; }
.rc-article .rc {
margin: 2.2rem 0;
width: min(56rem, calc(100vw - 2 * var(--pad)));
max-width: none;
background: var(--paper);
border: 1px solid var(--chalk-2);
border-top: 3px solid var(--green-900);
border-radius: var(--radius);
padding: clamp(1rem, 3vw, 1.6rem);
}
.rc-article .rc-pic { background: none; border: 0; padding: 0; }
.rc-pic img { width: 100%; border-radius: var(--radius); border: 1px solid var(--chalk-2); }
.rc-title {
font-family: "Big Shoulders", sans-serif;
font-weight: 700;
font-size: clamp(1.15rem, 2.4vw, 1.45rem);
letter-spacing: .04em;
text-transform: uppercase;
color: var(--green-900);
line-height: 1.15;
margin: 0 0 1rem;
}
.rc figcaption { font-size: .85rem; color: var(--ink-soft); padding-top: .9rem; max-width: none; }
.rc figcaption a { color: var(--ink-soft); }
.rc li, .rc p { max-width: none; }
.rc-src { display: inline; }
.rc-box::first-letter, .rc-ctp::first-letter, .rc-ticks label span::first-letter { text-transform: uppercase; }
.rc-road-art { width: 100%; height: auto; display: block; }
.rc-road-art .rc-plate { font: 800 22px "Big Shoulders", sans-serif; fill: #fdfbf5; }
.rc-road-art .rc-door-label { font: 600 12px "Spline Sans", sans-serif; fill: #3d4a40; letter-spacing: .02em; }
.rc-truck { transform: translate(815px, 0); }
.rc-road.is-armed .rc-truck { transform: translate(140px, 0); }
.rc-road.is-driving .rc-truck { animation: rc-drive 5.2s cubic-bezier(.45, 0, .25, 1) .2s both; }
@keyframes rc-drive {
0%   { transform: translate(140px, 0); }
12%  { transform: translate(215px, 0); }
18%  { transform: translate(215px, 0); }
32%  { transform: translate(365px, 0); }
38%  { transform: translate(365px, 0); }
52%  { transform: translate(515px, 0); }
58%  { transform: translate(515px, 0); }
72%  { transform: translate(665px, 0); }
78%  { transform: translate(665px, 0); }
100% { transform: translate(815px, 0); }
}
@media (prefers-reduced-motion: reduce) {
.rc-road .rc-truck, .rc-road.is-armed .rc-truck { animation: none !important; transform: translate(815px, 0) !important; }
}
html.a11y-reduce-motion .rc-road .rc-truck { animation: none !important; transform: translate(815px, 0) !important; }
.rc-stops {
list-style: none; margin: 1rem 0 0; padding: 0;
display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem;
font-size: .9rem; line-height: 1.45;
}
.rc-stops li { border-top: 2px solid var(--brass-line); padding-top: .7rem; }
.rc-stops li:last-child { border-top-color: var(--crimson); }
.rc-stops b { display: block; font-family: "Big Shoulders", sans-serif; font-size: 1.15rem; letter-spacing: .03em; text-transform: uppercase; color: var(--green-900); margin: .35rem 0 .2rem; line-height: 1.1; }
.rc-stops span:not(.rc-no) { color: var(--ink-soft); }
.rc-no {
display: inline-block; min-width: 1.7rem; text-align: center;
font-family: "Big Shoulders", sans-serif; font-weight: 800; font-size: 1rem;
color: var(--paper); background: var(--green-900); border-radius: 2px; padding: .05rem .4rem;
}
.rc-stops li:last-child .rc-no { background: var(--crimson); }
.rc-fn { font-size: .72rem; margin-left: .2rem; text-decoration: none; color: var(--crimson-solid); }
.rc-notes { margin: 0; padding-left: 1.3rem; columns: 2 22rem; column-gap: 2rem; }
.rc-notes li { margin-bottom: .25rem; break-inside: avoid; }
@media (max-width: 820px) {
.rc-stops { grid-template-columns: 1fr; gap: 0; }
.rc-stops li { display: grid; grid-template-columns: 2.2rem 1fr; column-gap: .6rem; padding: .7rem 0; border-top-width: 1px; }
.rc-stops li > b, .rc-stops li > span:not(.rc-no), .rc-stops li > sup { grid-column: 2; }
.rc-stops .rc-no { grid-row: 1 / span 3; align-self: start; margin-top: .1rem; }
.rc-stops b { margin-top: 0; }
}
.rc-bar-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.rc-bar-rows li { display: grid; grid-template-columns: minmax(9rem, 16rem) 1fr; gap: 1rem; align-items: center; }
.rc-bar-label { font-size: .95rem; }
.rc-bar { position: relative; display: flex; align-items: center; height: 2.1rem; }
.rc-bar-fill { display: block; height: 100%; background: var(--green-800); border-radius: 0 2px 2px 0; }
.rc-bar-rows li:first-child .rc-bar-fill { background: var(--green-950); }
.rc-bar b { font-family: "Big Shoulders", sans-serif; font-size: 1.5rem; font-weight: 800; color: var(--green-900); margin-left: .6rem; font-variant-numeric: tabular-nums; }
.rc-bar-rows li .rc-bar { max-width: calc(100% - 2.6rem); }
.rc-axis-row { display: grid; grid-template-columns: minmax(9rem, 16rem) 1fr; gap: 1rem; margin-top: .5rem; }
.rc-axis {
position: relative; height: 1.4rem; max-width: calc(100% - 2.6rem);
border-top: 1px solid var(--brass); font-size: .78rem; color: var(--ink-soft); font-variant-numeric: tabular-nums;
}
.rc-axis span { position: absolute; top: .2rem; transform: translateX(-50%); }
.rc-axis span::before { content: ""; position: absolute; left: 50%; top: -.45rem; width: 1px; height: .4rem; background: var(--brass); }
@media (max-width: 620px) {
.rc-bar-rows li { grid-template-columns: 1fr; gap: .25rem; }
.rc-axis-row { grid-template-columns: 1fr; gap: 0; }
.rc-axis-row > span { display: none; }
}
.rc-ticks { list-style: none; margin: 0; padding: 0; columns: 2 18rem; column-gap: 2rem; }
.rc-ticks li { break-inside: avoid; border-bottom: 1px dashed var(--chalk-2); }
.rc-ticks label { display: flex; gap: .75rem; align-items: flex-start; padding: .6rem 0; cursor: pointer; }
.rc-ticks input {
appearance: none; -webkit-appearance: none; flex: 0 0 auto;
width: 1.35rem; height: 1.35rem; margin: .1rem 0 0; border: 2px solid var(--green-800); border-radius: 2px; background: var(--paper);
display: grid; place-content: center; cursor: pointer;
}
.rc-ticks input::after { content: ""; width: .7rem; height: .38rem; border: solid var(--paper); border-width: 0 0 3px 3px; transform: rotate(-45deg) translate(1px, -1px); opacity: 0; }
.rc-ticks input:checked { background: var(--green-800); }
.rc-ticks input:checked::after { opacity: 1; }
.rc-ticks input:checked + span { color: var(--ink-soft); text-decoration: line-through; text-decoration-color: var(--brass); }
.rc-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.rc-cal-grid > div:not(.rc-day) {
font-family: "Big Shoulders", sans-serif; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
font-size: .85rem; color: var(--green-900); text-align: center; padding-bottom: .2rem;
}
.rc-day {
position: relative; min-height: 5.2rem; padding: .4rem .45rem .7rem;
background: var(--chalk); border: 1px solid var(--chalk-2); border-radius: 2px;
display: flex; flex-direction: column; gap: .2rem;
}
.rc-day b { font-family: "Big Shoulders", sans-serif; font-size: 1.25rem; font-weight: 700; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
.rc-day span { font-size: .74rem; line-height: 1.2; color: var(--ink-soft); }
.rc-day.is-wkend b { color: var(--ink-soft); }
.rc-day.is-hols::after { content: ""; position: absolute; left: -3px; right: -3px; bottom: 3px; height: 4px; background: var(--brass-line); }
.rc-day.is-ph { background: var(--crimson); border-color: var(--crimson); }
.rc-day.is-ph b, .rc-day.is-ph span { color: var(--paper); }
.rc-day.is-open { background: var(--paper); border: 2px solid var(--green-800); }
.rc-day.is-open span { color: var(--green-800); font-weight: 600; }
.rc-day.is-school span { color: var(--crimson-solid); font-weight: 600; }
.rc-day.is-school { border-top: 3px solid var(--brass); }
.rc-cal-key { list-style: none; margin: .9rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.3rem; font-size: .82rem; color: var(--ink-soft); }
.rc-cal-key li { display: flex; align-items: center; gap: .45rem; }
.rc-cal-key i { display: inline-block; width: 1rem; height: .8rem; border-radius: 1px; }
.rc-cal-key .k-ph { background: var(--crimson); }
.rc-cal-key .k-open { background: var(--paper); border: 2px solid var(--green-800); }
.rc-cal-key .k-school { background: var(--chalk); border-top: 3px solid var(--brass); }
.rc-cal-key .k-hols { height: 4px; background: var(--brass-line); }
.rc-cal-notes { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 640px) {
.rc-day { min-height: 3rem; padding: .3rem .25rem .6rem; }
.rc-day span { display: none; }
.rc-day b { font-size: 1rem; }
.rc-cal-grid > div:not(.rc-day) { font-size: .7rem; letter-spacing: .04em; }
.rc-cal-notes { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; list-style: none; margin: 1rem 0 0; padding: 0; font-size: .88rem; }
.rc-cal-notes li { padding: .3rem 0; border-bottom: 1px dashed var(--chalk-2); }
}
.rc-two-panels { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.4rem; }
.rc-panel-head {
font-family: "Big Shoulders", sans-serif; font-weight: 700; font-size: 1.1rem; letter-spacing: .04em; text-transform: uppercase;
color: var(--paper); background: var(--green-900); padding: .6rem .8rem; border-radius: 2px; line-height: 1.15;
}
.rc-panel.is-sep .rc-panel-head { background: var(--crimson-solid); }
.rc-box { background: var(--chalk); border: 1px solid var(--chalk-2); border-radius: 2px; padding: .5rem .7rem; font-size: .9rem; line-height: 1.35; }
.rc-fan { list-style: none; margin: 0 0 0 1.1rem; padding: .6rem 0 0; border-left: 2px solid var(--green-800); }
.rc-fan > li { position: relative; padding: .35rem 0 .35rem 1.1rem; }
.rc-fan > li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 1.1rem; height: 2px; background: var(--green-800); }
.rc-fan > li:last-child { border-left: 2px solid var(--paper); margin-left: -2px; }
.rc-fan > li:last-child::before { left: -2px; width: calc(1.1rem + 2px); }
.rc-ctp { position: relative; margin: .45rem 0 0 1.4rem; padding: .45rem .7rem; font-size: .85rem; border: 1.5px dashed var(--green-700); border-radius: 2px; color: var(--green-800); }
.rc-ctp::before { content: ""; position: absolute; left: -1.4rem; top: -.5rem; width: 1.2rem; height: 1.3rem; border-left: 2px dotted var(--green-700); border-bottom: 2px dotted var(--green-700); }
.rc-note { margin: .9rem 0 0; padding: .55rem .8rem; font-size: .86rem; background: var(--chalk); border-left: 3px solid var(--crimson); }
.rc-grid8 { list-style: none; margin: .7rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
@media (max-width: 760px) { .rc-two-panels { grid-template-columns: 1fr; } }
@media (max-width: 380px) { .rc-grid8 { grid-template-columns: 1fr; } }
.rc-article .rc-card { padding: 0; border-top: 0; overflow: hidden; width: min(40rem, calc(100vw - 2 * var(--pad))); }
.rc-card-head { background: var(--green-950); color: var(--chalk); padding: .9rem 1.2rem; border-bottom: 3px solid var(--crimson); }
.rc-card-head span { display: block; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brass-line); }
.rc-card-head b { display: block; font-family: "Big Shoulders", sans-serif; font-size: 1.45rem; letter-spacing: .03em; text-transform: uppercase; line-height: 1.1; margin-top: .2rem; }
.rc-rows { list-style: none; margin: 0; padding: 0 1.2rem; }
.rc-rows li { display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; padding: .7rem 0 .6rem; border-bottom: 1px dashed var(--chalk-2); }
.rc-row-lab { font-size: .92rem; color: var(--ink-soft); }
.rc-row-val { font-family: "Big Shoulders", sans-serif; font-weight: 700; font-size: 1.2rem; letter-spacing: .02em; color: var(--green-900); text-align: right; line-height: 1.15; }
.rc-row-val.is-wide { grid-column: 1 / -1; text-align: left; font-size: 1.1rem; }
.rc-row-src { grid-column: 1 / -1; font-size: .75rem; color: var(--ink-soft); margin-top: .2rem; text-decoration-color: var(--brass-line); }
.rc-card figcaption { padding: .9rem 1.2rem 1.1rem; background: var(--chalk); }
.rc-key { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.rc-key b { display: inline-block; min-width: 1.2rem; font-family: "Big Shoulders", sans-serif; color: var(--green-900); }
@media (max-width: 520px) {
.rc-rows li { grid-template-columns: 1fr; }
.rc-row-val { text-align: left; }
}
@media print {
.rc-article .rc { width: auto; break-inside: avoid; }
}
.rc-article .refs a { overflow-wrap: anywhere; }