:root{
  /* ---- base ---- */
  --ivory:#FBF4E7;
  --ivory-deep:#F5EBDA;
  --card:#FFFDF8;
  --ink:#1A2340;
  --body:#4A4438;
  --muted:#6E685B;
  --line: rgba(26,35,64,0.08);

  /* ---- brand gradient (from KAIPEX mark) ---- */
  --brand-blue:#2451F2;
  --brand-violet:#8B5CF6;
  --brand-teal:#17C3A2;
  --brand-grad: linear-gradient(100deg, var(--brand-blue) 0%, var(--brand-violet) 52%, var(--brand-teal) 100%);

  /* ---- pastels, mixed by section ---- */
  --p-peach:#FFE3C7;
  --p-peach-ink:#B5602A;
  --p-mint:#CDF3E3;
  --p-mint-ink:#1C8C6E;
  --p-lav:#E8DCFB;
  --p-lav-ink:#6A45C9;
  --p-sky:#D6E8FC;
  --p-sky-ink:#2A5FA8;
  --p-butter:#FCEFC0;
  --p-butter-ink:#9C7A12;

  /* ---- section wash tints (lighter than chip pastels, for full-section backgrounds) ---- */
  --wash-sky:#EFF6FE;
  --wash-mint:#EDFBF5;
  --wash-lav:#F5F0FE;
  --wash-peach:#FFF3E9;
  --wash-butter:#FFFAEA;

  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --shadow-soft: 0 10px 30px rgba(26,35,64,0.06);
  --shadow-lift: 0 20px 45px rgba(26,35,64,0.12);
  --ease: cubic-bezier(.22,.9,.32,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--body);
  font-family:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mono{font-family:'JetBrains Mono','Pretendard Variable',monospace;}
h1,h2,h3,h4{color:var(--ink); margin:0; letter-spacing:-0.02em; word-break:keep-all;}
p{margin:0; word-break:keep-all;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}

::selection{background:var(--p-lav); color:var(--ink);}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--brand-violet); outline-offset:3px; border-radius:6px;
}

/* ---------- page loader ---------- */
.page-loader{
  position:fixed; inset:0; z-index:99999; background:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .5s var(--ease), visibility .5s var(--ease);
  animation:loaderFailsafe .6s var(--ease) 4s forwards;
}
@keyframes loaderFailsafe{ to{ opacity:0; visibility:hidden; pointer-events:none; } }
.page-loader.loaded{ opacity:0; visibility:hidden; pointer-events:none; }
.loader-spin{ width:60px; height:60px; animation:loaderSpin 1.1s linear infinite; }
@keyframes loaderSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .loader-spin{ animation:none; } }

/* ---------- scroll progress ---------- */
#progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:var(--brand-grad); z-index:9999; transition:width .1s linear;
}

/* ---------- header & dropdown nav ---------- */
header{
  position:sticky; top:0; z-index:1000;
  background:rgba(251,244,231,0.86);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease);
}
header.scrolled{ box-shadow:0 8px 24px rgba(26,35,64,0.06); }
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; gap:20px;
}
.brand-logo{ height:46px; width:auto; transition:height .3s var(--ease); }
header.scrolled .brand-logo{ height:38px; }

nav.menu{ display:flex; align-items:center; gap:6px; }
nav.menu > .nav-item{ position:relative; }
nav.menu > .nav-item > a{
  position:relative; display:flex; align-items:center; gap:5px;
  font-size:15px; font-weight:600; color:var(--ink);
  padding:10px 14px; border-radius:10px;
  transition:background .2s var(--ease);
}
nav.menu > .nav-item > a:hover{ background:rgba(26,35,64,0.05); }
nav.menu > .nav-item > a .caret{ font-size:10px; opacity:.55; transition:transform .25s var(--ease); }
nav.menu > .nav-item:hover > a .caret{ transform:rotate(180deg); }

.dropdown{
  position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%) translateY(6px);
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:10px; min-width:200px; box-shadow:var(--shadow-lift);
  opacity:0; visibility:hidden; transition:all .22s var(--ease);
  display:flex; flex-direction:column; gap:2px;
}
nav.menu > .nav-item:hover .dropdown{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.dropdown a{
  display:block; padding:10px 14px; border-radius:10px; font-size:14px; font-weight:500;
  color:var(--body); white-space:nowrap;
}
.dropdown a:hover{ background:var(--p-lav); color:var(--p-lav-ink); }

.cta-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ink); color:var(--ivory)!important;
  padding:11px 22px; border-radius:999px; font-weight:700; font-size:14px;
  border:none; cursor:pointer; white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  box-shadow:var(--shadow-soft);
}
.cta-btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.menu-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.menu-toggle span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px; }

/* ---------- hero (home) ---------- */
.hero{ position:relative; padding:150px 0 120px; overflow:hidden; isolation:isolate; }
.hero-bg{ position:absolute; inset:0; z-index:-3; overflow:hidden; background:#e8eaf0; }
.hero-bg img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:blur(2px) saturate(94%); transform:scale(1.04); opacity:0;
  transition:opacity 1.35s ease-in-out;
}
.hero-bg img.is-active{ opacity:1; animation:heroDrift 7s ease-out both; }
.hero.is-paused .hero-bg img.is-active{ animation-play-state:paused; }
.hero-bg img:nth-child(1){ object-position:58% center; }
.hero-bg img:nth-child(2){ object-position:55% center; }
.hero-bg img:nth-child(3){ object-position:55% center; }
.hero-bg img:nth-child(4){ object-position:52% center; }
@keyframes heroDrift{ from{transform:scale(1.04)} to{transform:scale(1.09)} }
.hero-overlay{
  position:absolute; inset:0; z-index:-2;
  background:
    linear-gradient(90deg, rgba(251,244,231,.96) 0%, rgba(251,244,231,.88) 36%, rgba(251,244,231,.55) 67%, rgba(251,244,231,.26) 100%),
    linear-gradient(180deg, rgba(251,244,231,.10), rgba(251,244,231,.22));
}
#aiNet{ position:absolute; inset:0; z-index:-1; opacity:.22; }
.blob{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; z-index:-1; animation:float 16s ease-in-out infinite; }
.hero .blob{ opacity:.18; }
.blob.b1{ width:420px; height:420px; background:var(--p-mint); top:-120px; right:-80px; }
.blob.b2{ width:340px; height:340px; background:var(--p-lav); bottom:-100px; left:-60px; animation-delay:-5s;}
.blob.b3{ width:260px; height:260px; background:var(--p-sky); top:40%; right:18%; animation-delay:-9s;}
@keyframes float{ 0%,100%{ transform:translate(0,0) scale(1);} 50%{ transform:translate(30px,-40px) scale(1.08);} }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono','Pretendard Variable',monospace; font-size:13px; font-weight:500;
  color:var(--brand-violet); background:var(--p-lav);
  padding:7px 16px; border-radius:999px; margin-bottom:26px; letter-spacing:.03em;
}
.hero h1{ font-size:clamp(34px, 5.2vw, 62px); font-weight:800; line-height:1.18; max-width:820px; }
.hero .rise{ opacity:0; transform:translateY(36px); animation:riseIn .9s var(--ease) forwards; }
.hero .rise.r1{ animation-delay:.15s; }
.hero .rise.r2{ animation-delay:.35s; }
.hero .rise.r3{ animation-delay:.55s; }
.hero .rise.r4{ animation-delay:.75s; }
.hero .rise.r5{ animation-delay:.95s; }
@keyframes riseIn{ from{ opacity:0; transform:translateY(36px); } to{ opacity:1; transform:translateY(0); } }
.hero h1 .grad{
  background:var(--brand-grad); background-size:220% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 7s ease-in-out infinite;
}
@keyframes shimmer{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
.hero .sub{ margin-top:24px; font-size:18px; color:var(--body); max-width:640px; }
.hero-tags{ margin-top:18px; }
.tag-chip{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,0.65); border:1px solid rgba(26,35,64,0.12);
  padding:7px 16px; border-radius:999px; font-size:13.5px; font-weight:700;
  color:var(--brand-blue); backdrop-filter:blur(6px);
}
.hero-actions{ display:flex; gap:14px; margin-top:24px; flex-wrap:wrap; }
.hero-media-controls{position:absolute;right:clamp(16px,3vw,42px);bottom:16px;z-index:2;display:flex;align-items:center;gap:8px}
.hero-image-note,.hero-slide-toggle{background:rgba(255,255,255,.78);border:1px solid rgba(26,35,64,.14);box-shadow:0 3px 15px rgba(26,35,64,.08);backdrop-filter:blur(8px);color:#27314b}
.hero-image-note{padding:7px 10px;border-radius:999px;font-size:11px;line-height:1.2}
.hero-slide-toggle{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font:700 13px/1 inherit;cursor:pointer}
.hero-slide-toggle:focus-visible{outline:3px solid var(--brand-blue);outline-offset:3px}
.btn-outline{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:999px; font-weight:700; font-size:15px;
  border:1.5px solid var(--ink); background:transparent; transition:all .25s var(--ease);
}
.btn-outline:hover{ background:var(--ink); color:var(--ivory); }
.btn-solid{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; border-radius:999px; font-weight:700; font-size:15px;
  background:var(--brand-grad); color:#fff; border:none; cursor:pointer;
  box-shadow:0 12px 28px rgba(139,92,246,0.28);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn-solid:hover{ transform:translateY(-3px); box-shadow:0 18px 36px rgba(139,92,246,0.36); }
.btn-solid[disabled], .btn-outline[disabled]{ opacity:.45; cursor:not-allowed; pointer-events:none; }
.wave-sig{ width:180px; height:auto; margin-top:44px; opacity:.9; }

/* ---------- inner page hero (sub pages) ---------- */
.page-hero{ position:relative; padding:64px 0 56px; overflow:hidden; isolation:isolate; border-bottom:1px solid var(--line); }
.page-hero .blob{ opacity:.4; }
.page-hero .crumb{ font-size:13px; color:var(--muted); margin-bottom:14px; font-family:'JetBrains Mono','Pretendard Variable',monospace; }
.page-hero h1{ font-size:clamp(28px,3.6vw,42px); font-weight:800; }
.page-hero p{ margin-top:14px; font-size:16px; color:var(--body); max-width:600px; }

/* ---------- section shared ---------- */
section{ padding:100px 0; position:relative; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head .eyebrow{ margin-bottom:18px; }
.section-head h2{ font-size:clamp(26px,3.4vw,38px); font-weight:800; }
.section-head p{ margin-top:16px; font-size:16px; color:var(--muted); }
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- about ---------- */
#about{ background:var(--wash-sky); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start; }
.about-copy p{ font-size:16px; color:var(--body); margin-bottom:16px; }
.info-card{ background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-md); padding:30px 32px; }
.info-card dl{ margin:0; display:grid; grid-template-columns:110px 1fr; row-gap:14px; column-gap:10px; }
.info-card dt{ font-size:13px; color:var(--muted); font-weight:600; padding-top:2px;}
.info-card dd{ margin:0; font-size:15px; font-weight:600; color:var(--ink); }
.badge-soon{
  display:inline-block; font-family:'JetBrains Mono','Pretendard Variable',monospace; font-size:12px;
  background:var(--p-peach); color:var(--p-peach-ink); padding:3px 10px; border-radius:999px; font-weight:600;
}
.assembly-photo{
  margin-top:22px; border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--line); background:var(--card);
}
.assembly-photo img{ width:100%; display:block; }
.assembly-photo figcaption{ padding:14px 18px; font-size:13px; color:var(--muted); text-align:center; }
.placeholder-box{
  margin-top:22px; border:1.5px dashed var(--line); border-radius:var(--radius-md);
  padding:26px; text-align:center; color:var(--muted); font-size:14px; background:#fff;
}
.placeholder-box strong{ display:block; color:var(--ink); font-size:15px; margin-bottom:6px; }

/* ---------- board ---------- */
#board{ background:var(--wash-lav); }
.board-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; perspective:1200px; }
.board-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:0; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  transform-style:preserve-3d; will-change:transform;
}
.board-card:hover{ box-shadow:var(--shadow-lift); }
.board-photo{
  width:100%; height:280px; overflow:hidden; margin:0; position:relative;
}
.board-photo::after{
  content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(26,35,64,0) 55%, rgba(26,35,64,0.18) 100%);
}
.board-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 18%; transition:transform .5s var(--ease); }
.board-card:hover .board-photo img{ transform:scale(1.06); }
.board-card .card-body{ padding:26px 28px 30px; }
.board-role{
  display:inline-block; font-size:12px; font-weight:700; padding:4px 12px; border-radius:999px;
  margin-bottom:10px; font-family:'JetBrains Mono','Pretendard Variable',monospace;
}
.role-chair{ background:var(--p-lav); color:var(--p-lav-ink); }
.role-director{ background:var(--p-sky); color:var(--p-sky-ink); }
.role-auditor{ background:var(--p-mint); color:var(--p-mint-ink); }
.board-card h3{ font-size:20px; font-weight:800; margin-bottom:12px; }
.board-card ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px; }
.board-card li{ font-size:13.5px; color:var(--body); padding-left:14px; position:relative; }
.board-card li::before{ content:'○'; position:absolute; left:0; top:5px; font-size:9px; color:var(--brand-violet); }

/* ---------- programs ---------- */
#programs{ background:var(--wash-mint); }
.program-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; perspective:1200px; }
.program-card{
  background:var(--program-surface,var(--card)); border-radius:var(--radius-lg); padding:30px; border:1px solid var(--program-outline,var(--line));
  display:flex; flex-direction:column; gap:16px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  will-change:transform;
}
/* Six quiet pastels give each course its own identity without changing the text contrast. */
.program-card:nth-child(1){ --program-surface:#FFF4EC; --program-outline:#F0E1D6; }
.program-card:nth-child(2){ --program-surface:#EFF6FF; --program-outline:#DBE8F6; }
.program-card:nth-child(3){ --program-surface:#F7F1FF; --program-outline:#E9DDF5; }
.program-card:nth-child(4){ --program-surface:#FFF9E9; --program-outline:#F1E7CE; }
.program-card:nth-child(5){ --program-surface:#F1FAF5; --program-outline:#DBEEE3; }
.program-card:nth-child(6){ --program-surface:#FFF1F3; --program-outline:#F2DDE2; }
.program-card:hover{ box-shadow:var(--shadow-lift); }
.tag-row{ display:flex; gap:8px; flex-wrap:wrap; }
.tag{ font-size:12px; font-weight:700; padding:5px 12px; border-radius:999px; font-family:'JetBrains Mono','Pretendard Variable',monospace; }
.tag-gov{ background:var(--p-sky); color:var(--p-sky-ink); }
.tag-edu{ background:var(--p-mint); color:var(--p-mint-ink); }
.tag-biz{ background:var(--p-lav); color:var(--p-lav-ink); }
.tag-status{ background:var(--ink); color:var(--ivory); }
.program-card h3{ font-size:19px; font-weight:800; }
.program-card .desc{ font-size:14.5px; color:var(--body); flex-grow:1; }
.program-meta{ display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--muted); border-top:1px dashed var(--line); padding-top:14px; }
.program-meta b{ color:var(--ink); }

/* ---------- news / community placeholder grid ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.news-card{
  border:1.5px dashed var(--line); border-radius:var(--radius-md); background:var(--card);
  padding:34px 26px; text-align:center; color:var(--muted);
}
.news-card .dot{ width:10px; height:10px; border-radius:50%; margin:0 auto 16px; background:var(--brand-grad); }
.news-card strong{ display:block; color:var(--ink); font-size:15px; margin-bottom:6px; font-weight:700; }
.news-card.has-link{
  border-style:solid; text-align:left; display:block; text-decoration:none; color:inherit;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.news-card.has-link:hover{ transform:translateY(-4px); box-shadow:var(--shadow-soft); border-color:var(--brand-violet); }
.news-card.has-link .dot{ margin:0 0 14px; }
.news-card.has-link .meta{ font-size:13px; color:var(--muted); }

/* ---------- contact ---------- */
#contact{ background:var(--wash-butter); border-top:1px solid var(--line); }
.contact-grid{ display:grid; grid-template-columns:1fr .85fr; gap:40px; }
.form-card{ background:var(--ivory); border-radius:var(--radius-lg); padding:38px; border:1px solid var(--line); }
.tab-toggle{ display:flex; gap:6px; background:var(--ivory-deep); padding:6px; border-radius:14px; margin-bottom:28px; }
.tab-btn{
  flex:1; padding:12px 14px; border-radius:10px; border:none; background:transparent;
  font-weight:700; font-size:13.5px; color:var(--muted); cursor:pointer;
  transition:all .25s var(--ease); font-family:'Pretendard Variable',sans-serif;
}
.tab-btn.active{ background:var(--card); color:var(--ink); box-shadow:var(--shadow-soft); }
.tab-btn:hover:not(.active){ color:var(--ink); }
.contact-panel{ display:none; animation:fadeIn .35s var(--ease); }
.contact-panel.active{ display:block; }
.form-status{ margin:14px 0 0; font-size:13.5px; font-weight:600; min-height:18px; }
.form-status.ok{ color:var(--brand-teal); }
.form-status.err{ color:#C0392B; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field.full{ grid-column:1/-1; }
label{ font-size:13px; font-weight:700; color:var(--ink); }
input, select, textarea{
  font-family:inherit; font-size:14.5px; padding:13px 15px; border-radius:12px;
  border:1.5px solid var(--line); background:#fff; color:var(--ink);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); width:100%;
}
input:focus, select:focus, textarea:focus{ border-color:var(--brand-violet); box-shadow:0 0 0 4px rgba(139,92,246,0.12); outline:none; }
textarea{ resize:vertical; min-height:110px; }
input[disabled], select[disabled], textarea[disabled]{ background:var(--ivory-deep); color:var(--muted); cursor:not-allowed; }
.consent{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--muted); margin:18px 0 22px; }
.consent input{ width:16px; height:16px; margin-top:2px; padding:0; flex-shrink:0; }

.contact-info-card{
  background:var(--ink); color:var(--ivory); border-radius:var(--radius-lg);
  padding:38px; display:flex; flex-direction:column; gap:22px; position:relative; overflow:hidden;
}
.contact-info-card::before{ pointer-events:none; content:''; position:absolute; inset:0; background:var(--brand-grad); opacity:.12; }
.contact-info-card .badge-logo{ width:64px; height:64px; border-radius:16px; }
.contact-line{ display:flex; align-items:center; gap:14px; font-size:15px; }
.contact-line .ic{
  width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,0.1);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-line b{ display:block; font-size:12px; color:rgba(251,244,231,0.55); font-weight:500; margin-bottom:2px; }

/* ---------- coming-soon block (자격증/강의실/교재) ---------- */
.soon-card{
  background:var(--card); border:1.5px dashed var(--line); border-radius:var(--radius-lg);
  padding:44px; text-align:center;
}
.soon-card .soon-icon{
  width:56px; height:56px; border-radius:16px; margin:0 auto 20px; background:var(--p-lav);
  display:flex; align-items:center; justify-content:center; font-size:24px;
}
.soon-card h3{ font-size:20px; font-weight:800; margin-bottom:10px; }
.soon-card p{ font-size:14.5px; color:var(--muted); max-width:440px; margin:0 auto; }
.anchor-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px; }
.anchor-tabs a{
  font-size:14px; font-weight:600; padding:9px 18px; border-radius:999px;
  border:1.5px solid var(--line); color:var(--body); transition:all .2s var(--ease);
}
.anchor-tabs a:hover{ border-color:var(--brand-violet); color:var(--brand-violet); }
.sub-block{ scroll-margin-top:100px; }

/* ---------- mock classroom login ---------- */
.mock-login{
  max-width:420px; margin:0 auto; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:36px; text-align:left; box-shadow:var(--shadow-soft);
}
.mock-login .form-field{ margin-bottom:14px; }

/* ---------- org chart ---------- */
.org-chart{ display:flex; flex-direction:column; align-items:center; gap:0; }
.org-node{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:16px 26px; text-align:center; box-shadow:var(--shadow-soft); position:relative; z-index:1;
}
.org-node.top{ background:var(--ink); color:var(--ivory); }
.org-node .role{ font-size:11px; font-family:'JetBrains Mono','Pretendard Variable',monospace; opacity:.65; margin-bottom:4px; }
.org-node .name{ font-size:16px; font-weight:800; }
.org-line{ width:2px; height:36px; background:var(--line); }
.org-row{ display:flex; gap:22px; flex-wrap:wrap; justify-content:center; position:relative; }
.org-row::before{
  content:''; position:absolute; top:-36px; left:8%; right:8%; height:2px; background:var(--line);
}
.org-row .branch{ display:flex; flex-direction:column; align-items:center; }
.org-row .branch .org-line{ height:36px; }
.org-auditor-wrap{ margin-top:26px; padding-top:26px; border-top:1px dashed var(--line); text-align:center; }
.org-auditor-wrap .tag{ margin-bottom:14px; display:inline-block; }

/* ---------- identity / CI page ---------- */
.ci-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.ci-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px; text-align:center; }
.ci-card img{ max-height:110px; width:auto; margin:0 auto 20px; }
.ci-card h4{ font-size:15px; font-weight:700; margin-bottom:6px; }
.ci-card p{ font-size:13px; color:var(--muted); }
.swatch-row{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:20px; }
.swatch{ border-radius:14px; padding:16px 10px 10px; text-align:center; font-family:'JetBrains Mono','Pretendard Variable',monospace; font-size:11px; color:var(--ink); }
.swatch .chip{ height:56px; border-radius:10px; margin-bottom:10px; }
.dont-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px; }
.dont-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px; text-align:center; }
.dont-card .mark{ font-size:22px; margin-bottom:10px; }

/* ---------- join / career ---------- */
.join-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:38px; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center;
}
.join-card ul{ margin:14px 0 0; padding-left:18px; font-size:14.5px; color:var(--body); display:flex; flex-direction:column; gap:6px; }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:rgba(251,244,231,0.6); padding:56px 0 30px; }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; margin-bottom:36px; }
.footer-logo-wrap{ background:var(--card); padding:14px 20px; border-radius:16px; display:inline-block; margin-bottom:16px; }
.footer-logo{ height:30px; display:block; }
.footer-links{ display:flex; gap:26px; flex-wrap:wrap; }
.footer-links a{ font-size:13.5px; color:rgba(251,244,231,0.7); }
.footer-links a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid rgba(251,244,231,0.12); padding-top:24px; font-size:12.5px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }

/* Prevent CSS Grid items from refusing to shrink below their content's
   min-content size (the classic grid overflow trap on narrow viewports) */
.about-grid > *, .contact-grid > *, .ci-grid > *,
.board-grid > *, .program-grid > *, .news-grid > *,
.info-card dd, .join-card > div{ min-width:0; }

/* ---------- responsive ---------- */
/* Tablet & below: switch to hamburger nav (a full horizontal menu with 6 items
   + logo + CTA doesn't fit between 720–960px, so the hamburger threshold is
   raised here — keeps the header from wrapping/crowding on iPads and small
   laptop windows) */
@media (max-width:960px){
  nav.menu{
    position:fixed; top:74px; left:0; right:0; background:var(--ivory);
    flex-direction:column; align-items:stretch; padding:12px 20px 30px; gap:4px;
    border-bottom:1px solid var(--line); box-shadow:var(--shadow-soft);
    transform:translateY(-140%); opacity:0; transition:all .3s var(--ease); pointer-events:none;
    max-height:80vh; overflow-y:auto;
  }
  nav.menu.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  nav.menu > .nav-item > a{ padding:14px 10px; justify-content:space-between; white-space:normal; }
  .dropdown, nav.menu > .nav-item:hover .dropdown{
    position:static !important; left:auto !important; opacity:1 !important; visibility:visible !important;
    transform:none !important; box-shadow:none; border:none; background:transparent;
    padding:0 0 6px 14px; display:none;
  }
  nav.menu > .nav-item.mobile-open .dropdown{ display:flex !important; }
  .menu-toggle{ display:block; }
  .cta-btn.desktop-only{ display:none; }
}

/* Tablet grid tuning: 2-column cards still read well down to 600px */
@media (max-width:920px){
  .about-grid, .contact-grid, .ci-grid{ grid-template-columns:1fr; }
  .board-grid, .program-grid, .news-grid{ grid-template-columns:repeat(2,1fr); }
  .swatch-row{ grid-template-columns:repeat(3,1fr); }
  .dont-row{ grid-template-columns:1fr; }
  .join-card{ grid-template-columns:1fr; text-align:center; }
}

/* Phone: everything collapses to a single column */
@media (max-width:600px){
  .board-grid, .program-grid, .news-grid, .swatch-row{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  section{ padding:70px 0; }
  .hero{ padding:90px 0 70px; }
  .org-row{ flex-direction:column; align-items:center; }
  .org-row::before{ display:none; }
  .tab-btn{ font-size:12.5px; padding:11px 8px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  html{ scroll-behavior:auto; }
  .hero .rise{ opacity:1; transform:none; }
  .hero-bg img{ opacity:1; transform:scale(1.1); }
  #aiNet{ display:none; }
  .board-card, .program-card{ transform:none !important; }
}

/* ---------- card tilt (JS-driven via CSS vars) ---------- */
.board-card, .program-card{
  transform: perspective(1200px) rotateX(var(--tiltX,0)) rotateY(var(--tiltY,0)) translateY(var(--liftY,0));
}

/* 2026-09: public information and accessible navigation */
.skip-link{position:fixed;left:16px;top:-90px;z-index:100001;padding:12px 20px;background:#1a2340;color:white}.skip-link:focus{top:12px}
.page-loader{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero{padding:85px 0 65px}.hero h1{font-size:clamp(36px,4.5vw,62px);line-height:1.25}.hero-name{font-size:15px;margin-top:15px;color:var(--ink);font-weight:600}
.hero-tags{margin-top:18px}.hero-actions{margin-top:25px}.wave-sig{display:none}
.agency-section{padding:25px 0 32px;background:#fff;border-bottom:1px solid var(--line)}.agency-label{font-size:13px;font-weight:700;letter-spacing:.04em;margin-bottom:14px;color:var(--muted)}
.agency-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:14px}.agency-card{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px 14px;border:1px solid #dce1eb;border-radius:14px;background:#fff;min-height:126px;text-align:center;transition:border-color .2s,box-shadow .2s}.agency-card:hover{border-color:var(--brand-blue);box-shadow:var(--shadow-soft)}
.agency-card img{width:auto;max-width:100%;height:46px;object-fit:contain}.agency-card span{font-size:12px;color:#505b70}.agency-card strong{font-size:18px;color:var(--ink)}.agency-card.text-card{background:#f4f7fe}
.editorial-card{padding:34px;border:1px solid var(--line);border-radius:20px;background:var(--card);max-width:100%}.editorial-card h3{font-size:22px;margin-bottom:18px}.editorial-card h3:not(:first-child){margin-top:32px}.editorial-card p{margin:0 0 16px;line-height:1.9}.editorial-card p:last-child{margin-bottom:0}.signature{text-align:right;margin-top:28px!important}.business-list{padding-left:24px;line-height:2}.history-list{display:grid;grid-template-columns:130px 1fr;gap:20px;margin:0}.history-list dt{font-weight:700;color:var(--brand-blue)}.history-list dd{margin:0}.inline-link{text-decoration:underline;color:var(--brand-blue)}
.disclosure-table{overflow-x:auto;background:white;border:1px solid #dce1eb;border-radius:16px}.disclosure-table table{width:100%;border-collapse:collapse;text-align:left}.disclosure-table th{padding:18px;background:#edf2fc;color:var(--ink)}.disclosure-table td{padding:24px;border-top:1px solid #dce1eb}.disclosure-table .empty-state{text-align:center;padding:50px 15px;color:var(--muted)}
.faq-list{display:grid;gap:16px}.faq-list article{padding:26px 30px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.faq-list h3{font-size:20px;margin-bottom:12px}.faq-list p{line-height:1.9}.guide-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.footer-links{flex-wrap:wrap}.footer-bottom span{overflow-wrap:anywhere}
.program-card{display:flex;flex-direction:column}.program-card .program-meta{margin-top:auto;padding-top:20px}.program-card .desc{margin-bottom:20px}.program-note{margin-top:26px;color:var(--muted);font-size:14px;line-height:1.8}
.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.nav-item:before{content:"";position:absolute;top:100%;height:12px;width:100%}
@media(min-width:961px){.nav-row{padding-left:16px;padding-right:16px}nav.menu>.nav-item>a{padding:10px 9px;font-size:14px}.dropdown a{font-size:13px}}
@media(max-width:960px){.nav-row{padding:14px 16px;gap:12px}.nav-row>a:first-child{min-width:0;flex:1}.brand-logo,header.scrolled .brand-logo{width:100%;max-width:290px;height:auto}.menu-toggle{flex-shrink:0}.agency-grid{grid-template-columns:1fr 1fr}.nav-item:focus-within .dropdown{transform:none}.menu.open{max-height:calc(100dvh - 85px);overflow-y:auto}}
@media(max-width:600px){.hero{padding:48px 0 40px}.hero h1{font-size:36px}.hero .sub{font-size:16px}.hero-name{font-size:13px}.desktop-break{display:none}.agency-section{padding:20px 0}.agency-grid{gap:10px}.agency-card{padding:18px 9px;min-height:118px}.agency-card img{height:33px}.agency-card strong{font-size:16px}.agency-card span{font-size:11px}.editorial-card{padding:24px 20px}.history-list{grid-template-columns:1fr;gap:8px}.history-list dd{margin-bottom:18px}.faq-list article{padding:24px 20px}.faq-list h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal,.rise,.hero-bg img{opacity:1!important;transform:none!important}}


.english-name{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.english-brand{color:var(--brand-blue);font-weight:800;white-space:nowrap}.english-divider{color:#9da8bb;margin-left:6px;font-weight:400}.english-name>span:last-child{flex:1;min-width:180px}

.english-name>span:last-child{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.info-card dl{grid-template-columns:82px minmax(0,1fr)}.info-card{padding:24px 20px}.english-name{display:block}.english-brand{display:block;margin-bottom:5px}.english-name>span:last-child{display:block}.info-card dd{overflow-wrap:anywhere}}

@media(max-width:360px){.info-card dl{grid-template-columns:minmax(0,1fr);row-gap:5px}.info-card dd{margin-bottom:13px}.info-card dt{font-size:12px}.info-card dd:last-child{margin-bottom:0}}

.contact-email{color:inherit;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.contact-email:hover{color:var(--brand-blue)}.contact-email:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Approved responsive text breaks only. */
@media(max-width:768px){.pc-br{display:none}}

/* Founding member directory */
.founding-directory{max-width:850px}.founding-directory h3{margin-bottom:16px}
#founder-search{margin:24px 0}#founder-search label{display:block;font-weight:700;margin-bottom:8px}
.founder-search-row{display:flex;gap:12px}.founder-search-row input{flex:1;min-width:0;border:1px solid #b4b7c2;border-radius:12px;padding:14px 16px;font:inherit;background:#fff;color:var(--ink)}
.founder-search-row button{border:0;cursor:pointer;white-space:nowrap;font:inherit;font-weight:700}
.founder-search-row input:focus-visible,.founder-search-row button:focus-visible{outline:3px solid #4663ff;outline-offset:3px}
#founder-status{margin-bottom:0}#founder-results{list-style:none;padding:0;margin:16px 0 0}#founder-results li{padding:16px;border-bottom:1px solid #ddd;overflow-wrap:anywhere}
@media(max-width:480px){.founder-search-row{flex-direction:column}.founder-search-row button{width:100%;justify-content:center}}

/* Keep the hero text legible while preserving the approved education scenes. */
@media(max-width:960px){
  .hero-overlay{background:linear-gradient(90deg,rgba(251,244,231,.95) 0%,rgba(251,244,231,.84) 62%,rgba(251,244,231,.58) 100%)}
}
@media(max-width:600px){
  .hero{padding-bottom:64px}
  .hero-overlay{background:linear-gradient(90deg,rgba(251,244,231,.91),rgba(251,244,231,.79)),linear-gradient(180deg,rgba(251,244,231,.12),rgba(251,244,231,.28))}
  .hero-bg img:nth-child(1){object-position:78% center}
  .hero-bg img:nth-child(2){object-position:70% center}
  .hero-bg img:nth-child(3){object-position:58% center}
  .hero-bg img:nth-child(4){object-position:54% center}
  .hero-media-controls{right:14px;bottom:10px}
  .hero-image-note{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .hero-bg img{opacity:0!important;transform:scale(1.04)!important}
  .hero-bg img.is-active{opacity:1!important}
  .hero-slide-toggle{display:none}
}
