* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #050a14; color: #fff; font-family: 'Inter', sans-serif; }

/* Header */
.glass-header {
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .4s ease, border-color .4s ease, box-shadow .4s ease;
}
.glass-header.scrolled {
  background: rgba(5,10,20,.8);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.05);
  box-shadow: 0 4px 30px rgba(0,0,0,.25);
}
.glass-header .nav-link { color: rgba(255,255,255,.85); font-size: 13px; font-weight: 700; transition: color .3s ease; }
.glass-header .nav-link:hover { color: #4c5cf0; }
.nav-link { padding: 4px 2px; }
.btn-sign-in { background: #4c5cf0; transition: background .3s ease; }
.btn-sign-in:hover { background: #7c6cf6; }

/* Section eyebrow */
/* Section eyebrow */
.section-eyebrow {
  display: inline-block;
  font-size: 15px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4c5cf0;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  margin-bottom: .75rem;
  opacity: 1;
}

/* Perk badges */
.perk-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 100px;
  padding: 6px 14px;
  color: rgba(255,255,255,.8);
}

/* ── CAREER CARDS ── */
.career-card {
  border-radius: 20px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.07);
  transition: border-color .35s cubic-bezier(0.16,1,0.3,1), background .35s, box-shadow .35s;
  overflow: hidden;
  cursor: pointer;
}
.career-card:hover {
  border-color: rgba(76,92,240,.35);
  background: rgba(76,92,240,.04);
  box-shadow: 0 8px 32px -12px rgba(76,92,240,.25);
}
.career-card.expanded {
  border-color: rgba(76,92,240,.5);
  background: rgba(76,92,240,.06);
}

/* Card top row (always visible) */
.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 1.75rem;
  gap: 1rem;
}
.card-header-left { flex: 1; min-width: 0; }

.career-tag {
  display: inline-block;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  font-family: 'Outfit', sans-serif;
  color: #6f7df5;
  background: rgba(111,125,245,.12);
  border: 1px solid rgba(111,125,245,.25);
  border-radius: 100px;
  padding: 4px 11px;
  margin-bottom: .6rem;
}
.card-title {
  font-size: 1.05rem;
  font-weight: 700;
  font-family: 'Outfit', sans-serif;
  color: #fff;
  margin-bottom: .25rem;
}
.career-loc {
  font-size: 12px;
  color: rgba(255,255,255,.4);
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Chevron toggle */
.card-chevron {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.04);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color .3s, background .3s, transform .4s cubic-bezier(.16,1,.3,1);
  color: rgba(255,255,255,.5);
  font-size: 15px;
}
.career-card:hover .card-chevron {
  border-color: rgba(76,92,240,.4);
  background: rgba(76,92,240,.12);
  color: #9adfff;
}
.career-card.expanded .card-chevron {
  transform: rotate(180deg);
  border-color: rgba(76,92,240,.6);
  background: rgba(76,92,240,.18);
  color: #9adfff;
}

/* Expandable body */
.card-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .5s cubic-bezier(.16,1,.3,1), opacity .4s ease;
  opacity: 0;
}
.career-card.expanded .card-body {
  max-height: 600px;
  opacity: 1;
}
.card-body-inner {
  padding: 0 1.75rem 1.5rem;
  border-top: 1px solid rgba(255,255,255,.06);
}
.card-desc {
  font-size: 13.5px;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  padding: 1rem 0 1.2rem;
}

/* Responsibilities list */
.card-section-label {
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #4c5cf0;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  margin-bottom: .6rem;
}
.card-list {
  list-style: none;
  margin-bottom: 1.25rem;
}
.card-list li {
  font-size: 13px;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  padding: 4px 0;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.card-list li::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4c5cf0;
  flex-shrink: 0;
  margin-top: 7px;
}

/* Apply button */
.btn-apply-card {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #4c5cf0;
  color: #fff;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 10px 22px;
  border-radius: 100px;
  border: none;
  cursor: pointer;
  transition: background .25s, box-shadow .25s;
  box-shadow: 0 6px 20px -6px rgba(76,92,240,.55);
}
.btn-apply-card:hover {
  background: #6f7df5;
  box-shadow: 0 8px 24px -6px rgba(76,92,240,.7);
}

/* ── MODAL ── */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(5,10,20,.85);
  backdrop-filter: blur(12px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.modal-overlay.open { opacity: 1; pointer-events: all; }
.modal-box {
  position: relative;
  width: 100%;
  max-width: 560px;
  background: #0a1020;
  border: 1px solid rgba(76,92,240,.25);
  border-radius: 24px;
  padding: 2.5rem;
  transform: translateY(24px) scale(.97);
  transition: transform .4s cubic-bezier(0.16,1,0.3,1);
  box-shadow: 0 32px 80px -16px rgba(0,0,0,.7), 0 0 0 1px rgba(76,92,240,.12);
}
.modal-overlay.open .modal-box { transform: translateY(0) scale(1); }
.modal-close {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .25s;
  color: rgba(255,255,255,.5);
  font-size: 14px;
}
.modal-close:hover { background: rgba(255,255,255,.12); color: #fff; }
.modal-eyebrow { color:#4c5cf0; font-size:10px; letter-spacing:.25em; text-transform:uppercase; font-family:'Outfit',sans-serif; font-weight:800; margin-bottom:.5rem; }
.modal-title { font-family:'Outfit',sans-serif; font-size:1.5rem; font-weight:700; color:#fff; margin-bottom:.4rem; line-height:1.3; }
.modal-sub { font-size:12.5px; color:rgba(255,255,255,.45); line-height:1.6; margin-bottom:1.75rem; font-weight:300; }
.modal-divider { height:1px; background:linear-gradient(90deg,rgba(76,92,240,.4),rgba(124,108,246,.3),transparent); margin-bottom:1.75rem; }
.modal-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:480px){.modal-row{grid-template-columns:1fr}}
.modal-field { display:flex; flex-direction:column; gap:6px; }
.modal-field.full { grid-column:1/-1; }
.modal-label { font-size:11px; font-weight:700; font-family:'Outfit',sans-serif; color:rgba(255,255,255,.65); letter-spacing:.04em; }
.modal-label span { color:#4c5cf0; }
.modal-input, .modal-textarea {
  width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
  border-radius:10px; padding:10px 14px; font-size:13px; color:#fff; outline:none;
  font-family:'Inter',sans-serif; transition:border-color .25s, background .25s;
}
.modal-input::placeholder, .modal-textarea::placeholder { color:rgba(255,255,255,.25); }
.modal-input:focus, .modal-textarea:focus { border-color:rgba(76,92,240,.6); background:rgba(76,92,240,.06); }
.modal-textarea { resize:none; height:80px; line-height:1.55; }

/* File upload */
.file-upload-wrapper {
  position:relative; display:flex; align-items:center; gap:10px; width:100%;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
  border-radius:10px; padding:8px 14px;
  transition:border-color .25s, background .25s; cursor:pointer;
}
.file-upload-wrapper:hover { border-color:rgba(76,92,240,.4); background:rgba(76,92,240,.06); }
.file-upload-wrapper input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.file-upload-wrapper i { font-size:18px; color:#4c5cf0; flex-shrink:0; }
.file-upload-text { font-size:12px; color:rgba(255,255,255,.45); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; }
.file-upload-wrapper.has-file .file-upload-text { color:rgba(255,255,255,.8); }
.file-size { font-size:10px; color:rgba(255,255,255,.3); flex-shrink:0; }

.modal-submit {
  width:100%; margin-top:1.25rem; padding:13px; border-radius:12px;
  background:#4c5cf0; color:#fff; font-family:'Outfit',sans-serif;
  font-size:13px; font-weight:700; letter-spacing:.04em;
  cursor:pointer; border:none; transition:background .25s, box-shadow .25s;
}
.modal-submit:hover { background:#6f7df5; box-shadow:0 8px 24px -8px rgba(76,92,240,.6); }

/* Reveal */
.reveal { opacity:0; transform:translateY(40px); transition:all 1.2s cubic-bezier(0.16,1,0.3,1); }
.reveal.active { opacity:1; transform:translateY(0); }

/* Footer */
.footer-white { background:#0d1220; border-top:1px solid rgba(76,92,240,.15); padding:2.5rem 0; }
.footer-white .text-muted { color:rgba(255,255,255,.7) !important; }
.footer-white h4 { color:#ffffff !important; }
.footer-white ul li a { color:rgba(255,255,255,.7) !important; transition:color .3s ease; }
.footer-white ul li a:hover { color:#ffffff !important; }
.footer-white .border-t { border-color:rgba(255,255,255,.08) !important; }
.footer-white .bg-neon { background:#4c5cf0 !important; }
.footer-white .bg-neon:hover { background:#6f7df5 !important; }
.footer-white .text-xs.text-muted { color:rgba(255,255,255,.6) !important; }
.footer-white input { background:rgba(255,255,255,.08) !important; border-color:rgba(255,255,255,.15) !important; color:#fff !important; }
.footer-white input::placeholder { color:rgba(255,255,255,.4) !important; }
.footer-white input:focus { border-color:#4c5cf0 !important; outline:none; box-shadow:0 0 0 3px rgba(76,92,240,.15); }
.footer-white p.text-sm { color:rgba(255,255,255,.8) !important; }
.footer-white .text-xs { color:rgba(255,255,255,.6) !important; }
@media(max-width:640px){
  .card-header { padding:1.1rem 1.25rem; }
  .card-body-inner { padding:0 1.25rem 1.25rem; }
}