/* =====================================================================
   base.css — 색 · 글꼴 · 바닥(그라데이션) · 유리 카드 · 위쪽 메뉴 · 맨 아래 · 버튼
   색은 여기 :root 한 곳에서만 바꾸면 사이트 전체에 적용돼요.
   ===================================================================== */
:root{
  /* 바닥 그라데이션 (MS Client 글라스 배경) */
  --bg:#12101A;
  --g-base:linear-gradient(160deg,#16131F 0%,#120F1A 50%,#0F1220 100%);
  --g-side:rgba(70,90,170,.30);
  --glow-a:rgba(112,48,160,.70);
  --glow-b:rgba(112,48,160,.42);
  /* 글씨 */
  --text:#F2EFF7;
  --muted:#A8A2B6;
  --line:rgba(255,255,255,.10);
  /* 유리 카드 */
  --glass:rgba(255,255,255,.055);
  --glass-b:rgba(255,255,255,.12);
  --g-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 40px rgba(0,0,0,.30);
  --chip:rgba(255,255,255,.07);
  --hover:rgba(255,255,255,.07);
  --bar:rgba(22,19,31,.72);
  /* 포인트 보라 (글씨·선·작은 표시에만) */
  --acc:#C3A3EE;
  --acc-soft:rgba(195,163,238,.14);
  --btn:#F2EFF7;
  --btn-ink:#14111B;
  --gold:#EBC660;
  --body:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#ECE8F6;
  --g-base:linear-gradient(160deg,#E9E5F5 0%,#F1ECF8 45%,#E5EAF5 100%);
  --g-side:rgba(150,175,235,.50);
  --glow-a:rgba(160,110,215,.45);
  --glow-b:rgba(160,110,215,.28);
  --text:#1C1A21;
  --muted:#625D6B;
  --line:rgba(40,20,70,.10);
  --glass:rgba(255,255,255,.55);
  --glass-b:rgba(255,255,255,.9);
  --g-shadow:inset 0 1px 0 #fff,0 12px 40px rgba(70,50,140,.08);
  --chip:rgba(40,20,70,.05);
  --hover:rgba(40,20,70,.05);
  --bar:rgba(244,241,250,.78);
  --acc:#6B3FA3;
  --acc-soft:rgba(107,63,163,.10);
  --btn:#1C1A21;
  --btn-ink:#F4F1FA;
  --gold:#9A7400;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
html{scroll-padding-top:90px}
body{background:var(--bg);color:var(--text);font:400 16px/1.7 var(--body);-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
/* 줄바꿈: 한글 단어 중간에서 끊지 않기 + 마지막 줄에 한 단어만 남지 않게 */
body{word-break:keep-all;overflow-wrap:break-word;line-break:strict}
/* 윈도우의 두꺼운 회색 스크롤바 대신 얇고 어두운 스크롤바 */
html{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
:root[data-theme="light"]{scrollbar-color:rgba(40,20,70,.25) transparent}
p,dd,li,h3,h4,h5{text-wrap:pretty}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bar)}
::selection{background:var(--acc);color:var(--bg)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
h1,h2,h3,p{margin:0}
h1,h2,h3{letter-spacing:-.035em;text-wrap:balance}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px),4vw);padding-right:max(16px,env(safe-area-inset-right,0px),4vw)}
.num{font-variant-numeric:tabular-nums}
.mono{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}

/* 바닥: MS Client v4.092 그라데이션 — 가장자리 보라 빛 + 마우스를 따라오는 빛 */
#bg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 560px 420px at var(--gx,78%) var(--gy,18%),color-mix(in srgb,var(--glow-a) 60%,transparent),transparent 72%),
    radial-gradient(ellipse 62% 58% at 0% 100%,color-mix(in srgb,var(--glow-b) 75%,transparent),transparent 70%),
    radial-gradient(ellipse 55% 50% at 100% 0%,color-mix(in srgb,var(--glow-b) 55%,transparent),transparent 70%),
    radial-gradient(ellipse 45% 42% at 100% 100%,color-mix(in srgb,var(--glow-b) 35%,transparent),transparent 70%),
    radial-gradient(circle at 0% 0%,var(--g-side),transparent 40%),
    var(--g-base)}
header,main,footer{position:relative;z-index:1}

/* 유리 카드 */
.glass{background:var(--glass);border:1px solid var(--glass-b);box-shadow:var(--g-shadow);-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5)}

/* 위쪽 메뉴: 떠 있는 알약 3개 (로고 · 메뉴 · 버튼) */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;pointer-events:none}
header .wrap{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;height:76px}
header .wrap>*{pointer-events:auto}
.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:16px;letter-spacing:-.02em;white-space:nowrap;padding:6px 16px 6px 6px;border-radius:999px}
.badge-ms{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:12px;font-weight:900;letter-spacing:0;color:#1E1442;
  background:radial-gradient(circle at 85% 12%,rgba(138,99,255,.55) 0,rgba(138,99,255,0) 48%),linear-gradient(145deg,#fff 0,#EFEAFF 100%);border:1px solid rgba(255,255,255,.95)}
nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:2px;padding:5px;border-radius:999px}
nav a{padding:7px 16px;border-radius:999px;font-size:14px;font-weight:500;color:var(--muted);transition:background .2s,color .2s}
nav a{position:relative;z-index:1}
nav a:hover{background:var(--hover);color:var(--text)}
nav a.on,nav a.on:hover{color:var(--btn-ink);background:none}
.nav-ind{position:absolute;left:0;top:5px;bottom:5px;width:0;border-radius:999px;background:var(--btn);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),width .45s cubic-bezier(.2,.8,.2,1),opacity .25s}
nav.has-on .nav-ind{opacity:1}
.right{display:flex;align-items:center;gap:8px}
.pillcta{font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;background:var(--btn);color:var(--btn-ink);white-space:nowrap;transition:transform .2s}
.pillcta:hover{transform:translateY(-2px)}
.tg{width:42px;height:42px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.tg:hover{background:var(--hover)}
.tg svg{width:17px;height:17px}

/* 버튼 */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:999px;font-weight:700;border:1px solid var(--btn);background:var(--btn);color:var(--btn-ink);cursor:pointer;transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:var(--glass);color:var(--text);border-color:var(--glass-b);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.btn.ghost:hover{background:var(--hover)}

/* 섹션 머리: 번호 · 제목 · 설명 (왼쪽 제목, 오른쪽 설명) */
main{zoom:var(--k-zoom,1)}
.sec{padding-block:calc(128px * var(--k-gap,1)) 0}
.sh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 40px;align-items:end;padding-bottom:22px;margin-bottom:40px;border-bottom:1px solid var(--line)}
.sh .no{display:flex;align-items:center;gap:10px;color:var(--acc);margin-bottom:14px}
.sh .no .lv{font-size:10.5px;padding:2px 9px;border-radius:999px;border:1px solid currentColor;letter-spacing:.14em}
.sh h2{font-size:calc(clamp(34px,5vw,60px) * var(--k-title,1));font-weight:900;line-height:1.08}
.sh p{color:var(--muted);max-width:30em;justify-self:end;text-align:right}

/* 맨 아래 */
footer{margin-top:128px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);background:var(--bar);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
footer .wrap{display:grid;grid-template-columns:1fr auto;gap:20px 40px;padding-block:40px}
footer .logo{color:var(--text);padding:0}
footer .info{line-height:1.9;margin-top:12px}
footer .links{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
footer .links a:hover,.fbtn:hover{color:var(--acc)}
.fbtn{background:none;border:0;padding:0;color:var(--muted);cursor:pointer;font-weight:700;font-size:14px}
footer .bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line);font-size:13px}

@media (max-width:1040px){nav{display:none}}
@media (max-width:760px){
  .sh{grid-template-columns:1fr}
  .sh p{justify-self:start;text-align:left}
}
@media (max-width:640px){
  .pillcta{display:none}
  .logo{padding-right:12px}
  .sec{padding-block:calc(88px * var(--k-gap,1)) 0}
  footer .wrap{grid-template-columns:1fr}
}
