:root{
  --primary:#131f43;
  --primary-light:#1d2e5f;
  --white:#ffffff;
  --bg-alt:#f0f4fa;
  --header-font:'Bebas Neue',sans-serif;
  --sub-font:'Sunflower',sans-serif;
  --body-font:'Roboto Condensed',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scrollbar-width:none}          /* Firefox */
html::-webkit-scrollbar{display:none}                      /* Chrome / Safari */

body{
  font-family:var(--body-font);
  color:var(--primary);
  background:var(--white);
  overflow-x:hidden;                                       /* no horizontal scroll */
  cursor:none;                                             /* hide default pointer */
}

/* cursor — darker navy & perfectly centered by JS */
#cursor{
  position:fixed;top:0;left:0;
  width:60px;height:60px;
  border-radius:50%;
  background:rgba(19,31,67,.35);
  pointer-events:none;
  z-index:1500;
  transform:translate(-50%,-50%);
}

/* sidebar */
.sidebar{
  position:fixed;top:0;right:-300px;
  width:300px;height:100%;
  background:var(--primary);
  padding:5rem 2.5rem;
  transition:right .4s;
  z-index:1200;
}
.sidebar.show{right:0}
.close-btn{
  position:absolute;top:1rem;left:1rem;
  background:none;border:none;color:var(--white);
  font-size:2.4rem;cursor:pointer;
}
.sidebar ul{list-style:none;display:flex;flex-direction:column;gap:2.5rem}
.sidebar a{
  color:var(--white);text-decoration:none;
  font-size:1.6rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  position:relative;
}
.sidebar a::after{
  content:"";position:absolute;left:0;bottom:-8px;
  width:0;height:3px;background:var(--white);transition:width .3s;
}
.sidebar a:hover::after{width:100%}

/* burger */
.burger{
  position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;
  justify-content:space-between;width:34px;height:26px;cursor:pointer;z-index:1300;
}
.burger span{height:4px;border-radius:2px;background:var(--primary);transition:.3s}

/* hero */
.hero{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.hero-inner{position:relative;z-index:1}
.hero h1{font-family:var(--header-font);font-size:7vw;letter-spacing:2px}
.hero h2{font-family:var(--sub-font);font-size:1.6rem;font-weight:700;margin:1rem 0 2rem}
.cta{
  display:inline-block;padding:1rem 2.8rem;border-radius:32px;
  background:var(--white);color:var(--primary);font-weight:700;text-decoration:none;transition:.3s;
}
.cta:hover{background:var(--primary-light);color:var(--white)}

/* marquee */
.scroll-banner{background:var(--primary);color:var(--white);font-family:var(--header-font);font-size:1.6rem;overflow:hidden}
.scroll-inner{display:flex;white-space:nowrap}
.scroll-inner span{padding:.85rem 1.2rem}

/* sections & cards */
.section{padding:6rem 2rem}
.section.alt{background:var(--bg-alt)}
.section h2{font-family:var(--header-font);font-size:2.8rem;margin-bottom:3rem;text-align:center}
.cards{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{
  background:var(--white);border-radius:12px;padding:2rem;
  text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.08);
  transition:transform .3s;
}
.card:hover{transform:translateY(-8px)}
.card h3{font-family:var(--header-font);font-size:2rem;margin-bottom:.6rem}

/* letter */
.letter{position:relative;height:100vh;display:flex;align-items:center;overflow:hidden}
.letter-container{width:100%;max-width:900px;margin:0 auto;height:70vh;overflow:hidden}
.letter-inner{padding-right:1rem}
.letter-inner h2{font-family:var(--header-font);margin-bottom:1.5rem}
.letter-inner p{font-size:1.05rem;line-height:1.85}

/* footer */
.footer{background:var(--primary);color:var(--white);text-align:center;padding:5rem 2rem}
.footer-content{opacity:0;transform:translateY(40px);transition:.8s}
.footer-content.show{opacity:1;transform:translateY(0)}
.footer a{color:var(--white);text-decoration:underline}
.footer .social{display:flex;justify-content:center;gap:2rem;margin:1rem 0 2rem;font-weight:600;font-size:1.2rem}

/* responsive tweak */
@media(max-width:600px){.hero h1{font-size:11vw}}

section.apply {
  text-align: center;
}