:root{
  --white:#FFFFFF;
  --canvas:#EEF3F7;
  --ink:#16233A;
  --muted:#5B6878;
  --rule:#D6DEE6;
  --blue:#0B6AAE;
  --blue-dark:#084E80;
  --navy:#12305A;
  --wrap:1240px;
  --gut:clamp(16px,4vw,40px);
  /* cross-stitch motif from the college logo */
  --stitch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 9' shape-rendering='crispEdges' fill='%232BA6E1'%3E%3Cpath d='M4 0h1v1H4zM3 1h1v1H3zM5 1h1v1H5zM2 2h1v1H2zM4 2h1v1H4zM6 2h1v1H6zM10 2h1v1h-1zM1 3h1v1H1zM3 3h3v1H3zM7 3h1v1H7zM0 4h1v1H0zM2 4h2v1H2zM5 4h2v1H5zM8 4h1v1H8zM10 4h1v1h-1zM1 5h1v1H1zM3 5h3v1H3zM7 5h1v1H7zM2 6h1v1H2zM4 6h1v1H4zM6 6h1v1H6zM10 6h1v1h-1zM3 7h1v1H3zM5 7h1v1H5zM4 8h1v1H4z'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lowvision{font-size:125%}
html.lowvision body{--muted:#16233A;--rule:#16233A}
html.lowvision img{filter:grayscale(1) contrast(1.1)}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.0625rem/1.6 "Golos Text",system-ui,sans-serif;overflow-x:hidden}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--blue)}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.015em;line-height:1.15}
h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
h3{font-size:1.15rem;line-height:1.3}
ul{list-style:none;margin:0;padding:0}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px}
.skip:focus{left:8px}
.stitch{height:27px;background:var(--stitch) 0 0/36px 27px repeat-x}

/* top bar */
.top{background:var(--canvas);font-size:.875rem}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;min-height:42px;padding-block:6px}
.top a{text-decoration:none}
.top a:hover{text-decoration:underline}
.top .contacts{margin-left:auto;display:flex;flex-wrap:wrap;gap:4px 22px;align-items:center}
.top button{font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:3px 10px;cursor:pointer}
.top button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}

/* header */
.masthead .wrap{display:flex;align-items:center;gap:20px 32px;padding-block:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;max-width:420px}
.brand img{width:92px}
.brand span{font-weight:600;font-size:1rem;line-height:1.3}
.search{margin-left:auto;display:flex;border:1px solid var(--rule);border-radius:3px}
.search input{font:inherit;font-size:.95rem;border:0;padding:9px 12px;width:220px;background:transparent;color:var(--ink)}
.search button{font:inherit;font-size:.95rem;font-weight:500;border:0;border-left:1px solid var(--rule);background:var(--canvas);color:var(--ink);padding:0 14px;cursor:pointer}
.nav{border-top:1px solid var(--rule)}
.nav>.wrap>ul{display:flex;flex-wrap:wrap;column-gap:22px}
.nav li{position:relative}
.nav>.wrap>ul>li>a,.nav>.wrap>ul>li>button{display:block;font:500 1rem "Golos Text",sans-serif;color:var(--ink);background:none;border:0;padding:12px 0;text-decoration:none;cursor:pointer}
.nav>.wrap>ul>li>a:hover,.nav>.wrap>ul>li>button:hover,.nav li:focus-within>button{color:var(--blue)}
.nav ul ul{display:none;position:absolute;z-index:30;top:100%;left:0;min-width:280px;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--blue);padding:10px 0}
.nav li:hover>ul,.nav li:focus-within>ul{display:block}
.nav ul ul a{display:block;padding:7px 18px;text-decoration:none;font-size:.95rem}
.nav ul ul a:hover{background:var(--canvas);color:var(--ink)}
.burger{display:none;font:600 .95rem "Golos Text",sans-serif;background:none;border:1px solid var(--ink);border-radius:3px;padding:8px 14px;color:var(--ink);cursor:pointer}

/* intro */
.intro{padding:clamp(40px,6vw,72px) 0 clamp(32px,4vw,48px)}
.intro .wrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px 56px;align-items:end}
.intro h1{font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.025em;font-weight:600}
.intro p{color:var(--muted);max-width:38ch}
.intro .links{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px 20px;font-weight:500}

/* featured event */
.feature .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.feature img{width:100%;height:100%;aspect-ratio:700/441;object-fit:cover;background:var(--canvas)}
.feature .caption{background:var(--navy);color:#fff;padding:clamp(24px,3.5vw,44px);display:flex;flex-direction:column;gap:16px}
.feature time{color:#A9C4E4;font-size:.95rem}
.feature h2{font-size:clamp(1.35rem,2.1vw,1.75rem);line-height:1.25}
.feature p{color:#D4E0EE}
.feature .caption a{margin-top:auto;font-weight:600;color:#fff}

/* news */
.block{padding:clamp(56px,7vw,88px) 0}
.block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:28px}
.block-head a{font-weight:500}
.news-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:48px}
.news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
.news a{text-decoration:none;display:block}
.news img{width:100%;aspect-ratio:700/441;object-fit:cover;background:var(--canvas)}
.news .cat{display:block;margin-top:14px;font-size:.85rem;font-weight:500;color:var(--blue)}
.news h3{margin-top:4px;font-weight:500;font-size:1.08rem;line-height:1.35}
.news a:hover h3{text-decoration:underline;text-underline-offset:.18em}
.news time{display:block;margin-top:6px;font-size:.85rem;color:var(--muted)}
.side{display:grid;gap:40px;align-content:start}
.side h2{font-size:1.25rem;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.side li{border-bottom:1px solid var(--rule)}
.side li a{display:block;padding:12px 0;text-decoration:none;font-weight:500;line-height:1.4}
.side li a:hover{text-decoration:underline}
.hotline{background:var(--canvas);padding:22px}
.hotline h2{border:0;padding:0;margin-bottom:8px}
.hotline p{font-size:.95rem;color:var(--muted);margin-bottom:10px}
.hotline a{font-weight:600}

/* sitemap by audience */
.audiences{background:var(--canvas)}
.cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.cols h3{padding-bottom:10px;margin-bottom:6px;border-bottom:2px solid var(--blue)}
.cols li a{display:block;padding:6px 0;text-decoration:none;line-height:1.4}
.cols li a:hover{text-decoration:underline;color:var(--ink)}

/* departments */
.depts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule)}
.dept{padding:24px 24px 28px;border-right:1px solid var(--rule)}
.dept:first-child{padding-left:0}
.dept:last-child{border-right:0;padding-right:0}
.dept h3 a{text-decoration:none}
.dept h3 a:hover{text-decoration:underline}
.dept ul{margin-top:16px;display:grid;gap:14px}
.dept li{font-size:.95rem;line-height:1.4}
.dept li span{display:block;color:var(--muted);font-size:.875rem;margin-top:2px}

/* college life */
.life{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.life a{text-decoration:none;display:block}
.life img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--canvas)}
.life h3{margin-top:14px}
.life p{color:var(--muted);font-size:.95rem;margin-top:4px}
.life a:hover h3{text-decoration:underline}
.more-life{margin-top:32px;display:flex;flex-wrap:wrap;gap:8px 28px;font-weight:500}

/* official resources */
.official{border-top:1px solid var(--rule);padding:28px 0;font-size:.95rem}
.official ul{display:flex;flex-wrap:wrap;gap:8px 32px}

/* footer */
footer{background:var(--navy);color:#D4E0EE;font-size:.95rem}
footer .stitch{background-color:var(--white)}
footer .wrap{padding-block:48px 28px}
.foot{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:36px}
footer h2{font-size:1rem;color:#fff;margin-bottom:12px}
footer ul{display:grid;gap:6px}
footer a{color:#fff}
footer a:hover{color:#A9C4E4}
footer address{font-style:normal;line-height:1.7}
.phone{font-size:1.4rem;font-weight:600;text-decoration:none}
.legal{margin-top:40px;padding-top:20px;border-top:1px solid #2E4C78;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.85rem;color:#A9C4E4}

@media (max-width:1000px){
  .masthead .wrap{flex-wrap:wrap}
  .brand{flex:1 1 0;min-width:0}
  .burger{display:block;margin-left:auto}
  .search{order:3;margin-left:0;width:100%}
  .search input{flex:1;width:auto}
  .nav{display:none}
  .nav.open{display:block}
  .nav>.wrap>ul{flex-direction:column;padding-bottom:16px}
  .nav>.wrap>ul>li>*{padding-left:0}
  .nav>.wrap>ul>li>button{font-weight:700;width:100%;display:flex;justify-content:space-between;text-align:left}
  .nav>.wrap>ul>li>button::after{content:"+";font-weight:400;font-size:1.25rem;line-height:1}
  .nav>.wrap>ul>li.open>button::after{content:"−"}
  .nav>.wrap>ul>li{border-bottom:1px solid var(--rule)}
  .nav ul ul,.nav li:hover>ul,.nav li:focus-within>ul{display:none;position:static;border:0;padding:0 0 10px}
  .nav li.open>ul{display:block}
  .nav ul ul a{padding:6px 0 6px 14px}
  .intro .wrap,.feature .wrap,.news-layout{grid-template-columns:1fr}
  .cols,.depts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dept{padding:24px 24px 28px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .foot{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .top .wrap>a{display:none}
  .top .contacts{margin-left:0}
  .brand img{width:64px}
  .brand span{font-size:.9rem}
  .news,.cols,.depts,.life,.foot{grid-template-columns:1fr}
}

/* inner pages */
.page-head{background:var(--canvas);padding:clamp(24px,3vw,36px) 0 clamp(32px,4vw,48px)}
.page-head h1{margin-top:20px;font-size:clamp(1.9rem,4vw,3rem);line-height:1.08;letter-spacing:-.025em;max-width:24ch}
.page{padding:clamp(36px,5vw,56px) 0 clamp(56px,7vw,88px)}
.page .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:24px 56px}
.crumbs{font-size:.9rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs span+span::before{content:"/";margin:0 .5em;color:var(--rule)}
.section-nav{align-self:start;position:sticky;top:16px;font-size:.95rem}
.section-nav h2{font-size:1.05rem;padding-bottom:10px;margin-bottom:6px;border-bottom:2px solid var(--blue)}
.section-nav h2 a{text-decoration:none}
.section-nav a{display:block;padding:5px 0;text-decoration:none;line-height:1.35}
.section-nav a:hover{text-decoration:underline}
.section-nav ul ul{padding-left:14px;border-left:1px solid var(--rule);margin:2px 0 6px}
.section-nav [aria-current]{font-weight:600;color:var(--blue)}
.prose{min-width:0;max-width:76ch}
.prose h2{font-size:1.45rem;margin:2em 0 .6em}
.prose h3,.prose h4,.prose h5,.prose h6{font-size:1.15rem;margin:1.6em 0 .5em}
.prose p,.prose ul,.prose ol,.prose blockquote,.prose dl{margin:0 0 1em}
.prose ul{list-style:disc;padding-left:1.3em}
.prose ol{list-style:decimal;padding-left:1.5em}
.prose li{margin:.3em 0}
.prose a{color:var(--blue)}
.prose a:hover{color:var(--blue-dark)}
.prose blockquote{border-left:3px solid var(--blue);padding-left:16px;color:var(--muted)}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2em 0}
.prose .table{overflow-x:auto;margin:0 0 1.2em}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem}
.prose td,.prose th{border:1px solid var(--rule);padding:8px 10px;vertical-align:top;text-align:left}
.prose th,.prose tr:first-child td{background:var(--canvas);font-weight:600}
.prose a.doc::after{content:" " attr(data-ext);font-size:.75rem;font-weight:600;color:var(--muted);white-space:nowrap}
.prose .empty{color:var(--muted)}
.source{margin-top:40px;padding-top:16px;border-top:1px solid var(--rule);font-size:.9rem;color:var(--muted)}
.sitemap ul{list-style:none;padding-left:0}
.sitemap ul ul{padding-left:18px;border-left:1px solid var(--rule)}
.sitemap>ul>li{margin-bottom:1.4em}
.sitemap>ul>li>a{font-weight:600;font-size:1.1rem}
@media (max-width:1000px){
  .page .wrap{grid-template-columns:1fr}
  .section-nav{position:static;order:2;border-top:1px solid var(--rule);padding-top:20px}
}
.sitemap>ul{columns:3 280px;column-gap:48px}
.sitemap>ul>li{break-inside:avoid}

.page .wrap.solo{grid-template-columns:minmax(0,1fr)}
.prose.wide{max-width:none}
.prose>:first-child{margin-top:0}
.prose ul.links{list-style:none;padding:0;margin:0 0 1.6em;border-top:2px solid var(--ink)}
.prose ul.links li{margin:0;border-bottom:1px solid var(--rule)}
.prose ul.links a{display:flex;justify-content:space-between;gap:16px;padding:13px 0;text-decoration:none;color:var(--ink);font-weight:500;line-height:1.4}
.prose ul.links a:hover{color:var(--blue);text-decoration:underline}
.prose ul.links a.doc::after{flex-shrink:0;align-self:center;padding:2px 6px;border:1px solid var(--rule);border-radius:3px}
.prose ul.tiles{list-style:none;padding:0;margin:0 0 1.6em;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.prose ul.tiles li{margin:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.prose ul.tiles a{display:flex;flex-direction:column;gap:6px;height:100%;min-height:96px;padding:20px;background:var(--white);text-decoration:none;color:var(--ink)}
.prose ul.tiles a:hover{background:var(--canvas)}
.prose ul.tiles a:hover b{color:var(--blue);text-decoration:underline}
.prose ul.tiles b{font-weight:600;font-size:1.05rem;line-height:1.3}
.prose ul.tiles span{color:var(--muted);font-size:.875rem}
.prose ul.news{list-style:none;padding:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.prose ul.news li{margin:0}
.prose ul.news h3{margin:4px 0 0}
.prose ul.news a{color:var(--ink)}
.more-news{margin-top:40px;font-weight:500}
@media (max-width:1000px){.prose ul.news{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.prose ul.news{grid-template-columns:1fr}.prose ul.tiles a{min-height:0;padding:14px 16px}}
