
:root {
	color-scheme: light;
	--ink: #1c2821;
	--muted: #68736b;
	--paper: #f5f7f3;
	--white: #ffffff;
	--forest: #244c3b;
	--forest-deep: #173428;
	--mint: #dce9dd;
	--lime: #d9ed7d;
	--coral: #e76f51;
	--amber: #e3a942;
	--line: #dce2da;
	--display: 'Manrope', 'Avenir Next', sans-serif;
	--body: 'DM Sans', 'Avenir Next', sans-serif;
	font-family: var(--body);
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; top: 12px; left: 12px; padding: 10px 16px; color: #fff; background: var(--forest-deep); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; min-height: 88px; padding: 0 max(5.8vw, calc((100vw - 1440px) / 2)); background: var(--paper); border-bottom: 1px solid rgba(36, 76, 59, .09); }
.primary-navigation { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 34px); margin-left: auto; margin-right: 32px; }
.primary-navigation a { position: relative; padding: 9px 0; color: #59645c; font-size: 13px; font-weight: 600; transition: color .2s ease; }
.primary-navigation a:hover, .primary-navigation a.is-current { color: var(--forest); }
.primary-navigation a.is-current::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 2px; background: var(--coral); content: ''; }
.header-action { display: inline-flex; gap: 12px; align-items: center; padding: 12px 16px; color: white; background: var(--forest); font-size: 12px; font-weight: 700; transition: background .2s ease; }
.header-action:hover { background: var(--forest-deep); }
.menu-toggle { display: none; }

.hero-section { position: relative; display: grid; grid-template-columns: minmax(0, .94fr) minmax(430px, 1.06fr); align-items: center; min-height: 595px; padding: 42px max(9.5vw, calc((100vw - 1320px) / 2)) 70px; overflow: hidden; background: var(--paper); }
.hero-copy { position: relative; z-index: 2; max-width: 580px; padding: 20px 0 36px; animation: rise-in .65s both; }
.eyebrow, .section-kicker { display: inline-flex; align-items: center; gap: 9px; margin: 0; color: var(--forest); font-size: 10px; font-weight: 800; letter-spacing: 0; }
.eyebrow span { width: 8px; height: 8px; background: var(--coral); border-radius: 50%; }
.hero-copy h1 { margin: 22px 0 18px; font: 800 clamp(48px, 5.6vw, 78px)/1.02 var(--display); letter-spacing: 0; }
.hero-copy h1 em { color: var(--forest); font-style: normal; }
.hero-lede { max-width: 490px; margin: 0; color: #56625a; font-size: 16px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; padding: 0 19px; border: 1px solid transparent; border-radius: 2px; font-size: 12px; font-weight: 700; cursor: pointer; transition: transform .2s ease, background .2s ease, border .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--forest); }
.button-primary:hover { background: var(--forest-deep); }
.button-secondary { color: var(--forest); background: transparent; border-color: #aebbb1; }
.button-secondary:hover { background: var(--mint); border-color: var(--mint); }
.hero-note { display: flex; align-items: center; gap: 11px; margin-top: 40px; color: var(--muted); font-size: 11px; }
.note-rule { width: 30px; height: 1px; background: var(--coral); }
.hero-index { position: absolute; bottom: 28px; left: 5.8vw; color: #839087; font-size: 9px; font-weight: 700; }

.hero-art { position: relative; isolation: isolate; width: min(100%, 590px); height: 445px; justify-self: end; overflow: hidden; background: #e6eee4; animation: reveal-art .8s .1s both; }
.hero-art::before { position: absolute; inset: 0; z-index: -2; background: repeating-linear-gradient(135deg, transparent 0 24px, rgba(36,76,59,.035) 25px 26px), radial-gradient(ellipse at 80% 8%, #f4f4cf 0, #e6eee4 42%, #c5d9cb 100%); content: ''; }
.art-sun { position: absolute; top: 38px; right: 88px; width: 125px; height: 125px; background: var(--lime); border-radius: 50%; }
.art-globe { position: absolute; top: 64px; right: 50px; width: 260px; height: 260px; overflow: hidden; border: 1px solid rgba(36,76,59,.35); border-radius: 50%; transform: rotate(-18deg); }
.globe-line { position: absolute; inset: 0; border: 1px solid rgba(36,76,59,.42); border-radius: 50%; }
.globe-line-one { left: 22%; right: 22%; }
.globe-line-two { top: 22%; bottom: 22%; }
.globe-line-three { top: 38%; bottom: 38%; border-width: 1px 0; border-radius: 0; }
.art-orbit { position: absolute; z-index: 1; border: 1px solid rgba(36,76,59,.35); border-radius: 50%; transform: rotate(-28deg); }
.orbit-one { top: 68px; right: -18px; width: 425px; height: 236px; }
.orbit-two { top: 102px; right: -48px; width: 486px; height: 226px; }
.art-book { position: absolute; z-index: 4; bottom: 65px; left: 60px; display: flex; width: 222px; height: 115px; padding: 13px; background: #fbfaf2; box-shadow: 0 16px 25px rgba(28,40,33,.14); transform: rotate(-8deg); }
.art-book::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; background: #cdd4ca; content: ''; }
.art-book span { flex: 1; margin: 7px 7px 0; border-top: 2px solid #b4c2b2; border-bottom: 2px solid #b4c2b2; }
.art-person { position: absolute; z-index: 3; right: 118px; bottom: 18px; width: 125px; height: 260px; }
.person-head { position: absolute; top: 3px; left: 44px; width: 58px; height: 68px; background: #a65b3d; border-radius: 48% 48% 45% 45%; }
.person-head::before { position: absolute; top: -5px; right: -4px; width: 65px; height: 32px; background: #272c25; border-radius: 70% 70% 15% 10%; content: ''; }
.person-body { position: absolute; top: 66px; left: 15px; width: 109px; height: 154px; background: var(--coral); border-radius: 45px 45px 8px 8px; transform: rotate(-5deg); }
.person-arm { position: absolute; z-index: 1; top: 76px; left: -4px; width: 91px; height: 18px; background: #a65b3d; border-radius: 14px; transform: rotate(-43deg); transform-origin: right center; }
.art-spark { position: absolute; z-index: 5; color: var(--forest); }
.spark-one { top: 62px; left: 80px; font-size: 27px; }
.spark-two { top: 196px; right: 34px; color: var(--coral); font-size: 32px; }
.art-caption { position: absolute; z-index: 6; right: 19px; bottom: 19px; left: 19px; display: flex; justify-content: space-between; align-items: end; padding: 12px 15px; color: white; background: var(--forest); }
.art-caption span { color: var(--lime); font-size: 9px; font-weight: 700; }
.art-caption strong { font: 700 12px var(--display); }

.search-band { display: grid; grid-template-columns: minmax(205px, .7fr) minmax(360px, 1.55fr); gap: 6px 38px; align-items: center; padding: 30px max(9.5vw, calc((100vw - 1320px) / 2)); color: white; background: var(--forest); }
.search-intro .section-kicker { color: var(--lime); }
.search-intro h2 { margin: 5px 0 0; font: 700 20px var(--display); }
.search-form { display: flex; align-items: center; min-width: 0; height: 56px; padding: 5px 5px 5px 14px; background: white; }
.search-icon { color: var(--forest); font-size: 27px; line-height: 1; transform: rotate(-20deg); }
.search-form input { width: 100%; min-width: 0; height: 100%; padding: 0 12px; color: var(--ink); border: 0; outline: none; font-size: 12px; }
.search-form input::placeholder { color: #849087; opacity: 1; }
.button-dark { min-height: 45px; color: white; background: var(--ink); }
.button-dark:hover { background: #101a14; }
.search-hint { grid-column: 2; margin: 1px 0 0; color: #c1d0c4; font-size: 10px; }

.page-section { padding: 88px max(9.5vw, calc((100vw - 1320px) / 2)); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.section-heading h2 { margin: 6px 0 0; font: 700 31px/1.2 var(--display); letter-spacing: 0; }
.section-heading > p { max-width: 330px; margin: 0; color: var(--muted); font-size: 12px; }
.text-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 4px; color: var(--forest); border-bottom: 1px solid #99aa9d; font-size: 11px; font-weight: 700; white-space: nowrap; }
.category-section { padding-top: 84px; padding-bottom: 76px; }
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.category-tile { position: relative; display: flex; min-height: 168px; flex-direction: column; justify-content: end; padding: 18px 18px 16px; overflow: hidden; transition: transform .2s ease; }
.category-tile:hover { transform: translateY(-4px); }
.category-symbol { position: absolute; top: 15px; left: 17px; color: rgba(28,40,33,.55); font-size: 9px; font-weight: 700; }
.category-emoji { position: absolute; top: 19px; right: 17px; color: var(--forest); font-size: 22px; }
.category-tile strong { font: 700 18px var(--display); }
.category-tile > span:last-child { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; color: #59655d; font-size: 10px; }
.category-tile > span:last-child b { color: var(--forest); font-size: 15px; font-weight: 500; }
.category-scholarships { background: #dce9dd; }
.category-universities { background: #e9e8d9; }
.category-jobs { background: #f1dcd2; }
.category-internships { background: #dce8eb; }
.category-fellowships { background: #e8e2c9; }
.category-training { background: #d9e4cf; }
.category-other { grid-column: span 2; background: #d9ded3; }

.closing-section { padding-top: 54px; padding-bottom: 72px; background: #e8eee7; }
.featured-section { padding-top: 58px; padding-bottom: 68px; background: #f1dcd2; }
.featured-section .section-kicker { color: #8e4d38; }
.latest-section { padding-top: 84px; padding-bottom: 96px; }
.opportunity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.closing-section .opportunity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.opportunity-card { display: flex; min-width: 0; flex-direction: column; background: white; border: 1px solid #e2e7e0; animation: rise-in .4s both; }
.card-image { position: relative; display: block; height: 190px; overflow: hidden; background: #fff; }
.card-image img { width: 100%; height: 100%; padding: 12px; object-fit: contain; object-position: center; }
.card-image-university { background: #fff; }
.card-category { position: absolute; bottom: 12px; left: 12px; padding: 6px 9px; color: var(--forest-deep); background: var(--lime); font-size: 9px; font-weight: 800; }
.card-pin { position: absolute; top: 12px; right: 12px; padding: 6px 9px; color: white; background: var(--forest-deep); font-size: 9px; font-weight: 800; }
.card-content { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.card-org { color: var(--forest); font-size: 10px; font-weight: 700; }
.card-content h3 { margin: 7px 0 8px; font: 700 17px/1.35 var(--display); }
.card-content h3 a:hover { color: var(--forest); }
.card-description { min-height: 45px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px; margin-top: 18px; padding-top: 12px; border-top: 1px solid #e7ebe5; color: #5f6a62; font-size: 10px; }
.remaining-time { color: #91551f; font-weight: 700; }
.card-status { margin-top: 10px; }
.status { display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.status::before { width: 7px; height: 7px; border-radius: 50%; content: ''; }
.status-open { color: #26734c; }
.status-open::before { background: #36a568; }
.status-soon { color: #a55e1f; }
.status-soon::before { background: var(--amber); }
.status-expired { color: #b3473b; }
.status-expired::before { background: #dc6252; }
.card-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; }
.button-card { min-height: 37px; padding: 0 11px; color: white; background: var(--forest); font-size: 10px; }
.button-card:hover { background: var(--forest-deep); }
.apply-link { color: var(--forest); font-size: 10px; font-weight: 800; }
.apply-link:hover { text-decoration: underline; }
.apply-unavailable { color: #89928b; font-size: 9px; }
.loading-state, .empty-state { grid-column: 1 / -1; margin: 0; padding: 30px; color: var(--muted); background: rgba(255,255,255,.7); text-align: center; font-size: 13px; }
.empty-error { color: #984638; }

.about-strip { display: grid; grid-template-columns: 100px 1.2fr 1fr auto; gap: 24px; align-items: center; padding: 48px max(9.5vw, calc((100vw - 1320px) / 2)); color: white; background: var(--forest); }
.about-number { color: var(--lime); font: 800 23px/1.05 var(--display); }
.about-number span { font: 700 10px var(--body); }
.about-strip .section-kicker { color: #b5cba7; }
.about-strip h2 { max-width: 350px; margin: 5px 0 0; font: 700 24px/1.25 var(--display); }
.about-strip > p { margin: 0; color: #d4ded5; font-size: 11px; line-height: 1.8; }
.button-light { min-height: 43px; color: var(--forest); background: var(--lime); }
.button-light:hover { background: white; }

.site-footer { padding: 50px max(5.8vw, calc((100vw - 1440px) / 2)) 0; color: white; background: #172820; }
.footer-main { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.2fr; gap: 42px; padding-bottom: 35px; }
.footer-brand > p { max-width: 260px; margin: 18px 0 0; color: #b5c2b8; font-size: 11px; line-height: 1.7; }
.footer-column { display: flex; flex-direction: column; align-items: start; gap: 9px; }
.footer-column h2 { margin: 2px 0 7px; color: var(--lime); font: 700 12px var(--display); }
.footer-column a { color: #c1cbc3; font-size: 10px; }
.footer-column a:hover { color: white; }
.footer-note { padding: 14px 0; color: #c0ccc3; border-top: 1px solid rgba(255,255,255,.17); font-size: 10px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 15px; padding: 13px 0 17px; color: #96a79a; border-top: 1px solid rgba(255,255,255,.1); font-size: 9px; }

.listing-page { min-height: 65vh; }
.listing-hero { padding: 74px max(9.5vw, calc((100vw - 1320px) / 2)) 52px; background: linear-gradient(115deg, #e7eee5, #f5f7f3 67%); }
.listing-hero h1 { margin: 9px 0; font: 800 clamp(38px, 5vw, 58px)/1.1 var(--display); }
.listing-hero > p { margin: 0 0 25px; color: var(--muted); font-size: 14px; }
.listing-search { max-width: 780px; border: 1px solid var(--line); }
.listing-results { padding-top: 55px; }

.detail-page { min-height: 70vh; max-width: 1320px; margin: 0 auto; padding: 32px 5vw 90px; }
.detail-back { margin-bottom: 22px; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.detail-main { min-width: 0; }
.detail-image { width: 100%; max-height: 440px; aspect-ratio: 16 / 8.5; object-fit: contain; object-position: center; background: #fff; }
.detail-heading { padding: 26px 0 20px; border-bottom: 1px solid var(--line); }
.detail-category { color: var(--forest); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.detail-heading h1 { margin: 7px 0; font: 800 clamp(32px, 4vw, 48px)/1.15 var(--display); }
.detail-heading p { margin: 0; color: var(--muted); }
.detail-section { padding: 21px 0; border-bottom: 1px solid var(--line); }
.detail-section h2 { margin: 0 0 8px; font: 700 17px var(--display); }
.detail-section p { margin: 0 0 8px; color: #536057; font-size: 13px; line-height: 1.8; white-space: pre-line; }
.detail-sidebar { position: sticky; top: 20px; }
.deadline-panel, .share-panel { padding: 21px; background: white; border: 1px solid var(--line); }
.deadline-panel { display: flex; flex-direction: column; align-items: start; gap: 10px; }
.deadline-panel > strong { font: 700 20px var(--display); }
.deadline-panel > p { display: flex; width: 100%; justify-content: space-between; gap: 10px; margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.deadline-panel > p b { color: var(--ink); }
.button-wide { width: 100%; margin-top: 9px; }
.share-panel { margin-top: 13px; }
.share-panel h2 { margin: 0 0 14px; font: 700 15px var(--display); }
.share-button, .copy-button { display: flex; width: 100%; justify-content: space-between; align-items: center; min-height: 40px; padding: 0 12px; color: white; background: var(--forest); border: 1px solid var(--forest); font-size: 10px; font-weight: 700; cursor: pointer; }
.copy-button { margin-top: 8px; color: var(--forest); background: white; }
.copy-feedback { margin: 8px 0 0; color: var(--forest); font-size: 10px; }

.content-page { max-width: 1160px; min-height: 54vh; margin: 0 auto; padding: 85px 6vw 100px; }
.content-page h1 { max-width: 800px; margin: 11px 0 16px; font: 800 clamp(42px, 6vw, 68px)/1.06 var(--display); }
.content-page .content-lede { max-width: 760px; color: #58645c; font-size: 18px; line-height: 1.7; }
.content-columns { display: grid; grid-template-columns: 1.2fr .8fr; gap: 55px; align-items: start; margin-top: 45px; }
.content-copy h2, .contact-panel h2 { margin: 0 0 12px; font: 700 21px var(--display); }
.content-copy p { color: var(--muted); font-size: 14px; line-height: 1.85; }
.contact-panel { padding: 28px; background: #e3ece2; }
.contact-panel a:not(.button) { display: block; margin: 10px 0; color: var(--forest); font-size: 13px; font-weight: 700; }
.contact-panel .button { margin: 9px 8px 0 0; }

@keyframes rise-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes reveal-art { from { opacity: .25; clip-path: inset(0 0 0 12%); } to { opacity: 1; clip-path: inset(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
