@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-400-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-400-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-400-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-400-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-400-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-500-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-500-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-500-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-500-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/ibm-plex-mono-500-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/figtree-500-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/figtree-500-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/figtree-600-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/figtree-600-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/figtree-700-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/figtree-700-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:800; font-display:swap; src:url("/assets/fonts/figtree-800-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:800; font-display:swap; src:url("/assets/fonts/figtree-800-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/open-sans-400-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/open-sans-400-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/open-sans-600-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/open-sans-600-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/open-sans-700-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/open-sans-700-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Open Sans'; font-style:italic; font-weight:400; font-display:swap; src:url("/assets/fonts/open-sans-400-italic-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Open Sans'; font-style:italic; font-weight:400; font-display:swap; src:url("/assets/fonts/open-sans-400-italic-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

*, *::before, *::after { box-sizing:border-box; }
/* overflow-x:clip, not hidden: hidden forces overflow-y to auto per spec, which turns body
   into its own scroll container and breaks the header's position:sticky on mobile Safari. */
html, body { margin:0; padding:0; overflow-x:clip; }
body {
  background:#FFFFFF; color:#1A1A1A;
  font-family:'Open Sans', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection { background:#CFE0F0; }
@keyframes reap-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
a { color:inherit; }
a:focus-visible, button:focus-visible { outline:none; box-shadow:0 0 0 2px #fff, 0 0 0 4px #003366; }
.reap-scroller::-webkit-scrollbar { height:8px; }
.reap-scroller::-webkit-scrollbar-thumb { background:#C7D3DE; border-radius:999px; }
.reap-scroller::-webkit-scrollbar-track { background:transparent; }
.reap-marquee-row:hover { animation-play-state:paused; }
.reap-marquee-row { will-change:transform; backface-visibility:hidden; }
@media (min-width:761px) {
  #experience .reap-hscroll, #curriculum .reap-hscroll { scrollbar-width:none; -ms-overflow-style:none; }
  #experience .reap-hscroll::-webkit-scrollbar, #curriculum .reap-hscroll::-webkit-scrollbar { display:none; }
}
.reap-drawer-link { display:block; padding:13px 4px; font-size:15px; color:rgba(255,255,255,0.82); text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.12); }
.reap-drawer-login { margin-top:16px; padding:12px 16px; border-radius:999px; background:#FFCC00; color:#003366; font-weight:600; border-bottom:none; text-align:center; }
.reap-link-arrow { display:inline-block; font-size:13px; font-weight:600; color:#003366; background:#fff; text-decoration:none; border-radius:999px; padding:9px 18px; box-shadow:0 1px 2px rgba(0,51,102,0.05), 0 8px 18px rgba(0,51,102,0.07); transition:opacity 0.2s ease; }
.reap-link-arrow:hover, .reap-link-arrow:focus-visible { opacity:0.85; }
#reap-drawer-backdrop.reap-open { opacity:1 !important; pointer-events:auto !important; }
#reap-drawer.reap-open { transform:translateX(0) !important; }
html.reap-menu-open, html.reap-menu-open body { overflow:hidden !important; }
#reap-header { transition:transform 0.32s cubic-bezier(0.4,0,0.2,1); }
#reap-header.reap-header-hidden { transform:translateY(calc(-100% - 24px)); }
.reap-avatar-ic img { filter:grayscale(100%); transition:filter 0.4s ease; }
.reap-card-ic:hover .reap-avatar-ic img, .reap-card-ic:focus-within .reap-avatar-ic img { filter:grayscale(0%); }
@media (hover:none) { .reap-avatar-ic img { filter:grayscale(0%); } }
.reap-carousel-dots { display:none; }
.reap-dot { width:6px; height:6px; border-radius:999px; background:rgba(0,51,102,0.18); transition:background 0.25s ease, transform 0.25s ease; }
.reap-dot.reap-dot-active { background:#003366; transform:scale(1.25); }
.reap-carousel-dots--dark .reap-dot { background:rgba(255,255,255,0.28); }
.reap-carousel-dots--dark .reap-dot.reap-dot-active { background:#FFCC00; }
@media (max-width:760px) {
  header { padding:12px 12px !important; justify-content:flex-start !important; }
  .reap-container, footer > div, #committee > div { padding-left:20px !important; padding-right:20px !important; }
  .reap-grid-stack { grid-template-columns:1fr !important; }
  .reap-photo-grid { grid-template-columns:repeat(2,1fr) !important; gap:16px !important; }
  .reap-photo-grid .reap-card-ic { padding:8px !important; }
  .reap-hero-h1 { font-size:36px !important; line-height:1.14 !important; }
  .reap-hero-sub { font-size:16px !important; margin-bottom:22px !important; }
  #about .reap-grid-stack { gap:26px !important; }
  .reap-hero-instagram-desktop { display:none !important; }
  .reap-hero-instagram-mobile { display:inline-flex !important; align-items:center; justify-content:center; margin-bottom:16px; }
  #about { padding:36px 0 24px !important; }
  #hero-stats-section { padding:0 0 32px !important; }
  #alumni { padding:36px 0 8px !important; }
  #experience { padding:40px 0 44px !important; }
  #curriculum { padding:32px 0 18px !important; }
  #testimonials { padding:24px 0 40px !important; }
  #committee { padding:36px 0 40px !important; }
  .reap-desktop-links { display:none !important; }
  .reap-hamburger-btn { display:flex !important; }
  .reap-logo-wrap { height:38px !important; }
  .reap-logo-img { height:38px !important; max-width:190px !important; }
  .reap-marquee-row { gap:24px !important; animation-duration:21s !important; }
  .reap-marquee-fade { width:32px !important; }
  .reap-curriculum-card { flex-basis:300px !important; }
  .reap-carousel-dots { display:flex !important; justify-content:center; gap:7px; margin-top:14px; }
  .reap-member-name { font-size:13px !important; }
}

/* ---- Mobile expanding menu (replaces the off-canvas drawer) ---- */
.reap-mobile-login { display:none; }
.reap-mobile-panel { display:none; }
.reap-m-link {
  display:block; color:#fff; text-decoration:none;
  font-family:'Figtree', system-ui, sans-serif; font-size:15px; font-weight:500;
  padding:14px 6px; border-radius:8px;
  border-bottom:1px solid rgba(255,255,255,0.14);
}
.reap-m-link:hover, .reap-m-link:focus-visible { background:rgba(255,255,255,0.07); }
.reap-m-login {
  margin-top:4px; margin-bottom:0; text-align:center; background:#FFCC00;
  color:#003366; font-weight:700; border-bottom:none; border-radius:999px;
}
.reap-m-login:hover, .reap-m-login:focus-visible { background:#F2C200; }
#reap-menu-btn span { transition:transform 0.28s ease, opacity 0.2s ease; }

@media (max-width:760px) {
  .reap-mobile-login {
    display:inline-flex !important; align-items:center; justify-content:center;
    font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap;
    color:#003366; background:#FFCC00; border-radius:999px; padding:8px 14px;
  }
  #reap-brand { margin-right:auto; }
  #reap-menu-btn { margin-left:8px !important; }
  /* Constant radius: a short pill renders fully round at the ends, a tall
     panel renders as a rounded box, so opening just elongates the pill
     downward with no in-between circle morph. */
  #reap-nav {
    width:100%; flex-wrap:wrap; overflow:visible !important;
    border-radius:26px !important;
  }
  .reap-mobile-panel {
    display:block; flex-basis:100%; width:100%;
    max-height:0; opacity:0; overflow:hidden; padding:0 2px;
    transition:max-height 0.36s cubic-bezier(0.4,0,0.2,1), opacity 0.26s ease,
               margin 0.3s ease, padding 0.3s ease;
  }
  #reap-nav.reap-open .reap-mobile-panel {
    max-height:440px; opacity:1; overflow-y:auto;
    margin-top:8px; padding:8px 2px 4px;
    border-top:1px solid rgba(255,255,255,0.14);
  }
  #reap-nav.reap-open #reap-menu-btn span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  #reap-nav.reap-open #reap-menu-btn span:nth-child(2) { opacity:0; }
  #reap-nav.reap-open #reap-menu-btn span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
}
