/* ════════════════════════════════════════
   base.css — 리셋 · 타이포 · 인트로 화면
════════════════════════════════════════ */
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--txt);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s var(--ease),color .4s var(--ease);
}
/* 다크 모드: 셸 전체에 은은한 오로라 글로우(고정) — 밋밋한 평면 방지 */
:root[data-theme="dark"] body{
  background:
    radial-gradient(1100px 620px at 6% -12%, rgba(124,109,255,.22), transparent 58%),
    radial-gradient(950px 560px at 102% -4%, rgba(255,110,199,.13), transparent 55%),
    radial-gradient(820px 680px at 50% 124%, rgba(45,212,191,.09), transparent 60%),
    var(--bg);
  background-attachment:fixed;
}
a{cursor:pointer;text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input{font-family:inherit}
::selection{background:var(--brand);color:#fff}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}
::-webkit-scrollbar-track{background:transparent}

/* ── INTRO ── */
#intro{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 90% at 50% -10%,var(--bg-2),var(--bg));
  overflow:hidden;transition:opacity .6s var(--ease),visibility .6s;
}
#intro.gone{opacity:0;visibility:hidden;pointer-events:none}
.intro-theme{position:absolute;top:22px;right:22px;z-index:6;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:18px;background:var(--surf);border:1px solid var(--line-2);transition:transform .2s var(--ease),border-color .2s}
.intro-theme:hover{transform:translateY(-2px);border-color:var(--brand)}
.intro-aura{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
.intro-aura.a1{width:520px;height:520px;background:var(--brand);top:-160px;left:-80px}
.intro-aura.a2{width:480px;height:480px;background:var(--brand-2);bottom:-180px;right:-60px;opacity:.35}
.intro-inner{position:relative;text-align:center;padding:24px;max-width:720px;animation:rise .7s var(--ease) both}
.intro-logo{display:inline-flex;align-items:center;gap:12px;margin-bottom:26px}
.intro-mark{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:700;font-size:24px;color:#fff;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  box-shadow:0 0 34px var(--glow);
}
.intro-word{font-family:var(--font-display);font-weight:700;font-size:23px;letter-spacing:.22em}
.intro-pill{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--txt-2);
  padding:7px 16px;border:1px solid var(--line-2);border-radius:99px;margin-bottom:30px;
  background:var(--surf);
}
.pill-dot{width:7px;height:7px;border-radius:50%;background:var(--brand-3);box-shadow:0 0 10px var(--brand-3);animation:pulse 1.6s infinite}
.intro-title{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,7vw,68px);line-height:1.04;letter-spacing:-.02em}
.intro-title em{font-style:normal;background:linear-gradient(120deg,var(--brand),var(--brand-2),var(--brand-3));-webkit-background-clip:text;background-clip:text;color:transparent}
.intro-desc{margin:22px auto 30px;max-width:540px;color:var(--txt-2);font-size:15px;line-height:1.7}
.intro-skins{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-bottom:34px}
.intro-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:15px;color:#fff;
  padding:15px 30px;border-radius:99px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  box-shadow:0 14px 36px -10px var(--glow);transition:transform .25s var(--ease),box-shadow .25s;
}
.intro-cta:hover{transform:translateY(-3px);box-shadow:0 22px 46px -12px var(--glow)}
.intro-cta span{transition:transform .25s var(--ease)}
.intro-cta:hover span{transform:translateX(5px)}

@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes fadeUp{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
