/* Settle shared styles: brand tokens, nav, footer, buttons.
   Every page loads this first; page-specific styles sit in each page's own <style>. */
:root{
  --ink:#0C0E1A;
  --surface:#151829;
  --surface-2:#1B1F38;
  --line:#2A2F4A;
  --text:#ECEEF8;
  --text-muted:#9397B5;
  --text-faint:#5C6080;
  --violet:#B8A4FF;
  --violet-dim:rgba(184,164,255,0.14);
  --teal:#4FD1C5;
  --teal-dim:rgba(79,209,197,0.14);
  --orange:#FF9A52;
  --orange-dim:rgba(255,154,82,0.14);
  --amber:#FFC857;
  --green:#34D399;
  --red:#F87171;
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--ink);color:var(--text);font-family:'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--violet);outline-offset:2px;}

/* nav links and dropdown */
.s-link{color:var(--text-muted);position:relative;transition:color .15s ease;}
.s-link::after{content:"";position:absolute;left:50%;right:50%;bottom:-19px;height:2px;background:var(--violet);transition:left .18s ease,right .18s ease;}
.s-link:hover,.s-link.s-current{color:var(--text);}
.s-link:hover::after,.s-link.s-current::after{left:0;right:0;}
.s-navdrop{position:relative;}
.s-navdrop-panel{position:absolute;top:30px;left:50%;transform:translateX(-50%) translateY(-6px);opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;min-width:170px;box-shadow:0 20px 40px -12px rgba(0,0,0,.55);z-index:30;}
.s-navdrop:hover .s-navdrop-panel,.s-navdrop:focus-within .s-navdrop-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.s-navdrop-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;font-size:12.5px;color:var(--text-muted);transition:background .12s ease,color .12s ease;}
.s-navdrop-item:hover{background:rgba(255,255,255,0.04);color:var(--text);}

/* buttons */
.s-btn-primary{transition:background .15s ease,transform .15s ease;}
.s-btn-primary:hover{background:#CBBBFF;transform:translateY(-1px);}
.s-btn-outline{transition:border-color .15s ease,background .15s ease;}
.s-btn-outline:hover{border-color:var(--text-faint);background:rgba(255,255,255,0.03);}
.s-btn-shine{position:relative;overflow:hidden;}
.s-btn-shine::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .55s ease;}
.s-btn-shine:hover::after{left:140%;}
.s-cta{display:inline-block;background:var(--violet);color:var(--ink);border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.s-glow{position:absolute;inset:-220px -220px auto auto;width:600px;height:600px;background:radial-gradient(circle,rgba(184,164,255,0.12) 0%,rgba(184,164,255,0) 70%);pointer-events:none;filter:blur(8px);}
@keyframes s-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.s-float{animation:s-float 5s ease-in-out infinite;}

/* top nav */
.s-topnav{position:relative;display:flex;align-items:center;justify-content:space-between;padding:20px 56px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:16px;background:var(--ink);z-index:40;}
.s-brand{display:flex;align-items:center;gap:12px;min-width:0;}
.s-wordmark{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:19px;letter-spacing:-0.01em;}
.s-brand-divider{width:1px;height:18px;background:var(--line);margin:0 4px;}
.s-brand-caption{font-size:11.5px;color:var(--text-faint);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.s-nav-links{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.s-nav-links .s-link{font-size:14px;}

/* mobile nav: hamburger plus slide down menu, Education becomes a tap accordion */
.s-burger{display:none;background:none;border:1px solid var(--line);border-radius:8px;width:38px;height:38px;cursor:pointer;position:relative;flex-shrink:0;padding:0;}
.s-burger span{position:absolute;left:9px;right:9px;height:2px;background:var(--text);border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
.s-burger span:nth-child(1){top:13px;} .s-burger span:nth-child(2){top:18px;} .s-burger span:nth-child(3){top:23px;}
.s-burger.s-open span:nth-child(1){transform:translateY(5px) rotate(45deg);}
.s-burger.s-open span:nth-child(2){opacity:0;}
.s-burger.s-open span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}
.s-mobile-menu{display:none;flex-direction:column;padding:6px 24px 18px;border-bottom:1px solid var(--line);background:var(--surface);position:relative;z-index:39;}
.s-mobile-menu.s-open{display:flex;}
.s-mobile-menu a.s-link{padding:11px 2px;font-size:14px;}
.s-mobile-menu a.s-link::after{display:none;}
.s-mobile-edu-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 2px;color:var(--text-muted);font-size:14px;cursor:pointer;background:none;border:none;font-family:inherit;text-align:left;}
.s-mobile-edu-toggle svg{transition:transform .2s ease;flex-shrink:0;}
.s-mobile-edu.s-open .s-mobile-edu-toggle svg{transform:rotate(90deg);}
.s-mobile-edu-panel{display:none;flex-direction:column;padding-left:14px;}
.s-mobile-edu.s-open .s-mobile-edu-panel{display:flex;}
.s-mobile-edu-panel a{padding:9px 2px;font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:8px;}
.s-mobile-cta{margin-top:10px;width:100%;text-align:center;padding:11px;}
@media (max-width:700px){
  .s-nav-links,.s-nav-cta-desktop{display:none !important;}
  .s-burger{display:block !important;}
  .s-topnav{padding:14px 18px !important;flex-wrap:nowrap !important;gap:10px !important;}
  .s-brand{gap:8px !important;flex:1 1 auto;}
  .s-brand-divider{display:none !important;}
  .s-brand-caption{font-size:9.5px !important;max-width:130px;}
}

/* footer */
.s-footer{position:relative;border-top:1px solid var(--line);padding:26px 56px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.s-footer-brand{display:flex;align-items:center;gap:8px;color:var(--text-faint);font-size:12px;}
.s-footer-links{display:flex;gap:20px;flex-wrap:wrap;align-items:center;}
.s-footer-links .s-link{font-size:12px;}
.s-footer-links .s-link::after{bottom:-6px;}
.s-footer-copy{color:var(--text-faint);font-size:12px;}
@media (max-width:700px){ .s-footer{padding:22px 18px;} }

/* legal pages */
.s-legal{max-width:720px;margin:0 auto;padding:64px 32px 72px;}
.s-legal .s-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 16px;font-size:13px;color:var(--text-muted);margin-bottom:20px;}
.s-legal .s-badge::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--violet);}
.s-legal h1{margin:0 0 8px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:34px;line-height:1.15;letter-spacing:-0.01em;}
.s-legal .updated{font-size:12.5px;color:var(--text-faint);margin-bottom:28px;font-family:'IBM Plex Mono',monospace;}
.s-legal h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:17px;margin:32px 0 10px;color:var(--text);}
.s-legal p,.s-legal li{font-size:14.5px;line-height:1.7;color:var(--text-muted);}
.s-legal p{margin:0 0 12px;}
.s-legal ul{margin:0 0 12px;padding-left:20px;}
.s-legal li{margin-bottom:6px;}
.s-legal strong{color:var(--text);}
.s-legal a{color:var(--violet);}
.s-legal .panel{margin-top:32px;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:20px 22px;font-size:14px;line-height:1.7;color:var(--text-muted);}
.s-legal .panel strong{display:block;margin-bottom:4px;font-family:'Plus Jakarta Sans',sans-serif;}
.s-legal-more{margin-top:28px;font-size:13px;color:var(--text-faint);}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}
