@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&display=swap');

:root {
  --night: #151b27;
  --ink: #20293a;
  --muted: #5d697a;
  --line: #dce2e9;
  --soft: #f5f7fa;
  --orange: #ff9b54;
  --purple: #7256d8;
  --teal: #00a99a;
  --lime: #a7d948;
  --pink: #ef6f96;
}

html { scroll-behavior: smooth; overflow-x: clip; }
body { color: var(--ink); font-family: 'DM Sans', system-ui, sans-serif; line-height: 1.7; overflow-x: hidden; }
h1, h2, h3, h4, .navbar-brand { font-family: 'Manrope', system-ui, sans-serif; letter-spacing: -.045em; }
h1, h2 { font-weight: 800; }
a { text-underline-offset: .18em; }
a:hover { color: #a85325; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #d36b2d; outline-offset: 3px; }
img { max-width: 100%; }

/* Navigation and article pages */
.navbar { min-height: 72px; border-bottom: 1px solid #ffffff1c; box-shadow: none; }
.navbar-brand { font-size: .96rem; font-weight: 800; }
.navbar-brand img { height: 42px; max-height: 42px; padding: 4px; border-radius: 9px; background: #fff; }
.navbar .nav-link { font-size: .85rem; font-weight: 700; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--orange) !important; }
.navbar .bi-search { color: var(--orange); }
.quarto-title-banner { position: relative; padding-top: 3.5rem; padding-bottom: 3.5rem; overflow: hidden; }
.quarto-title-banner::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .18; background-image: radial-gradient(#b6c2d6 1px,transparent 1px); background-size: 24px 24px; mask-image: linear-gradient(90deg,#000,transparent 55%); }
.quarto-title-banner .title { position: relative; font-size: clamp(2.35rem,4.7vw,4.1rem); line-height: 1.13; }
.quarto-title-banner .description { position: relative; color: #c5cfdb; }
main.content { padding-top: 3rem; padding-bottom: 5rem; }
main.content > p:first-of-type { color: #4e5d70; font-size: 1.12rem; }
main.content h2 { margin-top: 2.6rem; }
main.content h3 { margin-top: 1.8rem; }
main.content .table { font-size: .91rem; }
main.content .table thead { background: #eaf0f5; }
main.content .table td, main.content .table th { padding: .62rem .75rem; vertical-align: top; }
.nav-footer { font-size: .8rem; }
.nav-footer a { color: #eef2f6 !important; }
.profile-label, .resource-type { display: block; color: #a8582b; font-size: .68rem; font-weight: 800; letter-spacing: .14em; }
.text-cta, .inline-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--ink); font-size: .9rem; font-weight: 800; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.text-cta:hover, .inline-link:hover { color: #a85325; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; border-radius: 10px; padding: 12px 19px; color: var(--night); font-size: .88rem; font-weight: 800; text-decoration: none; transition: transform .18s; }
.button:hover { color: var(--night); transform: translateY(-2px); }
.button-orange { background: var(--orange); }

/* Home */
body:has(.home-hero) #quarto-content { padding-top: 0; }
body:has(.home-hero) #quarto-content main.content { padding: 0 !important; margin: 0 !important; max-width: none; }
body:has(.home-hero) .quarto-title-banner, body:has(.home-hero) #title-block-header { display: none; }
.home-hero { width: 100vw; margin-left: calc(50% - 50vw); color: #fff; background: var(--night); overflow: hidden; position: relative; }
.home-hero::before { content: ''; position: absolute; inset: 0; opacity: .23; pointer-events: none; background-image: radial-gradient(#aebbd0 1px, transparent 1px); background-size: 26px 26px; mask-image: linear-gradient(90deg,#000,transparent 31%,transparent 69%,#000); }
.home-hero-inner { position: relative; max-width: 1050px; margin: auto; padding: 92px 28px 62px; text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--orange); font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); }
.home-hero h1 { max-width: 950px; margin: 28px auto 20px; color: #fff; font-size: clamp(3rem,6vw,5.5rem); line-height: 1.1; letter-spacing: -.07em; }
.home-hero h1 em { color: var(--orange); font-style: normal; }
.home-hero p { max-width: 690px; margin: 0 auto 31px; color: #c5cfdb; font-size: 1.15rem; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 22px; }
.hero-actions > p { display: contents; }
.hero-text-link { color: #fff; font-size: .88rem; font-weight: 800; text-decoration: none; border-bottom: 1px solid #fff; padding-bottom: 3px; }
.hero-text-link:hover { color: var(--orange); border-color: var(--orange); }
.hero-baseline { position: relative; max-width: 1180px; margin: auto; display: flex; justify-content: space-between; gap: 20px; padding: 17px 28px; border-top: 1px solid #ffffff26; color: #aebbd0; font-size: .65rem; font-weight: 800; letter-spacing: .15em; }
.announcement-bar { display: grid; grid-template-columns: auto minmax(220px,1fr) auto auto; align-items: center; gap: 18px; width: calc(100% - 56px); max-width: 1124px; margin: 0 auto 30px; padding: 16px 20px; position: relative; z-index: 3; color: var(--ink); text-decoration: none; border: 1px solid #e3c856; border-radius: 16px; background: linear-gradient(110deg,#fff7c7,#fff 55%,#e7fff8); box-shadow: 0 12px 30px #050b162e; transition: transform .18s,box-shadow .18s; }
.announcement-bar:hover { color: var(--ink); transform: translateY(-3px); box-shadow: 0 22px 44px #17223430; }
.announcement-bar strong { font: 800 1rem/1.3 'Manrope',sans-serif; }
.announcement-bar > span:not(.announcement-status) { color: var(--muted); font-size: .82rem; }
.announcement-bar b { color: #08796f; white-space: nowrap; }
.announcement-status { display: inline-flex; align-items: center; gap: 8px; color: #8c5310; font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.announcement-status i, .event-badge i { width: 9px; height: 9px; border-radius: 50%; background: #f06b36; box-shadow: 0 0 0 0 #f06b3680; animation: signal-pulse 1.7s infinite; }
@keyframes signal-pulse { 65% { box-shadow: 0 0 0 9px #f06b3600; } 100% { box-shadow: 0 0 0 0 #f06b3600; } }
.home-section { max-width: 1180px; margin: auto; padding: 85px 28px; }
.section-topline { color: #ad592b; font-size: .7rem; font-weight: 800; letter-spacing: .15em; margin-bottom: 20px; }
.home-section h2 { margin: 0; font-size: clamp(2rem,3.6vw,3.35rem); line-height: 1.16; letter-spacing: -.06em; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 30px; }
.section-heading p { max-width: 350px; margin: 0; color: var(--muted); }
.resource-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.resource-grid > p { display: contents; }
.resource-grid a { display: flex; flex-direction: column; min-height: 242px; padding: 24px; color: var(--ink); text-decoration: none; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: transform .18s, border-color .18s, box-shadow .18s; }
.resource-grid a:hover { color: var(--ink); transform: translateY(-5px) rotate(-.25deg); border-color: #df9a70; box-shadow: 0 18px 35px #15233118; }
.resource-grid a:nth-child(1) { background: linear-gradient(150deg,#e9fffb,#fff 64%); border-top: 5px solid var(--teal); }
.resource-grid a:nth-child(2) { background: linear-gradient(150deg,#f0ebff,#fff 64%); border-top: 5px solid var(--purple); }
.resource-grid a:nth-child(3) { background: linear-gradient(150deg,#f7ffe8,#fff 64%); border-top: 5px solid var(--lime); }
.resource-grid a:nth-child(4) { background: linear-gradient(150deg,#fff0e6,#fff 64%); border-top: 5px solid var(--orange); }
.resource-card-head { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 13px; }
.resource-card-head img { width: 52px; height: 52px; padding: 5px; object-fit: contain; border-radius: 12px; background: #fff; box-shadow: 0 6px 18px #18263b14; }
.resource-card-head .resource-type { flex: 1; }
.resource-grid strong { margin: 18px 0 8px; font: 800 1.23rem/1.3 'Manrope',sans-serif; letter-spacing: -.04em; }
.resource-grid a > span:nth-child(3) { color: var(--muted); font-size: .86rem; line-height: 1.48; }
.resource-arrow { margin-top: auto; padding-top: 18px; color: #a8582b; font-size: .82rem; font-weight: 800; }
.home-story { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); padding-left: max(28px,calc((100vw - 1124px)/2)); padding-right: max(28px,calc((100vw - 1124px)/2)); background: var(--soft); }
.story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; }
.story-grid p { margin: 3px 0 22px; color: #506075; font-size: 1.1rem; }
.timeline-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-top: 55px; }
.timeline-strip div { border-top: 2px solid #c8d1dc; padding-top: 15px; }
.timeline-strip strong { display: block; font: 800 1.8rem/1.2 'Manrope',sans-serif; letter-spacing: -.05em; }
.timeline-strip span { color: var(--muted); font-size: .85rem; }
.home-focus h2 { margin-bottom: 30px; }
.focus-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.focus-grid > p { display: contents; }
.focus-grid a { display: block; position: relative; min-height: 255px; padding: 26px; color: var(--ink); text-decoration: none; background: #fff; border: 1px solid var(--line); border-radius: 14px; transition: transform .18s,border-color .18s; }
.focus-grid a:hover { transform: translateY(-3px); border-color: #df9a70; color: var(--ink); }
.focus-grid a > span { color: #a8582b; font-size: .73rem; font-weight: 800; }
.focus-grid strong { display: block; margin: 35px 0 8px; font: 800 1.4rem/1.3 'Manrope',sans-serif; letter-spacing: -.04em; }
.focus-grid a > span:nth-of-type(2) { display: block; color: var(--muted); font-size: .92rem; font-weight: 400; letter-spacing: normal; }
.focus-grid b { position: absolute; top: 25px; right: 26px; color: #a8582b; font-size: 1.3rem; }
.home-close { display: flex; justify-content: space-between; align-items: center; gap: 35px; border-top: 1px solid var(--line); }
.home-close p { margin: 18px 0 0; color: var(--muted); }

/* Interior content */
.profile-grid, .platform-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 30px 0; }
.profile-card, .platform-card { padding: 27px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.profile-card h2, .platform-card h2 { margin: 14px 0 !important; font-size: 1.35rem; line-height: 1.3; }
.profile-card p, .platform-card p { color: #4f5d70; }
.profile-card a { font-weight: 700; }
.expertise-list { display: flex; flex-wrap: wrap; gap: 9px; margin: 17px 0 34px; }
.expertise-list span { padding: 9px 13px; border: 1px solid #c9d5df; border-radius: 999px; background: #f4f8fa; color: #35475a; font-size: .79rem; font-weight: 700; }
.expertise-list.compact { gap: 7px; margin: 17px 0 22px; }
.expertise-list.compact span { padding: 7px 10px; font-size: .72rem; }
.profile-portrait { display: block; width: 100%; height: 245px; object-fit: cover; object-position: center 28%; border-radius: 10px; margin-bottom: 20px; }
.profile-portrait[alt*="Pratheesh"] { object-position: center 46%; }
.platform-meta { border-top: 1px solid var(--line); padding-top: 14px; font-size: .88rem; }
.person-hero { display: grid; grid-template-columns: 210px 1fr; gap: 30px; align-items: start; padding: 24px; margin: 10px 0 36px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.person-hero img { width: 210px; height: 250px; object-fit: cover; object-position: center 27%; border-radius: 10px; }
.person-hero img[alt*="Pratheesh"] { object-position: center 44%; }
.person-hero p { margin: 10px 0 15px; }
.career-timeline { position: relative; display: grid; gap: 0; margin: 28px 0 48px; padding-left: 28px; border-left: 2px solid #d7e0e7; }
.career-timeline article { position: relative; padding: 0 0 28px 20px; }
.career-timeline article:last-child { padding-bottom: 0; }
.career-timeline article::before { content: ''; position: absolute; left: -35px; top: 4px; width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 2px var(--teal); }
.career-timeline span, .education-grid span { color: #9b552a; font-size: .67rem; font-weight: 800; letter-spacing: .1em; }
.career-timeline h3 { margin: 7px 0 2px !important; font-size: 1.08rem; }
.career-timeline p { margin: 0; color: var(--muted); font-size: .9rem; }
.education-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 25px 0 48px; }
.education-grid article { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg,#f5f7fa,#fff); }
.education-grid article:nth-child(1) { border-top: 5px solid var(--purple); }
.education-grid article:nth-child(2) { border-top: 5px solid var(--teal); }
.education-grid article:nth-child(3) { border-top: 5px solid var(--orange); }
.education-grid h3 { margin: 15px 0 7px !important; font-size: 1.08rem; }
.education-grid p { margin: 0; color: var(--muted); font-size: .86rem; }
.book-feature { display: grid; grid-template-columns: minmax(150px,240px) 1fr; gap: 30px; align-items: start; margin: 25px 0 20px; padding: 25px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.book-feature img { display: block; width: 100%; height: auto; border: 1px solid #e3e4e8; box-shadow: 0 12px 25px #15233116; }
.book-feature h3 { margin: 9px 0 13px !important; font-size: 1.55rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px; margin: 32px 0; }
.gallery-grid figure { margin: 0; }
.gallery-grid a { display: block; border-radius: 14px; overflow: hidden; background: var(--soft); }
.gallery-grid img { display: block; width: 100%; height: 290px; object-fit: cover; transition: transform .22s; }
.gallery-grid a:hover img { transform: scale(1.025); }
.gallery-grid figure:nth-child(3) img { object-fit: contain; }
.gallery-grid figcaption { margin-top: 10px; color: var(--muted); font-size: .83rem; }

/* Colour, metrics and interactive research */
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 28px 0 38px; }
.metric-card { min-height: 135px; padding: 22px; border-radius: 18px; color: #17202d; box-shadow: 0 12px 28px #25334d12; }
.metric-card strong { display: block; font: 800 clamp(2rem,4vw,3.1rem)/1 'Manrope',sans-serif; letter-spacing: -.06em; }
.metric-card span { display: block; margin-top: 13px; font-weight: 700; }
.metric-purple { background: #e9e3ff; }
.metric-orange { background: #ffe3cf; }
.metric-teal { background: #cffff7; }
.metric-lime { background: #ecffc9; }
.profile-links { display: flex; flex-wrap: wrap; gap: 8px; }
.profile-links a, .publication-actions a { padding: 9px 13px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: .82rem; font-weight: 800; text-decoration: none; }
.accent-purple { background: linear-gradient(145deg,#f0ebff,#fff); border-top: 5px solid var(--purple); }
.accent-teal { background: linear-gradient(145deg,#dffff9,#fff); border-top: 5px solid var(--teal); }
.student-strength { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 28px 0; }
.student-strength div { padding: 20px; border-radius: 15px; background: var(--night); color: #fff; }
.student-strength div:nth-child(2) { background: var(--purple); }
.student-strength div:nth-child(3) { background: #078b80; }
.student-strength div:nth-child(4) { background: #b15b28; }
.student-strength strong { display: block; font: 800 2rem/1 'Manrope',sans-serif; }
.student-strength span { display: block; margin-top: 9px; font-size: .82rem; }
.publication-controls { display: flex; flex-wrap: wrap; gap: 9px; margin: 30px 0 8px; }
.year-filter { appearance: none; padding: 10px 17px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-weight: 800; cursor: pointer; transition: transform .16s,background .16s,color .16s; }
.year-filter:hover { transform: translateY(-2px); }
.year-filter.is-active { background: var(--night); color: #fff; border-color: var(--night); }
.publication-count { color: var(--muted) !important; font-size: .84rem !important; }
.publication-list { display: grid; gap: 20px; margin: 24px 0 50px; }
.publication-card { display: grid; grid-template-columns: 190px 1fr; gap: 27px; padding: 24px; border: 1px solid var(--line); border-radius: 19px; background: #fff; box-shadow: 0 12px 35px #1b28420d; transition: transform .18s,box-shadow .18s; }
.publication-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px #1b284218; }
.publication-card[hidden] { display: none; }
.publication-card img, .publication-art { width: 190px; height: 235px; object-fit: cover; object-position: top; border-radius: 11px; border: 1px solid var(--line); }
.publication-card:nth-child(1) { border-left: 6px solid var(--purple); }
.publication-card:nth-child(2) { border-left: 6px solid var(--orange); }
.publication-card:nth-child(3) { border-left: 6px solid var(--teal); }
.publication-card:nth-child(4) { border-left: 6px solid var(--lime); }
.publication-card:nth-child(5) { border-left: 6px solid var(--pink); }
.publication-art { display: flex; flex-direction: column; justify-content: space-between; padding: 19px; background: linear-gradient(145deg,#153b36,#00a99a); color: #fff; }
.publication-art span { font: 800 1.3rem/1.1 'Manrope',sans-serif; letter-spacing: -.04em; }
.publication-art b { font-size: 2rem; }
.publication-meta { color: #7b4bd2; font-size: .68rem; font-weight: 800; letter-spacing: .1em; }
.publication-card h2 { margin: 9px 0 10px !important; font-size: clamp(1.25rem,2.2vw,1.7rem); line-height: 1.25; }
.publication-card p { color: var(--muted); }
.publication-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.publication-actions a:last-child { background: var(--night); color: #fff; border-color: var(--night); }
.internship-feature { display: grid; grid-template-columns: minmax(260px,390px) 1fr; gap: 34px; margin: 28px 0 52px; padding: 25px; border-radius: 20px; background: linear-gradient(135deg,#e9fff8,#fff 55%,#fff0d9); border: 1px solid #b8ded4; }
.internship-feature img { display: block; width: 100%; border-radius: 13px; box-shadow: 0 14px 30px #173a3125; transition: transform .2s; }
.internship-feature a:hover img { transform: scale(1.012); }
.internship-feature h3 { font-size: clamp(1.65rem,3vw,2.45rem); line-height: 1.14; margin: 15px 0 !important; }
.event-badge { display: inline-flex; align-items: center; gap: 9px; color: #096f66; font-size: .7rem; font-weight: 800; letter-spacing: .09em; }
.event-facts { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 20px 0; }
.event-facts span { padding: 12px; border-radius: 11px; background: #fff; color: var(--muted); font-size: .8rem; }
.event-facts strong { display: block; color: var(--ink); font-size: 1rem; }
.research-publication-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 30px 0 48px; }
.research-publication-grid article { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: 0 10px 30px #1b284210; }
.research-publication-grid article > div { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.research-publication-grid h3 { margin: 8px 0 18px !important; font-size: 1rem; line-height: 1.4; }
.paper-cover { display: block; position: relative; height: 285px; overflow: hidden; background: var(--soft); }
.paper-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .22s,filter .22s; }
.paper-cover span { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 9px 11px; color: #fff; border-radius: 9px; background: #151b27e8; font-size: .72rem; font-weight: 800; text-align: center; opacity: 0; transform: translateY(5px); transition: opacity .18s,transform .18s; }
.paper-cover:hover img { transform: scale(1.025); filter: brightness(.82); }
.paper-cover:hover span, .paper-cover:focus span { opacity: 1; transform: none; }
.request-paper { margin-top: auto; color: #08796f; font-size: .82rem; font-weight: 800; text-decoration: none; }
.startup-logo { display: inline-block; max-width: 360px; padding: 16px 20px; margin: 5px 0 20px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.startup-logo img { display: block; width: 100%; height: auto; }

/* Dedicated application and training landing pages */
.landing-shell { max-width: 1180px; margin: 0 auto; padding: 0 28px 35px; }
.landing-intro { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.65fr); gap: 52px; align-items: center; padding: 42px; border: 1px solid #b9ddd5; border-radius: 24px; background: linear-gradient(135deg,#e9fff9,#fff 56%,#fff2df); overflow: hidden; }
.landing-intro h2, .training-hero h2 { max-width: 760px; margin: 17px 0 !important; font-size: clamp(2.2rem,5vw,4.35rem); line-height: 1.04; letter-spacing: -.065em; }
.landing-intro p, .training-hero p { max-width: 720px; color: #4c5c6f; font-size: 1.08rem; }
.landing-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.secondary-button { display: inline-flex; align-items: center; justify-content: center; padding: 11px 17px; color: var(--ink); border: 1px solid #aeb9c7; border-radius: 10px; background: #fff; font-size: .87rem; font-weight: 800; text-decoration: none; }
.secondary-button:hover { color: #08796f; border-color: #60a99f; }
.landing-poster { display: block; transform: rotate(1.25deg); transition: transform .2s; }
.landing-poster:hover { transform: rotate(0) translateY(-3px); }
.landing-poster img { display: block; width: 100%; max-height: 530px; object-fit: contain; border-radius: 13px; box-shadow: 0 20px 42px #173a312c; }
.landing-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 18px 0 64px; }
.landing-stat-grid div { padding: 21px; border-radius: 15px; background: var(--night); color: #fff; }
.landing-stat-grid div:nth-child(2) { background: var(--purple); }
.landing-stat-grid div:nth-child(3) { background: #08796f; }
.landing-stat-grid div:nth-child(4) { background: #a45125; }
.landing-stat-grid strong { display: block; font: 800 1.6rem/1.1 'Manrope',sans-serif; }
.landing-stat-grid span { display: block; margin-top: 7px; color: #eef4f7; font-size: .78rem; }
.feature-tile-grid, .training-area-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 25px 0 58px; }
.feature-tile-grid article, .training-area-grid article { padding: 25px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.feature-tile-grid article:nth-child(1) { background: #e8fffa; }
.feature-tile-grid article:nth-child(2) { background: #f0ebff; }
.feature-tile-grid article:nth-child(3) { background: #f4ffdf; }
.feature-tile-grid article:nth-child(4) { background: #fff0e6; }
.feature-tile-grid article > span { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 11px; background: #fff; color: #08796f; font-size: 1.25rem; box-shadow: 0 7px 16px #1a273b12; }
.feature-tile-grid h3, .training-area-grid h3 { margin: 20px 0 8px !important; font-size: 1.12rem; }
.feature-tile-grid p, .training-area-grid p { margin: 0; color: var(--muted); font-size: .88rem; }
.project-requirement { display: flex; align-items: center; gap: 20px; margin: -30px 0 58px; padding: 23px 26px; border: 1px solid #b9ddd5; border-radius: 16px; background: #eafff9; }
.project-requirement > span { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: #08796f; color: #fff; font-size: 1.4rem; font-weight: 800; }
.project-requirement h3 { margin: 0 0 5px !important; }
.project-requirement p { margin: 0; color: var(--muted); }
.programme-team-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin: 24px 0 58px; }
.programme-team-grid article { min-height: 165px; padding: 23px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 9px 25px #18263b0b; }
.programme-team-grid article:nth-child(3n+1) { border-top: 4px solid var(--teal); }
.programme-team-grid article:nth-child(3n+2) { border-top: 4px solid var(--purple); }
.programme-team-grid article:nth-child(3n+3) { border-top: 4px solid var(--orange); }
.programme-team-grid span { color: #9b552a; font-size: .64rem; font-weight: 800; letter-spacing: .11em; }
.programme-team-grid h3 { margin: 18px 0 5px !important; font-size: 1.08rem; }
.programme-team-grid p { margin: 0; color: var(--muted); font-size: .85rem; }
.schedule-wrap { margin: 24px 0 14px; overflow-x: auto; border: 1px solid #cbd5df; border-radius: 16px; background: #fff; box-shadow: 0 10px 28px #18263b0c; }
.schedule-wrap:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.schedule-table { width: 100%; min-width: 760px; margin: 0; border-collapse: collapse; }
.schedule-table th { padding: 15px 18px; color: #fff; background: #17334e; font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.schedule-table td { padding: 13px 18px; border-bottom: 1px solid #d8e0e7; font-size: .87rem; }
.schedule-table tbody tr:nth-child(even) { background: #f2f8f7; }
.schedule-table tbody tr:last-child { background: #fff2df; font-weight: 700; }
.schedule-table tbody tr:last-child td { border-bottom: 0; }
.schedule-table th:first-child, .schedule-table td:first-child { width: 70px; text-align: center; }
.schedule-note { margin: 0 0 58px; padding: 16px 18px; border-left: 4px solid var(--orange); background: #fff8f2; color: #4d5c6c; font-size: .88rem; }
.eligibility-list { display: flex; flex-wrap: wrap; gap: 9px; margin: 20px 0 58px; }
.eligibility-list span { padding: 10px 14px; border: 1px solid #c8d2dd; border-radius: 999px; background: var(--soft); font-size: .84rem; font-weight: 700; }
.application-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; padding: 0; margin: 24px 0 55px; list-style: none; counter-reset: appsteps; }
.application-steps li { counter-increment: appsteps; padding: 23px; border-top: 4px solid var(--orange); border-radius: 15px; background: var(--soft); }
.application-steps li::before { content: '0' counter(appsteps); display: block; margin-bottom: 20px; color: #a55327; font-weight: 800; letter-spacing: .12em; }
.application-steps strong, .application-steps span { display: block; }
.application-steps span { margin-top: 9px; color: var(--muted); font-size: .87rem; }
.application-note, .training-callout { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px; border-radius: 19px; background: var(--night); color: #fff; }
.application-note h3, .training-callout h3 { margin: 0 0 8px !important; color: #fff; }
.application-note p, .training-callout p { max-width: 720px; margin: 0; color: #c8d2de; }
.training-hero { margin-bottom: 65px; padding: 60px 48px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 85% 10%,#7256d855,transparent 28%),linear-gradient(135deg,#111926,#203148); }
.training-hero h2 { color: #fff; }
.training-hero p { color: #cbd4df; }
.landing-kicker { color: var(--orange); font-size: .69rem; font-weight: 800; letter-spacing: .14em; }
.training-area-grid article { border-top-width: 5px; }
.training-area-grid article > span { color: #98501f; font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.accent-orange { border-top-color: var(--orange) !important; background: #fff8f2 !important; }
.accent-lime { border-top-color: var(--lime) !important; background: #f9ffef !important; }
.audience-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; overflow: hidden; margin: 24px 0 58px; border-radius: 16px; background: #d7dfe7; }
.audience-strip div { min-height: 135px; padding: 23px; background: var(--soft); }
.audience-strip strong, .audience-strip span { display: block; }
.audience-strip span { margin-top: 9px; color: var(--muted); font-size: .84rem; }
.training-callout { margin-top: 55px; background: linear-gradient(130deg,#142333,#254b50); }
.training-callout > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }

@media (hover: none) {
  .paper-cover span { opacity: 1; transform: none; }
  .resource-grid a:hover, .publication-card:hover, .announcement-bar:hover { transform: none; }
}

@media (max-width: 960px) {
  .resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .research-publication-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .feature-tile-grid, .training-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .programme-team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .home-hero-inner { padding: 85px 25px 95px; }
  .home-hero p { font-size: 1rem; }
  .home-section { padding: 68px 24px; }
  .section-heading { display: block; }
  .section-heading p { margin-top: 15px; }
  .story-grid { grid-template-columns: 1fr; gap: 18px; }
  .focus-grid { grid-template-columns: 1fr; }
  .focus-grid a { min-height: 190px; }
  .focus-grid strong { margin-top: 25px; }
  .home-close { align-items: flex-start; flex-direction: column; }
  .profile-grid, .platform-grid, .gallery-grid { grid-template-columns: 1fr; }
  .announcement-bar { grid-template-columns: auto 1fr; width: calc(100% - 40px); }
  .announcement-bar > span:not(.announcement-status), .announcement-bar b { grid-column: 2; }
  .metric-grid, .student-strength { grid-template-columns: repeat(2,1fr); }
  .internship-feature { grid-template-columns: 1fr; }
  .publication-card { grid-template-columns: 130px 1fr; gap: 18px; }
  .publication-card img, .publication-art { width: 130px; height: 170px; }
  .person-hero { grid-template-columns: 1fr; }
  .person-hero img { width: 180px; height: 215px; }
  .education-grid { grid-template-columns: 1fr; }
  .landing-intro { grid-template-columns: 1fr; padding: 30px; }
  .landing-poster { max-width: 420px; margin: auto; transform: none; }
  .landing-stat-grid, .audience-strip { grid-template-columns: repeat(2,1fr); }
  .application-steps { grid-template-columns: 1fr; }
  .application-note, .training-callout { align-items: flex-start; flex-direction: column; }
  .training-hero { padding: 45px 30px; }
  .training-callout > div:last-child { justify-content: flex-start; }
}
@media (max-width: 530px) {
  .navbar-brand { max-width: 220px; white-space: normal; line-height: 1.15; }
  .eyebrow { font-size: .56rem; letter-spacing: .08em; }
  .home-hero-inner { padding: 70px 20px 72px; }
  .home-hero h1 { font-size: clamp(2.35rem,11vw,3.25rem); }
  .hero-actions { flex-direction: column; }
  .hero-baseline { flex-direction: column; gap: 4px; font-size: .56rem; }
  .resource-grid { grid-template-columns: 1fr; }
  .resource-grid a { min-height: 220px; padding: 21px; }
  .timeline-strip { gap: 13px; }
  .timeline-strip strong { font-size: 1.35rem; }
  .timeline-strip span { font-size: .72rem; }
  .timeline-strip { grid-template-columns: repeat(2,1fr); row-gap: 24px; }
  .book-feature { grid-template-columns: 1fr; }
  .book-feature img { max-width: 220px; }
  .gallery-grid img { height: 260px; }
  .publication-card { grid-template-columns: 1fr; }
  .publication-card img, .publication-art { width: 100%; height: 260px; }
  .announcement-bar { grid-template-columns: 1fr; gap: 8px; }
  .announcement-bar > span:not(.announcement-status), .announcement-bar b { grid-column: 1; }
  .research-publication-grid { grid-template-columns: 1fr; }
  .paper-cover { height: 340px; }
  .event-facts { grid-template-columns: 1fr; }
  .metric-grid, .student-strength { grid-template-columns: 1fr 1fr; gap: 9px; }
  .metric-card { min-height: 110px; padding: 17px; }
  main.content { padding-left: 16px; padding-right: 16px; }
  .landing-shell { padding-left: 0; padding-right: 0; }
  .landing-intro { padding: 24px 20px; border-radius: 18px; }
  .landing-intro h2, .training-hero h2 { font-size: clamp(2rem,10.5vw,3rem); }
  .landing-actions { align-items: stretch; flex-direction: column; }
  .landing-actions a { width: 100%; }
  .landing-stat-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .landing-stat-grid div { padding: 16px; }
  .feature-tile-grid, .training-area-grid, .audience-strip { grid-template-columns: 1fr; }
  .programme-team-grid { grid-template-columns: 1fr; }
  .programme-team-grid article { min-height: 135px; }
  .project-requirement { align-items: flex-start; margin-top: -25px; padding: 20px; }
  .project-requirement > span { flex-basis: 40px; width: 40px; height: 40px; }
  .training-hero { padding: 35px 22px; border-radius: 18px; }
  .application-note, .training-callout { padding: 24px 20px; }
  .application-note { border-radius: 16px; }
  .application-note p { font-size: .9rem; }
  .schedule-wrap { margin-left: -4px; margin-right: -4px; border-radius: 12px; }
  .schedule-table th, .schedule-table td { padding: 11px 13px; font-size: .78rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .resource-grid a, .focus-grid a, .gallery-grid img { transition: none; }
  .announcement-status i, .event-badge i { animation: none; }
}
