:root{
  /* shared palette */
  --ink-950:#020a1f;
  --ink-900:#03102b;
  --ink-850:#061633;
  --ink-800:#0a1f47;
  --ink-700:#0e2a5e;
  --blue-900:#0a2a7a;
  --blue-700:#1247c8;
  --blue-500:#2b78ff;
  --blue-400:#4a8cff;
  --blue-300:#7fb6ff;
  --cyan:#3ad6ff;
  --cyan-soft:#9be8ff;
  --amber:#f5b324;
  --amber-hi:#ffb84a;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --line-soft:#e6ecf3;
  --line-mid:#d4dde9;
  --bg-page:#f5f7fb;
  --bg-card:#ffffff;
  --text-900:#0b1f3f;
  --text-700:#33405a;
  --text-500:#6b7891;
  --text-400:#8a96ac;
}

*{
  box-sizing:border-box;
}

html,
body{
  margin:0;
  padding:0;
  -webkit-font-smoothing:antialiased;
}

body{
  background:#03102b;
  color:#fff;
  font-family:'Pretendard Variable', Pretendard, -apple-system,
              BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue',
              'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR',
              'Malgun Gothic', sans-serif;
}

body.register-page{
  background:var(--bg-page);
  color:var(--text-900);
}

/* ============== FONT WEIGHT UTILITIES ============== */
.thin     { font-weight: 100; }
.light    { font-weight: 300; }
.regular  { font-weight: 400; }  /* 본문 기본 */
.medium   { font-weight: 500; }  /* 강조 */
.semibold { font-weight: 600; }  /* 소제목 */
.bold     { font-weight: 700; }  /* 제목 */
.extrabold{ font-weight: 800; }
.black    { font-weight: 900; }

/* 중간값도 가능 */
.custom   { font-weight: 450; }

/* ================== TOP NAV ================== */
.nav{
  position:relative;
  z-index:30;
  height:72px;
  background:#03102b;
  border-bottom:1px solid rgba(255,255,255,.06);
  display:flex;
  align-items:center;
  padding:0 40px;
  gap:48px;
}

.brand{
  display:flex;
  flex-direction:column;
  line-height:1.15;
  text-decoration:none;
  color:inherit;
}

.brand-ko{
  font-family:'Space Grotesk', 'Inter', sans-serif;
  font-size:15px;
  letter-spacing:.02em;
  font-weight:900;
  color:#fff;
}

.brand-en{
  font-size:11px;
  color:#3ad6ff;
  letter-spacing:.02em;
}

.nav-links{
  display:flex;
  gap:55px;
  flex:1;
  justify-content:center;
  font-size:16px;
  color:rgba(207,217,238,.65);
}

.nav-links a{
  position:relative;
  color:rgba(255,255,255,.82);
  text-decoration:none;
  transition:color .18s ease;
}
.nav-links a:hover{
  color:#fff;
}
.nav-links a:not(.on)::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:0;
  height:1px;
  background:rgba(255,255,255,.7);
  transform:translateX(-50%);
  transition:width .22s ease;
}
.nav-links a:not(.on):hover::after{
  width:18px;
}

.nav-right{
  display:flex;
  align-items:center;
  gap:14px;
}

.lang{
  display:inline-flex;
  align-items:center;
  background:#0b1f49;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  padding:4px;
  font-size:12px;
}

.lang span,
.lang a{
  padding:5px 12px;
  border-radius:999px;
  color:#9bb1d8;
  text-decoration:none;
  cursor:pointer;
}

.lang span.on,
.lang a.on{
  background:#3ad6ff;
  color:#03102b;
}

.cta-amber{
  background: linear-gradient(135deg, #dceaff 0%, #b8d4ff 60%, #8fb6ff 100%);
    color: #0a2466;
    font-weight: 700;
    font-size: 14px;
    border: none;
    padding: 8px 22px !important;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    letter-spacing: -.01em;
    transition: filter .15s;
    text-decoration: none;
}

/* ================== HERO ================== */
.hero{
  position:relative;
  height:580px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(95% 95% at 78% 50%, #4a82ee 0%, #2964ca 22%, #1a4cae 42%, #133a8c 62%, #0c2566 85%, #081645 100%);
}

/* Speed-line beams sweeping across (mobility motif) */
.beams{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}

.beam{
  position:absolute;
  left:-10%;
  width:140%;
  height:2px;
  background:linear-gradient(90deg,transparent 0%, rgba(190,215,255,0) 8%, rgba(200,220,255,.8) 50%, rgba(190,215,255,0) 92%, transparent 100%);
  transform-origin:50% 50%;
  filter:drop-shadow(0 0 6px rgba(150,180,255,.55)) drop-shadow(0 0 14px rgba(70,120,230,.45));
  opacity:.8;
}

.beam.b1{
  top:46%;
  transform:rotate(-6deg) translateY(-22px);
}

.beam.b2{
  top:50%;
  transform:rotate(-6deg);
  height:3px;
  opacity:1;
  background:linear-gradient(90deg,transparent 0%, rgba(255,255,255,0) 5%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 95%, transparent 100%);
}

.beam.b3{
  top:54%;
  transform:rotate(-6deg) translateY(18px);
  height:1px;
  opacity:.55;
}

.beam.b4{
  top:62%;
  transform:rotate(-6deg) translateY(40px);
  height:1px;
  opacity:.35;
}

.beam.b5{
  top:38%;
  transform:rotate(-6deg) translateY(-50px);
  height:1px;
  opacity:.4;
}

.beam.b6{
  top:30%;
  transform:rotate(-6deg) translateY(-90px);
  height:1px;
  opacity:.22;
}

/* Concentric arcs — wheel/orbit motif */
.orbit{
  position:absolute;
  right:-260px;
  top:50%;
  width:1400px;
  height:1400px;
  transform:translateY(-50%);
  border-radius:50%;
  border:1px solid rgba(140,180,255,.16);
  box-shadow:
    inset 0 0 0 1px rgba(140,180,255,.08),
    0 0 80px rgba(40,90,200,.18);
  z-index:1;
  pointer-events:none;
}

.orbit::before,
.orbit::after{
  content:"";
  position:absolute;
  inset:60px;
  border-radius:50%;
  border:1px solid rgba(140,180,255,.10);
}

.orbit::after{
  inset:160px;
  border-color:rgba(140,180,255,.07);
}

.orbit2{
  position:absolute;
  right:-180px;
  top:50%;
  width:980px;
  height:980px;
  transform:translateY(-50%);
  border-radius:50%;
  border:1px dashed rgba(140,180,255,.14);
  z-index:1;
  pointer-events:none;
}

/* Vertical glow column near center-right */
.glow-col{
  position:absolute;
  left:72%;
  top:50%;
  width:620px;
  height:640px;
  transform:translate(-50%,-50%);
  background:radial-gradient(50% 50% at 50% 50%, rgba(170,205,255,.7) 0%, rgba(80,140,255,.35) 35%, transparent 72%);
  filter:blur(26px);
  z-index:1;
  pointer-events:none;
}

/* Tech grid floor */
.grid{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(140,180,255,.07) 1px,transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.07) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(180deg,transparent 0%, #000 30%, #000 60%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%, #000 30%, #000 60%, transparent 100%);
  opacity:.5;
}

/* particles */
.particle{
  position:absolute;
  border-radius:50%;
  background:#cfeeff;
  box-shadow:0 0 12px rgba(155,232,255,.9), 0 0 30px rgba(80,180,255,.6);
  z-index:2;
  pointer-events:none;
}

/* top-left mobility motif (~40% of hero) */
.topleft{
  position:absolute;
  left:-60px;
  top:-40px;
  width:42%;
  height:80%;
  min-width:560px;
  z-index:1;
  pointer-events:none;
  opacity:.55;
  mask-image:radial-gradient(70% 70% at 30% 35%, #000 0%, #000 55%, transparent 95%);
  -webkit-mask-image:radial-gradient(70% 70% at 30% 35%, #000 0%, #000 55%, transparent 95%);
  filter:drop-shadow(0 0 6px rgba(140,200,255,.35));
}

.topleft svg{
  width:100%;
  height:100%;
  display:block;
}

@keyframes tl-spin{
  to{ transform:rotate(360deg); }
}

@keyframes tl-spin-rev{
  to{ transform:rotate(-360deg); }
}

.topleft .tl-rotate{
  transform-origin:200px 220px;
  animation:tl-spin 90s linear infinite;
}

.topleft .tl-rotate-rev{
  transform-origin:200px 220px;
  animation:tl-spin-rev 60s linear infinite;
}

/* bottom-right compass / radar dial */
.compass{
  position:absolute;
  right:-120px;
  bottom:-160px;
  width:600px;
  height:600px;
  z-index:1;
  pointer-events:none;
  opacity:.85;
  mask-image:radial-gradient(62% 62% at 35% 35%, #000 0%, #000 65%, transparent 98%);
  -webkit-mask-image:radial-gradient(62% 62% at 35% 35%, #000 0%, #000 65%, transparent 98%);
  filter:drop-shadow(0 0 6px rgba(140,200,255,.35));
}

.compass svg{
  width:100%;
  height:100%;
  display:block;
}

@keyframes compass-spin{
  to{ transform:rotate(360deg); }
}

@keyframes compass-spin-rev{
  to{ transform:rotate(-360deg); }
}

.compass .ring-rotate{
  transform-origin:50% 50%;
  animation:compass-spin 80s linear infinite;
}

.compass .ring-rotate-rev{
  transform-origin:50% 50%;
  animation:compass-spin-rev 50s linear infinite;
}

/* Bottom horizon glow */
.horizon{
  position:absolute;
  left:0;
  right:0;
  bottom:-40px;
  height:200px;
  z-index:1;
  background:radial-gradient(60% 100% at 50% 100%, rgba(80,140,240,.35) 0%, rgba(30,80,200,.18) 35%, transparent 70%);
  filter:blur(8px);
  pointer-events:none;
}

/* Vignette to keep text readable */
.vignette{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(8,22,69,.75) 0%, rgba(8,22,69,.45) 25%, rgba(8,22,69,.12) 45%, rgba(8,22,69,0) 60%),
    linear-gradient(180deg, rgba(8,22,69,.30) 0%, rgba(8,22,69,0) 30%, rgba(8,22,69,0) 70%, rgba(8,22,69,.40) 100%);
}

/* Content */
.hero-inner{
  position:relative;
  z-index:5;
  max-width:1440px;
  margin:0 auto;
  height:100%;
  padding:90px 60px 0;
  display:grid;
  grid-template-columns:1fr 420px;
  gap:60px;
  align-items:start;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:#3ad6ff;
  font-size:13px;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:22px;
}

.eyebrow::before{
  content:"";
  width:36px;
  height:1px;
  background:#3ad6ff;
}

.title{
  font-family:'Pretendard',sans-serif;
  font-size:79px;
  line-height:1.02;
  letter-spacing:-0.035em;
  margin:0 0 28px;
  color:#fff;
}

.title .accent{
  background:linear-gradient(180deg,#dceaff 0%, #b8d4ff 60%, #8fb6ff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.title .row{
  display:block;
}

.subtitle{
  font-size:21px;
  line-height:1.7;
  color:#c9d8f3;
  max-width:none;
  margin:0 0 36px;
}

.actions{
  display:flex;
  gap:18px;
  align-items:center;
}

.actions::before{
  content:"";
  display:none;
}

.btn{
  height:54px;
  padding:0 30px;
  border-radius:999px;
  font-size:18px;
  letter-spacing:-.01em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  border:none;
  text-decoration:none;
}

.btn-primary{
  background:linear-gradient(135deg, #dceaff 0%, #b8d4ff 60%, #8fb6ff 100%);
  color:#0a2466;
  box-shadow:none;
  font-size:19px;
}

.btn-primary:hover{
  filter:brightness(1.05);
}

.btn-ghost{
  background:transparent;
  border:1px solid rgba(160,200,255,.45);
  color:#cfe2ff;
}

.btn-ghost:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(200,225,255,.7);
}

.btn-sep{
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(160,200,255,.55);
  box-shadow:0 0 8px rgba(160,200,255,.7);
  align-self:center;
}

/* ================== INFO CARDS ================== */
.info{
  display:flex;
  flex-direction:column;
  gap:12px;
  align-self:center;
  margin-top:0;
}

.card{
  position:relative;
  display:flex;
  align-items:center;
  gap:18px;
  background:linear-gradient(180deg, rgba(14,40,108,.55) 0%, rgba(8,24,72,.55) 100%);
  border:1.5px solid rgba(140,200,255,.55);
  border-radius:18px;
  padding:18px 24px 18px 32px;
  backdrop-filter:blur(14px);
  overflow:hidden;
  box-shadow:
    0 18px 40px -16px rgba(2,10,40,.55),
    inset 0 1px 0 rgba(255,255,255,.10);
}
.card-ico{
  flex:none;
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:32px;
  color:#cfe2ff;
  text-shadow:0 0 18px rgba(150,200,255,.45);
  position:relative;
  z-index:1;
}
.card-body{
  flex:1;
  min-width:0;
  position:relative;
  z-index:1;
}

.card::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;
  width:2px;
  background:linear-gradient(180deg, transparent, #7fb6ff, transparent);
  pointer-events:none;
  z-index:1;
}

.card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}

.card-label{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#cfe2ff;
  display:flex;
  align-items:center;
  gap:9px;
  position:relative;
  z-index:1;
}

.card-label .dot{
  width:3px;
  height:3px;
  border-radius:50%;
  background:#cfe2ff;
  box-shadow:0 0 8px #b8d4ff;
}

.card-label .ko{
  color:#ffffff;
  letter-spacing:.06em;
  font-family:'Pretendard',sans-serif;
  font-size:12px;
}

.card-index{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:11px;
  color:#9bbce8;
  letter-spacing:.18em;
  position:relative;
  z-index:1;
}

.card-main{
  font-family:'Pretendard Variable', Pretendard, sans-serif;
  font-size:24px;
  letter-spacing:.04em;
  line-height:1.1;
  color:#ffffff;
  margin-bottom:6px;
  text-shadow:0 0 24px rgba(150,200,255,.35);
  position:relative;
  z-index:1;
}

.card-main .arrow{
  display:inline-block;
  margin:0 5px;
  opacity:.85;
  color:#b8d4ff;
}

.card-sub{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:11.5px;
  letter-spacing:.18em;
  color:#a8c4ee;
  text-transform:uppercase;
  position:relative;
  z-index:1;
}

/* ── Hero unified schedule card ── */
.card.sched-card{
  display:block;
  padding:22px 28px 24px;
  gap:0;
}
.card.sched-card::before{ display:none; }
.sched-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:30px;
  position:relative;
  z-index:1;
}
.sched-eyebrow{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#ffffff;
}
.sched-year{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:12px;
  letter-spacing:.16em;
  color:#9bbce8;
}
.sched-year-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#7fb6ff;
  box-shadow:0 0 10px rgba(127,182,255,.85);
}
.sched-stats{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  position:relative;
  z-index:1;
}
.sched-col{ display:flex; flex-direction:column; gap:6px; }
.sched-col-r{ text-align:right; align-items:flex-end; }
.sched-label{
  font-size:13px;
  letter-spacing:-.005em;
  color:#cfe2ff;
  opacity:.85;
}
.sched-num{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:34px;
  letter-spacing:-.01em;
  line-height:1;
  color:#ffffff;
  text-shadow:0 0 24px rgba(150,200,255,.35);
}
.sched-col-r .sched-num{
  color:#3ad6ff;
  text-shadow:0 0 18px rgba(58,214,255,.45);
}
.sched-mid{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:13px;
  letter-spacing:.18em;
  color:#cfe2ff;
  white-space:nowrap;
  padding:0 6px;
}
.sched-mid-arrow{
  width:60px;
  height:10px;
  color:#3ad6ff;
  filter:drop-shadow(0 0 6px rgba(58,214,255,.4));
}

/* ================== SCROLL CUE ================== */
.scroll-cue{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:6;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:rgba(207,238,255,.6);
  font-size:11px;
  letter-spacing:.3em;
}

.scroll-cue .line{
  width:1px;
  height:32px;
  background:linear-gradient(180deg, rgba(155,232,255,.7), transparent);
  animation:cue 1.8s ease-in-out infinite;
}

@keyframes cue{
  0%    { transform:scaleY(.3); transform-origin:top; }
  50%   { transform:scaleY(1);  transform-origin:top; }
  50.01%{ transform-origin:bottom; }
  100%  { transform:scaleY(.3); transform-origin:bottom; }
}

/* sweep animation on the brightest beam */
@keyframes sweep{
  0%   { transform:translateX(-12%) rotate(-6deg); opacity:.4; }
  50%  { opacity:1; }
  100% { transform:translateX(12%) rotate(-6deg);  opacity:.4; }
}

.beam.b2{ animation:sweep 7s ease-in-out infinite; }
.beam.b1{ animation:sweep 9s ease-in-out infinite; }
.beam.b3{ animation:sweep 11s ease-in-out infinite -2s; }

@keyframes float{
  0%, 100%{ transform:translateY(0); }
  50%     { transform:translateY(-8px); }
}

.p1{
  top:42%;
  left:38%;
  width:4px;
  height:4px;
  animation:float 5s ease-in-out infinite;
}

.p2{
  top:58%;
  left:62%;
  width:3px;
  height:3px;
  animation:float 6s ease-in-out infinite -1s;
  opacity:.7;
}

.p3{
  top:30%;
  left:70%;
  width:2px;
  height:2px;
  animation:float 7s ease-in-out infinite -2s;
  opacity:.6;
}

.p4{
  top:66%;
  left:48%;
  width:5px;
  height:5px;
  animation:float 4.5s ease-in-out infinite;
}

.p5{
  top:50%;
  left:80%;
  width:2px;
  height:2px;
  animation:float 5.5s ease-in-out infinite -3s;
  opacity:.5;
}

/* ==================== RESPONSIVE ==================== */

/* Laptop ~ 1280px */
@media (max-width: 1280px){
  .hero-inner{
    grid-template-columns:1fr 380px;
    gap:40px;
    padding:80px 40px 0;
  }
  .title{ font-size:64px; }
  .subtitle{ font-size:19px; }
  .nav{
    padding:0 28px;
    gap:32px;
  }
  .nav-links{
    gap:28px;
    font-size:14px;
  }
}

/* Tablet ~ 1024px */
@media (max-width: 1024px){
  .hero{
    height:auto;
    min-height:640px;
  }
  .hero-inner{
    grid-template-columns:1fr;
    gap:32px;
    padding:64px 32px 48px;
  }
  .info{
    margin-top:0;
    max-width:560px;
  }
  .title{ font-size:54px; }
  .subtitle{ font-size:18px; }
  .nav{
    padding:0 24px;
    gap:24px;
    height:64px;
  }
  .nav-links{
    gap:22px;
    font-size:13.5px;
  }
  .compass{
    width:480px;
    height:480px;
    right:-160px;
    bottom:-200px;
  }
  .topleft{
    min-width:420px;
    width:55%;
  }
  .orbit{
    width:1100px;
    height:1100px;
    right:-340px;
  }
  .orbit2{
    width:760px;
    height:760px;
    right:-260px;
  }
}

/* Tablet ~ 820px */
@media (max-width: 820px){
  .nav-links{ display:none; }
  .nav{
    padding:0 20px;
    gap:16px;
  }
  .brand-ko{ font-size:16px; }
  .brand-en{ font-size:10px; }
  .cta-amber{
    padding:9px 14px;
    font-size:14px;
  }
  .title{
    font-size:44px;
    margin-bottom:20px;
  }
  .subtitle{
    font-size:16px;
    line-height:1.65;
    margin-bottom:28px;
  }
  .eyebrow{
    font-size:11px;
    letter-spacing:.18em;
    margin-bottom:16px;
  }
  .btn{
    height:48px;
    padding:0 22px;
    font-size:15px;
  }
  .card-main{ font-size:22px; }
  .card.sched-card{ padding:18px 22px 20px; }
  .sched-num{ font-size:28px; }
  .sched-mid-arrow{ width:48px; }
  .sched-stats{ gap:12px; }
}

/* Mobile ~ 640px */
@media (max-width: 640px){
  .hero{ min-height:auto; }
  .hero-inner{
    padding:48px 20px 40px;
    gap:28px;
  }
  .title{
    font-size:34px;
    letter-spacing:-0.025em;
  }
  .subtitle{ font-size:15px; }
  .subtitle br{ display:none; }
  .actions{
    flex-wrap:wrap;
    gap:12px;
  }
  .btn-sep{ display:none; }
  .btn{
    height:46px;
    padding:0 20px;
    font-size:16px;
    width:100%;
    justify-content:center;
  }
  .card{
    padding:16px 18px 16px 24px;
    border-radius:14px;
  }
  .card-main{ font-size:19px; }
  .card-sub{ font-size:10.5px; }
  .card-label{
    font-size:10px;
    letter-spacing:.22em;
  }
  .card.sched-card{ padding:16px 18px 18px; border-radius:14px; }
  .sched-top{ margin-bottom:12px; }
  .sched-eyebrow{ font-size:11px; letter-spacing:.22em; }
  .sched-year{ font-size:11px; }
  .sched-label{ font-size:12px; }
  .sched-num{ font-size:22px; }
  .sched-mid{ font-size:11px; padding:0; gap:2px; }
  .sched-mid-arrow{ width:36px; height:8px; }
  .sched-stats{ gap:10px; }
  .lang{ display:none; }
  .nav{
    height:58px;
    padding:0 16px;
  }
  .topleft{
    min-width:300px;
    width:80%;
    opacity:.4;
  }
  .compass{
    width:360px;
    height:360px;
    right:-140px;
    bottom:-180px;
    opacity:.7;
  }
  .orbit,
  .orbit2{ display:none; }
  .scroll-cue{ display:none; }
  .info{ gap:10px; }
}

/* Very small ~ 380px */
@media (max-width: 380px){
  .title{ font-size:28px; }
  .brand-ko{ font-size:11.5px; }
  .brand-en{ font-size:9.5px; }
  .cta-amber{
    padding:8px 12px;
    font-size:11px;
  }
}

/* =================================================================
   REGISTER PAGE STYLES
   ================================================================= */

/* ================ TOP BAND (nav + subhero) ================ */
.top{
  position:relative;
  height:280px;
  overflow:hidden;
  color:#fff;
  isolation:isolate;
  background:
    radial-gradient(95% 95% at 78% 50%, #4a82ee 0%, #2964ca 22%, #1a4cae 42%, #133a8c 62%, #0c2566 85%, #081645 100%);
}

.top .grid{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(140,180,255,.07) 1px,transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.07) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:linear-gradient(180deg,transparent 0%, #000 30%, #000 70%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%, #000 30%, #000 70%, transparent 100%);
  opacity:.5;
}

.top .orbit{
  position:absolute;
  right:-180px;
  top:50%;
  width:780px;
  height:780px;
  transform:translateY(-50%);
  border-radius:50%;
  border:1px solid rgba(140,180,255,.16);
  z-index:1;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(140,180,255,.08), 0 0 80px rgba(40,90,200,.18);
}

.top .orbit::before,
.top .orbit::after{
  content:"";
  position:absolute;
  inset:50px;
  border-radius:50%;
  border:1px solid rgba(140,180,255,.10);
}

.top .orbit::after{
  inset:140px;
  border-color:rgba(140,180,255,.07);
}

.top .orbit2{
  position:absolute;
  right:-120px;
  top:50%;
  width:540px;
  height:540px;
  transform:translateY(-50%);
  border-radius:50%;
  border:1px dashed rgba(140,180,255,.14);
  z-index:1;
  pointer-events:none;
}

.top .glow-col{
  position:absolute;
  left:72%;
  top:50%;
  width:520px;
  height:420px;
  transform:translate(-50%,-50%);
  background:radial-gradient(50% 50% at 50% 50%, rgba(170,205,255,.6) 0%, rgba(80,140,255,.3) 35%, transparent 72%);
  filter:blur(26px);
  z-index:1;
  pointer-events:none;
}

.top .beams{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}

.top .beam{
  position:absolute;
  left:-10%;
  width:140%;
  height:2px;
  background:linear-gradient(90deg,transparent 0%, rgba(200,220,255,.8) 50%, transparent 100%);
  filter:drop-shadow(0 0 6px rgba(150,180,255,.55)) drop-shadow(0 0 14px rgba(70,120,230,.45));
  transform-origin:50% 50%;
  animation:none;
}

.top .beam.b1{
  top:46%;
  transform:rotate(-6deg) translateY(-22px);
  opacity:.22;
  animation:none;
}

.top .beam.b2{
  top:50%;
  transform:rotate(-6deg);
  height:2px;
  opacity:.35;
  animation:none;
  background:linear-gradient(90deg,transparent 0%, rgba(255,255,255,.85) 50%, transparent 100%);
}

.top .beam.b3{
  top:54%;
  transform:rotate(-6deg) translateY(18px);
  height:1px;
  opacity:.18;
  animation:none;
}

.top .beam.b4{
  top:62%;
  transform:rotate(-6deg) translateY(40px);
  height:1px;
  opacity:.12;
}

.top .beam.b5{
  top:38%;
  transform:rotate(-6deg) translateY(-50px);
  height:1px;
  opacity:.14;
}

.top .compass{
  position:absolute;
  right:-120px;
  bottom:-220px;
  width:520px;
  height:520px;
  z-index:1;
  pointer-events:none;
  opacity:.85;
  mask-image:radial-gradient(62% 62% at 35% 35%, #000 0%, #000 65%, transparent 98%);
  -webkit-mask-image:radial-gradient(62% 62% at 35% 35%, #000 0%, #000 65%, transparent 98%);
  filter:drop-shadow(0 0 6px rgba(140,200,255,.35));
}

.top .compass svg{
  width:100%;
  height:100%;
  display:block;
}

.top .horizon{
  position:absolute;
  left:0;
  right:0;
  bottom:-40px;
  height:160px;
  z-index:1;
  background:radial-gradient(60% 100% at 50% 100%, rgba(80,140,240,.35) 0%, rgba(30,80,200,.18) 35%, transparent 70%);
  filter:blur(8px);
  pointer-events:none;
}

.top .vignette{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(8,22,69,.75) 0%, rgba(8,22,69,.45) 25%, rgba(8,22,69,.12) 45%, rgba(8,22,69,0) 60%),
    linear-gradient(180deg, rgba(8,22,69,.30) 0%, rgba(8,22,69,0) 30%, rgba(8,22,69,0) 70%, rgba(8,22,69,.40) 100%);
}

/* nav / brand / cta overrides inside .top */
.top .nav{
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.top .cta-amber{
  padding:8px 18px;
}

/* breadcrumbs */
.top .crumbs{
  position:absolute;
  left:60px;
  top:88px;
  font-size:12.5px;
  color:#9bb1d8;
  z-index:6;
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:-.01em;
}

.top .crumbs a{
  color:inherit;
  text-decoration:none;
}

.top .crumbs a:hover{
  color:#cfe2ff;
}

.top .crumbs .sep{
  opacity:.5;
}

.top .crumbs .here{
  color:#cfe2ff;
}

.top .crumbs .home{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

/* subhero */
.subhero-inner{
  position:relative;
  z-index:5;
  max-width:1440px;
  margin:0 auto;
  height:208px;
  padding:0 60px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.subhero-inner .eyebrow{
  font-size:12px;
  margin-bottom:14px;
}

.subhero-inner h1{
  font-family:'Pretendard','Inter',sans-serif;
  font-size:44px;
  line-height:1;
  letter-spacing:-0.035em;
  margin:0;
  text-shadow:0 6px 40px rgba(0,30,90,.6);
}

/* ================ PAGE LAYOUT ================ */
.page{
  max-width:1300px;
  margin:0 auto;
  padding:56px 40px 80px;
  display:grid;
  grid-template-columns:280px 1fr;
  gap:32px;
  align-items:start;
}

/* aside */
.aside{
  position:sticky;
  top:24px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.aside-card{
  background:var(--ink-900);
  color:#cfd9ee;
  border-radius:14px;
  padding:22px 22px 24px;
  border:1px solid rgba(255,255,255,.06);
}

.aside-card h3{
  margin:0 0 14px;
  font-size:16px;
  color:var(--cyan);
  letter-spacing:-.01em;
  display:flex;
  align-items:center;
  gap:9px;
}

.aside-card h3::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--cyan);
}

.aside-card ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:9px;
}

.aside-card li{
  font-size:13px;
  line-height:1.55;
  color:#bcc8e0;
  padding-left:14px;
  position:relative;
}

.aside-card li::before{
  content:"·";
  position:absolute;
  left:2px;
  top:-2px;
  color:var(--cyan);
  font-size:18px;
  line-height:1;
}

.aside-card li ul{
  list-style:none;
  margin:6px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.aside-card li li{
  font-size:12.5px;
  color:#9bb1d8;
  padding-left:12px;
}

.aside-card li li::before{
  content:"-";
  color:#9bb1d8;
  font-size:13px;
  top:0;
  left:0;
}

.aside-card .accent{
  color:#fff;
}

/* pledge download card */
.pledge-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:12px;
  padding:18px;
  box-shadow:0 1px 0 rgba(11,31,63,.03);
}

.pledge-head{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15.5px;
  color:var(--text-900);
  margin-bottom:10px;
}

.pledge-ic{
  width:28px;
  height:28px;
  border-radius:7px;
  background:#eef3ff;
  color:var(--blue-500);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  flex:none;
}

.pledge-desc{
  margin:0 0 14px;
  font-size:14px;
  line-height:1.55;
  color:var(--text-500);
}

.pledge-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  height:42px;
  border-radius:8px;
  background:var(--blue-500);
  color:#fff;
  font-size:13.5px;
  text-decoration:none;
  transition:background .15s;
}

.pledge-btn:hover{
  background:var(--blue-700);
}

.pledge-btn i{
  font-size:12px;
}

/* form card */
.form-card{
  background:var(--bg-card);
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:36px 36px 32px;
  box-shadow:0 1px 0 rgba(11,31,63,.03);
}

.step{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  color:var(--text-900);
  margin:32px 0 18px;
  letter-spacing:-.01em;
}

.step:first-child{
  margin-top:0;
}

.step .num{
  width:24px;
  height:24px;
  border-radius:50%;
  background:#88e5ff;
  color:#03102b;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding-bottom:2px;
  font-size:13px;
  font-family:'Space Grotesk',sans-serif;
}

.step-line{
  height:1px;
  background:linear-gradient(90deg, var(--cyan) 0%, var(--cyan) 18%, var(--line-soft) 18%, var(--line-soft) 100%);
  margin:14px 0 22px;
}

.form-card .row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:14px;
}

.form-card .row.full{
  grid-template-columns:1fr;
}

.field label{
  display:block;
  font-size:14px;
  color:var(--text-700);
  margin-bottom:8px;
  letter-spacing:-.01em;
}

.req{
  color:#d8413a;
  margin-left:2px;
}

.field input,
.field textarea,
.field select{
  width:100%;
  height:44px;
  padding:0 14px;
  border:1px solid var(--line-mid);
  border-radius:8px;
  font:inherit;
  font-size:15px;
  color:var(--text-900);
  background:#fff;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}

.field textarea{
  height:104px;
  padding:12px 14px;
  resize:vertical;
  line-height:1.55;
}

.field input:focus,
.field textarea:focus,
.field select:focus{
  border-color:var(--blue-400);
  box-shadow:0 0 0 3px rgba(74,140,255,.15);
}

.field input::placeholder,
.field textarea::placeholder{
  color:var(--text-400);
}

/* track radio */
.tracks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.track{
  position:relative;
  border:1.5px solid var(--line-mid);
  border-radius:10px;
  padding:14px 16px;
  cursor:pointer;
  background:#fff;
  transition:border-color .15s, background .15s;
}

.track:hover{
  border-color:var(--blue-300);
}

.track input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.track .tt{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:15px;
  color:var(--text-900);
  margin-bottom:4px;
}

.track .tt::before{
  content:"";
  width:16px;
  height:16px;
  border-radius:50%;
  border:1.5px solid var(--line-mid);
  background:#fff;
  flex:none;
}

.track .ts{
  font-size:13.5px;
  color:var(--text-500);
  line-height:1.5;
}

.track input:checked + .tt::before{
  border-color:var(--blue-500);
  background:radial-gradient(circle, var(--blue-500) 0 4px, #fff 5px);
}

.track:has(input:checked){
  border-color:var(--blue-500);
  background:#f3f7ff;
}

/* member box */
.member{
  border:1px solid var(--line-soft);
  border-radius:10px;
  padding:18px 18px 6px;
  background:#fafbfd;
  margin-bottom:12px;
}

.member-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}

.member-head .mt{
  font-size:15px;
  color:var(--text-900);
}

.member-head .mx{
  font-size:13px;
  color:var(--text-500);
  background:none;
  border:none;
  cursor:pointer;
}

.member-del{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:30px;
  padding:0 12px;
  border-radius:8px;
  border:1px solid #f1c5c2;
  background:#fff;
  color:#d8413a;
  font:inherit;
  font-size:13.5px;
  cursor:pointer;
  transition:background .15s, border-color .15s;
}

.member-del:hover{
  background:#fdf2f1;
  border-color:#e89994;
}

.member-del i{
  font-size:12px;
}

.add-member{
  width:100%;
  height:48px;
  border:1.5px dashed var(--line-mid);
  border-radius:10px;
  background:#fff;
  font:inherit;
  font-size:15.5px;
  color:var(--text-700);
  font-weight: 500;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  transition:border-color .15s, color .15s;
}

.add-member i{
  font-size:14px;
}

.add-member:hover{
  border-color:var(--blue-400);
  color:var(--blue-500);
}

.member-count{
  font-size:13px;
  color:var(--text-500);
  margin:8px 2px 0;
}

/* uploads — stacked full-width */
.uploads{
  display:flex;
  flex-direction:column;
  gap:18px;
  margin-bottom:14px;
}

.upload-item{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.upload-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.upload-label{
  font-size:14px;
  color:var(--text-900);
}

.upload-accept{
  font-size:12px;
  color:var(--text-500);
  text-align:right;
  line-height:1.6;
}

.upload{
  position:relative;
  display:block;
  border:1.5px dashed #b8cdf5;
  border-radius:12px;
  background:#f4f7ff;
  padding:16px 22px;
  cursor:pointer;
  transition:border-color .15s, background .15s;
}

.upload:hover{
  border-color:var(--blue-400);
  background:#eef3ff;
}

.upload-input{
  position:absolute;
  width:0;
  height:0;
  opacity:0;
  pointer-events:none;
}

/* empty state */
.upload-empty{
  display:flex;
  align-items:center;
  gap:14px;
}

.upload-ic{
  width:42px;
  height:42px;
  border-radius:10px;
  background:#fff;
  border:1px solid #d8e4fb;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--blue-500);
  font-size:17px;
  flex:none;
}

.upload-text{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex:1;
  min-width:0;
  flex-wrap:wrap;
}

.upload-title{
  font-size:14.5px;
  color:var(--text-900);
}

.upload-desc{
  font-size:13px;
  color:var(--text-500);
}

.upload-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:38px;
  padding:0 20px;
  border-radius:8px;
  border:1.5px solid var(--blue-500);
  background:#fff;
  color:var(--blue-500);
  font-size:13.5px;
  flex:none;
  transition:background .15s;
}

.upload-cta:hover{
  background:#eaf2ff;
}

/* filled state */
.upload-filled{
  display:none;
  align-items:center;
  gap:16px;
}

.upload.has-file{
  border-style:solid;
  border-color:#cfdcff;
  background:#f4f7ff;
  cursor:default;
  padding:14px 18px;
}

.upload.has-file:hover{
  border-color:#b8cdf5;
  background:#eef3ff;
}

.upload.has-file .upload-empty{ display:none; }
.upload.has-file .upload-filled{ display:flex; }
.upload.drag-over{
  border-color:#4a8cff;
  border-style:solid;
  background:#eef4ff;
}
.upload.drag-over .upload-ic{ color:#4a8cff; }
.upload.drag-over .upload-title{ color:#2563eb; }
.file-list{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.file-list .upload-filled{ display:flex; }

.file-ic{
  width:46px;
  height:46px;
  border-radius:10px;
  background:#e7eeff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--blue-500);
  font-size:20px;
  flex:none;
}

.file-info{
  flex:1;
  min-width:0;
}

.file-name{
  font-size:14.5px;
  color:var(--text-900);
  margin-bottom:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.file-meta{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12.5px;
  color:var(--text-500);
}

.file-status{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#16a34a;
}

.file-status i{
  font-size:11px;
}

.file-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex:none;
}

.file-act{
  width:34px;
  height:34px;
  border-radius:8px;
  border:1px solid var(--line-soft);
  background:#fff;
  color:var(--text-500);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:13px;
  transition:background .15s, border-color .15s, color .15s;
}

.file-act:hover{
  border-color:var(--blue-300);
  color:var(--blue-500);
}

.file-act.file-del:hover{
  border-color:#f1c5c2;
  color:#d8413a;
  background:#fdf2f1;
}

/* consent */
.consent{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px 16px;
  background:#fff8e7;
  border:1px solid #f1deaf;
  border-radius:8px;
  margin:18px 0 18px;
  color:#5c4a18;
}

.consent-head{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  cursor:pointer;
}

.consent-head input{
  accent-color:var(--blue-500);
  width:16px;
  height:16px;
  flex:none;
}

.consent-body{
  max-height:200px;
  overflow-y:auto;
  padding:14px 16px;
  background:#fffdf2;
  border:1px solid #f1deaf;
  border-radius:6px;
  font-size:13px;
  line-height:1.7;
  color:#5c4a18;
}

.consent-body p{
  margin:0 0 10px;
}

.consent-body h4{
  font-size:13.5px;
  margin:14px 0 6px;
  color:#4a3a12;
}

.consent-body h4:first-of-type{
  margin-top:4px;
}

.consent-body ul{
  list-style:none;
  margin:0 0 6px;
  padding:0;
}

.consent-body li{
  padding-left:12px;
  position:relative;
}

.consent-body li::before{
  content:"-";
  position:absolute;
  left:2px;
  top:0;
  color:#8a7330;
}

.consent-body::-webkit-scrollbar{
  width:8px;
}

.consent-body::-webkit-scrollbar-thumb{
  background:#e6cd8a;
  border-radius:4px;
}

.consent-body::-webkit-scrollbar-track{
  background:transparent;
}

.submit{
  width:100%;
  height:54px;
  border:none;
  border-radius:10px;
  background:var(--ink-900);
  color:#fff;
  font:inherit;
  font-size:16px;
  letter-spacing:-.01em;
  cursor:pointer;
  transition:background .15s;
}

.submit:hover{
  background:#0e2a5e;
}

/* ================ SCHEDULE / TIMELINE ================ */
.a{
  background:var(--bg-page);
  padding:64px 0 100px;
}

.a-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 40px;
}

.a-hd{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:44px;
}

.a-hd .ey{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:#4f78ea;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  font-family:'Space Grotesk', sans-serif;
  text-transform:uppercase;
}

.a-hd .ey::before{
  content:"";
  width:28px;
  height:1px;
  background:#4f78ea;
}

.a-hd h2{
  font-size:36px;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--text-900);
  margin:10px 0 6px;
}

.a-hd .note{
  font-size:14px;
  color:var(--text-500);
  font-weight:500;
}

.a-legend{
  display:flex;
  align-items:center;
  gap:18px;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:999px;
  padding:8px 18px;
  font-size:13px;
  color:var(--text-700);
  font-weight:600;
}

.a-legend .lg-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.a-legend .lg-dot{
  width:10px;
  height:10px;
  border-radius:50%;
}

.a-legend .lg-on{
  background:#4f78ea;
  box-shadow:0 0 0 3px rgba(79,120,234,.18);
}

.a-legend .lg-off{
  background:#fff;
  border:2px solid #c4cfe2;
}

.a-legend .lg-lbl{
  color:var(--text-700);
  letter-spacing:-.01em;
}

.a-rail{
  position:relative;
  padding-top:8px;
}

.a-rail::before{
  content:"";
  position:absolute;
  left:50%;
  top:14px;
  bottom:14px;
  width:2px;
  transform:translateX(-1px);
  background:linear-gradient(180deg, #4f78ea 0%, #4f78ea 14%, rgba(140,160,200,.35) 14%, rgba(140,160,200,.35) 100%);
}

.a-row{
  position:relative;
  display:grid;
  grid-template-columns:1fr 240px 1fr;
  align-items:start;
  padding:0;
  min-height:140px;
  column-gap:0;
}

.a-row .col{
  padding-top:6px;
}

.a-row .col-c{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding-top:24px;
}

.a-row.l .col-r{
  visibility:hidden;
  height:0;
}

.a-row.r .col-l{
  visibility:hidden;
  height:0;
}

.a-row.l .col-l{
  display:flex;
  justify-content:flex-end;
}

.a-row.r .col-r{
  display:flex;
  justify-content:flex-start;
}

.a-row .a-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:8px;
  padding:6px 22px;
  white-space:nowrap;
}

.a-row .a-date .d{
  font-family:'Space Grotesk', sans-serif;
  font-size:15px;
  font-weight:700;
  color:var(--text-900);
  letter-spacing:.06em;
  line-height:1.15;
}

.a-row.up .a-date{
  border-color:rgba(79,120,234,.4);
}

.a-row.up .a-date .d{
  color:#4f78ea;
}

.a-row .node{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  border:2px solid #c4cfe2;
  z-index:2;
  position:relative;
}

.a-row.up .node{
  background:#4f78ea;
  border-color:#fff;
  box-shadow:0 0 0 3px rgba(79,120,234,.10);
}

.a-row .a-card{
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:14px;
  padding:22px 26px 18px 26px;
  position:relative;
  box-shadow:0 4px 14px -10px rgba(8,30,80,.22);
  width:100%;
  max-width:440px;
  text-align:left;
}

.a-row.l .a-card::after{
  content:"";
  position:absolute;
  right:-9px;
  top:30px;
  width:16px;
  height:16px;
  background:#fff;
  border-right:1px solid var(--line-mid);
  border-top:1px solid var(--line-mid);
  transform:rotate(45deg);
}

.a-row.r .a-card::before{
  content:"";
  position:absolute;
  left:-9px;
  top:30px;
  width:16px;
  height:16px;
  background:#fff;
  border-left:1px solid var(--line-mid);
  border-bottom:1px solid var(--line-mid);
  transform:rotate(45deg);
}

.a-row.up .a-card{
  border-color:rgba(79,120,234,.18);
  background:linear-gradient(180deg,#fafbfe 0%, #fff 60%);
  box-shadow:0 6px 18px -16px rgba(79,120,234,.18);
}

.a-row.up.l .a-card::after{
  border-color:rgba(79,120,234,.18);
  background:#fafbfe;
}

.a-row.up.r .a-card::before{
  border-color:rgba(79,120,234,.18);
  background:#fafbfe;
}

.a-card .step{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  color:#4f78ea;
  text-transform:uppercase;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
}

.a-card .step .pill{
  padding:2px 9px;
  border-radius:999px;
  background:#f3f5fb;
  color:#3a5fcc;
  font-size:11px;
  letter-spacing:.04em;
}

.a-card .ttl{
  font-size:22px;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--text-900);
  margin-bottom:8px;
  line-height:1.25;
}

.a-card .desc{
  font-size:14px;
  color:var(--text-500);
  line-height:1.5;
  font-weight:500;
}

/* ================ COMMUNITY · Q&A ================ */
.h1-sub{
  font-size:15px;
  color:#bcd0f0;
  margin-top:14px;
  letter-spacing:-.01em;
}

.nav-links a.on{
  color:#fff;
  position:relative;
}

.nav-links a.on::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-26px;
  width:24px;
  height:2px;
  background:var(--cyan);
  border-radius:2px;
  box-shadow:0 0 10px var(--cyan);
}

.qa-page{
  background:#eef3fb;
  min-height:600px;
  padding:32px 0 120px;
}

.qa-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 40px;
}

.qa-inner.narrow{
  max-width:880px;
}

.backlink{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:var(--text-500);
  text-decoration:none;
  margin-bottom:18px;
}

.backlink:hover{
  color:var(--text-900);
}

/* utility bar */
.utility{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:28px 0 22px;
  flex-wrap:wrap;
}

.qsearch{
  display:flex;
  gap:8px;
  align-items:center;
}

.qsearch input{
  width:280px;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:10px;
  padding:12px 16px;
  font:inherit;
  font-size:14px;
  color:var(--text-900);
  letter-spacing:-.005em;
  outline:none;
}

.qsearch input:focus{
  border-color:#4f78ea;
  box-shadow:0 0 0 3px rgba(79,120,234,.18);
}

.qsearch .go{
  background:#0b1f49;
  color:#fff;
  border:none;
  border-radius:10px;
  padding:10px 22px;
  font-size:14px;
  cursor:pointer;
  letter-spacing:-.01em;
}

.utility .right{
  display:flex;
  gap:10px;
  align-items:center;
}

.write-btn{
  background:#0b1f49;
  color:#fff;
  border:none;
  border-radius:999px;
  padding:12px 22px;
  font-size:14px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  letter-spacing:-.01em;
}

.write-btn i{
  font-size:12px;
}

/* list meta */
.list-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:10px 0 14px;
  padding:0 4px;
}

.list-meta .count{
  font-size:14px;
  color:var(--text-500);
}

.list-meta .count b{
  color:var(--text-900);
  font-family:'Space Grotesk', sans-serif;
}

/* Q&A list */
.qlist{
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 40px -28px rgba(8,30,80,.25);
}

.qrow{
  display:grid;
  grid-template-columns:90px 1fr 200px 100px;
  gap:28px;
  align-items:center;
  padding:26px 32px;
  border-bottom:1px solid var(--line-soft);
  cursor:pointer;
  transition:background .15s;
  color:inherit;
  text-decoration:none;
}

.qrow:last-child{
  border-bottom:none;
}

.qrow:hover{
  background:#f7faff;
}

.qrow .no{
  font-family:'Space Grotesk', sans-serif;
  font-size:16px;
  color:var(--text-400);
  letter-spacing:-.01em;
}

.qrow .body{
  color:inherit;
  text-decoration:none;
  display:block;
}

.qrow .body .title{
  font-size:17px;
  letter-spacing:-.02em;
  color:var(--text-600);
  line-height:1.4;
  margin-bottom:8px;
}

.qrow .body .meta{
  display:flex;
  gap:18px;
  font-size:13.5px;
  color:#6b7891;
}

.qrow .body .meta b{
  color:#6b7891;
  font-family:'Space Grotesk', sans-serif;
  font-weight:200;
}

.qrow .author{
  font-size:14px;
  letter-spacing:-.01em;
  color:var(--text-500);
}

.qrow .author.op{
  color:#4f78ea;
}

.qrow .status{
  text-align:right;
}

.qrow .status .pill{
  display:inline-block;
  font-size:12px;
  padding:7px 14px;
  border-radius:999px;
  letter-spacing:-.005em;
}

.qrow .status .pill.wait{
  background:#f5f7fc;
  color:var(--text-500);
  border:1px solid var(--line-mid);
}

.qrow .status .pill.done{
  background:#22844a;
  color:#fff;
}

.qrow .status .date{
  font-size:12px;
  color:var(--text-400);
  margin-top:8px;
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

/* notice (pinned) */
.qrow.notice{
  background:linear-gradient(180deg,#f3f7ff 0%,#eaf0fb 100%);
  border-bottom:1px solid #d8e3f4;
  position:relative;
}

.qrow.notice:hover{
  background:linear-gradient(180deg,#eef3fd 0%,#e3ebf8 100%);
}

.qrow.notice::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:#4f78ea;
}

.qrow.notice .no{
  display:flex;
  align-items:center;
  gap:6px;
  color:#4f78ea;
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-family:'Inter','Space Grotesk', sans-serif;
}

.qrow.notice .body .title{
  color:var(--text-600);
}

.qrow.notice .author{
  color:#3a5fcc;
}

.qrow.notice .ans-count{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#4f78ea;
  color:#ffffff;
  font-family:'Space Grotesk', sans-serif;
  font-size:13px;
  letter-spacing: 1px;
  padding:6px 14px;
  border-radius:999px;
  text-decoration:none;
  transition:filter .15s;
}

.qrow.notice .ans-count:hover{
  filter:brightness(0.95);
}

.qrow.notice .ans-count i{
  font-size:11px;
}

/* pagination */
.pager{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:32px;
}

.pager button{
  width:40px;
  height:40px;
  border-radius:10px;
  border:1px solid var(--line-mid);
  background:#fff;
  color:var(--text-700);
  font-size:14px;
  font-family:'Space Grotesk', sans-serif;
  cursor:pointer;
}

.pager button.on{
  background:#0b1f49;
  color:#fff;
  border-color:#0b1f49;
}

.pager .nav-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-500);
}

/* ===== Notice body signature (inside .ans-body) ===== */
.ans-body .nc-sign{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px dashed var(--line-soft);
  font-size:12.5px;
  color:var(--text-500);
}

.ans-body .nc-sign .opt{
  font-size:10.5px;
  background:#4f78ea;
  color:#fff;
  padding:2px 8px;
  border-radius:999px;
  letter-spacing:.04em;
  font-family:'Space Grotesk', sans-serif;
}

.ans-body .nc-sign .nc-when{
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
  color:var(--text-400);
}

/* ===== Notice Q&A thread (inside .ans-reply) ===== */
.qa-thread{
  display:flex;
  flex-direction:column;
  gap:0;
}

/* group = 1 question + its answers + reply form */
.qa-group{
  padding:14px 0 0;
  border-bottom:1px solid var(--line-soft);
}
.qa-group:last-child{ border-bottom:none; }

.thread-item{
  background:none;
  border:none;
  border-radius:0;
  padding:0;
  margin:0;
}

/* question item — 좌(본문) / 우(날짜+답글) 2컬럼 */
.thread-item.q-item{
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:6px 0;
}
.thread-item.q-item .q-main{
  flex:1;
  min-width:0;
}
.thread-item.q-item .q-main .who-t{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--text-900);
  letter-spacing:-.005em;
  margin-bottom:4px;
}
.thread-item.q-item .q-main .txt{
  word-break:break-word;
  overflow-wrap:anywhere;
}
.thread-item.q-item .q-side{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  min-width:90px;
}
.thread-item.q-item .q-side .when{
  font-size:12px;
  color:var(--text-400);
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

/* answer item: arrow + indented body */
.thread-item.a-item{
  display:flex;
  gap:10px;
  margin-left:28px;
  padding:8px 0 4px;
  border-top:1px dashed var(--line-soft);
}

.thread-item.a-item .thread-arrow{
  flex:0 0 auto;
  width:20px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:4px;
  font-size:14px;
  color:#4f78ea;
}

.thread-item.a-item .thread-card{
  flex:1;
  min-width:0;
  background:transparent;
  border:none;
  border-radius:0;
  padding:0;
  display:flex;
  align-items:flex-start;
  gap:18px;
}
.thread-item.a-item .a-main{
  flex:1;
  min-width:0;
}
.thread-item.a-item .a-main .who-t{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--text-900);
  letter-spacing:-.005em;
  margin-bottom:4px;
}
.thread-item.a-item .a-main .txt{
  word-break:break-word;
  overflow-wrap:anywhere;
}
.thread-item.a-item .a-side{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  min-width:90px;
}
.thread-item.a-item .a-side .when{
  font-size:12px;
  color:var(--text-400);
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

.thread-item .who{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:4px;
}

.thread-item .who .who-t{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--text-900);
  letter-spacing:-.005em;
}

.thread-item .who-t .opt{
  font-size:10px;
  background:#4f78ea;
  color:#fff;
  padding:1px 7px;
  border-radius:999px;
  letter-spacing:.04em;
  font-family:'Space Grotesk', sans-serif;
}
.thread-item.a-item .a-main .who-t:has(.opt),
.thread-item .who-t:has(.opt){
  color:#4f78ea;
}
.thread-item.a-item:has(.opt) .thread-card{
  background:#e6ecff;
  border-radius:8px;
  padding:10px 14px;
}

.thread-item .who .when{
  margin-left:auto;
  font-size:12px;
  color:var(--text-400);
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

.thread-item .txt{
  font-size:14px;
  line-height:1.4;
  color:var(--text-700);
  letter-spacing:-.005em;
}

.thread-item .txt p{
  margin:0;
}

/* reply button */
.qa-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:8px;
}
.qa-reply-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:8px;
  padding:6px 14px;
  font-size:12.5px;
  color:var(--text-700);
  cursor:pointer;
  letter-spacing:-.005em;
  font-family:inherit;
  transition:.15s ease;
}
.qa-reply-btn:hover{
  border-color:var(--blue-500);
  color:var(--blue-700);
  background:#f7faff;
}
.qa-reply-btn i{ font-size:11px; }
.qa-reply-btn.active{
  border-color:#4f78ea;
  background:#4f78ea;
  color:#fff;
}

/* reply form */
.qa-reply-form{
  margin:0 0 0 28px;
  padding:12px 14px;
  background:#f7faff;
  border:1px solid #dde7fb;
  border-radius:10px;
}
.qa-reply-form.qa-reply-form-a{
  margin-left:58px;
  margin-top:8px;
}
.qa-reply-form textarea{
  width:100%;
  resize:vertical;
  min-height:64px;
  border:1px solid var(--line-mid);
  border-radius:6px;
  padding:10px 12px;
  font-size:13.5px;
  font-family:inherit;
  line-height:1.55;
  background:#fff;
  color:var(--text-900);
  outline:none;
}
.qa-reply-form textarea:focus{
  border-color:var(--blue-500);
  box-shadow:0 0 0 3px rgba(43,120,255,.12);
}
.qa-reply-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:8px;
}
.qa-reply-form .btn-cancel,
.qa-reply-form .btn-submit{
  border-radius:8px;
  padding:7px 16px;
  font-size:12.5px;
  cursor:pointer;
  letter-spacing:-.005em;
  font-family:inherit;
  transition:.15s ease;
}
.qa-reply-form .btn-cancel{
  background:#fff;
  border:1px solid var(--line-mid);
  color:var(--text-700);
}
.qa-reply-form .btn-cancel:hover{
  border-color:var(--text-500);
  color:var(--text-900);
}
.qa-reply-form .btn-submit{
  background:#0b1f49;
  border:1px solid #0b1f49;
  color:#fff;
}
.qa-reply-form .btn-submit:hover{
  background:#1247c8;
  border-color:#1247c8;
}

/* ===== Answer detail view ===== */
.ans{
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 40px -28px rgba(8,30,80,.25);
}

.ans-hd{
  padding:34px 40px 26px;
  background:linear-gradient(180deg,#f5f8fc 0%, #fff 100%);
  border-bottom:1px solid var(--line-soft);
}

.ans-hd .tags{
  display:flex;
  gap:8px;
  margin-bottom:14px;
}

.ans-hd .tag{
  background:#eef3fb;
  color:#3a5fcc;
  font-size:12px;
  padding:5px 12px;
  border-radius:999px;
}

.ans-hd .tag.sec{
  background:#fef2dd;
  color:#a26d00;
}

.ans-hd h2{
  font-size:30px;
  letter-spacing:-.025em;
  color:var(--text-900);
  margin:0 0 16px;
  line-height:1.3;
}

.ans-hd .meta{
  display:flex;
  gap:18px;
  font-size:13.5px;
  color:var(--text-500);
}

.ans-hd .meta b{
  color:var(--text-700);
  font-weight:200;
}

.ans-body{
  padding:34px 40px 8px;
  font-size:16px;
  line-height:1.85;
  color:var(--text-700);
  letter-spacing:-.005em;
}

.ans-body p{
  margin:0 0 14px;
}

.ans-sep{
  margin:24px 40px 0;
  border:none;
  border-top:1px solid var(--line-soft);
}

.ans-reply{
  padding:28px 40px 36px;
  background:#f7faff;
}

.ans-reply .lab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:#4f78ea;
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:14px;
}

.ans-reply .lab::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:#4f78ea;
  box-shadow:0 0 0 4px rgba(79,120,234,.18);
}

.ans-reply .card{
  display: block !important;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:14px;
  padding:26px 28px;
}

.ans-reply .who{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}

.ans-reply .who .av{
  width:44px;
  height:44px;
  border-radius:50%;
  background:linear-gradient(135deg,#0b1f49,#3a5fcc);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:14px;
}

.ans-reply .who .who-t{
  font-size:15px;
  color:var(--text-900);
  letter-spacing:-.01em;
}

.ans-reply .who .who-s{
  font-size:12.5px;
  color:var(--text-500);
  margin-top:2px;
}

.ans-reply .who .when{
  margin-left:auto;
  font-size:12.5px;
  color:var(--text-400);
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

.ans-reply .txt{
  font-size:16px;
  line-height:1.85;
  color:var(--text-700);
  letter-spacing:-.005em;
}

.ans-reply .txt p{
  margin:0 0 12px;
}

.ans-foot{
  padding:24px 40px 32px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:16px;
  background:#fff;
  border-top:1px solid var(--line-soft);
}

.ans-foot .back{
  background:#0b1f49;
  color:#fff;
  border:none;
  border-radius:999px;
  padding:12px 24px;
  font-size:14px;
  cursor:pointer;
  letter-spacing:-.01em;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}

/* ================ MEMBER CHECK MODAL ================ */
body.mb-locked{
  overflow:hidden;
}

.mb-overlay{
  position:fixed;
  inset:0;
  background:rgba(7,18,42,.66);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:200;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:120px 24px 40px;
  overflow-y:auto;
}

.mb-overlay.show{
  display:flex;
}

.mb-modal{
  width:100%;
  max-width:560px;
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.5);
  position:relative;
}

.mb-close{
  position:absolute;
  top:18px;
  right:18px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.20);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:13px;
  z-index:2;
  transition:background .15s;
}

.mb-close:hover{
  background:rgba(255,255,255,.18);
}

.mb-hd{
  position:relative;
  padding:32px 32px 28px;
  background:linear-gradient(135deg, #2c4eb8 0%, #3568df 55%, #4f78ea 100%);
  color:#fff;
  isolation:isolate;
  overflow:hidden;
}

.mb-hd::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:30px 30px;
  opacity:.5;
  z-index:-1;
}

.mb-eyebrow{
  display:inline-block;
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.22em;
  color:var(--cyan);
  border:1px solid rgba(58,214,255,.45);
  border-radius:999px;
  padding:6px 14px;
  margin-bottom:14px;
  text-transform:uppercase;
}

.mb-hd h2{
  font-size:24px;
  letter-spacing:-.02em;
  margin:0;
  display:flex;
  align-items:center;
  gap:12px;
  line-height:1.2;
}

.mb-hd h2 i{
  color:var(--cyan);
  font-size:20px;
}

.mb-body{
  padding:24px 28px 8px;
}

.mb-info,
.mb-error{
  display:flex;
  align-items:flex-start;
  gap:12px;
  border-radius:10px;
  padding:14px 16px;
  font-size:13.5px;
  line-height:1.55;
  margin-bottom:14px;
}

.mb-info{
  background:#eef3fd;
  border:1px solid #d6e2f6;
  color:#33405a;
}

.mb-info i{
  color:#4f78ea;
  font-size:16px;
  margin-top:2px;
  flex:none;
}

.mb-error{
  background:#fdecec;
  border:1px solid #f0c4c0;
  color:#a82e26;
}

.mb-error i{
  color:#d8413a;
  font-size:16px;
  margin-top:2px;
  flex:none;
}

.mb-error[hidden]{
  display:none;
}

.mb-field{
  margin-bottom:4px;
}

.mb-field label{
  display:block;
  font-size:14px;
  color:var(--text-900);
  margin-bottom:8px;
  letter-spacing:-.01em;
}

.mb-input{
  position:relative;
  display:flex;
  align-items:center;
}

.mb-input > i{
  position:absolute;
  left:14px;
  color:var(--text-400);
  font-size:14px;
  pointer-events:none;
}

.mb-input input{
  width:100%;
  height:48px;
  padding:0 14px 0 40px;
  border:1px solid var(--line-mid);
  border-radius:10px;
  font:inherit;
  font-size:15px;
  color:var(--text-900);
  background:#fff;
  outline:none;
  transition:border-color .15s, box-shadow .15s, background .15s;
}

.mb-input input:focus{
  border-color:var(--blue-500);
  box-shadow:0 0 0 3px rgba(74,140,255,.15);
}

.mb-modal.is-error .mb-input input{
  border-color:#e89994;
  background:#fef6f5;
}

.mb-modal.is-error .mb-input input:focus{
  box-shadow:0 0 0 3px rgba(216,65,58,.15);
}

.mb-hint{
  margin-top:10px;
  font-size:12.5px;
  color:var(--text-500);
  line-height:1.6;
}

.mb-hint code{
  background:#eef3fd;
  color:#33405a;
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  padding:2px 7px;
  border-radius:4px;
}

.mb-foot{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:10px;
  padding:18px 28px 28px;
}

.mb-btn-primary{
  height:50px;
  border-radius:10px;
  border:none;
  background:#1cc1d3;
  color:#fff;
  font:inherit;
  font-size:15.5px;
  letter-spacing:-.01em;
  cursor:pointer;
  transition:background .15s;
}

.mb-btn-primary:hover{
  background:#19adbe;
}

.mb-btn-cancel{
  height:50px;
  border-radius:10px;
  border:1px solid var(--line-mid);
  background:#fff;
  color:var(--text-700);
  font:inherit;
  font-size:15.5px;
  letter-spacing:-.01em;
  cursor:pointer;
  transition:border-color .15s, background .15s;
}

.mb-btn-cancel:hover{
  border-color:var(--blue-300);
  background:#f3f7ff;
}

.mb-success{
  display:flex;
  align-items:flex-start;
  gap:12px;
  border-radius:10px;
  padding:14px 16px;
  font-size:13.5px;
  line-height:1.55;
  margin-bottom:14px;
  background:#e8f5ec;
  border:1px solid #c4e0cc;
  color:#1d6a3a;
}

.mb-success i{
  color:#2e8a4d;
  font-size:16px;
  margin-top:2px;
  flex:none;
}

.mb-control{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid var(--line-mid);
  border-radius:10px;
  font:inherit;
  font-size:15px;
  color:var(--text-900);
  background:#fff;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}

.mb-control::placeholder{
  color:var(--text-400);
}

.mb-control:focus{
  border-color:var(--blue-500);
  box-shadow:0 0 0 3px rgba(74,140,255,.15);
}

.mb-modal.is-error .mb-control{
  border-color:#e89994;
  background:#fef6f5;
}

.mb-modal.is-error .mb-control:focus{
  box-shadow:0 0 0 3px rgba(216,65,58,.15);
}

.mb-area{
  height:auto;
  min-height:160px;
  padding:14px;
  resize:vertical;
  line-height:1.6;
  font-family:inherit;
}

.mb-btn-submit{
  height:50px;
  border-radius:10px;
  border:none;
  background:#0b1f49;
  color:#fff;
  font:inherit;
  font-size:15.5px;
  letter-spacing:-.01em;
  cursor:pointer;
  transition:background .15s;
}

.mb-btn-submit:hover{
  background:#13284f;
}

@media (max-width: 480px){
  .mb-overlay{ padding:20px 14px; }
  .mb-hd{ padding:26px 22px 22px; }
  .mb-hd h2{ font-size:20px; }
  .mb-body{ padding:18px 20px 4px; }
  .mb-foot{ padding:14px 20px 22px; }
  .mb-btn-primary, .mb-btn-cancel, .mb-btn-submit{ height:46px; font-size:14.5px; }
  .mb-area{ min-height:140px; }
}

/* ================ COMPLETE PAGE ================ */
.page-complete{
  max-width:760px;
  margin:0 auto;
  padding:64px 40px 80px;
}

.complete-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:54px 56px 48px;
  text-align:center;
  box-shadow:0 1px 0 rgba(11,31,63,.03);
}

.complete-icon{
  width:84px;
  height:84px;
  border-radius:50%;
  background:#e7eeff;
  color:var(--blue-500);
  font-size:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:24px;
}

.complete-card h2{
  font-size:30px;
  color:var(--text-900);
  margin:0 0 14px;
  letter-spacing:-.02em;
}

.complete-desc{
  font-size:15px;
  color:var(--text-500);
  line-height:1.7;
  margin:0 0 32px;
}

.complete-info{
  border:1.5px dashed var(--line-mid);
  border-radius:12px;
  padding:6px 24px;
  margin:0 0 32px;
  text-align:left;
}

.complete-info .info-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 0;
  border-bottom:1px dashed var(--line-soft);
}

.complete-info .info-row:last-child{
  border-bottom:none;
}

.complete-info dt{
  font-size:14px;
  color:var(--text-500);
}

.complete-info dd{
  margin:0;
  font-size:14.5px;
  color:var(--text-900);
}

.info-code{
  color:var(--blue-500);
  font-family:'Space Grotesk','Pretendard',sans-serif;
  letter-spacing:.04em;
}

.complete-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

.btn-line{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:140px;
  height:46px;
  padding:0 26px;
  border-radius:10px;
  border:1px solid var(--line-mid);
  background:#fff;
  color:var(--text-900);
  font-size:15.5px;
  text-decoration:none;
  transition:border-color .15s, background .15s;
}

.btn-line:hover{
  border-color:var(--blue-300);
  background:#f3f7ff;
}

.btn-fill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:160px;
  height:46px;
  padding:0 26px;
  border-radius:10px;
  background:var(--blue-500);
  color:#fff;
  font-size:15.5px;
  text-decoration:none;
  transition:background .15s;
}

.btn-fill:hover{
  background:var(--blue-700);
}

.btn-fill i{
  font-size:12px;
}

.btn-grad{
  background:linear-gradient(180deg, #4f78ea 0%, #3568df 100%);
  color:#fff;
  border:none;
  box-shadow:0 8px 18px -8px rgba(55,100,220,.7), inset 0 1px 0 rgba(255,255,255,.3);
}

.btn-grad:hover{
  background:linear-gradient(180deg, #5d85ee 0%, #3e72e6 100%);
}

/* ================ FOOTER ================ */
footer{
  background:var(--ink-950);
  color:#9bb1d8;
  padding:48px 40px 28px;
  margin-top:24px;
}

.foot-grid{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
  padding-bottom:28px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.foot-grid h4{
  margin:0 0 14px;
  font-size:13px;
  color:#fff;
  letter-spacing:-.01em;
}

.foot-grid ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:13px;
}

.foot-grid a{
  color:inherit;
  text-decoration:none;
}

.foot-brand .bt{
  font-size:14px;
  color:#fff;
  margin-bottom:10px;
  letter-spacing:-.01em;
}

.foot-brand p{
  margin:0;
  font-size:12.5px;
  line-height:1.7;
}

.foot-contact li{
  display:flex;
  align-items:center;
  gap:8px;
}

.foot-contact .ic{
  color:var(--cyan);
}

.foot-bot{
  max-width:1240px;
  margin:18px auto 0;
  font-size:12px;
  color:#6f82a3;
}

/* ==================== ALERT MODAL ==================== */
.alert-dim{
  position:fixed;
  inset:0;
  background:rgba(8,20,50,.55);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  transition:opacity .18s ease;
}
.alert-dim.hide{
  opacity:0;
  pointer-events:none;
}
.alert-box{
  background:#fff;
  border-radius:16px;
  padding:36px 32px 28px;
  width:min(420px, 90vw);
  text-align:center;
  box-shadow:0 8px 32px -4px rgba(8,20,50,.22);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.alert-ic{
  font-size:28px;
  color:#e07a00;
  line-height:1;
}
.alert-msg{
  font-size:15px;
  font-weight:500;
  color:var(--text-900);
  line-height:1.55;
  margin:0;
}
.alert-ok{
  margin-top:8px;
  padding:10px 32px;
  border-radius:8px;
  background:var(--blue-500);
  color:#fff;
  font-size:14px;
  font-weight:700;
  border:none;
  cursor:pointer;
  transition:background .15s;
}
.alert-ok:hover{ background:#3a65d6; }

/* ==================== RESPONSIVE (register) ==================== */
@media (max-width: 1280px){
  .page{
    grid-template-columns:240px 1fr;
    padding:48px 32px 64px;
    gap:24px;
  }
  .form-card{
    padding:32px 28px 28px;
  }
  .top .nav{
    padding:0 28px;
    gap:32px;
  }
  .top .nav-links{
    gap:28px;
    font-size:14px;
  }
  .top .crumbs{ left:32px; }
  .subhero-inner{ padding:0 32px; }
}

@media (max-width: 1024px){
  .page{
    grid-template-columns:1fr;
    padding:40px 28px 56px;
  }
  .aside{
    position:relative;
    top:0;
  }
  .top .nav{
    padding:0 24px;
    gap:24px;
    height:64px;
  }
  .top .nav-links{
    gap:20px;
    font-size:13.5px;
  }
  .subhero-inner h1{ font-size:38px; }
  .subhero-inner{ padding:0 28px; }
  .top .crumbs{
    left:28px;
    top:80px;
  }
  .foot-grid{
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
}

@media (max-width: 820px){
  .top .nav-links{ display:none; }
  .top .nav{
    padding:0 20px;
    gap:14px;
  }
  .top .brand-ko{ font-size:13px; }
  .top .brand-en{ font-size:10px; }
  .top .cta-amber{
    padding:7px 14px;
    font-size:12px;
  }
  .page{ padding:32px 20px 48px; }
  .form-card{
    padding:28px 22px 24px;
    border-radius:12px;
  }
  .form-card .row{
    grid-template-columns:1fr;
    gap:14px;
  }
  .tracks{ grid-template-columns:1fr; }
  .upload{ padding:14px 16px; }
  .upload-empty{ flex-wrap:wrap; }
  .upload-empty .upload-cta{ width:100%; }
  .subhero-inner h1{ font-size:30px; }
  .step{ font-size:16.5px; }
  footer{ padding:40px 24px 24px; }
  .page-complete{ padding:40px 20px 56px; }
  .complete-card{ padding:40px 28px 32px; }
  .complete-card h2{ font-size:24px; }
  .complete-info{ padding:4px 18px; }
  .complete-info .info-row{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    padding:12px 0;
  }
  .btn-line, .btn-fill{ width:100%; }
}

@media (max-width: 820px){
  .top{ height:auto; min-height:0; }
  .top .nav{ height:58px; padding:0 20px; }
  .top .crumbs{ display:none; }
  .subhero-inner{
    height:auto;
    min-height:0;
    padding:24px 20px 48px;
    align-items:center;
    text-align:center;
  }
  .subhero-inner .eyebrow{ display:none; }
  .subhero-inner h1{ font-size:28px; margin-bottom:0; }
}

@media (max-width: 640px){
  .top{ min-height:auto; }
  .top .nav{
    height:58px;
    padding:0 16px;
  }
  .top .lang{ display:none; }
  .subhero-inner{
    height:auto;
    min-height:0;
    padding:22px 16px 44px;
  }
  .subhero-inner h1{ font-size:24px; margin-bottom:0; }
  .top .crumbs{
    position:static;
    left:auto;
    top:auto;
    margin:0;
    padding:10px 16px 0;
  }
  .subhero-inner .eyebrow{
    font-size:11px;
    letter-spacing:.18em;
    margin-bottom:10px;
  }
  .page{
    padding:24px 16px 40px;
    gap:18px;
  }
  .form-card{ padding:22px 18px 20px; }
  .field input,
  .field textarea,
  .field select{
    height:42px;
    font-size:14.5px;
  }
  .submit{
    height:50px;
    font-size:15.5px;
  }
  .foot-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
  .foot-grid > div:nth-child(2),
  .foot-grid > div:nth-child(3){ display:none; }
  .foot-bot{ font-size:11.5px; }
  .top .compass{ display:none; }
  .top .orbit,
  .top .orbit2{ display:none; }
}

@media (max-width: 380px){
  .subhero-inner h1{ font-size:22px; }
  .top .brand-ko{ font-size:11.5px; }
  .top .brand-en{ font-size:9.5px; }
  .top .cta-amber{
    padding:6px 12px;
    font-size:11px;
  }
}

/* ============== COMMUNITY · Q&A RESPONSIVE ============== */
@media (max-width: 1024px){
  .qa-inner{ padding:0 28px; }
  .qrow{
    grid-template-columns:70px 1fr 140px 90px;
    gap:18px;
    padding:22px 24px;
  }
  .ans-hd, .ans-body, .ans-reply, .ans-foot{
    padding-left:28px;
    padding-right:28px;
  }
  .ans-sep{ margin-left:28px; margin-right:28px; }
  .ans-hd h2{ font-size:26px; }
  .thread-item.a-item{ margin-left:24px; }
  .qa-reply-form{ margin-left:24px; }
}

@media (max-width: 820px){
  .qa-page{ padding:24px 0 80px; }
  .qa-inner{ padding:0 20px; }
  .h1-sub{ font-size:13.5px; margin-top:10px; }
  .nav-links a.on::after{ display:none; }

  .utility{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:20px 0 16px;
  }
  .qsearch{ width:100%; }
  .qsearch input{ flex:1; width:auto; }
  .utility .right{ justify-content:flex-end; }

  /* qrow → stacked card layout */
  .qrow{
    grid-template-columns:1fr;
    gap:10px;
    padding:18px 20px;
  }
  .qrow .no{ font-size:13px; }
  .qrow.notice::before{ width:3px; }
  .qrow .body .title{ font-size:15.5px; line-height:1.45; }
  .qrow .body .meta{ font-size:12.5px; gap:12px; flex-wrap:wrap; }
  .qrow .author{
    font-size:13px;
    order:3;
  }
  .qrow .status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    text-align:left;
    order:4;
  }
  .qrow .status .date{ margin-top:0; }

  /* answer detail view */
  .ans-hd{ padding:24px 22px 18px; }
  .ans-hd h2{ font-size:22px; }
  .ans-hd .meta{ flex-wrap:wrap; gap:10px; font-size:12.5px; }
  .ans-body{ padding:24px 22px 8px; font-size:14.5px; line-height:1.75; }
  .ans-sep{ margin:18px 22px 0; }
  .ans-reply{ padding:22px 22px 26px; }
  .ans-reply .card{ padding:20px 20px; }
  .ans-reply .who{ flex-wrap:nowrap; gap:10px; }
  .ans-reply .who .when{ margin-left:auto; flex-basis:auto; order:initial; white-space:nowrap; font-size:11.5px; }
  .ans-reply .txt{ font-size:14.5px; line-height:1.4; }
  .ans-foot{ padding:18px 22px 24px; }
  .qa-thread{ gap:0; }
  .qa-group{ padding:12px 0 0; }
  .thread-item.a-item{ margin-left:16px; gap:8px; }
  .thread-item.a-item .thread-arrow{ width:16px; padding-top:4px; font-size:13px; }
  .thread-item .who .when{ margin-left:0; flex-basis:100%; order:5; }
  .thread-item .txt{ font-size:13.5px; line-height:1.6; }
  .qa-reply-form{ margin-left:16px; padding:10px 12px; }
  .qa-reply-btn{ padding:5px 12px; font-size:12px; }

  /* q-item / a-item: 좁은 화면에서는 세로 스택 */
  .thread-item.q-item{ flex-direction:column; gap:8px; }
  .thread-item.q-item .q-side{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-width:0;
  }
  .thread-item.a-item .thread-card{ flex-direction:column; gap:8px; }
  .thread-item.a-item .a-side{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-width:0;
  }
  .qa-reply-form.qa-reply-form-a{ margin-left:36px; }

  .pager button{ width:36px; height:36px; font-size:13px; }
}

@media (max-width: 480px){
  .qa-inner{ padding:0 14px; }
  .qrow{ padding:16px 16px; }
  .qrow .body .title{ font-size:15px; }
  .ans-hd, .ans-body, .ans-reply, .ans-foot{
    padding-left:18px;
    padding-right:18px;
  }
  .ans-sep{ margin-left:18px; margin-right:18px; }
  .ans-hd h2{ font-size:20px; }
  .thread-item.a-item{ margin-left:12px; }
  .qa-reply-form{ margin-left:12px; }
}

/* ============== SCHEDULE / TIMELINE RESPONSIVE ============== */
@media (max-width: 1100px){
  .a-row{ grid-template-columns:1fr 200px 1fr; }
  .a-row .a-card{ width:auto; max-width:100%; }
}

@media (max-width: 1024px){
  .a{ padding:48px 0 80px; }
  .a-inner{ padding:0 28px; }
  .a-hd h2{ font-size:30px; }
  .a-row{ grid-template-columns:1fr 180px 1fr; min-height:auto; }
  .a-card .ttl{ font-size:20px; }
}

@media (max-width: 820px){
  .a{ padding:40px 0 64px; }
  .a-inner{ padding:0 20px; }

  .a-hd{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
    margin-bottom:32px;
  }
  .a-hd h2{ font-size:26px; }

  /* rail snapped to the left */
  .a-rail::before{
    left:11px;
    transform:none;
    top:10px;
    bottom:10px;
  }

  .a-row{
    grid-template-columns:32px 1fr;
    grid-template-rows:auto auto;
    column-gap:14px;
    row-gap:8px;
    min-height:auto;
    padding:8px 0;
  }

  /* let date + node be placed directly into the row grid */
  .a-row .col-c{
    display:contents;
  }

  .a-row .node{
    grid-column:1;
    grid-row:1;
    width:14px;
    height:14px;
    margin-top:6px;
    margin-left:4px;
  }

  .a-row .a-date{
    grid-column:2;
    grid-row:1;
    align-self:flex-start;
    flex-direction:row;
    padding:4px 10px;
    border-radius:6px;
  }

  .a-row .a-date .d{
    font-size:13px;
    letter-spacing:.03em;
  }

  /* whichever side holds the card, place it in row 2 col 2 */
  .a-row.l .col-l,
  .a-row.r .col-r{
    grid-column:2;
    grid-row:2;
    visibility:visible;
    height:auto;
    display:block;
    justify-content:flex-start;
    padding-top:0;
  }

  .a-row.l .col-r,
  .a-row.r .col-l{
    display:none;
  }

  .a-row .a-card{
    width:auto;
    padding:16px 18px;
  }

  /* hide the speech-bubble arrows on mobile */
  .a-row.l .a-card::after,
  .a-row.r .a-card::before{
    display:none;
  }

  .a-card .ttl{ font-size:18px; }
  .a-card .desc{ font-size:14.5px; }
}

@media (max-width: 480px){
  .a-hd h2{ font-size:22px; }
  .a-legend{
    padding:6px 14px;
    gap:14px;
    font-size:12px;
  }
  .a-card .ttl{ font-size:17px; }
}

/* ==========================================================
   GUIDE (Mission) Page — 콘테스트 가이드 / 개발 미션 안내
   ========================================================== */
.guide-page{
  background:var(--bg-page);
  color:var(--text-900);
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}

/* ===== TABS ===== */
.guide-page .tabs-wrap{
  background:#fff;
  border-bottom:1px solid var(--line-soft);
  box-shadow:0 2px 14px -8px rgba(11,31,73,.10);
}
.guide-page .tabs{
  max-width:1300px;
  margin:0 auto;
  padding:0;
  display:flex;
  flex-wrap:wrap;
}
.guide-page .tab{
  position:relative;
  background:none;
  border:none;
  cursor:pointer;
  padding:22px 26px;
  font-family:inherit;
  font-size:16px;
  color:var(--text-500);
  letter-spacing:-.01em;
  transition:color .15s;
  white-space:nowrap;
}
.guide-page .tab::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:2px;
  background:var(--blue-500);
  transform:scaleX(0);
  transition:transform .22s;
  border-radius:2px 2px 0 0;
}
.guide-page .tab:hover{ color:var(--ink-900); }
.guide-page .tab.on{ color:var(--blue-500); }
.guide-page .tab.on::after{ transform:scaleX(1); }

/* tab panels */
.guide-page .tab-panel{ display:none; }
.guide-page .tab-panel.on{ display:block; }

/* tutorial empty placeholder */
.guide-page .tutorial-empty{
  position:relative;
  background:linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
  border:1px solid var(--line-soft);
  border-radius:24px;
  padding:96px 40px 90px;
  text-align:center;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 22px 60px -30px rgba(11,31,73,.18);
  overflow:hidden;
}
.guide-page .tutorial-empty::before{
  content:"";
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%);
  width:560px;
  height:280px;
  background:radial-gradient(ellipse at center top, rgba(80,140,255,.15) 0%, transparent 65%);
  pointer-events:none;
}
.guide-page .te-ico{
  position:relative;
  width:78px;
  height:78px;
  border-radius:22px;
  margin:0 auto 24px;
  background:linear-gradient(135deg, #e9f0ff 0%, #d6e3ff 100%);
  color:var(--blue-700);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:30px;
  box-shadow:0 14px 28px -14px rgba(43,120,255,.4), inset 0 1px 0 rgba(255,255,255,.6);
}
.guide-page .te-label{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--blue-700);
  text-transform:uppercase;
  margin-bottom:14px;
}
.guide-page .te-label::before,
.guide-page .te-label::after{
  content:"";
  width:22px;
  height:1.5px;
  background:var(--blue-300);
  border-radius:2px;
}
.guide-page .te-title{
  position:relative;
  font-size:28px;
  letter-spacing:-.025em;
  color:var(--ink-900);
  margin:0 0 14px;
  line-height:1.3;
}
.guide-page .te-desc{
  position:relative;
  font-size:15px;
  line-height:1.7;
  color:var(--text-500);
  margin:0 auto 30px;
  letter-spacing:-.005em;
  max-width:520px;
  word-break:keep-all;
}
.guide-page .te-meta{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:999px;
  padding:8px 18px 8px 14px;
  box-shadow:0 6px 18px -10px rgba(11,31,73,.18);
}
.guide-page .te-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#2b78ff;
  box-shadow:0 0 0 0 rgba(43,120,255,.6);
  animation:rcPulse 1.8s ease-out infinite;
}
.guide-page .te-cap{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--blue-700);
  text-transform:uppercase;
}
.guide-page .te-date{
  font-size:13.5px;
  color:var(--ink-900);
  letter-spacing:-.005em;
  font-family:'Space Grotesk', sans-serif;
}

@media (max-width: 720px){
  .guide-page .tutorial-empty{ padding:64px 24px 60px; border-radius:18px; }
  .guide-page .te-ico{ width:64px; height:64px; font-size:24px; margin-bottom:20px; }
  .guide-page .te-title{ font-size:22px; }
  .guide-page .te-desc{ font-size:14px; margin-bottom:24px; }
  .guide-page .te-label::before,
  .guide-page .te-label::after{ width:16px; }
}

@media (max-width: 480px){
  .guide-page .tutorial-empty{ padding:48px 18px 44px; }
  .guide-page .te-title{ font-size:20px; }
  .guide-page .te-meta{ padding:7px 14px 7px 12px; gap:8px; }
  .guide-page .te-date{ font-size:12.5px; }
}

/* ===== PAGE BODY ===== */
.guide-page .a{
  background:var(--bg-page);
  padding:64px 0 140px;
}
.guide-page .a-inner{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px;
}

.guide-page .page-title{
  margin-bottom:36px;
  padding-bottom:24px;
  border-bottom:2px solid var(--ink-900);
}
.guide-page .page-title .ey{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:11.5px;
  letter-spacing:.22em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  margin-bottom:14px;
  text-transform:uppercase;
}
.guide-page .page-title .ey::before{
  content:"";
  width:26px;
  height:2px;
  background:var(--blue-700);
  border-radius:2px;
}
.guide-page .page-title h1{
  font-size:36px;
  letter-spacing:-.028em;
  margin:0;
  color:var(--ink-900);
  line-height:1.1;
}

.guide-page .inner-head{
  display:flex;
  align-items:flex-end;
  gap:14px;
  margin-bottom:22px;
  justify-content:space-between;
  flex-wrap:wrap;
}
.guide-page .inner-head .l{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.guide-page .inner-head .ey{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  letter-spacing:.22em;
  font-family:'Space Grotesk', sans-serif;
  color:var(--blue-700);
  text-transform:uppercase;
  padding:5px 10px;
  border-radius:6px;
  background:#eef3fb;
}
.guide-page .inner-head .ey.amber { background:#fef3dd; color:#a26d00; }
.guide-page .inner-head .ey.cyan  { background:#dbf6fb; color:#0c91b4; }
.guide-page .inner-head .ey.violet{ background:#eee6fa; color:#7536bb; }
.guide-page .inner-head h3{
  margin:0;
  font-size:22px;
  letter-spacing:-.02em;
  color:var(--ink-900);
  line-height:1.2;
}

/* ===== INTRO — 이 대회에 대하여 ===== */
.guide-page .about-card{
  position:relative;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:48px 52px 52px;
  overflow:hidden;
  isolation:isolate;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 8px 28px -22px rgba(11,31,73,.15);
  margin-bottom:38px;
}
.guide-page .about-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(43,120,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(43,120,255,.05) 1px, transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse 60% 80% at 100% 0%, #000 0%, transparent 65%);
  -webkit-mask-image:radial-gradient(ellipse 60% 80% at 100% 0%, #000 0%, transparent 65%);
}
.guide-page .about-card::after{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:5px;
  background:linear-gradient(180deg, var(--blue-500) 0%, var(--cyan) 100%);
  z-index:1;
}
.guide-page .about-inner{
  position:relative;
  z-index:2;
}
.guide-page .about-head{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:32px;
  padding-bottom:24px;
  border-bottom:1px dashed var(--line-mid);
}
.guide-page .about-head .tx{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.guide-page .about-head .ey-en{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.24em;
  color:var(--blue-700);
  text-transform:uppercase;
  line-height:1;
}
.guide-page .about-head .ko-title{
  font-size:24px;
  letter-spacing:-.024em;
  line-height:1.15;
  color:var(--ink-900);
  margin:0;
}
.guide-page .about-body{
  display:flex;
  flex-direction:column;
  gap:0;
}
.guide-page .about-text{
  font-size:16px;
  line-height:1.95;
  color:var(--text-700);
  letter-spacing:-.005em;
  margin:0 0 18px;
  max-width:1008px;
  word-break: keep-all;
}
.guide-page .about-text:last-of-type{ margin-bottom:0; }
.guide-page .about-text b{ color:var(--ink-900); }

/* 안내 강조 박스 (💡 미션 예제 안내) */
.guide-page .about-hint{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-top:28px;
  padding:18px 22px;
  background:linear-gradient(135deg, rgba(43,120,255,.06), rgba(34,211,238,.06));
  border:1px solid rgba(43,120,255,.16);
  border-radius:14px;
}
.guide-page .about-hint .hint-ic{
  font-size:20px;
  line-height:1.6;
  flex-shrink:0;
}
.guide-page .about-hint p{
  margin:0;
  font-size:15px;
  line-height:1.85;
  color:var(--text-700);
  letter-spacing:-.005em;
  word-break:keep-all;
}
.guide-page .about-hint p b{ color:var(--blue-700); }

/* ===== DEV THEME / 3 MISSION PILLARS ===== */
.guide-page .theme-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:40px 44px;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 8px 28px -22px rgba(11,31,73,.15);
  margin-bottom:38px;
}
.guide-page .theme-hd{
  display:flex;
  align-items:flex-end;
  gap:24px;
  margin-bottom:28px;
  padding-bottom:24px;
  border-bottom:1px dashed var(--line-mid);
  justify-content:space-between;
  flex-wrap:wrap;
}
.guide-page .theme-hd .l{ max-width:760px; }
.guide-page .theme-title{
  font-size:26px;
  letter-spacing:-.022em;
  color:var(--ink-900);
  line-height:1.2;
  margin:0 0 14px;
}
.guide-page .theme-title .tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#eaf2ff;
  color:var(--blue-700);
  font-size:11px;
  letter-spacing:.18em;
  font-family:'Space Grotesk', sans-serif;
  padding:5px 10px;
  border-radius:6px;
  vertical-align:middle;
  margin-right:10px;
  text-transform:uppercase;
}
.guide-page .theme-headline{
  font-size:30px;
  letter-spacing:-.028em;
  color:var(--ink-900);
  line-height:1.15;
  margin-bottom:16px;
}
.guide-page .theme-desc{
  font-size:16px;
  line-height:1.7;
  color:var(--text-700);
  margin:0;
  letter-spacing:-.005em;
}
.guide-page .theme-desc b{ color:var(--ink-900); }
.guide-page .theme-hd .r{
  flex:none;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--text-500);
  font-size:12.5px;
  letter-spacing:-.01em;
  background:#f4f7fc;
  border:1px solid var(--line-soft);
  border-radius:999px;
  padding:8px 14px;
}
.guide-page .theme-hd .r b{
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
}

.guide-page .pillars{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  align-items:stretch;
  gap:18px;
}
.guide-page .pillar{
  position:relative;
  background:linear-gradient(180deg, #fafcff 0%, #f3f7fd 100%);
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:28px 26px 26px;
  overflow:hidden;
  isolation:isolate;
}
.guide-page .pillar::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:4px;
}
.guide-page .pillar.a::before{ background:linear-gradient(180deg, #4f9bff, #2b78ff); }
.guide-page .pillar.b::before{ background:linear-gradient(180deg, #6b7bff, #3a47d6); }
.guide-page .pillar.c::before{ background:linear-gradient(180deg, #6cd0e0, #2599c4); }
.guide-page .pillar .ltr{
  position:absolute;
  right:18px;
  top:14px;
  font-size:80px;
  font-family:'Space Grotesk', sans-serif;
  color:rgba(11,31,63,.05);
  line-height:1;
  letter-spacing:-.04em;
  pointer-events:none;
  z-index:0;
}
.guide-page .pillar .badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:10px;
  color:#fff;
  font-family:'Space Grotesk', sans-serif;
  font-size:17px;
  margin-bottom:14px;
  position:relative;
  z-index:1;
}
.guide-page .pillar.a .badge{
  background:linear-gradient(135deg, #4f9bff, #2b78ff);
  box-shadow:0 6px 18px -6px rgba(43,120,255,.55), inset 0 1px 0 rgba(255,255,255,.25);
}
.guide-page .pillar.b .badge{
  background:linear-gradient(135deg, #6b7bff, #3a47d6);
  box-shadow:0 6px 18px -6px rgba(58,71,214,.55), inset 0 1px 0 rgba(255,255,255,.22);
}
.guide-page .pillar.c .badge{
  background:linear-gradient(135deg, #6cd0e0, #2599c4);
  box-shadow:0 6px 18px -6px rgba(37,153,196,.55), inset 0 1px 0 rgba(255,255,255,.4);
}
.guide-page .pillar h3{
  font-size:18px;
  letter-spacing:-.018em;
  color:var(--ink-900);
  margin:0 0 4px;
  position:relative;
  z-index:1;
}
.guide-page .pillar .sub{
  font-size:16px;
  color:var(--text-500);
  margin-bottom:14px;
  letter-spacing:-.005em;
  position:relative;
  z-index:1;
}
.guide-page .pillar p{
  font-size:14.5px;
  line-height:1.65;
  color:var(--text-700);
  margin:0;
  letter-spacing:-.005em;
  position:relative;
  z-index:1;
}
.guide-page .pillar p b{
  color:var(--ink-900);
  background:linear-gradient(180deg, transparent 60%, rgba(58,214,255,.28) 60%);
}

/* ===== MISSION DETAILS ===== */
.guide-page .details-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:0;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 8px 28px -22px rgba(11,31,73,.15);
  margin-bottom:38px;
}
.guide-page .details-head{
  padding:34px 44px 24px;
  border-bottom:1px solid var(--line-soft);
}
.guide-page .details-rows{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.guide-page .drow{
  display:grid;
  grid-template-columns:200px 1fr;
  align-items:start;
  padding:22px 32px;
  border-bottom:1px solid var(--line-soft);
  border-right:1px solid var(--line-soft);
  gap:18px;
}
.guide-page .drow:nth-child(2n){ border-right:none; }
.guide-page .drow:nth-last-child(-n+2){ border-bottom:none; }
.guide-page .drow .k{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:15px;
  color:var(--blue-700);
  letter-spacing:-.005em;
}
.guide-page .drow .k .num{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  color:var(--text-400);
  background:#f0f4fb;
  border:1px solid var(--line-soft);
  width:24px;
  height:24px;
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.guide-page .drow .v{
  font-size:15px;
  line-height:1.6;
  color:var(--text-900);
  letter-spacing:-.005em;
}
.guide-page .drow .v b{ color:var(--ink-900); }
.guide-page .drow.full{
  grid-column:1 / -1;
  border-right:none;
  background:linear-gradient(90deg, #f7faff 0%, #fafcff 100%);
}
.guide-page .drow.full .v{ font-size:16.5px; }
.guide-page .drow.full .v .pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#0b1f49;
  color:#fff;
  border-radius:999px;
  padding:4px 10px;
  font-size:11px;
  margin-right:6px;
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:.04em;
}

/* Generic section card */
.guide-page .sec-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:34px 36px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 8px 28px -22px rgba(11,31,73,.15);
  margin-bottom:38px;
}

/* ===== TUTORIAL — 참고 영상 ===== */
.guide-page .tut-lead{
  font-size:16px;
  color:var(--text-700);
  line-height:1.75;
  letter-spacing:-.005em;
  margin:-2px 0 28px;
  max-width:918px;
}
.guide-page .tut-lead b{
  color:var(--blue-700);
  background:linear-gradient(180deg, transparent 62%, rgba(58,214,255,.32) 62%);
}

.guide-page .tut-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
  counter-reset:tut;
}
.guide-page .tut-card{
  counter-increment:tut;
  position:relative;
  background:#fff;
  border:1px solid var(--line-mid);
  border-radius:16px;
  padding:22px 22px 20px;
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:.18s;
  overflow:hidden;
}
.guide-page .tut-card:hover{
  transform:translateY(-2px);
  border-color:var(--blue-300);
  box-shadow:0 18px 36px -24px rgba(11,31,73,.28);
}
.guide-page .tut-card .bg-ico{
  position:absolute;
  right:-18px;
  top:-22px;
  width:120px;
  height:120px;
  color:#7fb9ff;
  opacity:.12;
  z-index:0;
  pointer-events:none;
  font-size:110px;
  line-height:120px;
  text-align:center;
  transition:.2s;
}
.guide-page .tut-card:hover .bg-ico{
  opacity:.18;
  transform:rotate(-4deg);
}
.guide-page .tut-card .head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:10px;
}
.guide-page .tut-card .head h4{
  font-size:18px;
  letter-spacing:-.02em;
  color:var(--ink-900);
  margin:0;
  line-height:1.15;
}
.guide-page .tut-card .head h4::before{
  content:counter(tut, decimal-leading-zero);
  display:inline-block;
  margin-right:10px;
  font-family:'Space Grotesk', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--blue-300);
  opacity:.95;
  vertical-align:1px;
}
.guide-page .tut-card .desc{
  position:relative;
  z-index:1;
  font-size:15px;
  line-height:1.7;
  color:var(--text-700);
  letter-spacing:-.005em;
  margin:0;
  flex:1;
}
.guide-page .tut-card .foot{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding-top:14px;
  border-top:1px dashed var(--line-mid);
}
.guide-page .tut-card .chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#f5f8fc;
  border:1px solid var(--line-mid);
  color:var(--text-700);
  font-size:13px;
  letter-spacing:-.005em;
  padding:7px 16px;
  border-radius:8px;
  text-decoration:none;
  transition:.15s;
}
.guide-page .tut-card .chip:hover{
  border-color:var(--blue-500);
  color:var(--blue-700);
  background:#f0f6ff;
  transform:translateY(-1px);
}
.guide-page .tut-card .chip i{
  flex:none;
  color:var(--blue-500);
  font-size:10px;
}

/* ===== TUTORIAL — 튜토리얼 영상 ===== */
.guide-page .tut-video{
  position:relative;
  max-width:960px;
  margin:0 auto;
  border:1px solid var(--line-mid);
  border-radius:16px;
  background:#0b1f49;
  overflow:hidden;
  box-shadow:0 22px 60px -30px rgba(11,31,73,.35);
}
.guide-page .tut-video::before{
  content:"";
  display:block;
  padding-top:56.25%; /* 16:9 */
}
.guide-page .tut-video iframe{
  position:absolute;
  top:0; left:0;
  width:100%;
  height:100%;
  border:0;
}

/* ===== GUIDELINES ===== */
.guide-page .guide-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.guide-page .guide-card{
  position:relative;
  background:#fafcff;
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:24px 26px 26px 76px;
  overflow:hidden;
}
.guide-page .guide-card .ico{
  position:absolute;
  left:22px;
  top:24px;
  width:38px;
  height:38px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.guide-page .guide-card.x1 .ico{ background:#eaf2ff; color:var(--blue-700); }
.guide-page .guide-card.x2 .ico{ background:#fef3dd; color:#a26d00; }
.guide-page .guide-card h4{
  font-size:17px;
  letter-spacing:-.018em;
  color:var(--ink-900);
  margin:0 0 10px;
}
.guide-page .guide-card p{
  font-size:15px;
  line-height:1.7;
  color:var(--text-700);
  margin:0;
  letter-spacing:-.005em;
}
.guide-page .guide-card p b{ color:var(--ink-900); }
.guide-page .guide-lead{
  font-size:18px;
  color:var(--text-700);
  letter-spacing:-.01em;
  margin:-6px 0 22px;
  padding-bottom:18px;
  border-bottom:1px dashed var(--line-mid);
}

/* ===== EVALUATION ===== */
.guide-page .eval-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
.guide-page .eval{
  position:relative;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:16px;
  padding:24px 22px 26px;
  overflow:hidden;
  transition:.15s;
}
.guide-page .eval:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px -22px rgba(11,31,73,.3);
  border-color:var(--blue-300);
}
.guide-page .eval .num{
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  color:var(--blue-700);
  letter-spacing:.06em;
  margin-bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
}
.guide-page .eval .num .total{
  flex:none;
  color:var(--text-400);
  letter-spacing:0;
}
.guide-page .eval .num::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg, var(--blue-300), transparent);
}
.guide-page .eval h4{
  font-size:18px;
  letter-spacing:-.02em;
  color:var(--ink-900);
  margin:0 0 10px;
}
.guide-page .eval p{
  font-size:14.5px;
  line-height:1.65;
  color:var(--text-700);
  margin:0;
  letter-spacing:-.005em;
  word-break: keep-all;
}
.guide-page .eval .glyph{
  position:absolute;
  right:-14px;
  bottom:-14px;
  width:84px;
  height:84px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(43,120,255,.06), transparent 70%);
  pointer-events:none;
}
.guide-page .eval-summary{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(95deg, #f0f5fd 0%, #f7faff 100%);
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:18px 24px;
  font-size:13px;
  color:var(--text-700);
  letter-spacing:-.005em;
  flex-wrap:wrap;
  gap:12px;
}
.guide-page .eval-summary .l{
  display:flex;
  align-items:center;
  gap:14px;
}
.guide-page .eval-summary .l i{ color:var(--blue-700); font-size:18px; }
.guide-page .eval-summary .r{
  display:flex;
  gap:8px;
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--text-500);
  text-transform:uppercase;
}
.guide-page .eval-summary .r b{ color:var(--blue-700); }

/* Bottom CTA */
.guide-page .bottom-cta{
  margin-top:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:16px;
  padding:24px 32px;
  box-shadow:0 1px 0 rgba(11,31,73,.02);
  flex-wrap:wrap;
  gap:18px;
}
.guide-page .bottom-cta .l{
  font-size:14px;
  color:var(--text-700);
  letter-spacing:-.005em;
}
.guide-page .bottom-cta .l b{
  color:var(--ink-900);
  display:block;
  font-size:17px;
  margin-bottom:4px;
  letter-spacing:-.015em;
}
.guide-page .bottom-cta .actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.guide-page .bottom-cta .actions a{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 28px;
  border-radius:10px;
  font-size:15.5px;
  letter-spacing:-.01em;
  border:1px solid var(--line-mid);
  color:var(--text-700);
  background:#fff;
  transition:.15s;
}
.guide-page .bottom-cta .actions a:hover{
  border-color:var(--blue-500);
  color:var(--blue-700);
  background:#f7faff;
}
.guide-page .bottom-cta .actions a.prim{
  background:#0b1f49;
  color:#fff;
  border-color:#0b1f49;
}
.guide-page .bottom-cta .actions a.prim:hover{
  background:#1247c8;
  border-color:#1247c8;
  color:#fff;
}
.guide-page .bottom-cta .actions a.btn-grad{
  background:linear-gradient(180deg, #4f78ea 0%, #3568df 100%);
  color:#fff;
  border:none;
  box-shadow:0 8px 18px -8px rgba(55,100,220,.7), inset 0 1px 0 rgba(255,255,255,.3);
}
.guide-page .bottom-cta .actions a.btn-grad:hover{
  background:linear-gradient(180deg, #5d85ee 0%, #3e72e6 100%);
  color:#fff;
}

/* ===========================================================
   GUIDE PAGE — RESPONSIVE
   =========================================================== */
@media (max-width: 1200px){
  .guide-page .tabs,
  .guide-page .a-inner{ padding:0 28px; }
  .guide-page .theme-card{ padding:36px 32px; }
  .guide-page .sec-card{ padding:30px 28px; }
  .guide-page .details-head{ padding:30px 32px 22px; }
  .guide-page .drow{ padding:20px 24px; }
  .guide-page .about-card{ padding:40px 36px 42px; }
  .guide-page .tut-grid{ grid-template-columns:repeat(3, 1fr); }
}

@media (max-width: 980px){
  .guide-page .a{ padding:48px 0 100px; }
  .guide-page .page-title h1{ font-size:30px; }

  .guide-page .theme-card{ padding:32px 26px; }
  .guide-page .theme-headline{ font-size:24px; }
  .guide-page .about-card{ padding:36px 28px; }
  .guide-page .about-head{ margin-bottom:24px; padding-bottom:20px; }
  .guide-page .about-head .ko-title{ font-size:22px; }
  .guide-page .about-text{ font-size:15.5px; line-height:1.85; margin-bottom:16px; }
  .guide-page .tut-grid{ grid-template-columns:repeat(2, 1fr); }
  .guide-page .theme-title{ font-size:22px; }

  .guide-page .pillars{ grid-template-columns:1fr; }
  .guide-page .details-rows{ grid-template-columns:1fr; }
  .guide-page .drow{ border-right:none; }
  .guide-page .drow:nth-last-child(2){ border-bottom:1px solid var(--line-soft); }
  .guide-page .guide-grid{ grid-template-columns:1fr; }
  .guide-page .eval-grid{ grid-template-columns:repeat(2, 1fr); }

  .guide-page .bottom-cta{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 720px){
  .guide-page .a-inner{ padding:0 20px; }
  .guide-page .tabs{ overflow-x:auto; }
  .guide-page .tab{ padding:16px 12px; font-size:14px; }

  .guide-page .a{ padding:36px 0 80px; }
  .guide-page .page-title{ margin-bottom:28px; padding-bottom:20px; }
  .guide-page .page-title h1{ font-size:24px; }
  .guide-page .page-title .ey{ font-size:10.5px; }

  .guide-page .theme-card{ padding:26px 20px; border-radius:14px; }
  .guide-page .about-card{ padding:28px 22px; border-radius:14px; }
  .guide-page .about-head{ margin-bottom:20px; padding-bottom:16px; }
  .guide-page .about-head .ko-title{ font-size:20px; }
  .guide-page .about-text{ font-size:15px; line-height:1.8; margin-bottom:14px; }
  .guide-page .tut-lead{ font-size:14.5px; margin-bottom:22px; }
  .guide-page .tut-grid{ grid-template-columns:1fr; }
  .guide-page .tut-card{ padding:20px 20px 18px; }
  .guide-page .tut-card .bg-ico{ width:100px; height:100px; font-size:88px; line-height:100px; }
  .guide-page .theme-headline{ font-size:20px; }
  .guide-page .theme-title{ font-size:20px; }
  .guide-page .theme-hd{ gap:14px; padding-bottom:20px; margin-bottom:22px; }
  .guide-page .theme-hd .r{ font-size:12px; padding:6px 12px; }

  .guide-page .pillar{ padding:24px 22px 22px; }
  .guide-page .pillar .ltr{ font-size:64px; right:14px; top:10px; }

  .guide-page .details-head{ padding:24px 22px 18px; }
  .guide-page .drow{
    grid-template-columns:1fr;
    padding:18px 22px;
    gap:8px;
  }
  .guide-page .drow .k{ font-size:13px; }
  .guide-page .drow .v{ font-size:14.5px; }
  .guide-page .drow.full .v{ font-size:15px; }

  .guide-page .sec-card{ padding:24px 20px; border-radius:14px; }
  .guide-page .guide-card{ padding:22px 22px 22px 70px; }
  .guide-page .guide-card .ico{ left:18px; top:22px; width:34px; height:34px; font-size:16px; }
  .guide-page .guide-lead{ font-size:15.5px; }

  .guide-page .eval-grid{ grid-template-columns:1fr; gap:12px; }
  .guide-page .eval-summary{ padding:16px 18px; font-size:14px; }
  .guide-page .eval-summary .r{ font-size:10.5px; }

  .guide-page .bottom-cta{ padding:20px 22px; }
  .guide-page .bottom-cta .l b{ font-size:15.5px; }
  .guide-page .bottom-cta .actions{ width:100%; }
  .guide-page .bottom-cta .actions a{
    flex:1;
    justify-content:center;
    padding:10px 14px;
    font-size:14px;
  }

  .guide-page .inner-head h3{ font-size:18px; }
}

@media (max-width: 480px){
  .guide-page .tabs,
  .guide-page .a-inner{ padding:0 16px; }
  .guide-page .theme-card,
  .guide-page .sec-card{ padding:22px 16px; }
  .guide-page .about-card{ padding:24px 18px; }
  .guide-page .about-head .ko-title{ font-size:18px; }
  .guide-page .about-text{ font-size:14.5px; }
  .guide-page .theme-headline{ font-size:18px; }
  .guide-page .page-title h1{ font-size:22px; }
  .guide-page .drow{ padding:16px 18px; }
  .guide-page .details-head{ padding:22px 18px 16px; }
  .guide-page .bottom-cta{ padding:18px 16px; }
}

/* ==========================================================
   QUICK ACCESS — Index hero 하단 콘텐츠 영역
   ========================================================== */
.quick-access{
  background:#eef3fb;
  padding:86px 0 100px;
  color:var(--text-900);
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}
.quick-access .qa-inner{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px;
}

.quick-access .qa-head{
  margin-bottom:36px;
}
.quick-access .qa-ey{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  margin-bottom:14px;
  text-transform:uppercase;
}
.quick-access .qa-ey::before{
  content:"";
  width:28px;
  height:2px;
  background:var(--blue-700);
  border-radius:2px;
}
.quick-access .qa-title{
  font-size:40px;
  letter-spacing:-.028em;
  color:var(--ink-900);
  line-height:1.15;
  margin:0 0 12px;
}
.quick-access .qa-desc{
  font-size:15px;
  color:var(--text-500);
  margin:0;
  letter-spacing:-.005em;
}

.quick-access .qa-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.quick-access .qa-card{
  position:relative;
  display:block;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:20px;
  padding:32px 12px 28px 32px;
  text-decoration:none;
  color:var(--text-900);
  transition:.18s ease;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 10px 30px -24px rgba(11,31,73,.18);
}
.quick-access .qa-card:hover{
  transform:translateY(-4px);
  border-color:var(--blue-300);
  box-shadow:0 18px 38px -22px rgba(11,31,73,.3);
}
.quick-access .qa-ico{
  width:48px;
  height:48px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  margin-bottom:18px;
}
.quick-access .qa-ico-blue,
.quick-access .qa-ico-violet,
.quick-access .qa-ico-lilac{
  background:#e6efff;
  color:var(--blue-700);
}

.quick-access .qa-card-ey{
  font-size:11px;
  letter-spacing:.18em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  text-transform:uppercase;
  margin-bottom:6px;
}
.quick-access .qa-card-title{
  font-size:22px;
  letter-spacing:-.022em;
  color:var(--ink-900);
  line-height:1.2;
  margin:0 0 14px;
}
.quick-access .qa-card-desc{
  font-size:15.5px;
  line-height:1.65;
  color:var(--text-500);
  margin:0 0 20px;
  letter-spacing:-.005em;
}
.quick-access .qa-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:22px;
}
.quick-access .qa-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12.5px;
  color:#5a6896;
  background:#eef2ff;
  border-radius:999px;
  padding:6px 12px;
  letter-spacing:-.005em;
}
.quick-access .qa-tag::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:#8aa0ff;
}
.quick-access .qa-more{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:var(--ink-900);
  letter-spacing:-.005em;
  transition:.15s;
}
.quick-access .qa-more i{
  font-size:12px;
  transition:transform .18s ease;
}
.quick-access .qa-card:hover .qa-more{ color:var(--blue-700); }
.quick-access .qa-card:hover .qa-more i{ transform:translateX(3px); }

/* ===== Responsive ===== */
@media (max-width: 1200px){
  .quick-access .qa-inner{ padding:0 28px; }
  .quick-access .qa-title{ font-size:34px; }
}

@media (max-width: 980px){
  .quick-access{ padding:72px 0 90px; }
  .quick-access .qa-grid{ grid-template-columns:1fr 1fr; gap:18px; }
  .quick-access .qa-title{ font-size:30px; }
  .quick-access .qa-card{ padding:28px 26px 24px; }
}

@media (max-width: 720px){
  .quick-access{ padding:56px 0 72px; }
  .quick-access .qa-inner{ padding:0 20px; }
  .quick-access .qa-head{ margin-bottom:28px; }
  .quick-access .qa-title{ font-size:24px; }
  .quick-access .qa-desc{ font-size:14px; }
  .quick-access .qa-grid{ grid-template-columns:1fr; gap:16px; }
  .quick-access .qa-card{ padding:26px 22px 22px; border-radius:16px; }
  .quick-access .qa-card-title{ font-size:20px; }
  .quick-access .qa-card-desc{ font-size:14px; margin-bottom:18px; }
}

@media (max-width: 480px){
  .quick-access .qa-inner{ padding:0 16px; }
  .quick-access .qa-title{ font-size:22px; }
  .quick-access .qa-card{ padding:22px 18px 20px; }
  .quick-access .qa-ico{ width:42px; height:42px; font-size:18px; margin-bottom:14px; }
}

/* ==========================================================
   SCHEDULE SECTION — Index 주요 일정 타임라인
   ========================================================== */
.schedule-section{
  background:#fff;
  padding:96px 0 110px;
  color:var(--text-900);
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}
.schedule-section .ss-inner{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px;
}

/* Head */
.schedule-section .ss-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:60px;
  flex-wrap:wrap;
}
.schedule-section .ss-ey{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  margin-bottom:14px;
  text-transform:uppercase;
}
.schedule-section .ss-ey::before{
  content:"";
  width:28px;
  height:2px;
  background:var(--blue-700);
  border-radius:2px;
}
.schedule-section .ss-title{
  font-size:40px;
  letter-spacing:-.028em;
  color:var(--ink-900);
  line-height:1.15;
  margin:0 0 12px;
}
.schedule-section .ss-desc{
  font-size:15px;
  color:var(--text-500);
  margin:0;
  letter-spacing:-.005em;
}
.schedule-section .ss-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 22px;
  border-radius:999px;
  border:1px solid var(--line-mid);
  background:#fff;
  color:var(--ink-900);
  font-size:14px;
  letter-spacing:-.005em;
  text-decoration:none;
  transition:.18s ease;
}
.schedule-section .ss-btn i{
  font-size:12px;
  transition:transform .18s ease;
}
.schedule-section .ss-btn:hover{
  border-color:var(--blue-500);
  color:var(--blue-700);
  background:#f7faff;
}
.schedule-section .ss-btn:hover i{ transform:translateX(3px); }

/* Timeline */
.schedule-section .ss-timeline{
  display:flex;
  flex-direction:column;
  gap:0;
}
.schedule-section .ss-row{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  padding-top:42px;
}
.schedule-section .ss-row::before{
  content:"";
  position:absolute;
  top:48px;
  left:12.5%;
  right:12.5%;
  height:2px;
  background:#dbe3f0;
  z-index:0;
}
.schedule-section .ss-row-1{
  grid-template-columns:repeat(3, 1fr);
}
.schedule-section .ss-row-2{
  grid-template-columns:repeat(3, 1fr);
  padding-left:12.5%;
  padding-right:12.5%;
}
.schedule-section .ss-row-1::before{
  background:linear-gradient(90deg, var(--blue-500) 0%, var(--blue-500) var(--row-progress,0%), #dbe3f0 var(--row-progress,0%));
  left:16.6667%;
  right:16.6667%;
}
.schedule-section .ss-row-2::before{
  background:linear-gradient(90deg, var(--blue-500) 0%, var(--blue-500) var(--row-progress,0%), #dbe3f0 var(--row-progress,0%));
  left:25%;
  right:25%;
}

/* Step */
.schedule-section .ss-step{
  position:relative;
  text-align:center;
  padding:30px 8px 0;
}
.schedule-section .ss-badge{
  position:absolute;
  top:-40px;
  left:50%;
  transform:translateX(-50%);
  background:linear-gradient(180deg, #4f8cff 0%, #2b78ff 100%);
  color:#fff;
  font-size:13px;
  letter-spacing:.04em;
  padding:6px 14px;
  border-radius:999px;
  box-shadow:0 6px 14px -6px rgba(43,120,255,.55);
  white-space:nowrap;
}
.schedule-section .ss-badge::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-5px;
  transform:translateX(-50%) rotate(45deg);
  width:8px;
  height:8px;
  background:#2b78ff;
}
.schedule-section .ss-dot{
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  background:#cfd7e6;
  border:3px solid #fff;
  box-shadow:0 0 0 1px #cfd7e6;
  z-index:1;
}
.schedule-section .ss-step.active .ss-dot{
  width:18px;
  height:18px;
  top:-2px;
  background:var(--blue-500);
  border-color:#fff;
  box-shadow:0 0 0 1px var(--blue-500), 0 0 0 6px rgba(43,120,255,.18);
}
.schedule-section .ss-step.final .ss-dot{
  background:var(--amber);
  box-shadow:0 0 0 1px var(--amber), 0 0 0 6px rgba(245,179,36,.18);
}
.schedule-section .ss-step.after .ss-dot{
  background:transparent;
  border:2px dashed #b9c4d6;
  box-shadow:none;
  width:14px;
  height:14px;
}

.schedule-section .ss-ico{
  width:48px;
  height:48px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e6efff;
  color:var(--blue-700);
  font-size:18px;
  margin:8px auto 14px;
}
.schedule-section .ss-step.active .ss-ico{
  background:linear-gradient(135deg, #4f8cff 0%, #2b78ff 100%);
  color:#fff;
  box-shadow:0 8px 18px -8px rgba(43,120,255,.55), inset 0 1px 0 rgba(255,255,255,.25);
}
.schedule-section .ss-step.final .ss-ico{
  background:linear-gradient(135deg, #ffc46b 0%, #f5a623 100%);
  color:#fff;
  box-shadow:0 8px 18px -8px rgba(245,166,35,.55), inset 0 1px 0 rgba(255,255,255,.3);
}
.schedule-section .ss-step.after .ss-ico{
  background:#eef2f9;
  color:#8a96ac;
}

.schedule-section .ss-step-num{
  font-size:12px;
  letter-spacing:.16em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  text-transform:uppercase;
  margin-top:4px;
}
.schedule-section .ss-step.active .ss-step-num{ color:var(--blue-700); }
.schedule-section .ss-step.final .ss-step-num{ color:#c98a17; }
.schedule-section .ss-step.after .ss-step-num{ color:var(--text-400); }

.schedule-section .ss-step-date{
  font-size:15px;
  color:var(--text-700);
  margin:6px 0 0;
  letter-spacing:-.005em;
  line-height:1.55;
}
.schedule-section .ss-step.after .ss-step-date{ color:var(--text-500); }

.schedule-section .ss-step-title{
  font-size:18px;
  color:var(--ink-900);
  margin:8px 0 0;
  letter-spacing:-.01em;
  line-height:1.3;
}
.schedule-section .ss-step.after .ss-step-title{ color:var(--text-700); }

.schedule-section .ss-note{
  margin-top:48px;
  text-align:right;
  font-size:13px;
  color:var(--text-500);
  letter-spacing:-.005em;
}

/* ===== Responsive ===== */
@media (max-width: 1200px){
  .schedule-section .ss-inner{ padding:0 28px; }
  .schedule-section .ss-title{ font-size:34px; }
}

@media (max-width: 980px){
  .schedule-section{ padding:72px 0 90px; }
  .schedule-section .ss-head{ margin-bottom:48px; }
  .schedule-section .ss-title{ font-size:30px; }
  .schedule-section .ss-timeline{ gap:48px; }
  .schedule-section .ss-row{
    grid-template-columns:repeat(2, 1fr);
    gap:48px 24px;
  }
  .schedule-section .ss-row-2{
    grid-template-columns:repeat(2, 1fr);
    padding-left:0;
    padding-right:0;
  }
  .schedule-section .ss-row::before{
    left:25%;
    right:25%;
  }
  .schedule-section .ss-row-2::before{
    left:25%;
    right:25%;
  }
  .schedule-section .ss-row-1::before{
    background:linear-gradient(90deg, var(--blue-500) 0%, var(--blue-500) var(--row-progress,0%), #dbe3f0 var(--row-progress,0%));
  }
}

@media (max-width: 720px){
  .schedule-section{ padding:56px 0 72px; }
  .schedule-section .ss-inner{ padding:0 20px; }
  .schedule-section .ss-head{ margin-bottom:40px; flex-direction:column; align-items:flex-start; }
  .schedule-section .ss-title{ font-size:24px; }
  .schedule-section .ss-desc{ font-size:14px; }
  .schedule-section .ss-btn{ padding:10px 18px; font-size:13.5px; }

  .schedule-section .ss-timeline{ gap:0; }
  .schedule-section .ss-row{
    grid-template-columns:1fr;
    gap:36px;
    padding-top:0;
    padding-left:32px;
  }
  .schedule-section .ss-row-2{
    grid-template-columns:1fr;
    padding-left:32px;
    padding-right:0;
  }
  .schedule-section .ss-row::before{
    top:8px;
    bottom:0;
    left:30px;
    right:auto;
    width:2px;
    height:auto;
  }
  .schedule-section .ss-row-2::before{
    top:0;
    bottom:8px;
    left:30px;
    right:auto;
    width:2px;
    height:auto;
    background:linear-gradient(180deg, var(--blue-500) 0%, var(--blue-500) var(--row-progress-v,0%), #dbe3f0 var(--row-progress-v,0%));
  }
  .schedule-section .ss-row-1::before{
    background:linear-gradient(180deg, var(--blue-500) 0%, var(--blue-500) var(--row-progress-v,0%), #dbe3f0 var(--row-progress-v,0%));
  }
  .schedule-section .ss-step{
    text-align:left;
    padding:0 0 0 18px;
    min-height:48px;
  }
  .schedule-section .ss-dot{
    top:18px;
    left:-9px;
    transform:none;
  }
  .schedule-section .ss-step.active .ss-dot{ top:16px; left:-11px; }
  .schedule-section .ss-step.active .ss-ico{ margin-top:22px; }
  .schedule-section .ss-badge{
    top:-22px;
    left:-2px;
    transform:translateX(-50%);
  }
  .schedule-section .ss-badge::after{ display:none; }
  .schedule-section .ss-ico{
    margin:0 0 10px;
    width:42px;
    height:42px;
    font-size:16px;
    border-radius:12px;
  }
  .schedule-section .ss-step-date{ font-size:16px; }
  .schedule-section .ss-note{ text-align:left; margin-top:36px; }
}

@media (max-width: 480px){
  .schedule-section .ss-inner{ padding:0 16px; }
  .schedule-section .ss-title{ font-size:22px; }
}

/* ==========================================================
   REGISTRATION CTA — 지금 바로 참가 신청 카드
   ========================================================== */
.register-cta{
  background:#eef3fb;
  padding:60px 0 120px;
  color:var(--text-900);
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}
.register-cta .rc-inner{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px;
}

/* Card shell */
.register-cta .rc-card{
  position:relative;
  background:#fff;
  border-radius:28px;
  padding:64px 72px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 30px 60px -40px rgba(11,31,73,.25);
}
/* abstract art layer */
.register-cta .rc-art{
  position:absolute;
  top:0;
  right:0;
  width:62%;
  height:100%;
  pointer-events:none;
  z-index:0;
}
.register-cta .rc-art svg{
  width:100%;
  height:100%;
  display:block;
}

/* Decoration */
.register-cta .rc-deco{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  border-radius:inherit;
  z-index:0;
}
.register-cta .rc-dots{
  position:absolute;
  top:-10px;
  left:-10px;
  width:200px;
  height:200px;
  background-image:radial-gradient(circle at center, rgba(43,120,255,.18) 1.2px, transparent 1.4px);
  background-size:14px 14px;
  opacity:.55;
  mask-image:linear-gradient(135deg, #000 0%, transparent 70%);
  -webkit-mask-image:linear-gradient(135deg, #000 0%, transparent 70%);
}

/* Content layout */
.register-cta .rc-content{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:56px;
  align-items:center;
}
.register-cta .rc-r{
  display:flex;
  align-items:center;
  justify-self:end;
}

/* LEFT */
.register-cta .rc-ey{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  letter-spacing:.18em;
  color:var(--blue-700);
  font-family:'Space Grotesk', sans-serif;
  margin-bottom:18px;
  text-transform:uppercase;
}
.register-cta .rc-pulse{
  width:8px; height:8px; border-radius:50%;
  background:#2b78ff;
  box-shadow:0 0 0 0 rgba(43,120,255,.6);
  animation:rcPulse 1.8s ease-out infinite;
}
@keyframes rcPulse{
  0%   { box-shadow:0 0 0 0 rgba(43,120,255,.55); }
  70%  { box-shadow:0 0 0 10px rgba(43,120,255,0); }
  100% { box-shadow:0 0 0 0 rgba(43,120,255,0); }
}
.register-cta .rc-title{
  font-size:46px;
  letter-spacing:-.03em;
  color:var(--ink-900);
  line-height:1.12;
  margin:0 0 16px;
}
.register-cta .rc-desc{
  font-size:15px;
  line-height:1.7;
  color:var(--text-500);
  margin:0 0 36px;
  letter-spacing:-.005em;
}

/* Stats */
.register-cta .rc-stats{
  display:flex;
  align-items:center;
  gap:32px;
  margin-bottom:40px;
}
.register-cta .rc-stat-val{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:30px;
  letter-spacing:-.025em;
  color:var(--ink-900);
  line-height:1;
  font-family:'Space Grotesk', sans-serif;
}
.register-cta .rc-stat-ico{
  width:36px;
  height:36px;
  border-radius:10px;
  background:#eef3ff;
  color:var(--blue-700);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex:none;
}
.register-cta .rc-stat-sml{
  display:inline-block;
  margin:0 6px;
  color:var(--blue-500);
  font-weight:600;
}
.register-cta .rc-stat-unit{
  font-size:28px;
  margin-left:4px;
  color:var(--text-700);
  font-family:'Pretendard Variable', Pretendard, sans-serif;
}
.register-cta .rc-stat-lbl{
  margin-top:8px;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--text-400);
  font-family:'Space Grotesk', sans-serif;
  text-transform:uppercase;
}
.register-cta .rc-stat-sep{
  width:1px;
  align-self:stretch;
  background:linear-gradient(180deg, transparent, var(--line-mid) 30% 70%, transparent);
}

/* Actions */
.register-cta .rc-actions{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.register-cta .rc-btn-primary{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:17px 32px;
  border-radius:14px;
  background:linear-gradient(180deg, #14254e 0%, #03102b 100%);
  color:#fff;
  font-size:16px;
  letter-spacing:-.005em;
  text-decoration:none;
  box-shadow:0 12px 24px -12px rgba(3,16,43,.55), inset 0 1px 0 rgba(255,255,255,.08);
  transition:.18s ease;
  overflow:hidden;
}
.register-cta .rc-btn-primary::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(80,140,255,.35) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform .55s ease;
}
.register-cta .rc-btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 32px -14px rgba(3,16,43,.65);
}
.register-cta .rc-btn-primary:hover::before{ transform:translateX(100%); }
.register-cta .rc-btn-primary i{
  font-size:13px;
  transition:transform .18s ease;
  position:relative;
}
.register-cta .rc-btn-primary:hover i{ transform:translateX(3px); }
.register-cta .rc-btn-primary span{ position:relative; }

.register-cta .rc-btn-text{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:17px 32px;
  border-radius:14px;
  border:1px solid var(--line-mid);
  background:#fff;
  color:var(--ink-900);
  font-size:16px;
  letter-spacing:-.005em;
  text-decoration:none;
  transition:.18s ease;
}
.register-cta .rc-btn-text:hover{
  border-color:var(--blue-500);
  color:var(--blue-700);
  background:#f7faff;
  transform:translateY(-2px);
}

/* ===== Responsive ===== */
@media (max-width: 1200px){
  .register-cta .rc-inner{ padding:0 28px; }
  .register-cta .rc-card{ padding:54px 48px; }
  .register-cta .rc-title{ font-size:40px; }
}

@media (max-width: 980px){
  .register-cta{ padding:48px 0 96px; }
  .register-cta .rc-card{ padding:48px 36px; border-radius:22px; }
  .register-cta .rc-title{ font-size:34px; }
  .register-cta .rc-br{ display:none; }
  .register-cta .rc-content{
    grid-template-columns:1fr;
    gap:32px;
  }
  .register-cta .rc-r{ justify-self:flex-start; width: 100%;}
}

@media (max-width: 720px){
  .register-cta{ padding:32px 0 72px; }
  .register-cta .rc-inner{ padding:0 20px; }
  .register-cta .rc-card{ padding:36px 22px; border-radius:20px; }
  .register-cta .rc-title{ font-size:26px; }
  .register-cta .rc-desc{ font-size:14px; margin-bottom:28px; }

  .register-cta .rc-stats{ gap:20px; margin-bottom:32px; }
  .register-cta .rc-stat-val{ font-size:22px; }
  .register-cta .rc-stat-unit{ font-size:15px; }

  .register-cta .rc-actions{ gap:12px; width:100%; }
  .register-cta .rc-btn-primary,
  .register-cta .rc-btn-text{
    flex:1 1 0;
    justify-content:center;
    padding:14px 18px;
    font-size:14.5px;
    min-width:0;
  }
}

@media (max-width: 480px){
  .register-cta .rc-inner{ padding:0 16px; }
  .register-cta .rc-title{ font-size:22px; }
  .register-cta .rc-stats{ flex-direction:column; align-items:flex-start; gap:14px; }
  .register-cta .rc-stat-sep{ display:none; }
  .register-cta .rc-actions{ width:100%; gap:10px; }
  .register-cta .rc-btn-primary,
  .register-cta .rc-btn-text{
    flex:1 1 0;
    justify-content:center;
    padding:13px 14px;
    font-size:14px;
    min-width:0;
  }
}

/* ==========================================================
   ABOUT PAGE — 콘테스트 소개 / 탭 + 대회 개요 + 문의
   ========================================================== */
.about-page{
  background:var(--bg-page);
  color:var(--text-900);
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}

/* TAB NAV */
.about-page .tab-nav-wrap{
  background:#fff;
  border-bottom:1px solid var(--line-soft);
  box-shadow:0 2px 14px -8px rgba(11,31,73,.10);
}
.about-page .tab-nav{
  max-width:1200px;
  margin:0 auto;
  padding:0;
  display:flex;
  flex-wrap:wrap;
}
.about-page .tab-btn{
  position:relative;
  background:none;
  border:none;
  cursor:pointer;
  padding:22px 40px;
  font-family:inherit;
  font-size:16px;
  color:var(--text-500);
  letter-spacing:-.01em;
  transition:color .15s;
  white-space:nowrap;
}
.about-page .tab-btn::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:2px;
  background:var(--blue-500);
  transform:scaleX(0);
  transition:transform .22s;
  border-radius:2px 2px 0 0;
}
.about-page .tab-btn:hover{ color:var(--ink-900); }
.about-page .tab-btn.on{ color:var(--blue-500); }
.about-page .tab-btn.on::after{ transform:scaleX(1); }

/* PANELS */
.about-page .tab-panel{ display:none; }
.about-page .tab-panel.on{ display:block; }

/* a / a-inner container */
.about-page .a{
  background:var(--bg-page);
  padding:40px 0 100px;
}
.about-page .a-inner{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px;
}

/* OVERVIEW HEAD */
.about-page .overview-head{ padding:0; }
.about-page .eyebrow-line{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:'Space Grotesk', sans-serif;
  font-size:11.5px;
  letter-spacing:.22em;
  color:var(--blue-500);
  text-transform:uppercase;
  margin-bottom:22px;
}
.about-page .eyebrow-line::before{
  content:"";
  width:26px;
  height:2px;
  background:var(--blue-500);
  border-radius:2px;
}
.about-page .overview-head-title{
  font-size:35px;
  letter-spacing:-.028em;
  line-height:1.18;
  color:var(--ink-900);
  margin:0 0 36px;
  white-space:nowrap;
}

/* STATS STRIP */
.about-page .stats-strip{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-top:1px solid var(--line-mid);
  border-bottom:1px solid var(--line-mid);
}
.about-page .stat-item{
  padding:28px 0 26px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.about-page .stat-item + .stat-item{
  border-left:1px solid var(--line-mid);
  padding-left:40px;
}
.about-page .stat-key{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.2em;
  color:var(--text-400);
  text-transform:uppercase;
}
.about-page .stat-val{
  font-family:'Space Grotesk', sans-serif;
  font-size:23px;
  color:var(--ink-900);
  letter-spacing:-.022em;
  line-height:1.15;
}
.about-page .stat-val .em{ color:var(--blue-500); }

/* OVERVIEW BODY */
.about-page .overview-body{
  display:grid;
  grid-template-columns:500px 1fr;
  gap:90px;
  padding:72px 0 0;
  align-items:start;
}

/* prose */
.about-page .overview-prose .lead{
  font-size:26px;
  letter-spacing:-.026em;
  line-height:1.38;
  color:var(--ink-900);
  margin-bottom:26px;
}
.about-page .overview-prose p{
  font-size:16.5px;
  line-height:1.85;
  color:var(--text-700);
  margin-bottom:20px;
  letter-spacing:-.008em;
}
.about-page .highlight-box{
  background:#edf3ff;
  border-left:3px solid var(--blue-500);
  border-radius:0 12px 12px 0;
  padding:20px 26px;
  margin-bottom:40px;
}
.about-page .highlight-box p{
  font-size:16px;
  color:var(--blue-700);
  margin:0;
  line-height:1.78;
}
.about-page .btn-register{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--ink-900);
  color:#fff;
  font-size:17.5px;
  letter-spacing:-.015em;
  padding:19px 36px;
  border-radius:12px;
  border:none;
  cursor:pointer;
  text-decoration:none;
  transition:background .18s;
}
.about-page .btn-register:hover{ background:var(--blue-700); }
.about-page .btn-register .ar{
  display:inline-block;
  font-size:13px;
  transition:transform .2s;
}
.about-page .btn-register:hover .ar{ transform:translateX(5px); }

/* spec card */
.about-page .spec-card{
  background:linear-gradient(168deg, #09204c 0%, #040f28 100%);
  border:1px solid rgba(120,180,255,.20);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 22px 60px -22px rgba(3,14,42,.65), inset 0 1px 0 rgba(255,255,255,.07);
  position:sticky;
  top:24px;
}
.about-page .spec-card-top{
  padding:20px 28px 18px;
  border-bottom:1px solid rgba(255,255,255,.07);
  display:flex;
  align-items:center;
  gap:10px;
}
.about-page .sc-dots{ display:flex; gap:6px; }
.about-page .sc-dots span{
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(120,180,255,.22);
  display:block;
}
.about-page .sc-dots span:first-child{ background:var(--cyan); }
.about-page .sc-badge{
  margin-left:auto;
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:.22em;
  color:rgba(190,220,255,.55);
  text-transform:uppercase;
}
.about-page .spec-rows{ padding:4px 0; }
.about-page .spec-row{
  display:grid;
  grid-template-columns:100px 1fr;
  padding:20px 28px;
  border-bottom:1px solid rgba(255,255,255,.05);
  gap:16px;
  align-items:start;
}
.about-page .spec-row:last-child{ border-bottom:none; }
.about-page .spec-row .sk{
  font-size:14px;
  color:rgba(120,185,255,.75);
  letter-spacing:-.005em;
  line-height:1.5;
  padding-top:2px;
}
.about-page .spec-row .sv{
  font-size:16px;
  color:rgba(220,236,255,.92);
  line-height:1.65;
  letter-spacing:-.012em;
}
.about-page .spec-row .sv a{
  color:rgba(220,236,255,.92);
  text-decoration:none;
}
.about-page .spec-row .sv a:hover{ color:var(--cyan); }
.about-page .spec-row .sv small{
  display:block;
  font-size:13.5px;
  color:rgba(180,210,255,.85);
  margin-top:6px;
  letter-spacing:-.005em;
}

/* BENEFIT GRID (참가자 혜택) */
.about-page .benefit-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
  margin-top:8px;
}
.about-page .benefit-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:18px;
  padding:32px 28px 30px;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 10px 30px -24px rgba(11,31,73,.18);
  transition:.18s ease;
}
.about-page .benefit-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 38px -22px rgba(11,31,73,.25);
  border-color:var(--blue-300);
}
.about-page .bc-ico{
  width:54px;
  height:54px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  margin-bottom:22px;
}
.about-page .bc-ico-amber { background:#fff3d6; color:#c98415; }
.about-page .bc-ico-violet{ background:#ece6ff; color:#6a55e6; }
.about-page .bc-ico-rose  { background:#ffe4ee; color:#c43578; }
.about-page .bc-ico-blue  { background:#e6efff; color:var(--blue-700); }
.about-page .bc-ico-cyan  { background:#dbf6fb; color:#0c91b4; }
.about-page .bc-ico-gold  { background:#fff1cc; color:#c08a08; }

.about-page .bc-title{
  font-size:18px;
  letter-spacing:-.018em;
  color:var(--ink-900);
  margin:0 0 12px;
}
.about-page .bc-desc{
  font-size:15px;
  line-height:1.7;
  color:var(--text-700);
  margin:0;
  letter-spacing:-.005em;
  word-break:keep-all;
  overflow-wrap:break-word;
}
.about-page .bc-note{
  font-size:13.5px;
  color:#d5750c;
  margin:14px 0 0;
  letter-spacing:-.005em;
  line-height:1.6;
  word-break:keep-all;
  overflow-wrap:break-word;
}

/* NOTES (유의 사항) */
.about-page .notes-cards{
  list-style:none;
  margin:8px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.about-page .notes-card{
  display:flex;
  align-items:flex-start;
  gap:20px;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:22px 26px;
  transition:.18s ease;
}
.about-page .notes-card:hover{
  border-color:var(--blue-300);
  box-shadow:0 10px 26px -18px rgba(11,31,73,.25);
  transform:translateY(-1px);
}
.about-page .ncd-mark{
  width:44px;
  height:44px;
  border-radius:12px;
  background:linear-gradient(135deg, #e9f0ff 0%, #d6e3ff 100%);
  color:var(--blue-700);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex:none;
}
.about-page .ncd-body{ flex:1; padding-top:6px; }
.about-page .ncd-text{
  font-size:16px;
  color:var(--ink-900);
  margin:0;
  line-height:1.65;
  letter-spacing:-.005em;
}
.about-page .ncd-sub{
  list-style:none;
  margin:14px 0 0;
  padding:14px 0 0;
  border-top:1px dashed var(--line-mid);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.about-page .ncd-sub li{
  position:relative;
  padding-left:18px;
  font-size:14.5px;
  color:var(--text-500);
  line-height:1.55;
  letter-spacing:-.005em;
}
.about-page .ncd-sub li::before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:8px;
  height:2px;
  background:var(--blue-300);
  border-radius:1px;
}

/* INFO LIST (참가 신청 안내 등) */
.about-page .info-list{
  display:flex;
  flex-direction:column;
  margin-top:8px;
}
.about-page .info-row{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:36px;
  padding:22px 0;
  border-bottom:1px solid var(--line-soft);
  align-items:start;
}
.about-page .info-row:first-child{ border-top:1px solid var(--line-soft); }
.about-page .info-row .ik{
  background: linear-gradient(168deg, #09204c 0%, #040f28 100%);
  color:#fff;
  padding:10px 18px;
  border-radius:8px;
  font-size:15.5px;
  letter-spacing:-.005em;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:start;
  text-align:center;
  min-height:40px;
}
.about-page .info-row .iv{
  font-size:16.5px;
  color:var(--text-700);
  line-height:1.7;
  letter-spacing:-.005em;
  padding-top:6px;
}
.about-page .info-row .iv-sub{
  display:block;
  font-size:14.5px;
  color:var(--text-500);
  margin-top:2px;
}

/* PLACEHOLDER TABS */
.about-page .ph-section{
  padding:110px 0 130px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:14px;
  text-align:center;
}
.about-page .ph-label{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.22em;
  color:var(--text-400);
  text-transform:uppercase;
}
.about-page .ph-title{
  font-size:24px;
  color:var(--ink-900);
  letter-spacing:-.022em;
}
.about-page .ph-sub{
  font-size:15px;
  color:var(--text-500);
}

/* CONTACT */
.about-page .contact-head-title{
  font-size:35px;
  letter-spacing:-.028em;
  color:var(--ink-900);
  margin:0 0 32px;
}
.about-page .contact-bar{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  gap:28px;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:20px;
  padding:44px 44px;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 16px 36px -24px rgba(11,31,73,.22);
}

/* TOP */
.about-page .cb-left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.about-page .cb-cap{
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--blue-700);
  text-transform:uppercase;
  margin-bottom:14px;
}
.about-page .cb-team-name{
  font-size:24px;
  color:var(--ink-900);
  letter-spacing:-.022em;
  line-height:1.32;
  margin:0;
}
.about-page .cb-team-desc{
  font-size:14.5px;
  color:var(--text-500);
  margin:0 0 26px;
  line-height:1.6;
  letter-spacing:-.005em;
}

/* CONTACT items (한 줄) */
.about-page .cb-right{
  display:flex;
  flex-direction:row;
  justify-content:flex-start;
  align-items:center;
  flex-wrap:wrap;
  gap:95px;
  width:100%;
  padding-top:18px;
  padding-bottom:10px;
  border-top:1px dashed var(--line-mid);
}
.about-page .cb-item{
  display:flex;
  align-items:center;
  gap:16px;
}
.about-page .cb-ico{
  width:44px;
  height:44px;
  border-radius:12px;
  background:linear-gradient(135deg, #eef3ff 0%, #d9e5ff 100%);
  color:var(--blue-700);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex:none;
}
.about-page .cb-item-body{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.about-page .cb-item-label{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.2em;
  color:var(--text-400);
  text-transform:uppercase;
}
.about-page .cb-item-val{
  font-size:15.5px;
  color:var(--ink-900);
  letter-spacing:-.005em;
  text-decoration:none;
  transition:color .15s;
}
a.cb-item-val:hover{ color:var(--blue-700); }
.about-page .cb-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 22px;
  border-radius:10px;
  background:linear-gradient(180deg, #4f78ea 0%, #3568df 100%);
  color:#fff;
  font-size:14.5px;
  letter-spacing:-.005em;
  text-decoration:none;
  transition:.18s ease;
  flex:none;
  box-shadow:0 8px 18px -8px rgba(55,100,220,.7), inset 0 1px 0 rgba(255,255,255,.3);
}
.about-page .cb-btn i{ font-size:12px; transition:transform .18s ease; }
.about-page .cb-btn:hover{
  background:linear-gradient(180deg, #5d85ee 0%, #3e72e6 100%);
  transform:translateY(-1px);
  box-shadow:0 12px 22px -10px rgba(55,100,220,.8), inset 0 1px 0 rgba(255,255,255,.3);
}
.about-page .cb-btn:hover i{ transform:translateX(3px); }

/* ===== Responsive ===== */
@media (max-width: 1200px){
  .about-page .tab-nav,
  .about-page .a-inner{ padding:0 28px; }
}

@media (max-width: 960px){
  .about-page .tab-nav{ padding:0 20px; overflow-x:auto; }
  .about-page .tab-btn{ padding:18px 14px; font-size:14px; }
  .about-page .stats-strip{ display:none; }
  .about-page .overview-body{ grid-template-columns:1fr; gap:40px; padding-top:0; }
  .about-page .spec-card{ position:static; }
  .about-page .benefit-grid{ grid-template-columns:repeat(2, 1fr); }
  .about-page .overview-head{ padding-top:0; padding-bottom:0; }
  .about-page .overview-head-title{ font-size:32px; margin-bottom:32px; white-space:normal; }
  .about-page .overview-prose .lead{ font-size:22px; }
  .about-page .overview-prose p{ font-size:15.5px; }
  .about-page .contact-head-title{ font-size:26px; margin-bottom:24px; }
  .about-page .contact-bar{
    grid-template-columns:1fr;
    gap:28px;
    padding:28px 24px;
  }
  .about-page .cb-br{ display:none; }
  .about-page .cb-team-name{ font-size:20px; }
  .about-page .cb-btn{ width:100%; justify-content:center; }
  .about-page .ph-section{ padding:80px 0 90px; }
}

@media (max-width: 720px){
  .about-page .tab-nav,
  .about-page .a-inner{ padding:0 20px; }
  .about-page .tab-btn{ padding:16px 12px; font-size:14px; }

  .about-page .a{ padding-bottom:72px; }
  .about-page .overview-head{ padding-top:0; padding-bottom:0; }
  .about-page .overview-head-title{ font-size:28px; margin-bottom:24px; }
  .about-page .stat-item{ padding:20px 0 18px; }
  .about-page .stat-val{ font-size:20px; }

  .about-page .overview-prose .lead{ font-size:20px; }
  .about-page .overview-prose p{ font-size:15px; line-height:1.8; }
  .about-page .highlight-box{ padding:16px 20px; }
  .about-page .highlight-box p{ font-size:14px; }
  .about-page .btn-register{ padding:14px 26px; font-size:14.5px; }

  .about-page .spec-card-top,
  .about-page .spec-row{ padding-left:20px; padding-right:20px; }
  .about-page .spec-row{ grid-template-columns:84px 1fr; gap:12px; }

  .about-page .info-row{
    grid-template-columns:1fr;
    gap:10px;
    padding:18px 0;
  }
  .about-page .info-row .ik{
    justify-self:start;
    min-height:0;
    padding:7px 14px;
    font-size:13px;
  }
  .about-page .info-row .iv{ font-size:15px; padding-top:0; }
  .about-page .info-row .iv-sub{ font-size:13.5px; }

  .about-page .benefit-grid{ grid-template-columns:1fr; gap:14px; }
  .about-page .benefit-card{ padding:26px 22px 22px; }
  .about-page .bc-ico{ width:48px; height:48px; font-size:20px; margin-bottom:16px; }
  .about-page .bc-title{ font-size:17px; }

  .about-page .notes-card{ padding:18px 20px; gap:14px; }
  .about-page .ncd-mark{ width:38px; height:38px; font-size:16px; border-radius:10px; }
  .about-page .ncd-body{ padding-top:4px; }
  .about-page .ncd-text{ font-size:14.5px; }
  .about-page .ncd-sub li{ font-size:13.5px; padding-left:16px; }

  .about-page .contact-card{ padding:24px 22px; }
  .about-page .contact-card .cc-val{ font-size:18px; }

  .about-page .ph-section{ padding:64px 0 72px; }
  .about-page .ph-title{ font-size:20px; }
}

@media (max-width: 480px){
  .about-page .tab-nav,
  .about-page .a-inner{ padding:0 16px; }
  .about-page .overview-head-title,
  .about-page .contact-head-title{ font-size:24px; margin-bottom:20px; }
  .about-page .stats-strip .stat-item{ padding-left:0; padding-right:0; }
}

/* ==========================================================
   GLOBAL NAV — Hamburger + Mobile Drawer (≤880px)
   ========================================================== */
.nav-ham{
  display:none;
  flex-direction:column;
  justify-content:space-between;
  width:28px;
  height:20px;
  margin-left:auto;
  padding:0;
  background:transparent;
  border:none;
  cursor:pointer;
  position:relative;
  z-index:200;
}
.nav-ham span{
  display:block;
  width:100%;
  height:2px;
  background:#fff;
  border-radius:2px;
  transition:transform .25s ease, opacity .2s ease;
  transform-origin:center;
}
.nav-ham.on span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.nav-ham.on span:nth-child(2){ opacity:0; }
.nav-ham.on span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

.nav-drawer{
  position:fixed;
  top:0; right:0;
  width:300px;
  max-width:82vw;
  height:100vh;
  background:#03102b;
  color:#fff;
  z-index:150;
  transform:translateX(100%);
  transition:transform .3s ease;
  overflow-y:auto;
  box-shadow:-12px 0 30px -10px rgba(0,0,0,.45);
}
.nav-drawer.on{ transform:translateX(0); }
.nav-drawer-close{
  position:absolute;
  top:18px;
  right:18px;
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  cursor:pointer;
  transition:.18s ease;
}
.nav-drawer-close:hover{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.28);
  transform:rotate(90deg);
}
.nav-drawer-inner{
  padding:88px 28px 32px;
  display:flex;
  flex-direction:column;
}
.nav-drawer-links{
  display:flex;
  flex-direction:column;
  gap:0;
}
.nav-drawer-links a{
  display:block;
  padding:16px 0;
  color:#e6f1ff;
  text-decoration:none;
  font-size:17px;
  letter-spacing:-.01em;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:color .15s ease;
}
.nav-drawer-links a:hover{ color:#3ad6ff; }
.nav-drawer-right{
  margin-top:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:stretch;
}
.nav-drawer-right .lang{
  display:flex;
  width:100%;
  letter-spacing:.06em;
}
.nav-drawer-right .lang span{
  flex:1;
  text-align:center;
}
.nav-drawer-right .cta-amber{
  width:100%;
  text-align:center;
  justify-content:center;
  padding:13px 18px;
}

.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(3,16,43,.55);
  backdrop-filter:blur(2px);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
  z-index:140;
}
.nav-backdrop.on{
  opacity:1;
  pointer-events:auto;
}
body.nav-locked{ overflow:hidden; }

@media (max-width: 880px){
  header.nav > .nav-links,
  header.nav > .nav-right{ display:none !important; }
  .nav-ham{ display:inline-flex; }
}

/* ==========================================================
   WINNERS PAGE — 수상작 공개 예정 (다크 테마)
   ========================================================== */
.winners-page{
  background:#03102b;
  color:#fff;
  font-family:'Pretendard Variable', Pretendard, 'Inter', system-ui, sans-serif;
}

/* MAIN SECTION */
.winners-page .main-section{
  min-height:calc(100vh - 290px);
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  isolation:isolate;
}
.winners-page .main-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 30%, #132760 0%, #0a1e4a 35%, #04122e 70%, #020d22 100%);
  z-index:0;
}

.winners-page .bg-grid{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(140,180,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.055) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000 0%, #000 50%, transparent 85%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000 0%, #000 50%, transparent 85%);
}

.winners-page .ghost-date{
  position:absolute;
  bottom:6%;
  left:50%;
  transform:translateX(-50%);
  font-family:'Space Grotesk', sans-serif;
  font-size:clamp(100px, 18vw, 240px);
  font-weight:700;
  letter-spacing:-.04em;
  color:transparent;
  -webkit-text-stroke:1px rgba(80,130,255,.12);
  white-space:nowrap;
  z-index:1;
  pointer-events:none;
  user-select:none;
}

.winners-page .orbit-ring{
  position:absolute;
  top:50%;
  left:50%;
  width:700px;
  height:700px;
  transform:translate(-50%, -50%);
  border-radius:50%;
  border:1px solid rgba(140,180,255,.08);
  z-index:1;
  pointer-events:none;
}
.winners-page .orbit-ring::before{
  content:"";
  position:absolute;
  inset:80px;
  border-radius:50%;
  border:1px dashed rgba(140,180,255,.06);
}

.winners-page .beam{
  position:absolute;
  left:-5%;
  width:110%;
  height:1.5px;
  background:linear-gradient(90deg, transparent, rgba(200,225,255,.6) 50%, transparent);
  transform:rotate(-4deg);
  z-index:1;
  pointer-events:none;
  animation:winSweep 10s ease-in-out infinite;
  opacity:.45;
}
.winners-page .beam.b1{ top:55%; }
.winners-page .beam.b2{ top:60%; height:1px; opacity:.25; animation-duration:14s; animation-delay:-4s; }
@keyframes winSweep{
  0%   { transform:translateX(-10%) rotate(-4deg); opacity:.15; }
  50%  { opacity:1; }
  100% { transform:translateX(10%) rotate(-4deg); opacity:.15; }
}

.winners-page .pt{
  position:absolute;
  border-radius:50%;
  background:#3ad6ff;
  box-shadow:0 0 12px rgba(58,214,255,.8);
  z-index:2;
  pointer-events:none;
  animation:winFloat 6s ease-in-out infinite;
}
.winners-page .pt1{ width:4px; height:4px; top:38%; left:30%; }
.winners-page .pt2{ width:3px; height:3px; top:60%; left:68%; animation-delay:-2s; opacity:.7; }
.winners-page .pt3{ width:2px; height:2px; top:42%; left:72%; animation-delay:-4s; opacity:.5; }
@keyframes winFloat{
  0%, 100% { transform:translateY(0); }
  50%      { transform:translateY(-10px); }
}

/* center */
.winners-page .main-section .center{
  position:relative;
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:60px 24px 70px;
  max-width:none;
}

/* award medal */
.winners-page .award-wrap{
  position:relative;
  width:120px;
  height:120px;
  margin-bottom:36px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.winners-page .award-aura{
  position:absolute;
  inset:-20px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(245,166,35,.22) 0%, transparent 65%);
  animation:winPulseAura 3s ease-in-out infinite;
}
@keyframes winPulseAura{
  0%, 100% { transform:scale(.95); opacity:.7; }
  50%      { transform:scale(1.05); opacity:1; }
}
.winners-page .award-ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  background:conic-gradient(
    #f5a623 0deg, #e8930a 45deg, #f5a623 90deg, #c87800 135deg,
    #f5a623 180deg, #e8930a 225deg, #f5a623 270deg, #c87800 315deg, #f5a623 360deg
  );
  box-shadow:0 0 30px rgba(245,166,35,.45), 0 0 60px rgba(245,166,35,.18);
}
.winners-page .award-inner{
  position:absolute;
  inset:10px;
  border-radius:50%;
  background:linear-gradient(145deg, #0d1e4a 0%, #040f28 100%);
  border:1px solid rgba(245,166,35,.25);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
}
.winners-page .award-star{
  font-size:22px;
  line-height:1;
  background:linear-gradient(180deg, #ffda7a, #f5a623);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 8px rgba(245,166,35,.6));
}
.winners-page .award-label-mini{
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:.2em;
  color:rgba(245,166,35,.65);
  text-transform:uppercase;
}

/* badge */
.winners-page .main-section .badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(58,214,255,.1);
  border:1px solid rgba(58,214,255,.3);
  border-radius:999px;
  padding:7px 18px;
  font-family:'Space Grotesk', sans-serif;
  font-size:11.5px;
  letter-spacing:.18em;
  color:#3ad6ff;
  text-transform:uppercase;
  margin-bottom:26px;
}
.winners-page .main-section .badge .dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#3ad6ff;
  box-shadow:0 0 8px #3ad6ff;
}

/* heading */
.winners-page .main-heading{
  font-size:clamp(24px, 3.6vw, 40px);
  letter-spacing:-.035em;
  line-height:1.12;
  color:#fff;
  margin:10px 0 48px;
  text-shadow:0 4px 30px rgba(0,20,80,.5);
  max-width:none;
  white-space:nowrap;
}
.winners-page .main-heading .hl{
  background:linear-gradient(90deg, #e6f0ff 0%, #8fb6ff  100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* reveal card */
.winners-page .reveal-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(140,200,255,.18);
  border-radius:18px;
  padding:26px 40px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  box-shadow:0 16px 40px -16px rgba(2,10,40,.5), inset 0 1px 0 rgba(255,255,255,.08);
  min-width:280px;
}
.winners-page .reveal-card .rc-label{
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:.24em;
  color:rgba(160,200,255,.5);
  text-transform:uppercase;
}
.winners-page .reveal-card .rc-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#3ad6ff;
  box-shadow:0 0 12px #3ad6ff, 0 0 24px rgba(58,214,255,.4);
  animation:winBlink 2s ease-in-out infinite;
}
@keyframes winBlink{ 0%, 100% { opacity:1; } 50% { opacity:.4; } }
.winners-page .reveal-card .rc-event{
  font-size:16px;
  color:#fff;
  letter-spacing:-.015em;
}
.winners-page .reveal-card .rc-date{
  font-family:'Space Grotesk', sans-serif;
  font-size:22px;
  color:rgba(210,230,255,.75);
  letter-spacing:-.02em;
}

/* CTA SECTION */
.winners-page .cta-section{
  position:relative;
  background:transparent;
  border-top:1px solid rgba(255,255,255,.07);
  overflow:hidden;
}
.winners-page .cta-section::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:800px;
  height:400px;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at 50% 0%, rgba(43,120,255,.12) 0%, transparent 65%);
  pointer-events:none;
}
.winners-page .cta-inner{
  position:relative;
  z-index:2;
  max-width:700px;
  margin:0 auto;
  padding:60px 40px 66px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.winners-page .cta-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:.2em;
  color:#3ad6ff;
  text-transform:uppercase;
  margin-bottom:20px;
}
.winners-page .cta-eyebrow::before{
  content:"";
  width:22px;
  height:2px;
  background:#3ad6ff;
  border-radius:2px;
}
.winners-page .cta-heading{
  font-size:40px;
  letter-spacing:-.035em;
  line-height:1.12;
  color:#fff;
  margin:0 0 16px;
}
.winners-page .cta-sub{
  font-size:15px;
  color:rgba(180,210,255,.35);
  letter-spacing:-.01em;
  margin:0 0 36px;
}
.winners-page .btn-amber{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(180deg, #4f78ea 0%, #3568df 100%);
  color:#fff;
  font-size:18px;
  letter-spacing:-.01em;
  padding:18px 40px;
  border-radius:12px;
  border:none;
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 8px 30px -10px rgba(55,100,220,.55), inset 0 1px 0 rgba(255,255,255,.3);
  transition:background .18s, box-shadow .18s, transform .15s;
}
.winners-page .btn-amber:hover{
  background:linear-gradient(180deg, #5d85ee 0%, #3e72e6 100%);
  box-shadow:0 10px 36px -10px rgba(55,100,220,.7), inset 0 1px 0 rgba(255,255,255,.3);
  transform:translateY(-1px);
}
.winners-page .btn-amber .ar{
  display:inline-block;
  font-size:13px;
  transition:transform .2s;
}
.winners-page .btn-amber:hover .ar{ transform:translateX(4px); }

/* ===== Responsive ===== */
@media (max-width: 880px){
  .winners-page .main-heading{ font-size:32px; }
  .winners-page .orbit-ring{ width:520px; height:520px; }
}

@media (max-width: 760px){
  .winners-page .main-section{ min-height:calc(100vh - 390px); }
  .winners-page .main-heading{ white-space:normal; font-size:26px; }
  .winners-page .reveal-card{ min-width:0; width:100%; max-width:300px; padding:22px 28px; }
  .winners-page .ghost-date{ font-size:80px; }
  .winners-page .cta-inner{ padding:64px 24px 72px; }
  .winners-page .orbit-ring{ width:420px; height:420px; }
  .winners-page .award-wrap{ width:100px; height:100px; margin-bottom:28px; }
}

@media (max-width: 480px){
  .winners-page .main-section .center{ padding:48px 20px 60px; }
  .winners-page .main-heading{ font-size:22px; margin-bottom:32px; }
  .winners-page .cta-heading{ font-size:24px; }
  .winners-page .cta-sub{ font-size:14px; }
  .winners-page .btn-amber{ padding:15px 28px; font-size:16px; width:100%; justify-content:center; }
}

/* =========================================================
   CORE TASK — "스스로 정의하는 '탐험(Exploration)'" 섹션
   다크 버전 (.coretask) / 라이트 버전 (.coretask-l)
   ========================================================= */

/* ---- 공통 타이포그래피 ---- */
.guide-page .coretask-ey,
.guide-page .coretask-l .coretask-ey{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;margin-bottom:14px;
}
.guide-page .coretask-title{
  font-family:'Pretendard','Inter',sans-serif;
  font-size:24px;font-weight:800;letter-spacing:-.024em;line-height:1.15;
  margin:0 0 22px;text-wrap:pretty;
}
.guide-page .coretask-title em{font-style:normal}
.guide-page .coretask-body{
  font-size:16px;line-height:1.95;font-weight:400;letter-spacing:-.005em;
  margin:0;max-width:880px;text-wrap:pretty;word-break:keep-all;
}
.guide-page .coretask-body .key{font-weight:700;padding:0 1px}
.guide-page .coretask-tip{
  display:flex;align-items:flex-start;gap:16px;
  margin-top:30px;padding:20px 24px;border-radius:0 14px 14px 0;
}
.guide-page .coretask-tip .tipico{
  flex:none;width:38px;height:38px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
}
.guide-page .coretask-tip p{margin:0;font-size:14.5px;line-height:1.7;letter-spacing:-.005em}
.guide-page .coretask-tip .tab-ref{
  color:#03102b;font-weight:700;background:var(--cyan-soft);
  padding:1px 8px;border-radius:6px;white-space:nowrap;font-size:13px;
}

/* ---- 다크 버전 ---- */
.guide-page .coretask{
  position:relative;border-radius:18px;overflow:hidden;isolation:isolate;color:#eaf1ff;
  background:radial-gradient(120% 130% at 88% -10%, #1d4faf 0%, #14409a 22%, #0e2f78 44%, #0a2056 66%, #07163f 100%);
  border:1px solid #1c397e;
  box-shadow:0 1px 0 rgba(11,31,73,.04), 0 24px 60px -36px rgba(7,22,63,.85);
  margin-bottom:38px;
}
.guide-page .coretask::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(140,180,255,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.10) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 70% 90% at 100% 0%, #000 0%, transparent 62%);
          mask-image:radial-gradient(ellipse 70% 90% at 100% 0%, #000 0%, transparent 62%);
}
.guide-page .coretask::after{
  content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;z-index:0;
  pointer-events:none;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(58,214,255,.22) 0%, rgba(80,140,255,.12) 40%, transparent 72%);
  filter:blur(8px);
}
.guide-page .coretask .coretask-inner{position:relative;z-index:2;padding:46px 52px 48px}
.guide-page .coretask .coretask-ey{color:var(--cyan)}
.guide-page .coretask .coretask-ey::before{content:"";width:26px;height:1px;background:var(--cyan);box-shadow:0 0 10px rgba(58,214,255,.6)}
.guide-page .coretask .coretask-title{color:#fff}
.guide-page .coretask .coretask-title em{color:var(--cyan-soft)}
.guide-page .coretask .coretask-body{color:#bfd0ee}
.guide-page .coretask .coretask-body b{color:#fff;font-weight:700}
.guide-page .coretask .coretask-body .key{color:#eaf6ff;background:linear-gradient(180deg, transparent 60%, rgba(58,214,255,.30) 60%)}
.guide-page .coretask .coretask-tip{background:rgba(13,33,82,.55);border:1px solid rgba(127,185,255,.22);border-left:3px solid var(--cyan);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.guide-page .coretask .coretask-tip .tipico{background:linear-gradient(135deg, rgba(58,214,255,.20), rgba(80,140,255,.18));border:1px solid rgba(127,185,255,.35);color:var(--cyan-soft)}
.guide-page .coretask .coretask-tip p{color:#c4d2ec}
.guide-page .coretask .coretask-tip p b{color:#fff;font-weight:700}

/* ---- 라이트 버전 ---- */
.guide-page .coretask-l{
  position:relative;border-radius:18px;overflow:hidden;isolation:isolate;
  background:linear-gradient(135deg, #eef5ff 0%, #e6f0ff 48%, #e0ecfe 100%);
  border:1px solid #d3e2fb;
  box-shadow:0 1px 0 rgba(11,31,73,.02), 0 14px 36px -28px rgba(11,31,73,.4);
  margin-bottom:38px;
}
.guide-page .coretask-l::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(43,120,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(43,120,255,.07) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 70% 90% at 100% 0%, #000 0%, transparent 62%);
          mask-image:radial-gradient(ellipse 70% 90% at 100% 0%, #000 0%, transparent 62%);
}
.guide-page .coretask-l::after{
  content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;z-index:0;
  pointer-events:none;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(58,214,255,.20) 0%, rgba(80,140,255,.10) 42%, transparent 72%);
  filter:blur(6px);
}
.guide-page .coretask-l .coretask-inner{position:relative;z-index:2;padding:46px 52px 48px}
.guide-page .coretask-l .coretask-ey{color:var(--blue-700)}
.guide-page .coretask-l .coretask-ey::before{content:"";width:26px;height:1px;background:var(--blue-500)}
.guide-page .coretask-l .coretask-title{color:var(--ink-900)}
.guide-page .coretask-l .coretask-title em{color:var(--blue-700)}
.guide-page .coretask-l .coretask-body{color:var(--text-700)}
.guide-page .coretask-l .coretask-body b{color:var(--ink-900);font-weight:700}
.guide-page .coretask-l .coretask-body .key{color:var(--ink-900);background:linear-gradient(180deg, transparent 60%, rgba(58,214,255,.32) 60%)}
.guide-page .coretask-l .coretask-tip{background:#fff;border:1px solid #dbe6f6;border-left:3px solid var(--blue-500)}
.guide-page .coretask-l .coretask-tip .tipico{background:linear-gradient(135deg, #eaf2ff, #dceaff);border:1px solid #d4e4fb;color:var(--blue-700)}
.guide-page .coretask-l .coretask-tip p{color:var(--text-700)}
.guide-page .coretask-l .coretask-tip p b{color:var(--ink-900);font-weight:700}

/* ---- 반응형 ---- */
@media (max-width:880px){
  .guide-page .coretask .coretask-inner,
  .guide-page .coretask-l .coretask-inner{padding:32px 24px}
  .guide-page .coretask-title{font-size:21px}
  .guide-page .coretask-body{font-size:15px}
}

