/* Burgundy, warm paper, and restrained gold. */
:root{--civic-navy:#632638;--school-green:#75283f;--soft-green:#f0e6e7;--wine:#75283f;--wine-dark:#4e192b;--surface:#faf8f3;--civic-gold:#b99960}
.utility-bar,.taft-academics,.site-footer{background:#632638}.site-header{border-top-color:#632638}.hero.taft-hero{background:#4e192b}.hero-overlay{background:linear-gradient(90deg,#2d111ac9,#39182366 65%,#39182322),linear-gradient(0deg,#632638dc,transparent 65%)}.civic-hero-copy .button{color:#4e192b}.hero .script-slogan span{color:#fff}.hero .script-slogan .slogan-second{color:#efd76b}.civic-service-bar{background:#f0e6e7;border-color:#dfcacc}.civic-service-bar a{border-color:#cbb1b7}.ideal-mission-intro h2 em,.district-copy .text-link,.eyebrow,.taft-kicker,.taft-resource-grid b{color:#75283f}.district-photo>span{background:#f0e9e0}.academic-description{background:#632638ed}.taft-media-events,.leader-monogram,.facts-circle,.sidebar-contact{background:#f0e6e7}.leader-monogram{border-color:#cbb1b7}.leader-monogram>span{color:#75283f}.facts-circle{border-color:#cbb1b7;outline-color:#dec7cb}.deeper-guide{border-top-color:#dec7cb}.page-hero:after{background:linear-gradient(90deg,#632638 28%,#632638b3 70%,#63263840)}.footer-invitation nav a:hover{color:#4e192b}.ui-arrow{display:inline-block!important;width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.16em;flex-shrink:0;overflow:visible}.ui-arrow.arrow-left{transform:rotate(180deg)}.ui-arrow.arrow-up{transform:rotate(-90deg)}.ui-arrow.arrow-down{transform:rotate(90deg)}.carousel-arrows .ui-arrow{width:17px;height:17px;vertical-align:middle}.navigation summary .ui-arrow{width:12px;height:12px}.civic-service-bar b .ui-arrow{width:15px;height:15px}
/* Two successive write-on reveals, played once on first render. */
.hero .script-slogan .slogan-line{display:block;width:max-content;max-width:100%;padding:.06em .12em .12em .03em;margin-left:-.03em;clip-path:inset(0 100% 0 0);animation:slogan-write 1.65s linear forwards}
.hero .script-slogan .slogan-first{animation-delay:.12s}
.hero .script-slogan .slogan-second{animation-delay:1.8s;margin-top:-.12em}
.hero .script-slogan:after{transform-origin:left;transform:scaleX(0);animation:slogan-rule .45s ease-out 3.45s forwards;margin-top:15px}
@keyframes slogan-write{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 -2% 0 0)}}
@keyframes slogan-rule{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.hero .script-slogan .slogan-line{animation:none;clip-path:none}.hero .script-slogan:after{animation:none;transform:none}}
@media print{.hero .script-slogan .slogan-line{animation:none;clip-path:none}}

/* Homepage-only graduation ribbon: quiet, static styling and tabular digits. */
.graduation-ribbon{background:#f0e7e5;color:#632638;border-bottom:1px solid #dbc8c8;padding:10px 0}
.graduation-ribbon>.wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
.graduation-label{display:flex;align-items:center;gap:18px;margin:0;font:600 .54rem/1.4 Manrope,sans-serif;letter-spacing:.12em}
.graduation-label strong{font:400 1.2rem/1.2 var(--serif);letter-spacing:0}
.graduation-countdown{display:flex;align-items:baseline;gap:20px;font-variant-numeric:tabular-nums}
.graduation-countdown[hidden],.graduation-arrived[hidden]{display:none}
.graduation-countdown>span{display:flex;align-items:baseline;gap:5px}
.graduation-countdown b{font:600 .92rem/1.3 Manrope,sans-serif;font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.graduation-countdown small,.graduation-ribbon time{font:500 .62rem/1.4 Manrope,sans-serif;white-space:nowrap}
.graduation-arrived{font:500 .85rem Manrope,sans-serif;margin:0}
@media(max-width:800px){.graduation-label{font-size:0;gap:0}.graduation-label strong{font-size:1.1rem}.graduation-ribbon>.wrap{gap:15px}.graduation-countdown{gap:12px}.graduation-ribbon time{font-size:.57rem}}
@media(max-width:540px){.graduation-ribbon{padding:10px 0}.graduation-ribbon>.wrap{display:grid;grid-template-columns:1fr auto;gap:6px 16px}.graduation-label{grid-column:1}.graduation-ribbon time{grid-row:2;grid-column:1;font-size:.53rem}.graduation-countdown{grid-column:2;grid-row:1/3;gap:10px}.graduation-countdown>span{display:flex;flex-direction:column;align-items:center;gap:2px}.graduation-countdown b{font-size:.82rem}.graduation-countdown small{font-size:.48rem}.graduation-arrived{grid-column:2;grid-row:1/3;max-width:145px;font-size:.7rem}}
@media print{.graduation-ribbon{display:none}}
