@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root {
  --forest: #143d34;
  --forest-deep: #0c2a24;
  --leaf: #7ed957;
  --lime: #c5f36b;
  --cream: #f5f1e8;
  --paper: #fffdf7;
  --ink: #18352e;
  --muted: #60716b;
  --line: #d9e0d4;
  --coral: #f1775b;
  --shadow: 0 20px 60px rgba(20,61,52,.12);
  font-family: "DM Sans", sans-serif;
  color: var(--ink);
  background: var(--cream);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); }
body::before { content:""; position: fixed; inset:0; pointer-events:none; opacity:.18; z-index:10; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); mix-blend-mode:multiply; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.wrap { width:min(1160px, calc(100% - 40px)); margin:auto; }
.topbar { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; padding:22px 0; }
.brand { display:flex; gap:12px; align-items:center; text-decoration:none; font-weight:700; letter-spacing:-.04em; }
.brand img { width:43px; height:43px; object-fit:contain; border-radius:12px; }
.brand span { font-size:18px; }
.nav { display:flex; align-items:center; gap:27px; font-size:14px; font-weight:600; }
.nav a { text-decoration:none; }
.nav a:not(.button):hover { color:var(--coral); }
.button { display:inline-flex; border:0; align-items:center; justify-content:center; min-height:49px; padding:0 21px; border-radius:5px; background:var(--forest); color:var(--paper); text-decoration:none; font-weight:700; cursor:pointer; transition:transform .2s, background .2s; }
.button:hover { transform:translateY(-2px); background:var(--forest-deep); }
.button.light { background:var(--lime); color:var(--forest); }
.button.coral { background:var(--coral); }
.hero { overflow:hidden; background:var(--cream); }
.hero-grid { min-height:690px; display:grid; grid-template-columns:1.04fr .96fr; align-items:center; gap:54px; padding:78px 0 102px; }
.eyebrow { display:flex; align-items:center; gap:9px; color:var(--coral); text-transform:uppercase; letter-spacing:.16em; font:500 11px "DM Mono", monospace; }
.eyebrow::before { content:""; width:26px; height:2px; background:var(--coral); }
h1,h2,h3 { font-family:"Fraunces", serif; font-weight:700; letter-spacing:-.06em; word-spacing:.08em; line-height:.96; margin:0; }
h1 { font-size:clamp(55px, 7vw, 95px); max-width:660px; color:var(--forest); margin:21px 0 25px; }
.hero-copy { max-width:535px; font-size:20px; line-height:1.45; color:#50645d; }
.hero-copy strong { color:var(--forest); }
.hero-cta { display:flex; align-items:center; gap:23px; margin-top:32px; }
.text-link { text-decoration:none; font-size:14px; font-weight:700; border-bottom:1px solid var(--forest); padding-bottom:4px; }
.hero-art { display:flex; align-items:center; justify-content:center; }
.hero-art-mobile { display:none; }
.campus-hero-image { display:block; width:100%; height:auto; max-width:500px; object-fit:contain; border-radius:24px; box-shadow:var(--shadow); }
.ticker { background:var(--lime); color:var(--forest); overflow:hidden; padding:13px 0; font:500 12px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.1em; }
.ticker-track { display:flex; justify-content:space-around; gap:40px; padding:0 20px; white-space:nowrap; }
.about-bridge { padding:72px 0; background:var(--paper); border-bottom:1px solid var(--line); }
.about-bridge-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; align-items:start; }
.about-bridge h2 { max-width:450px; margin-top:18px; font-size:clamp(38px,4vw,54px); }
.about-bridge-copy { max-width:650px; color:var(--muted); line-height:1.6; }
.about-bridge-copy p { margin:0 0 14px; }
.about-bridge-copy strong { color:var(--forest); }
.about-bridge-copy .text-link { display:inline-block; margin-top:7px; color:var(--forest); }
.section { padding:108px 0; }
.section.tint { background:#e9eedf; }
.section.dark { background:var(--forest); color:var(--paper); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:52px; }
h2 { font-size:clamp(42px, 5vw, 70px); max-width:650px; }
.section-intro { max-width:350px; color:var(--muted); line-height:1.55; }
.term-intro strong { display:block; margin-bottom:8px; color:var(--forest); }
.dark .section-intro { color:#b5c7b9; }
.split-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.audience { min-height:280px; padding:32px; border-radius:9px; background:var(--paper); border:1px solid var(--line); }
.audience.provider { background:var(--leaf); border-color:var(--leaf); }
.num { font:500 12px "DM Mono",monospace; color:var(--coral); }
.audience h3 { font-size:37px; margin:43px 0 15px; }
.audience p { color:var(--muted); max-width:430px; line-height:1.5; margin:0; }
.provider p { color:var(--forest); }
.provider .audience-callout { margin-top:24px; padding-top:18px; border-top:1px solid rgba(20,61,52,.24); font-weight:700; }
.pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.pill { background:#e8eee3; padding:8px 11px; border-radius:4px; font-size:12px; font-weight:600; }
.provider .pill { background:rgba(20,61,52,.12); }
.marketplace-shared { position:relative; margin-top:18px; padding:27px 32px; border:1px solid var(--line); border-radius:9px; background:#edf2e7; }
.marketplace-shared::before { content:""; position:absolute; top:-19px; left:25%; right:25%; height:18px; border-left:1px solid var(--line); border-right:1px solid var(--line); }
.marketplace-shared .pills { margin-top:17px; }
.marketplace-shared .pill { background:rgba(20,61,52,.1); color:var(--forest); }
.marketplace-shared p { margin:20px 0 0; padding-top:18px; border-top:1px solid var(--line); color:var(--forest); font-weight:700; line-height:1.5; }
.opportunity-lead { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:start; }
.opportunity h2 { color:var(--lime); }
.opportunity-lead > div:first-child .eyebrow { margin-bottom:14px; }
.opportunity-theme { color:var(--coral); font:500 12px "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.opportunity-copy { margin:20px 0 0; font-size:18px; line-height:1.6; color:#d5e2d4; }
.opportunity-grid { display:grid; grid-template-columns:1fr 1fr; margin-top:72px; border-top:1px solid #416052; border-left:1px solid #416052; }
.opportunity-card { min-height:390px; padding:34px; border-right:1px solid #416052; border-bottom:1px solid #416052; }
.opportunity-card-earn { background:var(--lime); }
.opportunity-card h3 { margin:45px 0 20px; color:var(--paper); font-size:36px; line-height:1.02; }
.opportunity-card p { margin:0 0 17px; color:#c7d6cd; line-height:1.62; }
.opportunity-card-earn .num { color:var(--forest); }
.opportunity-card-earn h3,.opportunity-card-earn p { color:var(--forest); }
.opportunity-card .opportunity-emphasis { margin-top:28px; padding-top:20px; border-top:1px solid #416052; color:var(--lime); font-weight:700; }
.opportunity-card .opportunity-future { margin-top:25px; padding-top:20px; border-top:1px solid #416052; color:#aebfb5; font-size:13px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid #416052; }
.step { padding:31px 30px 20px 0; border-bottom:1px solid #416052; }
.step + .step { padding-left:30px; border-left:1px solid #416052; }
.step-index { color:var(--forest); font:500 13px "DM Mono",monospace; }
.step h3 { font-size:34px; margin:65px 0 12px; }
.step p { color:#50645d; line-height:1.5; margin:0; }
.note { margin-top:45px; border:1px solid #496c5a; padding:19px; background:rgba(255,253,247,.58); color:var(--forest); font-size:14px; line-height:1.5; }
.faq-list { max-width:830px; margin:0 auto; border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:0; }
summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; padding:23px 0; font-weight:700; font-size:17px; }
summary::-webkit-details-marker { display:none; } summary::after { content:"+"; color:var(--coral); font:24px "DM Mono"; } details[open] summary::after { content:"−"; }
details p { max-width:700px; color:var(--muted); line-height:1.6; margin:0 0 25px; }
.final-cta { padding:100px 0; background:var(--coral); color:var(--forest); text-align:center; }
.final-cta h2 { margin:0 auto 28px; max-width:730px; }
.final-cta p { margin:0 auto 27px; max-width:500px; line-height:1.5; }
.footer { padding:27px 0; display:flex; justify-content:center; flex-wrap:wrap; gap:20px; font-size:12px; color:var(--muted); text-align:center; }
.footer-disclaimer { flex-basis:100%; max-width:920px; margin:0 auto; line-height:1.5; }
.footer a { text-decoration:none; }
.apply-page { background:var(--cream); min-height:100vh; }
.apply-wrap { max-width:760px; padding:52px 0 90px; }
.back { display:inline-block; margin-bottom:55px; color:var(--muted); text-decoration:none; font-size:14px; }
.apply-header h1 { font-size:clamp(48px, 7vw, 78px); margin:18px 0; }
.apply-header p { max-width:600px; font-size:18px; line-height:1.5; color:var(--muted); }
.application-form { margin-top:45px; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:clamp(22px,5vw,48px); box-shadow:var(--shadow); }
.form-section { padding:0 0 30px; margin-bottom:29px; border-bottom:1px solid var(--line); }
.form-section h2 { font:700 27px "Fraunces",serif; margin-bottom:22px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:21px; }
.field { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.field.full { grid-column:1/-1; }
label { font-size:13px; font-weight:700; } label span { color:var(--muted); font-weight:400; }
.field-label { font-size:13px; font-weight:700; }
.field-label span, .field-help { color:var(--muted); font-weight:400; }
.field-help { margin:0 0 4px; font-size:12px; line-height:1.4; }
.social-profile-rows { display:grid; gap:10px; }
.social-profile-row { display:grid; grid-template-columns:minmax(130px,.4fr) minmax(0,1fr) auto; gap:10px; align-items:end; padding:12px; background:#f6f4ea; border:1px solid var(--line); border-radius:6px; }
.social-profile-row label { display:grid; gap:7px; }
.social-profile-row label > span { color:var(--ink); font-weight:700; }
.add-profile-button, .remove-profile-button { width:fit-content; color:var(--forest); font-weight:700; background:none; border:0; cursor:pointer; }
.add-profile-button { min-height:44px; padding:8px 0; }
.remove-profile-button { min-height:44px; padding:8px 4px; color:#9b382a; }
input, select, textarea { width:100%; color:var(--ink); background:#fbfaf3; border:1px solid #cad6c9; border-radius:4px; padding:13px 14px; outline:none; transition:border-color .2s, box-shadow .2s; }
textarea { min-height:115px; resize:vertical; line-height:1.5; }
input:focus, select:focus, textarea:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(126,217,87,.27); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color:#b84332; box-shadow:0 0 0 3px rgba(184,67,50,.14); }
.field-error { display:block; color:#9b382a; font-size:13px; font-weight:700; line-height:1.35; }
.check { display:flex; gap:12px; align-items:flex-start; margin:10px 0 26px; font-size:13px; line-height:1.5; }
.check:has(.field-error) { flex-wrap:wrap; }
.check .field-error { width:100%; padding-left:30px; }
.check input { width:18px; height:18px; margin-top:1px; accent-color:var(--forest); flex:none; }
.privacy { color:var(--muted); font-size:12px; line-height:1.5; margin-bottom:25px; }
.form-error { background:#ffe6e0; color:#9b382a; border-left:3px solid var(--coral); padding:13px; margin-bottom:20px; font-size:14px; }
.success { text-align:center; padding:55px 16px; } .success-mark { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 20px; border-radius:50%; background:var(--lime); color:var(--forest); font:700 24px "DM Mono"; }
.success h1 { font-size:49px; margin-bottom:17px; } .success p { color:var(--muted); line-height:1.55; max-width:480px; margin:0 auto 27px; }
.success:focus { outline:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.reveal { animation:rise .7s both; } @keyframes rise { from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none} }
@media (min-width:761px) {
  .hero-title-line { display:block; }
  .marketplace-shared .pills { gap:5px; }
  .marketplace-shared .pill { padding:8px 7px; font-size:10.5px; }
}
@media (max-width:760px) {
  .wrap { width:min(100% - 30px, 560px); } .nav a:not(.button) { display:none; } .nav { gap:10px; }
  .hero-grid { grid-template-columns:1fr; gap:20px; padding:52px 0 68px; } h1 { font-size:58px; }
  .hero-copy { font-size:17px; } .hero-art-desktop { display:none; } .hero-art-mobile { display:flex; width:100%; margin:22px 0 30px; } .campus-hero-image { max-width:100%; border-radius:18px; }
  .term-title-line { display:block; }
  .section { padding:72px 0; } .section-heading { display:block; margin-bottom:32px; } .section-intro { margin-top:18px; }
  .about-bridge { padding:58px 0; } .about-bridge-grid { grid-template-columns:1fr; gap:28px; }
  .split-cards,.opportunity-lead,.opportunity-grid,.steps { grid-template-columns:1fr; gap:14px; } .audience { min-height:240px; } .audience h3 { margin-top:35px; }
  .marketplace-shared { margin-top:14px; padding:24px 20px; } .marketplace-shared::before { display:none; }
   .opportunity-lead { gap:35px; } .opportunity-grid { gap:0; margin-top:50px; } .opportunity-card { min-height:0; padding:28px 22px; } .opportunity-card h3 { margin-top:35px; }
   .step,.step + .step { padding:25px 0; border-left:0; }
   .step h3 { margin:35px 0 10px; } .footer { display:block; line-height:2; } .footer span { display:block; }
  .apply-wrap { padding-top:30px; } .back { margin-bottom:38px; } .field-grid { grid-template-columns:1fr; gap:0; } .field.full { grid-column:auto; }
  .application-form { padding:22px 18px; } .apply-header h1 { font-size:54px; }
  .social-profile-row { grid-template-columns:1fr; }
  .remove-profile-button { justify-self:start; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }