/* ═══════════════════════════════════════════
   SEKYS — ECLIPSE  ·  Design System
   ═══════════════════════════════════════════ */

:root {
  /* palette */
  --eclipse-void: #020008;
  --eclipse-deep: #0d0220;
  --eclipse-violet: #1a0840;
  --eclipse-crimson: #e63946;
  --eclipse-crimson-glow: rgba(230,57,70,.35);
  --eclipse-gold: #f0c040;
  --eclipse-gold-muted: rgba(240,192,64,.25);
  --eclipse-white: #f0e6ff;
  --eclipse-muted: #8878a0;
  --eclipse-dim: #4a3a60;

  /* surfaces */
  --eclipse-surface: rgba(255,255,255,.03);
  --eclipse-surface-hover: rgba(255,255,255,.06);
  --eclipse-border: rgba(255,255,255,.08);
  --eclipse-border-active: rgba(230,57,70,.4);

  /* typography */
  --font-display: "Cinzel", serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", monospace;

  /* spacing */
  --section-gap: 120px;
  --content-max: 1100px;

  /* nav */
  --nav-height: 56px;
}

/* ── Base ──────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--font-body);
  background:var(--eclipse-void);
  color:var(--eclipse-white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button { font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
em { font-style:italic; color:var(--eclipse-crimson); }

/* ── Three.js Canvas ───────────────────── */
.eclipse-canvas {
  position:fixed; inset:0; z-index:0;
  pointer-events:none;
  opacity:.85;
}

/* ── Splash ────────────────────────────── */
.eclipse-splash {
  position:fixed; inset:0; z-index:1000;
  background:radial-gradient(ellipse at center, transparent 30%, rgba(2,0,8,.78) 100%);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column;
  pointer-events:none;
}
.eclipse-splash__core {
  display:flex; flex-direction:column; align-items:center; gap:24px;
  animation:splashPulse 2s ease-out;
}
@keyframes splashPulse {
  0% { transform:scale(.85); opacity:0; }
  30% { opacity:1; }
  100% { transform:scale(1); opacity:1; }
}
.eclipse-splash__ring {
  width:100px; height:100px;
  border-radius:50%;
  border:2px solid var(--eclipse-crimson);
  animation:splashRing 1.8s ease-out infinite;
  box-shadow:0 0 40px var(--eclipse-crimson-glow);
}
@keyframes splashRing {
  0%,100% { transform:scale(1); opacity:.6; }
  50% { transform:scale(1.15); opacity:1; }
}
.eclipse-splash__crown {
  color:var(--eclipse-gold);
  width:60px; height:60px;
  animation:splashCrown 1.5s ease-out;
}
@keyframes splashCrown {
  0% { transform:scale(0) rotate(-30deg); opacity:0; }
  100% { transform:scale(1) rotate(0deg); opacity:1; }
}
.eclipse-splash__name {
  font-family:var(--font-display);
  font-size:clamp(2.4rem,7vw,4rem);
  font-weight:900;
  letter-spacing:.15em;
  color:var(--eclipse-white);
}
.eclipse-splash__sub {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.2em;
  color:var(--eclipse-muted);
}

/* ── Nav ────────────────────────────────── */
.eclipse-nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-height);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 28px;
  background:rgba(2,0,8,.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--eclipse-border);
}
.eclipse-nav__logo {
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:14px;
  letter-spacing:.12em;
}
.eclipse-logo { width:28px; height:28px; color:var(--eclipse-crimson); }
.eclipse-nav__menu {
  display:flex; align-items:center; gap:0;
}
.eclipse-nav__menu a {
  padding:8px 14px;
  font-size:12px;
  font-weight:500;
  letter-spacing:.04em;
  color:var(--eclipse-muted);
  transition:color .2s;
  text-transform:uppercase;
}
.eclipse-nav__menu a:hover,
.eclipse-nav__menu a:focus-visible { color:var(--eclipse-white); }
.eclipse-nav__tiktok {
  color:var(--eclipse-crimson) !important;
  font-weight:600 !important;
}
.eclipse-nav__theme {
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  border:1px solid var(--eclipse-border);
  color:var(--eclipse-muted);
  font-size:15px;
  transition:all .2s;
  flex-shrink:0;
}
.eclipse-nav__theme:hover { color:var(--eclipse-gold); border-color:var(--eclipse-gold-muted); }

/* ── Hero ───────────────────────────────── */
.eclipse-hero {
  position:relative; z-index:1;
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  gap:64px;
  padding:120px 28px 80px;
  max-width:var(--content-max);
  margin:0 auto;
}
.eclipse-hero__portrait { flex-shrink:0; }
.eclipse-hero__frame {
  position:relative;
  width:clamp(240px,30vw,320px);
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  border:2px solid var(--eclipse-border-active);
  box-shadow:0 0 60px var(--eclipse-crimson-glow), inset 0 0 40px rgba(230,57,70,.08);
}
.eclipse-hero__glow {
  position:absolute; inset:-10px;
  border-radius:50%;
  background:radial-gradient(circle,var(--eclipse-crimson-glow) 0%,transparent 70%);
  animation:eclipseGlowPulse 3s ease-in-out infinite;
}
@keyframes eclipseGlowPulse {
  0%,100% { opacity:.5; }
  50% { opacity:1; }
}
.eclipse-hero__img {
  position:relative; z-index:2;
  width:100%; height:100%;
  object-fit:cover;
  border-radius:50%;
}
.eclipse-hero__crown-mark {
  position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  z-index:3;
  width:48px; height:48px;
  color:var(--eclipse-gold);
  filter:drop-shadow(0 0 8px var(--eclipse-gold-muted));
}
.eclipse-hero__badge {
  display:flex; gap:8px;
  margin-top:16px;
  justify-content:center;
}
.eclipse-badge {
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.06em;
  padding:5px 10px;
  border-radius:20px;
  border:1px solid;
}
.eclipse-badge--mvp { color:var(--eclipse-gold); border-color:var(--eclipse-gold-muted); }
.eclipse-badge--champ { color:var(--eclipse-crimson); border-color:var(--eclipse-crimson-glow); }

.eclipse-hero__text { max-width:560px; }
.eclipse-hero__kicker {
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.18em;
  color:var(--eclipse-crimson);
  margin-bottom:16px;
}
.eclipse-hero__name {
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2.2rem,5vw,3.8rem);
  line-height:1.1;
  letter-spacing:.04em;
  margin-bottom:14px;
}
.eclipse-hero__name-line { display:block; }
.eclipse-hero__name-line--accent { color:var(--eclipse-crimson); }
.eclipse-hero__alias {
  font-size:14px;
  color:var(--eclipse-muted);
  margin-bottom:12px;
}
.eclipse-hero__motto {
  font-family:var(--font-display);
  font-size:15px;
  font-style:italic;
  color:var(--eclipse-gold);
  border-left:2px solid var(--eclipse-crimson);
  padding-left:16px;
  margin:20px 0 28px;
  opacity:.9;
}
.eclipse-hero__stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.eclipse-stat__num {
  font-family:var(--font-mono);
  font-size:clamp(1.2rem,2.5vw,1.8rem);
  font-weight:500;
  color:var(--eclipse-white);
}
.eclipse-stat__lbl {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--eclipse-muted);
  margin-top:4px;
}

/* ── Sections ───────────────────────────── */
.eclipse-section {
  position:relative; z-index:1;
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 28px var(--section-gap);
}
.eclipse-section__mark {
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--eclipse-crimson);
  letter-spacing:.12em;
  margin-bottom:8px;
}
.eclipse-section__title {
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,2.8rem);
  font-weight:700;
  letter-spacing:.06em;
  margin-bottom:8px;
}
.eclipse-section__sub {
  font-size:14px;
  color:var(--eclipse-muted);
  margin-bottom:40px;
}

/* ── Arsenal (hero pool) ────────────────── */
.arsenal-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:16px;
}
.arsenal-card {
  background:var(--eclipse-surface);
  border:1px solid var(--eclipse-border);
  border-radius:12px;
  padding:20px;
  transition:all .3s;
}
.arsenal-card:hover {
  background:var(--eclipse-surface-hover);
  border-color:var(--eclipse-border-active);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(230,57,70,.08);
}
.arsenal-card__hero {
  font-family:var(--font-display);
  font-size:18px;
  font-weight:700;
  letter-spacing:.04em;
  margin-bottom:8px;
}
.arsenal-card__stats {
  display:flex; gap:20px;
  margin-bottom:10px;
}
.arsenal-card__stat-num {
  font-family:var(--font-mono);
  font-size:14px;
  color:var(--eclipse-crimson);
}
.arsenal-card__stat-lbl {
  font-size:10px;
  text-transform:uppercase;
  color:var(--eclipse-muted);
  margin-top:2px;
}
.arsenal-card__bar {
  height:4px;
  border-radius:2px;
  background:var(--eclipse-border);
  overflow:hidden;
}
.arsenal-card__bar-fill {
  height:100%;
  border-radius:2px;
  background:linear-gradient(90deg,var(--eclipse-crimson),var(--eclipse-gold));
  transition:width .8s ease-out;
}

/* ── Creed ──────────────────────────────── */
.creed-content {
  max-width:680px;
}
.creed__bio {
  font-size:16px;
  line-height:1.8;
  color:var(--eclipse-white);
  opacity:.85;
  margin-bottom:28px;
}
.creed__sig {
  font-family:var(--font-display);
  font-size:18px;
  font-style:italic;
  color:var(--eclipse-gold);
  padding:16px 0;
  border-top:1px solid var(--eclipse-border);
  border-bottom:1px solid var(--eclipse-border);
}

/* ── Career Timeline ────────────────────── */
.career-timeline {
  position:relative;
  padding-left:28px;
}
.career-timeline::before {
  content:""; position:absolute; left:8px; top:0; bottom:0;
  width:1px;
  background:linear-gradient(180deg,var(--eclipse-crimson),var(--eclipse-violet),transparent);
}
.career-node {
  position:relative;
  padding-left:24px;
  margin-bottom:32px;
}
.career-node::before {
  content:""; position:absolute; left:-24px; top:6px;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--eclipse-crimson);
  box-shadow:0 0 12px var(--eclipse-crimson-glow);
}
.career-node__team {
  font-family:var(--font-display);
  font-size:16px;
  font-weight:600;
  letter-spacing:.04em;
}
.career-node__period {
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--eclipse-muted);
  margin:4px 0;
}
.career-node__role {
  font-size:13px;
  color:var(--eclipse-crimson);
  font-weight:500;
  margin-bottom:4px;
}
.career-node__note {
  font-size:13px;
  color:var(--eclipse-dim);
  line-height:1.5;
}

/* ── Clips Grid ─────────────────────────── */
.clips-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px;
}
.clip-card {
  position:relative;
  aspect-ratio:9/16;
  border-radius:12px;
  overflow:hidden;
  cursor:pointer;
  background:var(--eclipse-surface);
  border:1px solid var(--eclipse-border);
  transition:all .3s;
}
.clip-card:hover {
  transform:translateY(-4px);
  border-color:var(--eclipse-border-active);
  box-shadow:0 12px 32px rgba(230,57,70,.12);
}
.clip-card__thumb {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  transition:transform .4s;
}
.clip-card:hover .clip-card__thumb { transform:scale(1.06); }
.clip-card__overlay {
  position:absolute; inset:0;
  background:linear-gradient(0deg,rgba(2,0,8,.85) 0%,transparent 50%);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:16px;
}
.clip-card__title {
  font-size:12px;
  font-weight:500;
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:6px;
}
.clip-card__meta {
  display:flex; gap:12px;
  font-family:var(--font-mono);
  font-size:10px;
  color:var(--eclipse-muted);
}
.clip-card__play {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:48px; height:48px;
  border-radius:50%;
  background:rgba(230,57,70,.85);
  display:flex; align-items:center; justify-content:center;
  opacity:0;
  transition:opacity .3s;
  font-size:18px;
  color:white;
}
.clip-card:hover .clip-card__play { opacity:1; }
.clips-load {
  text-align:center;
  margin-top:28px;
}
.eclipse-btn {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
  padding:12px 32px;
  border:1px solid var(--eclipse-border-active);
  border-radius:6px;
  color:var(--eclipse-crimson);
  transition:all .3s;
}
.eclipse-btn:hover {
  background:var(--eclipse-crimson);
  color:var(--eclipse-white);
}

/* ── Legacy ─────────────────────────────── */
.legacy-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:12px;
}
.legacy-card {
  background:var(--eclipse-surface);
  border:1px solid var(--eclipse-border);
  border-radius:10px;
  padding:16px;
  transition:all .2s;
}
.legacy-card:hover {
  border-color:var(--eclipse-border-active);
  background:var(--eclipse-surface-hover);
}
.legacy-card__date {
  font-family:var(--font-mono);
  font-size:10px;
  color:var(--eclipse-muted);
  margin-bottom:4px;
}
.legacy-card__title {
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  letter-spacing:.03em;
  margin-bottom:2px;
}
.legacy-card__award {
  font-size:13px;
  color:var(--eclipse-crimson);
  font-weight:500;
}
.legacy-card__note {
  font-size:11px;
  color:var(--eclipse-dim);
  margin-top:4px;
}
.legacy-card--gold { border-color:var(--eclipse-gold-muted); }
.legacy-card--gold .legacy-card__award { color:var(--eclipse-gold); }

/* ── Squad ──────────────────────────────── */
.squad-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:16px;
}
.squad-card {
  text-align:center;
  padding:24px 16px;
  background:var(--eclipse-surface);
  border:1px solid var(--eclipse-border);
  border-radius:12px;
  transition:all .3s;
}
.squad-card:hover {
  background:var(--eclipse-surface-hover);
  border-color:var(--eclipse-border-active);
  transform:translateY(-2px);
}
.squad-card__avatar {
  width:56px; height:56px;
  border-radius:50%;
  background:var(--eclipse-violet);
  border:2px solid var(--eclipse-border);
  margin:0 auto 12px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-size:22px;
  font-weight:700;
  color:var(--eclipse-crimson);
}
.squad-card__name {
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.squad-card__role {
  font-size:11px;
  color:var(--eclipse-muted);
  text-transform:uppercase;
  letter-spacing:.06em;
}

/* ── Footer ─────────────────────────────── */
.eclipse-footer {
  position:relative; z-index:1;
  max-width:var(--content-max);
  margin:0 auto;
  padding:40px 28px 60px;
  display:flex; flex-direction:column; align-items:center;
  gap:12px;
  border-top:1px solid var(--eclipse-border);
}
.eclipse-footer__hub {
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--eclipse-muted);
  transition:color .2s;
}
.eclipse-footer__hub:hover { color:var(--eclipse-gold); }
.eclipse-footer__links {
  display:flex; gap:20px;
}
.eclipse-footer__links a {
  font-size:12px;
  color:var(--eclipse-dim);
  transition:color .2s;
}
.eclipse-footer__links a:hover { color:var(--eclipse-crimson); }
.eclipse-footer__copy {
  font-size:10px;
  color:var(--eclipse-dim);
  letter-spacing:.06em;
}

/* ── Modal ──────────────────────────────── */
.eclipse-modal {
  position:fixed; inset:0; z-index:200;
  display:none;
  align-items:center; justify-content:center;
  padding:20px;
}
.eclipse-modal.is-open { display:flex; }
.eclipse-modal__backdrop {
  position:absolute; inset:0;
  background:rgba(2,0,8,.9);
  backdrop-filter:blur(8px);
}
.eclipse-modal__inner {
  position:relative; z-index:1;
  width:100%; max-width:400px;
  max-height:90vh;
  background:var(--eclipse-deep);
  border:1px solid var(--eclipse-border);
  border-radius:16px;
  overflow:hidden;
}
.eclipse-modal__close {
  position:absolute; top:12px; right:12px; z-index:3;
  width:32px; height:32px;
  border-radius:50%;
  background:rgba(0,0,0,.6);
  color:var(--eclipse-white);
  font-size:16px;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.eclipse-modal__close:hover { background:var(--eclipse-crimson); }
.eclipse-modal__embed {
  aspect-ratio:9/16;
  background:black;
}
.eclipse-modal__embed iframe {
  width:100%; height:100%;
  border:none;
}
.eclipse-modal__info {
  padding:16px;
}
.eclipse-modal__title {
  font-size:13px;
  font-weight:500;
  line-height:1.4;
  margin-bottom:8px;
}
.eclipse-modal__stats-row {
  display:flex; gap:16px;
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--eclipse-muted);
}

/* ── Light Theme ──────────────────────────── */
body.theme-light {
  --eclipse-void: #f8f6f0;
  --eclipse-deep: #ede8de;
  --eclipse-violet: #d8d0c4;
  --eclipse-white: #1a1410;
  --eclipse-muted: #7a7064;
  --eclipse-dim: #a09888;
  --eclipse-surface: rgba(0,0,0,.04);
  --eclipse-surface-hover: rgba(0,0,0,.07);
  --eclipse-border: rgba(0,0,0,.1);
  --eclipse-border-active: rgba(230,57,70,.35);
}
body.theme-light .eclipse-canvas { opacity:.25; }
body.theme-light .eclipse-nav { background:rgba(248,246,240,.92); }
body.theme-light .eclipse-modal__backdrop { background:rgba(248,246,240,.9); }

@media(max-width:680px){
  .eclipse-hero {
    flex-direction:column;
    min-height:auto;
    padding-top:80px !important;
    padding-bottom:40px;
    gap:32px;
  }
  .eclipse-hero__frame {
    width:180px;
  }
  .eclipse-hero__stats {
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    text-align:center;
    justify-items:center;
  }
  .eclipse-hero__motto {
    font-size:13px;
    margin:16px 0 24px;
  }
  .eclipse-section {
    padding-bottom:80px;
  }
  .arsenal-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .clips-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .legacy-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .squad-grid {
    grid-template-columns:repeat(2,1fr);
  }

  /* bottom tabbar */
  .eclipse-nav {
    top:auto; bottom:14px;
    left:50%; right:auto;
    transform:translateX(-50%);
    width:max-content;
    min-width:calc(100vw - 20px);
    max-width:calc(100vw - 20px);
    border-radius:28px;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));
    height:auto;
    justify-content:center;
    background:rgba(2,0,8,.92);
    backdrop-filter:blur(40px);
    -webkit-backdrop-filter:blur(40px);
    border:1px solid var(--eclipse-border);
    border-bottom:1px solid var(--eclipse-border);
  }
  .eclipse-nav__logo span { display:none; }
  .eclipse-nav__menu {
    flex:1; justify-content:space-around;
    gap:0; padding:0 4px;
  }
  .eclipse-nav__menu a {
    font-size:10px;
    padding:7px 6px;
    letter-spacing:.01em;
  }
  .eclipse-nav__theme {
    width:30px; height:30px;
    flex-shrink:0;
  }
  body { padding-bottom:90px; }
}
