/* generated by tools/css.py from design/UniPage.dc.html and design/uni-system.css */
/* from design/UniPage.dc.html */
.uh{max-width:1180px;margin:0 auto;box-sizing:border-box}
.bc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:14px;line-height:1.5}
.bc li{display:inline-flex;align-items:center;gap:6px}
.bc svg{flex:none;color:var(--faint)}
.bc a{display:inline-flex;align-items:center;min-height:32px;color:var(--muted);text-decoration:none;border-radius:6px}
.bc a:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.bc [aria-current]{color:var(--fg);font-weight:600}
.uh-col{max-width:760px}
.uh-h{margin:16px 0 0;font:700 var(--h1)/1 var(--display);letter-spacing:-.04em;color:var(--fg)}
.uh-p{margin:16px 0 0;font-size:18px;line-height:1.5;color:var(--muted)}
.uq{position:relative;margin-top:32px}
.uq svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.uq input{width:100%;box-sizing:border-box;height:60px;padding:0 20px 0 54px;border:0;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);font:500 17px/1 var(--body);color:var(--fg);outline:none;transition:box-shadow .25s var(--ease)}
.uq input::placeholder{color:var(--faint);font-weight:400}
.uq input:focus{box-shadow:inset 0 0 0 2px var(--primary),0 0 0 4px var(--tint)}
.up{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px}
.up a{display:grid;gap:6px;padding:22px 24px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);text-decoration:none;color:var(--fg);transition:transform var(--d-ui) var(--out),box-shadow var(--d-ui) var(--out)}
.up b{font-family:var(--display);font-weight:700;font-size:var(--nm);line-height:1.2;letter-spacing:-.02em;color:var(--fg)}
.up span{font-size:14.5px;line-height:1.3;color:var(--muted)}
.up a:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--primary),0 0 0 4px var(--tint)}
@media (hover:hover){.up a:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 35%,var(--hair)),0 8px 20px -12px rgba(16,40,28,.25)}.up a:hover span{color:var(--primary)}}
@media (prefers-reduced-motion:reduce){.up a{transition:none}.up a:hover{transform:none}}
.up--soon{margin-top:12px}
.up--soon a{background:transparent;box-shadow:inset 0 0 0 1px rgb(16 32 27 / .14)}
.up--soon b{color:var(--muted)}
.un{margin:24px 0 0;padding:28px 24px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);display:grid;justify-items:start;gap:14px}
.un p{margin:0;font-size:16px;line-height:1.45;color:var(--muted)}
.un p b{color:var(--fg);font-weight:600}
.un button{min-height:44px;padding:0 18px;border:0;border-radius:12px;background:var(--tint);font:600 15px/1 var(--body);color:var(--primary);cursor:pointer}
.un button:hover{background:color-mix(in srgb,var(--primary) 14%,var(--tint))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* The university page's sizes, which the board sets per artboard (laptop 40px edge and a 72px name, phone 20px and
   39px), as one fluid scale on the site's edge; the board's search filter lives in uni.js. */
.uh{--h1:clamp(39px,26.6px + 3.2vw,72px);--nm:clamp(19px,17.9px + .29vw,22px);max-width:none;padding:clamp(20px,12.9px + 1.8vw,40px) var(--edge) var(--sec)}
.uh .up[hidden],.uh .un[hidden],.uh .up li[hidden]{display:none}

/* Press: a program card gives under the thumb (MOTION.md, Hover and press). */
.up a:active{transform:scale(.98);transition-duration:var(--d-press)}

/* A program with open years: the card holds its name and one pill per year, each opening that year's page (Dima, 28 Oct:
   "give pills for the years so people can go straight to the year they want"). The card is no link itself. */
.up .up-card{display:grid;gap:14px;padding:22px 24px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--hair)}
.up .up-yrs{display:flex;flex-wrap:wrap;gap:8px}
.up .up-yrs a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;background:var(--tint);box-shadow:none;font:600 15px/1 var(--body);color:var(--primary);transform:none}
@media (hover:hover){.up .up-yrs a:hover{transform:none;background:var(--primary);color:#fff;box-shadow:none}}
.up .up-yrs a:focus-visible{box-shadow:inset 0 0 0 2px var(--primary),0 0 0 4px var(--tint)}
.up .up-yrs a:active{transform:scale(.96)}

