 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
 :root {
 --purple: #6B2FBB;
 --purple-dark: #4A1E85;
 --purple-light:#8B4FDB;
 --purple-pale: #F0E8FF;
 --white: #FFFFFF;
 --off-white: #F8F7FC;
 --gray-100: #F3F4F6;
 --gray-200: #E5E7EB;
 --gray-400: #9CA3AF;
 --gray-600: #4B5563;
 --gray-700: #374151;
 --gray-800: #1F2937;
 --black: #0D0D0D;
 --radius: 12px;
 --radius-lg: 20px;
 --shadow: 0 4px 24px rgba(107,47,187,0.10);
 --shadow-lg: 0 8px 48px rgba(107,47,187,0.18);
 --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
 }
 html { scroll-behavior: smooth; }
 body { font-family:'Inter',system-ui,sans-serif; color:var(--gray-800); background:var(--white); line-height:1.6; overflow-x:hidden; }
 img { display:block; max-width:100%; }
 a { text-decoration:none; color:inherit; }
 ul { list-style:none; }

 .container { max-width:1160px; margin:0 auto; padding:0 24px; }
 .section-label { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--purple); background:var(--purple-pale); padding:6px 14px; border-radius:99px; margin-bottom:16px; }
 .section-heading { font-size:clamp(28px,4vw,44px); font-weight:800; line-height:1.15; color:var(--gray-800); margin-bottom:16px; }
 .section-sub { font-size:17px; color:var(--gray-600); max-width:600px; line-height:1.7; }
 .btn { display:inline-flex; align-items:center; gap:8px; font-family:inherit; font-size:15px; font-weight:600; padding:13px 28px; border-radius:99px; border:none; cursor:pointer; transition:all var(--transition); }
 .btn-primary { background:var(--purple); color:var(--white); box-shadow:0 4px 20px rgba(107,47,187,0.35); }
 .btn-primary:hover { background:var(--purple-dark); transform:translateY(-1px); box-shadow:0 6px 28px rgba(107,47,187,0.45); }
 .btn-outline { background:transparent; color:var(--white); border:2px solid rgba(255,255,255,0.5); }
 .btn-outline:hover { background:rgba(255,255,255,0.12); border-color:var(--white); }
 .btn-outline-dark { background:transparent; color:var(--purple); border:2px solid var(--purple); }
 .btn-outline-dark:hover { background:var(--purple); color:var(--white); }

 /* ── Nav ── */
 nav { position:fixed; top:0; left:0; right:0; z-index:100; transition:all var(--transition); background:rgba(17,12,36,0.78); backdrop-filter:blur(14px); border-bottom:1px solid rgba(255,255,255,0.14); }
 .nav-inner { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; max-width:1160px; margin:0 auto; }
 .nav-logo { display:flex; align-items:center; gap:12px; }
 .nav-logo-icon { display:flex; align-items:center; justify-content:center; }
 .nav-logo-icon svg { width:24px; height:24px; }
 .nav-logo-text { font-size:16px; font-weight:800; color:var(--white); transition:color var(--transition); line-height:1.2; }
 .nav-logo-text span { display:block; font-weight:400; font-size:11px; opacity:.68; letter-spacing:.05em; }
 .nav-links { display:flex; align-items:center; gap:32px; }
 .nav-links a { font-size:14px; font-weight:500; color:rgba(255,255,255,0.82); transition:color var(--transition); }
 .nav-links a:hover { color:var(--white); }
 .nav-actions { display:flex; align-items:center; gap:12px; }
 .btn-login { font-size:13px; font-weight:600; padding:9px 20px; background:rgba(255,255,255,0.12); border:1.5px solid rgba(255,255,255,0.38); color:var(--white); border-radius:99px; cursor:pointer; font-family:inherit; transition:all var(--transition); }
 .btn-login:hover { background:var(--white); border-color:var(--white); color:#2A1455; }
 .hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
 .hamburger span { display:block; width:24px; height:2px; background:var(--white); border-radius:2px; transition:all var(--transition); }
 .mobile-menu { display:none; flex-direction:column; background:var(--white); border-top:1px solid var(--gray-200); padding:16px 24px 24px; }
 .mobile-menu a { padding:12px 0; font-weight:500; color:var(--gray-700); border-bottom:1px solid var(--gray-100); font-size:15px; }
 .mobile-actions { display:flex; gap:12px; margin-top:16px; flex-wrap:wrap; }

 /* ── Hero ── */
 #hero { min-height:100vh; background:linear-gradient(135deg,#1A0533 0%,#3D1478 40%,#6B2FBB 75%,#9B5DE5 100%); display:flex; align-items:center; position:relative; overflow:hidden; padding:120px 0 178px; }
 .hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px); background-size:64px 64px; }
 .hero-glow { position:absolute; top:-20%; right:-10%; width:600px; height:600px; background:radial-gradient(circle,rgba(155,93,229,0.4) 0%,transparent 70%); pointer-events:none; }
 .hero-glow-2 { position:absolute; bottom:-20%; left:-5%; width:400px; height:400px; background:radial-gradient(circle,rgba(107,47,187,0.3) 0%,transparent 70%); pointer-events:none; }
 .hero-content { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
 .hero-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:20px; }
 .hero-title { font-size:clamp(42px,6vw,76px); font-weight:900; line-height:1.05; color:var(--white); margin-bottom:24px; }
 .hero-title .accent { color:#C084FC; }
 .hero-desc { font-size:17px; color:rgba(255,255,255,0.75); margin-bottom:30px; max-width:480px; line-height:1.7; }
 .hero-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:0; }
 .hero-visual { position:relative; display:flex; justify-content:center; align-items:center; }
 .hero-card-stack { position:relative; width:100%; max-width:340px; }
 .hero-img-card { width:100%; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:2px solid rgba(255,255,255,0.15); position:relative; }
 .hero-img-card img { width:100%; height:auto; object-fit:contain; object-position:center; }

 /* ── Press Banner ── */
 #press-banner {
 background:var(--purple-pale); border-bottom:1px solid #DDD6FE;
 padding:14px 0;
 }
 .press-inner {
 display:flex; align-items:center; justify-content:center; gap:16px;
 flex-wrap:wrap; text-align:center;
 }
 .press-logo {
 display:flex; align-items:center; gap:8px;
 font-size:13px; font-weight:600; color:var(--purple);
 }
 .press-logo svg { width:18px; height:18px; }
 .press-inner p {
 font-size:14px; color:var(--gray-700);
 }
 .press-inner p strong { color:var(--purple); }
 .press-link {
 font-size:13px; font-weight:700; color:var(--purple);
 background:var(--purple); color:var(--white);
 padding:7px 18px; border-radius:99px;
 transition:all var(--transition);
 white-space:nowrap;
 }
 .press-link:hover { background:var(--purple-dark); }

 /* ── Member Placements ── */
 .hero-placements { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:14px 0 22px; background:transparent; border-top:none; }
 .hero-placements-label { text-align:center; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,0.78); margin-bottom:12px; }
 .placements-carousel { position:relative; overflow:hidden; }
 .hero-placements .placements-carousel { width:100vw; margin-left:calc(50% - 50vw); }
 .placements-track { display:flex; width:max-content; will-change:transform; transform:translate3d(0,0,0); }
 .placement-group { display:flex; gap:20px; padding-right:20px; }
 .placement-logo { width:196px; height:92px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; background:var(--white); border:1px solid var(--gray-200); border-radius:16px; box-shadow:0 6px 24px rgba(107,47,187,0.08); padding:16px 18px; }
 .placement-logo img { width:100%; height:100%; object-fit:contain; object-position:center center; display:block; margin:0 auto; transition:transform var(--transition); transform-origin:center center; }
 .placement-logo:hover img { transform:scale(1.03); }
 .hero-placements .placement-group { gap:16px; padding-right:16px; }
 .hero-placements .placement-logo { width:170px; height:74px; border-radius:14px; background:rgba(255,255,255,0.97); border:1px solid rgba(255,255,255,0.72); box-shadow:0 10px 26px rgba(0,0,0,0.2); padding:12px 14px; }
 .hero-placements .placement-logo img { width:100%; height:100%; }

 /* ── About ── */
 #about { padding:80px 0; background:var(--white); }
 .about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
 .about-img-wrap { position:relative; }
 .about-img-main { width:100%; aspect-ratio:4/3; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
 .about-img-main img { width:100%; height:100%; object-fit:cover; object-position:center top; }
 .about-img-accent { position:absolute; bottom:-24px; right:-24px; width:100px; aspect-ratio:1; border-radius:var(--radius); overflow:hidden; border:4px solid var(--white); box-shadow:var(--shadow); background:var(--purple); }
 .about-img-accent img { width:100%; height:100%; object-fit:cover; }

 /* ── Programs ── */
 #programs { padding:80px 0; background:var(--off-white); }
 .programs-header { text-align:center; margin-bottom:60px; }
 .programs-header .section-sub { margin:0 auto; }

 /* ── Highlights ── */
 #highlights { padding:80px 0; background:var(--white); }
 .highlights-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:16px; }
 .highlights-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
 .highlight-card { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--gray-200); transition:all var(--transition); background:var(--white); }
 .highlight-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
 .highlight-img { width:100%; aspect-ratio:16/10; overflow:hidden; background:var(--purple-pale); position:relative; }
 .highlight-img img { width:100%; height:100%; object-fit:cover; object-position:center top; position:absolute; inset:0; transition:transform .4s ease; }
 .highlight-card:hover .highlight-img img { transform:scale(1.04); }
 .highlight-body { padding:20px 22px 24px; }
 .highlight-meta { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--gray-400); margin-bottom:10px; }
 .highlight-meta .dot { width:4px; height:4px; border-radius:50%; background:var(--gray-400); }
 .highlight-tag { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--purple); background:var(--purple-pale); padding:3px 10px; border-radius:99px; }
 .highlight-tag.press { color:#7C3AED; background:#EDE9FE; }
 .highlight-body h3 { font-size:16px; font-weight:700; line-height:1.4; color:var(--gray-800); margin-bottom:8px; }
 .highlight-body p { font-size:13px; color:var(--gray-600); line-height:1.6; }
 .highlight-read-more { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:600; color:var(--purple); }
 .highlight-read-more:hover { gap:10px; }/* ── Leadership ── */
 #leadership { padding:72px 0; background:var(--off-white); }
.leadership-header { text-align:center; margin-bottom:60px; }
.leadership-grid { display:flex; flex-direction:column; gap:14px; max-width:980px; margin:0 auto; }
.officer-card { background:var(--white); border-radius:var(--radius-lg); padding:18px 20px; border:1px solid var(--gray-200); transition:all var(--transition); display:grid; grid-template-columns:86px minmax(180px,240px) minmax(0,1fr) auto; gap:18px; align-items:center; }
.officer-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--purple-light); }
.headshot-slot { width:86px; height:86px; border-radius:18px; flex:0 0 auto; border:1px solid var(--gray-200); background:#FFFFFF; display:flex; align-items:center; justify-content:center; color:var(--gray-400); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-align:center; overflow:hidden; }
.headshot-slot img { width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block; }
.officer-info { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.officer-info h4 { font-size:20px; font-weight:800; color:var(--gray-800); margin:0; line-height:1.2; }
.officer-role { display:inline-block; font-size:12px; font-weight:700; color:var(--purple); background:var(--purple-pale); padding:5px 12px; border-radius:99px; }
.officer-summary { margin:0; font-size:13px; line-height:1.55; color:var(--gray-600); }
.officer-actions { justify-self:end; min-width:132px; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.company-mark { width:132px; height:44px; border-radius:12px; background:#FFFFFF; border:1px solid var(--gray-200); display:flex; align-items:center; justify-content:center; padding:7px 10px; }
.company-mark img { max-width:112px; max-height:28px; width:auto; height:auto; object-fit:contain; display:block; }
.company-mark span { font-size:12px; font-weight:600; color:var(--gray-600); text-align:center; }
.officer-card .linkedin-link { justify-self:end; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--purple); background:var(--purple-pale); border:1px solid #D8B4FE; border-radius:99px; padding:10px 16px; }
.officer-card .linkedin-link svg { width:15px; height:15px; }
.officer-card .linkedin-link:hover { background:var(--purple); color:var(--white); border-color:var(--purple); }

 /* ── Footer ── */
 footer { background:#0D0D1A; padding:64px 0 32px; }
 .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
 .footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
 .footer-logo-icon { width:36px; height:36px; background:var(--purple); border-radius:9px; display:flex; align-items:center; justify-content:center; }
 .footer-brand p { font-size:14px; color:rgba(255,255,255,0.45); line-height:1.7; max-width:280px; margin-bottom:24px; }
 .social-links { display:flex; gap:10px; }
 .social-link { width:38px; height:38px; border-radius:9px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; transition:all var(--transition); color:rgba(255,255,255,0.5); }
 .social-link:hover { background:var(--purple); border-color:var(--purple); color:var(--white); }
 .social-link svg { width:16px; height:16px; }
 .footer-col h4 { font-size:13px; font-weight:700; color:var(--white); text-transform:uppercase; letter-spacing:.08em; margin-bottom:18px; }
 .footer-col ul { display:flex; flex-direction:column; gap:10px; }
 .footer-col li a { font-size:14px; color:rgba(255,255,255,0.45); transition:color var(--transition); }
 .footer-col li a:hover { color:var(--purple-light); }
 .footer-bottom { border-top:1px solid rgba(255,255,255,0.07); padding-top:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
 .footer-bottom p { font-size:13px; color:rgba(255,255,255,0.3); }
 .jmu-badge { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,0.35); }
 .jmu-badge span { width:6px; height:6px; border-radius:50%; background:#4ADE80; }

 /* ── Modal ── */
 .modal-overlay { display:none; position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.6); backdrop-filter:blur(4px); align-items:center; justify-content:center; }
 .modal-overlay.open { display:flex; }
 .modal { background:var(--white); border-radius:var(--radius-lg); padding:40px; max-width:420px; width:90%; text-align:center; position:relative; }
 .modal-close { position:absolute; top:16px; right:16px; background:var(--gray-100); border:none; cursor:pointer; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; color:var(--gray-600); }
 .modal-icon { width:64px; height:64px; border-radius:18px; background:var(--purple); margin:0 auto 20px; display:flex; align-items:center; justify-content:center; }
 .modal-icon svg { width:30px; height:30px; color:var(--white); }
 .modal h3 { font-size:22px; font-weight:800; margin-bottom:8px; }
 .modal p { font-size:14px; color:var(--gray-600); margin-bottom:24px; line-height:1.6; }
.modal-coming-soon { background:var(--purple-pale); border-radius:10px; padding:14px 20px; font-size:14px; color:var(--purple); font-weight:600; margin-bottom:16px; }
.modal-note { font-size:12px; color:var(--gray-400); }

/* ── Portal / Auth Callback ── */
.portal-shell,
.auth-callback-shell {
min-height:100vh;
background:linear-gradient(135deg,#1A0533 0%,#3D1478 40%,#6B2FBB 75%,#9B5DE5 100%);
position:relative;
overflow:hidden;
padding:132px 0 72px;
}

.portal-layout { position:relative; z-index:1; display:grid; gap:24px; }
.portal-panel {
background:rgba(255,255,255,0.96);
border:1px solid rgba(255,255,255,0.72);
box-shadow:0 16px 44px rgba(0,0,0,0.18);
border-radius:var(--radius-lg);
padding:30px;
}

.portal-panel .hero-eyebrow { color:#3D1478; margin-bottom:14px; }
.portal-panel .hero-title { color:var(--gray-800); font-size:clamp(36px,6vw,56px); margin-bottom:14px; }
.portal-panel .hero-desc { color:var(--gray-600); margin-bottom:18px; max-width:760px; }

.portal-status-pill {
display:inline-flex;
align-items:center;
font-size:11px;
font-weight:700;
letter-spacing:.12em;
text-transform:uppercase;
color:var(--purple);
background:var(--purple-pale);
border-radius:99px;
padding:7px 14px;
margin-bottom:10px;
}

.portal-user-line { font-size:14px; color:var(--gray-700); margin-bottom:8px; }
.portal-user-line strong { color:var(--gray-800); }
.portal-hint { font-size:14px; color:var(--gray-600); margin-bottom:18px; }
.portal-cta-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.portal-inline-message { font-size:13px; font-weight:600; color:#C026D3; }

.portal-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.portal-feature-card {
background:rgba(255,255,255,0.94);
border:1px solid rgba(255,255,255,0.68);
border-radius:16px;
padding:18px 18px 16px;
box-shadow:0 10px 30px rgba(0,0,0,0.16);
}
.portal-feature-card h3 { font-size:16px; color:#2A1455; margin-bottom:8px; }
.portal-feature-card p { font-size:13px; color:var(--gray-600); line-height:1.6; }

.auth-callback-layout { position:relative; z-index:1; display:flex; justify-content:center; align-items:center; min-height:calc(100vh - 204px); }
.auth-callback-card {
background:rgba(255,255,255,0.96);
border:1px solid rgba(255,255,255,0.75);
border-radius:var(--radius-lg);
padding:34px;
width:min(560px, 92vw);
text-align:center;
box-shadow:0 18px 48px rgba(0,0,0,0.2);
}
.auth-callback-card h1 { font-size:clamp(28px,5vw,40px); line-height:1.15; color:var(--gray-800); margin-bottom:10px; }
.auth-callback-card p { color:var(--gray-600); margin-bottom:18px; }
.auth-callback-link { color:var(--purple); font-weight:700; font-size:14px; }

.auth-spinner {
width:48px;
height:48px;
margin:0 auto 16px;
border-radius:50%;
border:3px solid #E9D5FF;
border-top-color:var(--purple);
animation:spin 1s linear infinite;
}

@keyframes spin {
to { transform:rotate(360deg); }
}

 /* ── Scroll animations ── */
 .fade-up { opacity:0; transform:translateY(28px); transition:opacity .6s ease,transform .6s ease; }
 .fade-up.visible { opacity:1; transform:translateY(0); }
 .fade-up:nth-child(2){transition-delay:.1s}
 .fade-up:nth-child(3){transition-delay:.2s}
 .fade-up:nth-child(4){transition-delay:.3s}

 /* ── Responsive ── */
 @media(max-width:1024px){
 #hero{padding:116px 0 168px}
.hero-content{grid-template-columns:1fr;gap:48px}
.hero-visual{display:none}
.hero-placements{padding:12px 0 18px}
.about-grid{grid-template-columns:1fr;gap:48px}
.highlights-grid{grid-template-columns:repeat(2,1fr)}
.officer-card{grid-template-columns:78px minmax(160px,220px) minmax(0,1fr) auto;gap:14px;align-items:center}
.officer-actions{min-width:128px}
.company-mark{width:128px;height:42px}
.company-mark img{max-width:104px;max-height:24px}
.headshot-slot{width:78px;height:78px;border-radius:16px}
.portal-feature-grid{grid-template-columns:1fr 1fr}
.program-row{grid-template-columns:36px 1fr}
.program-freq{display:none}
.footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:768px){
 .hero-placements-label{font-size:10px;letter-spacing:.12em;margin-bottom:10px}
 #hero{padding:104px 0 148px}
.nav-links,.nav-actions{display:none}
.hamburger{display:flex}
.highlights-grid{grid-template-columns:1fr}
.officer-card{grid-template-columns:1fr;gap:12px;align-items:start}
.officer-actions{justify-self:start;align-items:flex-start;min-width:0}
.officer-card .linkedin-link{justify-self:start}
.headshot-slot{width:72px;height:72px;border-radius:14px}
.company-mark{width:126px;height:40px}
.company-mark img{max-width:100px;max-height:22px}
.portal-shell,.auth-callback-shell{padding:118px 0 54px}
.portal-panel,.auth-callback-card{padding:24px}
.portal-feature-grid{grid-template-columns:1fr}
.footer-grid{grid-template-columns:1fr}
.hero-placements .placement-logo{width:136px;height:62px;padding:10px 12px}
.hero-placements .placement-logo img{width:100%;height:100%}
 
 .press-inner{flex-direction:column;gap:10px}
 }
 
/* ── About list ── */
.about-list { margin-top:28px; display:flex; flex-direction:column; gap:12px; padding:0; }
.about-list li { font-size:15px; color:var(--gray-600); line-height:1.65; list-style:none; padding-left:20px; position:relative; }
.about-list li::before { content:"→"; position:absolute; left:0; color:var(--purple); font-weight:700; }
.about-list li strong { color:var(--gray-800); }

/* ── Programs list ── */
.programs-list { border-top:1px solid var(--gray-200); }
.program-row { display:grid; grid-template-columns:44px 1fr 150px; gap:28px; align-items:start; padding:26px 0; border-bottom:1px solid var(--gray-200); }
.program-num { font-size:13px; font-weight:700; color:var(--purple); opacity:.4; padding-top:2px; }
.program-row-body h3 { font-size:16px; font-weight:700; color:var(--gray-800); margin-bottom:6px; }
.program-row-body p { font-size:14px; color:var(--gray-600); line-height:1.65; }
.program-freq { font-size:12px; font-weight:600; color:var(--gray-400); text-align:right; padding-top:3px; white-space:nowrap; line-height:1.5; }
