:root{
  --paper:#fbfaf6; --paper-2:#ffffff; --ink:#10131a; --ink-soft:#4a5163;
  --rule:#e6e2d6; --accent:#b91c1c; --accent-2:#0f3b66; --link:#0f3b66;
  --shadow-sm:0 1px 2px rgba(16,19,26,.05),0 6px 18px -10px rgba(16,19,26,.12);
  --shadow-lg:0 30px 80px -30px rgba(16,19,26,.35);
  --radius:14px;
  --serif:"Newsreader","Iowan Old Style",Georgia,serif;
  --sans:"Inter",ui-sans-serif,system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
[data-bs-theme="dark"]{
  --paper:#0c0f15; --paper-2:#11151d; --ink:#f1ece1; --ink-soft:#a7adba;
  --rule:#222834; --accent:#ef4444; --accent-2:#7cb1ec; --link:#9dc6f0;
}
html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);}
body{font-feature-settings:"ss01","cv11";}
h1,h2,h3,h4,h5{font-family:var(--serif);letter-spacing:-.02em;font-weight:500;color:var(--ink);}
.font-serif{font-family:var(--serif);}
.font-mono{font-family:var(--mono);}
.text-ink{color:var(--ink);}
.text-ink-soft{color:var(--ink-soft);}
.bg-paper{background:var(--paper);}
.bg-paper-2{background:var(--paper-2);}
.border-rule{border-color:var(--rule)!important;}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);}
a{color:var(--link);text-decoration:none;}
a:hover{color:var(--accent);}
.link-underline-anim{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .25s;}
.link-underline-anim:hover{background-size:100% 1px;}

/* Navbar */
.navbar{background:rgba(251,250,246,.85);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--rule);}
[data-bs-theme="dark"] .navbar{background:rgba(12,15,21,.8);}
.navbar-brand{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;font-size:1.15rem;}
.navbar-brand .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:.55rem;vertical-align:middle;}
.nav-link{font-size:.92rem;color:var(--ink-soft)!important;position:relative;padding:.5rem .85rem!important;}
.nav-link:hover,.nav-link.active{color:var(--ink)!important;}
.nav-link.active::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.25rem;height:2px;background:var(--accent);}

/* Hero */
.hero{padding:4rem 0 2rem;}
.hero h1{font-size:clamp(2.4rem,5vw,4rem);line-height:1.04;}
.hero .lead{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--ink-soft);}
.portrait{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/5;}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.35));}
.portrait .badge-affil{position:absolute;left:1rem;bottom:1rem;background:rgba(255,255,255,.92);color:var(--ink);font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:.45rem .7rem;border-radius:6px;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--rule);color:var(--ink);transition:all .2s;}
.icon-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-2px);}

/* Marquee / news ticker */
.ticker{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2);overflow:hidden;}
.ticker-inner{display:flex;align-items:center;gap:0;}
.ticker-label{flex-shrink:0;background:var(--accent);color:#fff;padding:.85rem 1.1rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;}
.ticker-label .pulse{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.4;transform:scale(.85);}50%{opacity:1;transform:scale(1.1);}}
.ticker-track{flex:1;overflow:hidden;position:relative;}
.ticker-content{display:inline-flex;gap:3rem;white-space:nowrap;padding:.85rem 0;animation:scroll 45s linear infinite;}
.ticker:hover .ticker-content{animation-play-state:paused;}
.ticker-item{font-size:.92rem;color:var(--ink-soft);}
.ticker-item .date{font-family:var(--mono);color:var(--accent);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;margin-right:.6rem;}
.ticker-item .sep{margin-left:3rem;color:var(--rule);}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* Sections */
section{padding:4rem 0;}
.section-h{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:2.5rem;border-bottom:1px solid var(--rule);padding-bottom:1.25rem;}
.section-h .num{font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.18em;}
.section-h h2{font-size:clamp(1.8rem,3.5vw,2.6rem);margin:0;}

/* Cards */
.card-modern{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;transition:all .3s;height:100%;display:flex;flex-direction:column;}
.card-modern:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent);}
.card-modern .card-img-wrap{aspect-ratio:16/10;overflow:hidden;background:var(--rule);}
.card-modern .card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.card-modern:hover .card-img-wrap img{transform:scale(1.05);}
.card-modern .card-body{padding:1.4rem 1.4rem 1.6rem;flex:1;display:flex;flex-direction:column;}
.card-modern .tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;}
.card-modern h3{font-size:1.25rem;margin-bottom:.6rem;line-height:1.25;}
.card-modern p{color:var(--ink-soft);font-size:.94rem;margin-bottom:0;}

/* Stats */
.stat{padding:1.4rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2);text-align:center;}
.stat .num{font-family:var(--serif);font-size:2.4rem;font-weight:500;color:var(--accent);line-height:1;}
.stat .label{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:.5rem;}

/* Publications */
.pub{padding:1.25rem 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:90px 1fr;gap:1.25rem;}
.pub .year{font-family:var(--mono);font-size:.78rem;letter-spacing:.18em;color:var(--accent);}
.pub .title{font-family:var(--serif);font-size:1.08rem;color:var(--ink);margin-bottom:.3rem;line-height:1.35;}
.pub .meta{font-size:.88rem;color:var(--ink-soft);}
.pub .venue{font-style:italic;}
.pub a.tag-link{display:inline-block;font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--rule);padding:.2rem .55rem;border-radius:4px;margin-right:.4rem;margin-top:.5rem;color:var(--ink-soft);}
.pub a.tag-link:hover{background:var(--accent);color:#fff;border-color:var(--accent);}

/* News timeline */
.timeline{position:relative;padding-left:1.5rem;border-left:2px solid var(--rule);}
.timeline-item{position:relative;padding:0 0 2rem 1.5rem;}
.timeline-item::before{content:"";position:absolute;left:-1.65rem;top:.4rem;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--paper);}
.timeline-item .date{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
.timeline-item h4{font-size:1.1rem;margin:.35rem 0 .35rem;}
.timeline-item p{color:var(--ink-soft);margin:0;}

/* Footer */
.site-footer{border-top:1px solid var(--rule);padding:3rem 0 2rem;background:var(--paper-2);font-size:.9rem;color:var(--ink-soft);}

/* Buttons */
.btn-accent{background:var(--accent);color:#fff;border:none;padding:.65rem 1.3rem;border-radius:8px;font-weight:500;font-size:.92rem;transition:all .2s;}
.btn-accent:hover{background:#8d1414;color:#fff;transform:translateY(-1px);}
.btn-outline-ink{border:1px solid var(--ink);color:var(--ink);padding:.6rem 1.25rem;border-radius:8px;font-weight:500;font-size:.92rem;background:transparent;transition:all .2s;}
.btn-outline-ink:hover{background:var(--ink);color:var(--paper);}

/* Page header */
.page-hero{padding:5rem 0 3rem;border-bottom:1px solid var(--rule);position:relative;overflow:hidden;}
.page-hero h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05;margin:0;}
.page-hero .lead{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:1.2rem;max-width:42rem;margin-top:1rem;}
.page-hero .bg-img{position:absolute;right:-100px;top:-50px;width:520px;opacity:.08;}
[data-bs-theme="dark"] .page-hero .bg-img{opacity:.06;}

/* Tables */
.table-modern{font-size:.94rem;}
.table-modern th{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;border-bottom:2px solid var(--rule);}
.table-modern td{border-bottom:1px solid var(--rule);padding:1rem .75rem;}
.table-modern tr:hover td{background:var(--paper-2);}

/* Theme toggle */
.theme-toggle{background:transparent;border:1px solid var(--rule);color:var(--ink);width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);}

/* Image utility */
.img-frame{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.img-frame img{width:100%;height:auto;display:block;}

/* Student grid */
.student{display:flex;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2);}
.student img{width:64px;height:64px;border-radius:50%;object-fit:cover;}
.student .name{font-weight:600;color:var(--ink);font-size:.98rem;}
.student .role{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);}

/* Reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease;}
.reveal.in{opacity:1;transform:translateY(0);}


/* Quick links */
html{scroll-behavior:smooth;}
.quick-links{padding:2.5rem 0 1rem;}
.ql-card{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.25rem;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;height:100%;position:relative;overflow:hidden;}
.ql-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);border-color:var(--accent);color:var(--ink);}
.ql-card .ql-num{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;color:var(--accent);border:1px solid var(--rule);border-radius:8px;padding:.4rem .55rem;}
.ql-card .ql-body{flex:1;min-width:0;}
.ql-card h3{font-size:1.05rem;margin:0 0 .15rem;letter-spacing:-.01em;}
.ql-card p{font-size:.82rem;color:var(--ink-soft);margin:0;}
.ql-arrow{color:var(--ink-soft);transition:transform .25s ease, color .25s ease;}
.ql-card:hover .ql-arrow{color:var(--accent);transform:translateX(4px);}
@media (max-width:575px){.ql-card{padding:.9rem 1rem;}.ql-card h3{font-size:.95rem;}.ql-card p{display:none;}}

/* Publications filter */
.pub-filters{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1.5rem;}
.pf-search{position:relative;display:flex;align-items:center;border:1px solid var(--rule);border-radius:10px;background:var(--paper);padding:.55rem .85rem;margin-bottom:.85rem;transition:border-color .2s ease, box-shadow .2s ease;}
.pf-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(185,28,28,.12);}
.pf-search i{color:var(--ink-soft);margin-right:.55rem;}
.pf-search input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:.95rem;}
.pf-clear{border:0;background:transparent;color:var(--ink-soft);cursor:pointer;padding:.1rem .35rem;}
.pf-clear:hover{color:var(--accent);}
.pf-row{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;}
.pf-group{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;}
.pf-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-right:.35rem;}
.pf-chip{font-family:var(--sans);font-size:.82rem;color:var(--ink-soft);background:var(--paper);border:1px solid var(--rule);border-radius:999px;padding:.3rem .8rem;cursor:pointer;transition:all .2s ease;}
.pf-chip:hover{color:var(--ink);border-color:var(--ink-soft);}
.pf-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.pf-select-wrap{position:relative;display:inline-flex;align-items:center;}
.pf-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-family:var(--sans);font-size:.85rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:.4rem 2rem .4rem .8rem;cursor:pointer;transition:border-color .2s ease, box-shadow .2s ease;min-width:140px;}
.pf-select:hover{border-color:var(--ink-soft);}
.pf-select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(185,28,28,.12);}
.pf-select-caret{position:absolute;right:.7rem;pointer-events:none;color:var(--ink-soft);font-size:.75rem;}
.pf-meta{margin-top:.85rem;font-family:var(--mono);font-size:.75rem;color:var(--ink-soft);letter-spacing:.05em;}
.pf-reset{background:none;border:0;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.75rem;padding:0;text-decoration:underline;text-underline-offset:3px;}
.pf-reset:hover{color:var(--ink);}

/* Members grid */
.member-card{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;}
.member-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);border-color:var(--accent);}
.member-img{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--rule);}
.member-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease, filter .4s ease;}
.member-card:hover .member-img img{transform:scale(1.06);filter:brightness(.7);}
.member-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1rem 1.1rem;background:linear-gradient(to top,rgba(16,19,26,.88) 0%,rgba(16,19,26,.55) 55%,rgba(16,19,26,0) 100%);color:#fff;opacity:0;transform:translateY(8px);transition:opacity .3s ease, transform .3s ease;}
.member-card:hover .member-overlay,.member-card:focus-within .member-overlay{opacity:1;transform:translateY(0);}
.member-overlay p{font-size:.85rem;line-height:1.5;margin:0 0 .65rem;color:#f5f1e8;}
.member-links{display:flex;gap:.5rem;}
.member-links a{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:.85rem;backdrop-filter:blur(4px);transition:background .2s ease;}
.member-links a:hover{background:var(--accent);color:#fff;}
.member-body{padding:.95rem 1.1rem 1.1rem;}
.member-body .name{font-family:var(--serif);font-size:1.1rem;color:var(--ink);letter-spacing:-.01em;}
.member-body .role{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-top:.2rem;}
.member-body .topic{font-size:.85rem;color:var(--ink-soft);margin-top:.4rem;}

/* Alumni table */
.alumni-table-wrap{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--paper-2);}
.alumni-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.alumni-table thead th{background:var(--paper);color:var(--ink-soft);font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;text-align:left;padding:.85rem 1.1rem;border-bottom:1px solid var(--rule);}
.alumni-table tbody td{padding:.95rem 1.1rem;border-bottom:1px solid var(--rule);color:var(--ink);vertical-align:top;}
.alumni-table tbody tr:last-child td{border-bottom:0;}
.alumni-table tbody tr{transition:background .2s ease;}
.alumni-table tbody tr:hover{background:var(--paper);}
.alumni-table tbody td:nth-child(2),.alumni-table tbody td:nth-child(3){font-family:var(--mono);font-size:.82rem;color:var(--ink-soft);white-space:nowrap;}
.alumni-table tbody td:nth-child(4),.alumni-table tbody td:nth-child(5){color:var(--ink-soft);}
@media (max-width:640px){.alumni-table thead{display:none;}.alumni-table,.alumni-table tbody,.alumni-table tr,.alumni-table td{display:block;width:100%;}.alumni-table tr{border-bottom:1px solid var(--rule);padding:.75rem 1rem;}.alumni-table tbody tr:last-child{border-bottom:0;}.alumni-table tbody td{border:0;padding:.2rem 0;}.alumni-table tbody td:nth-child(2)::before{content:"Degree · ";color:var(--accent);font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;}.alumni-table tbody td:nth-child(3)::before{content:"Year · ";color:var(--accent);font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;}.alumni-table tbody td:nth-child(4)::before{content:"Focus · ";color:var(--accent);font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;}.alumni-table tbody td:nth-child(5)::before{content:"Now · ";color:var(--accent);font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;}}

/* Home: recent publications list */
.home-pub-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule);}
.home-pub-list li{display:grid;grid-template-columns:60px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule);}
.home-pub-list .hp-year{font-family:var(--mono);font-size:.8rem;color:var(--accent);padding-top:.15rem;}
.home-pub-list .hp-title{font-family:var(--serif);font-size:1.02rem;color:var(--ink);line-height:1.35;margin-bottom:.25rem;}
.home-pub-list .hp-meta{font-size:.85rem;color:var(--ink-soft);}
.home-pub-list .venue{color:var(--ink);}

/* Anchor offset for sticky navbar */
section[id], header[id]{scroll-margin-top:90px;}

/* Students dropdown */
.navbar .dropdown-menu{border:1px solid var(--rule);border-radius:.5rem;background:var(--paper);box-shadow:0 8px 24px rgba(0,0,0,.06);padding:.4rem;min-width:11rem;}
.navbar .dropdown-item{font-size:.92rem;color:var(--ink-soft);border-radius:.35rem;padding:.45rem .7rem;}
.navbar .dropdown-item:hover,.navbar .dropdown-item:focus{background:var(--paper-2);color:var(--ink);}
.navbar .dropdown-item.active{background:var(--paper-2);color:var(--accent);}

/* smaller portrait on home */
.portrait{max-width:320px;margin:0 auto;}
@media(min-width:768px){.portrait{max-width:360px;}}
@media(min-width:992px){.portrait{max-width:340px;margin-left:auto;margin-right:0;}}
@media(min-width:1200px){.portrait{max-width:380px;}}

/* Hero CTA */
.hero-cta .btn-accent,.hero-cta .btn-outline-ink{display:inline-flex;align-items:center;}

/* Footer quick links */
.footer-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.25rem .9rem;}
.footer-links a{color:var(--ink-soft);font-size:.9rem;display:inline-block;padding:.15rem 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.footer-links a:hover{color:var(--accent);border-bottom-color:var(--accent);}

/* Students dropdown — hover on desktop, accessible focus */
@media(min-width:992px){
  .navbar .dropdown:hover > .dropdown-menu,
  .navbar .dropdown:focus-within > .dropdown-menu{display:block;margin-top:0;}
  .navbar .dropdown-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}
}
.navbar .dropdown-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}

/* Footer grouped quick links — vertical list inside columns */
.footer-links.footer-links-stack{grid-template-columns:1fr;gap:.15rem;}

/* Student search & filter */
.student-search{margin:0 0 1.5rem;padding:1rem 1.1rem;background:var(--paper-2);border:1px solid var(--rule);border-radius:.7rem;}
.student-search .search-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;}
.student-search .search-input-wrap{position:relative;flex:1 1 260px;min-width:240px;}
.student-search .search-input-wrap i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:.95rem;}
.student-search input[type="search"]{width:100%;padding:.55rem .85rem .55rem 2.2rem;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:.45rem;font-family:var(--sans);font-size:.92rem;outline:none;transition:border-color .2s,box-shadow .2s;}
.student-search input[type="search"]:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,200,80,40),.12);}
.student-search .search-filters{display:flex;flex-wrap:wrap;gap:.4rem;}
.student-search .chip{font:500 .78rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:.5rem .8rem;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);border-radius:999px;cursor:pointer;transition:all .2s;}
.student-search .chip:hover{color:var(--ink);border-color:var(--ink-soft);}
.student-search .chip.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.student-search .search-meta{margin-top:.6rem;font:500 .75rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);min-height:1em;}
.search-no-results{padding:2rem 1rem;text-align:center;color:var(--ink-soft);font-style:italic;border:1px dashed var(--rule);border-radius:.5rem;}

/* News carousel */
.news-carousel{position:relative;border:1px solid var(--rule);border-radius:.7rem;background:var(--paper);overflow:hidden;}
.news-carousel .carousel-item{transition:transform .55s ease-in-out;}
.news-carousel .news-card{padding:2rem 2.2rem 3rem;min-height:200px;}
.news-carousel .news-card .date{font:500 .75rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;}
.news-carousel .news-card h4{font-family:var(--serif);font-size:1.25rem;line-height:1.3;margin-bottom:.55rem;color:var(--ink);}
.news-carousel .news-card p{color:var(--ink-soft);margin:0;}
.news-carousel .carousel-control-prev,.news-carousel .carousel-control-next{width:auto;opacity:1;top:auto;bottom:.55rem;background:transparent;}
.news-carousel .carousel-control-prev{left:.6rem;} .news-carousel .carousel-control-next{left:2.8rem;right:auto;}
.news-carousel .ctrl{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--rule);border-radius:50%;background:var(--paper);color:var(--ink);font-size:.85rem;transition:all .2s;}
.news-carousel .ctrl:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.news-carousel .news-dots{margin:0;right:.8rem;left:auto;bottom:1.1rem;justify-content:flex-end;}
.news-carousel .news-dots button{width:8px;height:8px;border-radius:50%;background:var(--rule);border:0;opacity:1;margin:0 3px;}
.news-carousel .news-dots button.active{background:var(--accent);}
@media(min-width:768px){.news-carousel .news-card{padding:2.2rem 2.4rem 3.2rem;min-height:220px;}}

/* Featured research card image trigger + lightbox */
.card-modern .card-img-wrap.research-lightbox-trigger{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden;}
.card-modern .card-img-wrap.research-lightbox-trigger img{transition:transform .5s ease;}
.card-modern .card-img-wrap.research-lightbox-trigger:hover img{transform:scale(1.05);}
.card-modern .rl-zoom{position:absolute;top:.7rem;right:.7rem;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:rgba(15,15,15,.6);color:#fff;border-radius:50%;font-size:.85rem;opacity:0;transform:translateY(-4px);transition:all .25s ease;}
.card-modern .card-img-wrap.research-lightbox-trigger:hover .rl-zoom,.card-modern .card-img-wrap.research-lightbox-trigger:focus-visible .rl-zoom{opacity:1;transform:translateY(0);}
.card-modern .read-more{display:inline-flex;align-items:center;gap:.35rem;margin-top:.85rem;font-family:var(--mono,monospace);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s;}
.card-modern .read-more:hover{border-bottom-color:var(--accent);}
.research-lightbox .modal-content{background:#0d0d0d;border:0;border-radius:6px;overflow:hidden;}
.research-lightbox .rl-close{position:absolute;top:.75rem;right:.75rem;z-index:10;background-color:rgba(255,255,255,.92);border-radius:50%;padding:.6rem;opacity:1;}
.research-lightbox .carousel-item img{width:100%;height:auto;max-height:80vh;object-fit:contain;background:#000;}
.research-lightbox .carousel-caption{position:static;padding:1rem 1.25rem 1.25rem;text-align:left;color:#f5f3ee;background:#0d0d0d;}
.research-lightbox .carousel-caption h5{font-family:var(--serif);font-size:1.15rem;margin:0;}
.research-lightbox .carousel-control-prev,.research-lightbox .carousel-control-next{width:8%;opacity:.85;}
.research-lightbox .carousel-control-prev-icon,.research-lightbox .carousel-control-next-icon{background-color:rgba(0,0,0,.45);border-radius:50%;padding:1.3rem;background-size:55% 55%;}

/* Gallery */
.gallery-tile{position:relative;overflow:hidden;border-radius:10px;border:1px solid var(--rule);background:var(--paper-2);aspect-ratio:1/1;display:block}
.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease, filter .3s ease;display:block}
.gallery-tile:hover img{transform:scale(1.06);filter:brightness(1.05)}
.gallery-tile::after{content:"\F52A";font-family:"bootstrap-icons";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.6rem;background:rgba(0,0,0,.0);opacity:0;transition:opacity .25s ease}
.gallery-tile:hover::after{opacity:1;background:rgba(0,0,0,.35)}
