/* A folded weather column, not another full-height chapter. */
.front-page .campus-weather{margin:0;border-block:1px solid var(--forest);color:var(--forest);background:transparent;}
.front-page .campus-weather>summary{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 0;cursor:pointer;list-style:none;}
.campus-weather>summary::-webkit-details-marker{display:none}
.campus-weather>summary>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1;}
.campus-weather summary small{font:400 .8125rem/1.3 var(--font-label);letter-spacing:.05em;}
.campus-weather [data-weather-summary]{font:400 1rem/1.3 var(--font-label);}
.campus-weather .weather-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid currentColor;box-shadow:2px 2px 0 var(--forest);font:400 1.125rem/1 var(--font-label);flex:none;}
.campus-weather .weather-toggle{width:28px;text-align:center;font-size:1.5rem;}
.campus-weather[open] .weather-toggle{transform:rotate(45deg)}
.campus-weather .weather-body{padding:4px 0 16px;max-width:900px;}
.campus-weather .weather-body p{margin:0 0 12px;font:400 1rem/1.5 var(--font-body);}
.campus-weather .weather-body .weather-stamp{font-family:var(--font-label);letter-spacing:.04em;}
.campus-weather .weather-body .weather-tip{font:400 clamp(1.35rem,2.3vw,1.9rem)/1.2 var(--font-display);}
.campus-weather .weather-body .weather-meta{font-size:.8125rem;line-height:1.5;}
.campus-weather .weather-body .weather-meta:empty{display:none;}
.campus-weather .weather-body a{text-decoration:underline;text-underline-offset:3px;}
.campus-weather .weather-body button{min-height:44px;padding:10px 14px;background:var(--forest);color:var(--brand-green);border:1px solid var(--forest);font:400 .875rem/1.4 var(--font-label);cursor:pointer;}
.campus-weather button:disabled{opacity:.6;cursor:wait;}
.campus-weather .weather-hours{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(108px,1fr);overflow-x:auto;scroll-snap-type:x proximity;padding:0 0 8px;margin:0 0 12px;list-style:none;}
.campus-weather .weather-hours li{scroll-snap-align:start;border-left:1px solid var(--forest);padding:6px 10px;display:grid;gap:5px;font-size:.875rem;line-height:1.4;}
.campus-weather .weather-hours time{font-family:var(--font-label);}
.campus-weather .weather-hours strong{font:400 1.5rem/1.1 var(--font-display);font-variant-numeric:tabular-nums;}
.campus-weather .weather-body .weather-vision{border-left:3px solid var(--forest);padding:8px 12px;background:var(--brand-green);font-size:.875rem;}
.campus-weather .weather-vision strong,.campus-weather [data-weather-vision]{display:block;margin-bottom:6px;}
.campus-weather .weather-vision strong{font:400 .8125rem/1.4 var(--font-label);letter-spacing:.04em;}
.campus-weather :focus-visible{outline:3px solid var(--forest);outline-offset:3px;}
.campus-weather [hidden]{display:none!important;}
@media(prefers-reduced-motion:no-preference){.campus-weather .weather-toggle{transition:transform .16s ease-out}.campus-weather button:active{transform:translateY(1px)}}
@media(max-width:760px){.front-page .campus-weather>summary{gap:10px;min-height:56px}.campus-weather .weather-body{padding-bottom:12px}.campus-weather .weather-hours{grid-auto-columns:112px;}.campus-weather .weather-body .weather-tip{font-size:1.35rem;}}

/* One scene per weather report. Artwork precedes the hourly forecast. */
.campus-weather .weather-scene{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);align-items:center;gap:12px 22px;margin:0 0 16px;border-block:1px solid var(--forest);padding:10px 0;}
.campus-weather .weather-art{width:100%;max-width:260px;justify-self:center;}
.campus-weather .weather-art svg{display:block;width:100%;height:auto;overflow:visible;}
.campus-weather .weather-scene figcaption{min-width:0;}
.campus-weather .weather-scene-badge{display:block;margin-bottom:8px;font:400 .75rem/1.4 var(--font-label);letter-spacing:.055em;}
.campus-weather .weather-scene .weather-tip{font:400 clamp(1.45rem,2.7vw,2.1rem)/1.12 var(--font-display);margin-bottom:10px;}
.campus-weather .weather-scene [data-weather-scene-note]{font-size:.8125rem;line-height:1.4;}
.campus-weather .weather-scene figcaption>a{display:inline-flex;align-items:center;min-height:44px;font:400 .8125rem/1.4 var(--font-label);}
.campus-weather .weather-daily{border-top:1px solid var(--forest);padding-top:12px;margin-top:14px;}
.campus-weather .weather-body .weather-daily>p{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0 0 16px;font-size:.9375rem;line-height:1.45;}
.campus-weather .weather-daily a{display:block;max-width:100%;line-height:1.45;overflow-wrap:break-word;}
.campus-weather .weather-daily a>strong{display:block;margin-bottom:4px;font:400 1rem/1.4 var(--font-label);}
.campus-weather .weather-daily a>span{display:block;font:400 1rem/1.4 var(--font-label);}
.campus-weather .weather-daily>p+p{padding-top:12px;border-top:1px solid var(--forest);}
.campus-weather .weather-daily small{font:400 .75rem/1.4 var(--font-label);letter-spacing:.04em;}
@keyframes campus-scene-build{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes campus-scene-water{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion-preference="off"]) .weather-art.scene-build .scene-part{animation:campus-scene-build .48s ease-out both;animation-delay:calc(var(--part)*.11s);}
 html:not([data-motion-preference="off"]) .weather-art.scene-build .scene-water{animation:campus-scene-water 1.2s ease-in-out .3s 1;}
}
@media(max-width:560px){
 .campus-weather .weather-scene{grid-template-columns:minmax(0,1fr);gap:8px;}
 .campus-weather .weather-art{max-width:220px;}
 .campus-weather .weather-scene .weather-tip{font-size:1.6rem;}
 .campus-weather .weather-scene-badge{font-size:.6875rem;}
 .campus-weather .weather-scene figcaption>p:not(.weather-tip){font-size:.875rem;}
}
@media(max-width:380px){.campus-weather .weather-art{max-width:200px;}}
