
@font-face{font-family:"Open Sans var";src:url('../fonts/OpenSans.woff2') format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--brand:#429dd1;--brand-deep:#1565a0;--line-soft:#dcecf7;--brand-deeper:#0f4d79;--ink:#16242f;--ink-soft:#4f6171;--line:#e3eaf1;--tint:#f2f8fc;--bg:#fff;--maxw:1140px;--rad:12px;--shadow:0 1px 2px rgba(16,40,64,.05),0 10px 28px -18px rgba(16,40,64,.30)}
html{font-size:17px;scroll-behavior:smooth}
body{font-family:"Open Sans var",-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);line-height:1.62;-webkit-font-smoothing:antialiased}
a{color:var(--brand-deep);text-decoration:none}a:hover{color:var(--brand-deeper)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-999px;background:var(--brand-deep);color:#fff;padding:10px 16px;z-index:99}.skip:focus{left:8px;top:8px}
img{display:block;max-width:100%}
.dot{font-weight:800;font-size:1.18em;color:inherit;line-height:0;padding:0 .12em;position:relative;top:.03em}
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.head-top{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px}
.brand-lock{display:flex;align-items:center;gap:13px;flex:0 0 auto}
.as-mark{width:44px;height:44px;border-radius:50%;flex:0 0 auto;background:var(--brand-deep);display:grid;place-items:center;color:#fff;font-weight:800;font-size:1rem;letter-spacing:.02em;box-shadow:var(--shadow)}
.brand-lock b{font-size:1.14rem;line-height:1.1;color:var(--brand-deep);font-weight:800;letter-spacing:-.01em;display:block}
.brand-lock small{display:block;font-weight:600;color:var(--ink-soft);font-size:.74rem;margin-top:3px}
.head-right{display:flex;align-items:center;gap:16px;min-width:0}
.head-logo{height:46px;width:auto;flex:0 0 auto}
.head-wave{width:50px;height:50px;border-radius:50%;flex:0 0 auto}
.head-quote{text-align:right;font-style:italic;font-size:.72rem;color:var(--ink-soft);line-height:1.3;max-width:300px}
.head-quote b{display:block;font-style:normal;font-weight:700;color:var(--brand-deep);font-size:.66rem;margin-top:2px;letter-spacing:.01em}
.nav-toggle{display:none;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 13px;font:inherit;font-weight:700;font-size:.85rem;color:var(--ink);cursor:pointer}
.nav-toggle svg{width:16px;height:16px}
.main-nav{border-top:1px solid var(--line)}.main-nav ul{list-style:none}
.nav-root{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;padding:5px 0}
.nav-root>li{position:relative;display:flex;align-items:stretch}
.nl{display:inline-flex;align-items:center;padding:9px 13px;border-radius:8px;font-weight:600;font-size:.9rem;color:var(--ink);white-space:nowrap;cursor:pointer}
.nl:hover{background:var(--tint);color:var(--brand-deep)}.nl[aria-current]{color:var(--brand-deep)}
.has-sub .nl{padding-right:4px}
.caret{border:0;background:none;cursor:pointer;color:var(--ink-soft);padding:0 9px 0 3px;display:inline-flex;align-items:center;border-radius:8px}
.caret:hover{color:var(--brand-deep)}.caret svg{width:10px;height:6px}
.submenu{position:absolute;left:0;top:100%;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s;z-index:60}
.submenu li a{display:block;padding:9px 12px;border-radius:7px;font-size:.85rem;font-weight:600;color:var(--ink)}
.submenu li a:hover{background:var(--tint);color:var(--brand-deep)}
.has-sub:hover .submenu,.has-sub:focus-within .submenu,.submenu.open{opacity:1;visibility:visible;transform:none}
@media(max-width:1024px){
 .nav-toggle{display:inline-flex}.head-logo,.head-wave,.head-quote{display:none}
 .main-nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);display:none;max-height:78vh;overflow:auto}
 .main-nav.open{display:block}
 .nav-root{flex-direction:column;gap:0;padding:8px 14px 18px;max-width:var(--maxw);margin:0 auto}
 .nav-root>li{width:100%;flex-wrap:wrap}.nl{flex:1;border-bottom:1px solid var(--line);border-radius:0}
 .has-sub .nl{width:calc(100% - 48px);flex:none}
 .caret{width:48px;justify-content:center;border-bottom:1px solid var(--line);border-radius:0}.caret svg{width:14px;height:9px}
 .submenu{position:static;opacity:1;visibility:hidden;transform:none;box-shadow:none;border:0;border-radius:0;padding:0 0 6px 14px;display:none;min-width:0}
 .submenu.open{display:block;visibility:visible}.submenu[style]{right:auto!important;left:auto!important}
}
@media(max-width:460px){.brand-lock small{display:none}.as-mark{width:40px;height:40px}.brand-lock b{font-size:1.04rem}}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;padding:11px 20px;border-radius:9px;transition:transform .12s,background .15s,box-shadow .15s}
.btn-primary{background:var(--brand-deep);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover{background:var(--brand-deeper);color:#fff;transform:translateY(-1px)}
.btn-ghost{border:1.5px solid var(--brand);color:var(--brand-deep)}.btn-ghost:hover{background:var(--tint)}
.wave-band{background:var(--tint);border-bottom:1px solid var(--line);padding:26px 0}
.wave-hero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:center}
.wave-pic{flex:0 0 auto;width:300px;max-width:100%;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.wave-pic img{width:100%;height:auto}
.wave-quote{flex:1 1 320px;min-width:280px}
.wave-quote p{font-style:italic;font-size:clamp(1.15rem,2.2vw,1.45rem);font-weight:600;color:var(--ink);line-height:1.4}
.wave-quote cite{display:block;margin-top:10px;font-style:normal;font-weight:700;color:var(--brand-deep)}
.hero{padding:44px 0 8px}
.hero-grid{display:grid;gap:30px;grid-template-columns:1fr}
@media(min-width:780px){.hero-grid{grid-template-columns:244px 1fr;gap:42px;align-items:start}}
.hero-aside{text-align:center}
.portrait{width:214px;height:214px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 0 0 3px var(--brand),var(--shadow);margin:0 auto}
.card-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:16px}
.card-links .fmark{width:36px;height:36px;background:var(--tint);color:var(--ink-soft)}
.card-links .fmark svg{width:20px;height:20px}.card-links .fmark:hover{background:#fff;color:var(--bc);box-shadow:var(--shadow)}
.card-links .ftip{top:calc(100% + 8px);bottom:auto}
h1.name{font-size:clamp(1.7rem,3.8vw,2.25rem);font-weight:800;letter-spacing:-.02em;line-height:1.08}
.role-line{font-size:1rem;font-weight:600;color:var(--ink-soft);margin-top:8px;line-height:1.4}
.bio{margin-top:15px;max-width:64ch}.bio p{margin-top:10px}.bio a{font-weight:700}
details.more-bio{margin-top:8px}
details.more-bio>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.9rem;color:var(--brand-deep);padding:6px 0}
details.more-bio>summary::-webkit-details-marker{display:none}
details.more-bio>summary .chev{transition:transform .2s}details.more-bio[open]>summary .chev{transform:rotate(180deg)}
.hero-cta{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}
section{padding:50px 0}
.band{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-title{display:flex;align-items:baseline;gap:14px;margin-bottom:26px}
.sec-title h2{font-size:1.4rem;font-weight:800;letter-spacing:-.01em}
.sec-title .kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep)}
.sec-title .rule{flex:1;height:1px;background:var(--line)}
.roles{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:720px){.roles{grid-template-columns:repeat(3,1fr)}}
.role{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:16px 18px;box-shadow:var(--shadow);color:var(--ink);transition:transform .15s,border-color .15s,box-shadow .15s}
.role:hover{transform:translateY(-2px);border-color:var(--brand);color:var(--ink)}
.role-ibox{width:52px;height:52px;flex:0 0 auto;border-radius:12px;background:var(--tint);display:grid;place-items:center}
.role-ico{width:30px;height:30px;display:block}.role-img{width:40px;height:auto}
.role h3{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--brand-deep);font-weight:800}
.role p{font-size:.9rem;color:var(--ink);font-weight:600;margin-top:3px;line-height:1.38}
.sections{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
@media(min-width:560px){.sections{grid-template-columns:repeat(4,1fr)}}
@media(min-width:980px){.sections{grid-template-columns:repeat(8,1fr)}}
.sec{position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 6px;border-radius:var(--rad);color:var(--ink);transition:background .15s,transform .15s}
.sec:hover,.sec:focus-visible{background:var(--tint);transform:translateY(-2px)}
.sec img{width:64px;height:64px;filter:drop-shadow(0 3px 7px rgba(66,157,209,.20))}
.sec span{font-size:.76rem;font-weight:700;line-height:1.2;margin-top:9px;color:var(--ink);text-align:center}
@media(min-width:980px){.sec{padding:16px 6px 30px}.sec span{position:absolute;bottom:8px;left:0;right:0;margin-top:0;color:var(--brand-deep);opacity:0;transition:opacity .15s;padding:0 4px}.sec:hover span,.sec:focus-within span,.sec:focus-visible span{opacity:1}}
/* Spotlight: 3 per row on desktop (6 tracks, each card spans 2) so that a
   trailing row of one or two cards can be centred -> any count reads as
   deliberate (4 = 3+1 centred, 5 = 3+2 centred). Cards keep one width. */
.spots{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:680px){
  .spots{grid-template-columns:repeat(6,1fr)}
  .spot{grid-column:span 2}
  .spot:last-child:nth-child(3n+1){grid-column:3/span 2}
  .spot:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}
}
.spot{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.spot:hover{transform:translateY(-3px);border-color:var(--brand)}
.spot-art{height:86px;background:linear-gradient(135deg,var(--st),var(--brand));position:relative;display:block}
.spot-art svg{position:absolute;bottom:0;width:100%;height:30px}
.spot-tag{font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-deep);padding:16px 18px 0}
.spot h3{font-size:1.02rem;font-weight:800;color:var(--ink);padding:6px 18px 0;line-height:1.25}
.spot p{font-size:.88rem;color:var(--ink-soft);padding:8px 18px 0;flex:1}
.spot-actions{display:flex;align-items:flex-start;gap:14px;padding:12px 18px 16px}
.spot-actions details.spot-d{flex:1;min-width:0}
.spot-actions summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.84rem;color:var(--brand-deep)}
.spot-actions summary::-webkit-details-marker{display:none}
.spot-actions summary .chev{transition:transform .2s}
.spot-actions details[open]>summary .chev{transform:rotate(180deg)}
.spot-extra{font-size:.84rem;color:var(--ink-soft);line-height:1.5;padding-top:8px}
.spot-link{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.84rem;color:var(--brand-deep);white-space:nowrap}
.spot-actions>.spot-link:first-child{margin-left:auto}   /* card with a link but no "Read more" */
.spot-link:hover{color:var(--brand-deeper)}
.spot-add{display:grid;place-items:center;border:2px dashed var(--line);border-radius:14px;color:var(--ink-soft);font-weight:700;font-size:.86rem;min-height:120px;text-align:center;padding:18px}
.site-foot{background:#0f2230;color:#cdd9e3;margin-top:8px}.site-foot a{color:#cdd9e3}
.foot-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;padding-top:34px;padding-bottom:22px}
.foot-name{font-weight:800;font-size:1.05rem;color:#fff}.foot-sub{font-size:.86rem;color:#90a4b4}
.foot-links{display:flex;flex-wrap:wrap;gap:10px}
.fmark{position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.06);color:#c2d2de;transition:background .15s,color .15s,transform .15s}
.fmark svg{width:22px;height:22px}.fmark:hover{background:#fff;color:var(--bc);transform:translateY(-2px)}
.fmark-rect{background:transparent;overflow:hidden}
.fmark-rect img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .15s}
.fmark-rect .rect-hover{opacity:0}
.fmark-rect:hover{background:transparent;transform:translateY(-2px)}
.fmark-rect:hover .rect-idle{opacity:0}.fmark-rect:hover .rect-hover{opacity:1}
.ftip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#fff;color:#16242f;font-size:.7rem;font-weight:700;padding:4px 8px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;box-shadow:var(--shadow);z-index:5}
.fmark:hover .ftip,.fmark:focus-visible .ftip{opacity:1}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:16px;padding-bottom:30px;font-size:.78rem;color:#90a4b4}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* ---- Phase 3: interior page types ---- */
.page-wrap{max-width:var(--maxw);margin:0 auto;padding:20px 22px 48px}
.page-head{display:flex;align-items:center;gap:18px;padding:4px 0 10px;border-bottom:1px solid var(--line);margin-bottom:16px}
.page-head .sec-icon{width:52px;height:52px;flex:0 0 52px;object-fit:contain}
.page-head h1{font-size:1.85rem;line-height:1.12;margin:0;color:var(--brand-deeper)}
.page-head .kicker{display:block;margin-bottom:3px}
.page-body{font-size:1rem;line-height:1.62;color:var(--ink)}
.page-body h2{font-size:1.3rem;color:var(--brand-deep);margin:1.7em 0 .5em;border-bottom:1px solid var(--line);padding-bottom:.2em}
.page-body h3{font-size:1.1rem;color:var(--brand-deep);margin:1.4em 0 .4em}
.page-body p{margin:.55em 0}
.page-body a{color:var(--brand-deep);text-decoration:none;border-bottom:1px solid rgba(21,101,160,.28)}
.page-body a:hover{border-bottom-color:var(--brand-deep)}
.page-body ul,.page-body ol{margin:.5em 0 .9em 1.3em}
.page-body li{margin:.25em 0}
.page-body img{max-width:100%;height:auto;border-radius:6px}
.page-body hr{border:0;border-top:1px solid var(--line);margin:1.6em 0}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:1.2em 0}
.logo-grid a{border:0}
.logo-grid img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain}
.ext-link{display:inline-block;margin:.2em .4em .2em 0;padding:.32em .7em;border:1px solid var(--line);border-radius:999px;font-size:.85rem;background:var(--tint);color:var(--brand-deep)!important;border-bottom:1px solid var(--line)!important}
.ext-link:hover{background:#fff}
/* publications */
.pub{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.pub-citation{background:var(--tint);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--rad);padding:16px 20px;font-size:1.02rem;line-height:1.55}
.pub-section{margin:1.6em 0}
.pub-section h2{font-size:1.12rem;color:var(--brand-deep);margin:0 0 .4em;text-transform:uppercase;letter-spacing:.04em}
.pub-topics span{display:inline-block;background:var(--tint);border:1px solid var(--line);border-radius:999px;padding:.25em .8em;margin:.2em .3em .2em 0;font-size:.84rem;color:var(--brand-deep)}
.pub-abstract{line-height:1.66;color:var(--ink)}
.pub-refs{margin:0;padding:0}
.pub-refs .pub-ref{padding:.5em 0;margin:0;border-bottom:1px solid var(--line);font-size:.93rem;line-height:1.5}
.pub-refs .pub-ref:last-child{border-bottom:0}
.pub-refs .pub-ref strong{color:var(--brand-deep)}
/* newsfeed */
.feed{max-width:760px;margin:0 auto;padding:10px 22px 50px}
.feed-post{background:var(--bg);border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--shadow);padding:22px 24px;margin:0 0 22px}
.feed-date{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--brand-deep);border-radius:999px;padding:.28em .85em;margin-bottom:10px}
.feed-post h3{margin:.1em 0 .5em;font-size:1.18rem;color:var(--brand-deeper);line-height:1.25}
.feed-post p{margin:.5em 0;line-height:1.6}
.feed-post img{max-width:100%;height:auto;border-radius:6px;margin:.6em 0}
.feed-sub{border-left:3px solid var(--brand);padding:.3em 0 .3em 14px;margin:.7em 0;background:var(--tint);border-radius:0 6px 6px 0}
/* journal/reviewing logo grid cells */
.logo-grid .jlogo{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;margin:0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 10px}
.logo-grid .jlogo a{display:flex;align-items:center;justify-content:center;height:110px;width:100%}
.logo-grid .jlogo a{border:0;display:block}
.logo-grid figcaption{font-size:.78rem;color:var(--ink-soft);text-align:center;line-height:1.3}
.logo-grid figcaption a{color:var(--brand-deep);white-space:nowrap}
/* ---- Phase 3b: section pages (cyan title + icon, two-column rows, hub lists) ---- */
section.psec{margin:0 0 16px;padding:0}
.psec-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:2px solid var(--brand);padding-bottom:7px;margin:14px 0 10px}
.page-body h2.psec-title{font-size:1.32rem;font-weight:800;color:var(--brand);margin:0;border:0;padding:0;letter-spacing:-.01em}
.psec-icon{width:44px;height:44px;flex:0 0 44px;object-fit:contain}
.psec:first-of-type .psec-head,.page-body>.psec:first-child .psec-head{margin-top:4px}
/* two-column key | content rows */
.rows{margin:.2em 0 .4em}
.row{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:8px 0;border-bottom:1px solid var(--line-soft);align-items:start}
.rows--wide .row{grid-template-columns:172px 1fr}
.row:last-child{border-bottom:0}
.row-key{font-size:.93rem;color:var(--ink-soft);font-weight:600;line-height:1.5;padding-top:1px}
.row-key strong{color:var(--brand-deep);font-weight:800}
.row-key a{border:0;color:var(--brand-deep)}
.row-body{font-size:.96rem;line-height:1.55}
.row-body p:first-child{margin-top:0}
.row-body p:last-child{margin-bottom:0}
@media(max-width:640px){.row{grid-template-columns:1fr;gap:2px}.row-key{padding-top:0}}
/* hub landing pages: right-aligned link list */
.hub-list{display:flex;flex-direction:column;margin:10px 0}
.hub-link{display:block;text-align:right;font-size:1.35rem;font-weight:700;color:var(--brand)!important;padding:16px 4px;border:0!important;border-bottom:1px solid var(--line)!important}
.hub-link:hover{color:var(--brand-deep)!important;background:var(--tint)}
.hub-count{color:var(--ink-soft);font-weight:600;font-size:1.05rem}
/* bullet list with circle markers (editorial boards etc.) */
.page-body ul{list-style:none;margin-left:0}
.page-body ul li{position:relative;padding-left:1.3em}
.page-body ul li:before{content:"\25CB";position:absolute;left:0;color:var(--brand);font-size:.8em;top:.25em}

/* ---- Phase 3c: old-site body layout refinements ---- */
.page-body h3.psec-sub,.psec-sub{font-size:1.02rem;font-weight:800;color:var(--ink);margin:1.3em 0 .5em}
.psec-sub em{font-weight:600}
.psec-minisub{font-size:.95rem;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px;margin:1.1em 0 .4em}
.psec-subrow{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.note-right{text-align:right;font-style:italic;color:var(--ink-soft);font-size:.88rem;margin:.5em 0}
.note-right a{color:var(--brand-deep)}
/* reviewing duties: [journal | publisher] lines merged by publisher */
.jrev{margin:.3em 0 .6em}
.jrev-group{border-bottom:1px solid var(--line-soft);padding:6px 0}
.jrev-group:last-child{border-bottom:0}
.jrev-row{display:grid;grid-template-columns:1fr 350px;gap:18px;padding:2.5px 0;align-items:baseline}
.jrev-name{position:relative;padding-left:1.3em}
.jrev-name:before{content:"\25CB";position:absolute;left:0;color:var(--brand);font-size:.8em;top:.25em}
.jrev-name a{border-bottom:1px solid rgba(21,101,160,.28)}
.jrev-pub{font-style:italic;color:var(--ink-soft);font-size:.92rem;white-space:nowrap}
@media(max-width:640px){.jrev-row{grid-template-columns:1fr}.jrev-pub{padding-left:1.2em}}
/* teaching table */
.t-legend{margin:.2em 0 1em}
.t-role{margin:0 0 .6em}
.t-progs{display:flex;flex-direction:column;gap:10px}
.t-prog{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:start}
.t-prog-label{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.t-courses{display:flex;flex-direction:column;gap:3px}
.t-course{display:flex;justify-content:space-between;gap:18px}
.t-course .t-name{position:relative;padding-left:1.3em}
.t-course .t-name:before{content:"\25CB";position:absolute;left:0;color:var(--brand);font-size:.8em;top:.25em}
.t-course .t-code{white-space:nowrap;color:var(--ink-soft);font-weight:600;font-size:.92rem}
.t-progs+.note-right{margin-top:.7em}
.row-body p.pblock{margin-top:1.15em}
.row-body p.pblock:first-child{margin-top:0}
@media(max-width:640px){.t-prog{grid-template-columns:1fr;gap:4px}}
/* newsfeed empty state */
.feed-empty{text-align:center;color:var(--ink-soft);font-style:italic;padding:30px 0 50px}
