/* ============================================================
   STARNAUTS — Design tokens & homepage styles
   Streaming Skill Training System
   ============================================================ */

:root{
  /* Brand colors */
  --ink:#141414;
  --blue:#2E6FC9;
  --blue-700:#245AA8;
  --blue-300:#7FA9E0;
  --white:#FFFFFF;
  --gray:#F4F5F7;
  --navy:#0E1116;
  --live:#E5342B;

  /* Derived neutrals */
  --line:#E6E8EE;
  --line-strong:#D7DBE3;
  --muted:#5B6373;
  --muted-2:#8A93A6;
  --ink-soft:#2A2F3A;

  /* Dark surface tokens */
  --navy-2:#141A24;
  --navy-line:rgba(255,255,255,.10);
  --navy-muted:#9AA6BC;

  /* Radii */
  --r-sm:14px;
  --r:16px;
  --r-lg:18px;
  --r-pill:999px;

  /* Shadow */
  --sh-1:0 1px 2px rgba(20,20,20,.04), 0 2px 8px rgba(20,20,20,.05);
  --sh-2:0 6px 24px rgba(20,20,20,.08);
  --sh-3:0 18px 48px rgba(14,17,22,.16);
  --sh-blue:0 10px 26px rgba(46,111,201,.30);

  /* Layout */
  --maxw:1200px;
  --pad:24px;

  --font:"Noto Sans KR","Noto Sans",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4,.lead,blockquote,.section-sub,.jstep p,.course h3,.scard-body .title{word-break:keep-all}
ul{margin:0;padding:0;list-style:none}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;letter-spacing:.06em;
  color:var(--blue);text-transform:uppercase;
}
.eyebrow.on-dark{color:var(--blue-300)}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:currentColor}

.section{padding:88px 0}
.section--gray{background:var(--gray)}
.section-head{max-width:680px;margin:0 0 44px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-title{
  font-size:clamp(28px,3.4vw,40px);font-weight:900;line-height:1.18;
  letter-spacing:-.02em;color:var(--ink);
}
.section-sub{margin-top:14px;font-size:17px;color:var(--muted);line-height:1.7}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:50px;padding:0 22px;border-radius:var(--r-pill);
  font-size:15.5px;font-weight:700;white-space:nowrap;
  transition:transform .16s cubic-bezier(.23,1,.32,1), box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s;
}
.btn:active{transform:scale(.97)}
.btn--primary{background:var(--blue);color:#fff;box-shadow:var(--sh-blue)}
.btn--primary:hover{background:var(--blue-700);box-shadow:0 14px 30px rgba(46,111,201,.38)}
.btn--ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line-strong)}
.btn--ghost:hover{border-color:var(--ink);background:#fff}
.btn--ghost-dark{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.28)}
.btn--ghost-dark:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn--sm{height:42px;font-size:14px;padding:0 16px}
.btn--lg{height:56px;font-size:16.5px;padding:0 28px}
.btn--block{width:100%}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line);
}
.header-row{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:11px}
.brand .mark{width:38px;height:38px;flex:none}
.brand .wordmark{display:flex;flex-direction:column;line-height:1}
.brand .wm-main{font-size:19px;font-weight:900;letter-spacing:.02em;color:var(--ink)}
.brand .wm-sub{font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--muted-2);margin-top:3px}
.nav{display:flex;align-items:center;gap:6px;margin-left:8px}
.nav a{
  padding:9px 14px;border-radius:10px;font-size:15px;font-weight:700;color:var(--ink-soft);
  transition:background .15s,color .15s;
}
.nav a:hover{background:var(--gray);color:var(--blue)}
.header-cta{display:flex;align-items:center;gap:10px;margin-left:auto}
.link-login{padding:9px 6px;font-size:15px;font-weight:700;color:var(--ink-soft)}
.link-login:hover{color:var(--blue)}
.burger{display:none;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center}
.burger:hover{background:var(--gray)}
.burger span{display:block;width:20px;height:2px;background:var(--ink);position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink)}
.burger span::before{top:-6px}.burger span::after{top:6px}

/* ============================================================
   HERO  (dark space)
   ============================================================ */
.hero{position:relative;overflow:hidden;background:var(--navy);color:#fff}
.hero .stars,.hero .stars2,.hero .neb{position:absolute;inset:0;pointer-events:none}
.hero .neb{
  background:
    radial-gradient(60% 50% at 78% 18%, rgba(46,111,201,.34), transparent 60%),
    radial-gradient(50% 60% at 12% 88%, rgba(46,111,201,.18), transparent 60%),
    radial-gradient(40% 40% at 90% 90%, rgba(127,169,224,.12), transparent 60%);
}
.hero-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
  padding:96px 0 104px;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:9px;height:34px;padding:0 14px;
  border-radius:var(--r-pill);background:rgba(127,169,224,.12);
  border:1px solid rgba(127,169,224,.26);
  font-size:13px;font-weight:700;color:var(--blue-300);letter-spacing:.02em;
}
.hero h1{
  margin-top:22px;font-size:clamp(34px,4.6vw,58px);font-weight:900;line-height:1.16;
  letter-spacing:-.025em;
}
.hero h1 .em{color:var(--blue-300)}
.hero .lead{margin-top:20px;font-size:18px;line-height:1.75;color:#C6CEDC;max-width:30em}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-stats{display:flex;gap:30px;margin-top:38px}
.hero-stats .num{font-size:24px;font-weight:900;color:#fff}
.hero-stats .lab{font-size:13px;color:var(--navy-muted);margin-top:2px}
.hero-stats .sep{width:1px;background:var(--navy-line)}

/* Space scene (right) */
.scene{position:relative;height:440px}
.orbit{position:absolute;border:1px solid rgba(127,169,224,.22);border-radius:50%}
.orbit--1{inset:18% 14%;}
.orbit--2{inset:4% 2%;border-style:dashed;border-color:rgba(127,169,224,.16)}
.orbit--3{inset:30% 28%;}
.sat{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--blue-300);box-shadow:0 0 14px rgba(127,169,224,.9)}
.spin{animation:spin linear infinite}
.spin--slow{animation-duration:38s}
.spin--mid{animation-duration:26s}
.spin--rev{animation-direction:reverse;animation-duration:30s}
@keyframes spin{to{transform:rotate(360deg)}}
.planet{
  position:absolute;left:50%;top:50%;width:188px;height:188px;transform:translate(-50%,-50%);
  border-radius:50%;
  background:
    radial-gradient(120px 120px at 32% 28%, #4C86D8, #2E6FC9 46%, #1C4B86 78%, #16385F 100%);
  box-shadow:inset -22px -18px 46px rgba(0,0,0,.5), 0 0 60px rgba(46,111,201,.45);
}
.planet::after{
  content:"";position:absolute;left:-26%;top:42%;width:152%;height:34%;
  border-radius:50%;border:10px solid rgba(127,169,224,.5);
  transform:rotate(-18deg);box-sizing:border-box;
  border-bottom-color:rgba(127,169,224,.16);
}
.scene .helmet{
  position:absolute;left:50%;top:50%;width:120px;transform:translate(-50%,-54%);
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));
  animation:bob 6s ease-in-out infinite;
}
@keyframes bob{0%,100%{transform:translate(-50%,-54%)}50%{transform:translate(-50%,-62%)}}
.shooter{position:absolute;width:120px;height:2px;background:linear-gradient(90deg,transparent,#fff);opacity:0;border-radius:2px}

/* ============================================================
   JOURNEY (constellation timeline)
   ============================================================ */
.journey{position:relative}
.journey-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
.journey-line{position:absolute;left:8%;right:8%;top:42px;height:2px;
  background:repeating-linear-gradient(90deg,var(--line-strong) 0 8px,transparent 8px 16px);z-index:0}
.jstep{position:relative;z-index:1;text-align:center}
.jstep .node{
  width:84px;height:84px;margin:0 auto 18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;position:relative;
  background:#fff;border:2px solid var(--line-strong);box-shadow:var(--sh-1);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.jstep .node svg{width:34px;height:34px}
.jstep:hover .node{transform:translateY(-4px);border-color:var(--blue);box-shadow:var(--sh-2)}
.jstep .star-num{
  position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;
  background:var(--blue);color:#fff;font-size:13px;font-weight:900;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-blue);
}
.jstep h3{font-size:19px;font-weight:900;margin-bottom:6px}
.jstep .stage{font-size:12.5px;font-weight:700;color:var(--blue-300);letter-spacing:.04em;margin-bottom:8px}
.jstep p{font-size:14.5px;color:var(--muted);line-height:1.65;padding:0 6px}
.jstep--final .node{background:var(--navy);border-color:var(--navy)}
.jstep--final .node svg{color:var(--blue-300)}

/* ============================================================
   COURSES
   ============================================================ */
.courses-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 30px}
.tab{
  height:40px;padding:0 18px;border-radius:var(--r-pill);font-size:14px;font-weight:700;
  color:var(--muted);background:#fff;border:1.5px solid var(--line);
  transition:background-color .18s, border-color .18s, color .18s;
}
.tab:hover{border-color:var(--blue-300);color:var(--blue)}
.tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.course{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-1);transition:transform .2s, box-shadow .2s;display:flex;flex-direction:column;
}
.course:hover{transform:translateY(-6px);box-shadow:var(--sh-3)}
.course-thumb{position:relative;aspect-ratio:16/10;display:flex;align-items:flex-end;padding:14px;overflow:hidden}
.course-thumb .glyph{position:absolute;right:-10px;top:-14px;font-size:120px;opacity:.16;color:#fff;line-height:1}
.course-thumb .lvl{
  position:relative;z-index:1;height:26px;padding:0 11px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.92);font-size:11.5px;font-weight:900;color:var(--ink);
  display:inline-flex;align-items:center;letter-spacing:.02em;
}
.course-body{padding:18px;display:flex;flex-direction:column;flex:1}
.course-cat{font-size:12px;font-weight:900;color:var(--blue-300);letter-spacing:.04em}
.course h3{font-size:18px;font-weight:900;line-height:1.4;margin:8px 0 12px}
.course-meta{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.tutor-ava{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;color:#fff;flex:none}
.course-meta .tname{font-size:13.5px;font-weight:700;color:var(--ink-soft)}
.course-meta .rate{margin-left:auto;font-size:13px;font-weight:700;color:var(--ink)}
.course-meta .rate b{color:#F5A623}
.course-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.course-price{font-size:19px;font-weight:900;color:var(--ink)}
.course-price s{font-size:13px;font-weight:700;color:var(--muted-2);margin-right:7px}
.course-price .free{color:var(--blue-300)}
.course-foot .enroll{font-size:13px;font-weight:700;color:var(--blue-300)}

/* Bootcamp feature card */
.bootcamp{
  margin-top:24px;border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(120deg,#141A24,#0E1116);color:#fff;
  display:grid;grid-template-columns:1.2fr .8fr;gap:0;border:1px solid var(--navy-line);
  position:relative;
}
.bootcamp-l{padding:36px}
.bootcamp .tag{display:inline-flex;height:28px;align-items:center;padding:0 12px;border-radius:var(--r-pill);
  background:rgba(229,52,43,.16);color:#FF8A82;font-size:12px;font-weight:900;letter-spacing:.03em}
.bootcamp h3{font-size:clamp(22px,2.6vw,30px);font-weight:900;margin:16px 0 12px;line-height:1.25}
.bootcamp p{color:#C6CEDC;font-size:15px;line-height:1.7;max-width:34em}
.bootcamp-feat{display:flex;gap:22px;margin:22px 0 26px;flex-wrap:wrap}
.bootcamp-feat .it{font-size:13px;color:#9AA6BC}
.bootcamp-feat .it b{display:block;font-size:22px;font-weight:900;color:#fff;margin-bottom:2px}
.bootcamp-r{position:relative;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(60% 60% at 60% 40%, rgba(46,111,201,.34),transparent 70%)}

/* ============================================================
   TOOL (Suno generator)
   ============================================================ */
.tool-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center}
.tool-copy .feat{display:flex;flex-direction:column;gap:14px;margin:26px 0 30px}
.tool-copy .feat li{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--ink-soft)}
.tool-copy .feat .ic{width:24px;height:24px;border-radius:7px;background:rgba(46,111,201,.12);
  display:flex;align-items:center;justify-content:center;flex:none;color:var(--blue);margin-top:1px}
.tool-copy .feat .ic svg{width:14px;height:14px}

.suno{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);overflow:hidden;
}
.suno-bar{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--gray)}
.suno-bar .dots{display:flex;gap:6px}
.suno-bar .dots i{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}
.suno-bar .ttl{font-size:13px;font-weight:900;color:var(--muted);margin-left:4px}
.suno-bar .live-tool{margin-left:auto;font-size:11px;font-weight:900;color:var(--blue-300);
  background:rgba(46,111,201,.1);padding:4px 9px;border-radius:var(--r-pill)}
.suno-body{padding:20px}
.suno-field{margin-bottom:16px}
.suno-field label{display:block;font-size:12.5px;font-weight:900;color:var(--muted);margin-bottom:9px;letter-spacing:.02em}
.chiprow{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:34px;padding:0 14px;border-radius:var(--r-pill);font-size:13px;font-weight:700;
  color:var(--ink-soft);background:#fff;border:1.5px solid var(--line);
  transition:background-color .15s, border-color .15s, color .15s, box-shadow .15s}
.chip:hover{border-color:var(--blue-300)}
.chip.on{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:var(--sh-blue)}
.suno-field input[type=text]{
  width:100%;height:46px;padding:0 14px;border-radius:var(--r);border:1.5px solid var(--line);
  font-family:inherit;font-size:14.5px;color:var(--ink);transition:border-color .15s, box-shadow .15s;
}
.suno-field input[type=text]:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(46,111,201,.12)}
.suno-out{margin-top:4px;background:var(--navy);border-radius:var(--r);padding:16px 16px 14px;position:relative}
.suno-out .olabel{font-size:11px;font-weight:900;color:var(--navy-muted);letter-spacing:.08em;text-transform:uppercase}
.suno-out .otext{margin-top:9px;font-size:14px;line-height:1.7;color:#E6ECF6;font-family:"Noto Sans Mono",ui-monospace,monospace;
  min-height:66px;white-space:pre-wrap}
.suno-out .otext .hl{color:var(--blue-300)}
.suno-out .copy{position:absolute;top:13px;right:13px;height:30px;padding:0 12px;border-radius:9px;
  font-size:12px;font-weight:900;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  transition:background-color .15s}
.suno-out .copy:hover{background:rgba(255,255,255,.18)}

/* ============================================================
   STREAMERS carousel
   ============================================================ */
.streamers{background:var(--navy);color:#fff}
.streamers .section-title{color:#fff}
.streamers .section-sub{color:#AEB8CA}
.carousel{position:relative;margin-top:6px}
.carousel-vp{overflow:hidden}
.carousel-track{display:flex;gap:20px;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform}
.scard{flex:0 0 calc((100% - 60px)/4);min-width:0;
  background:var(--navy-2);border:1px solid var(--navy-line);border-radius:var(--r-lg);overflow:hidden;
  transition:transform .2s,border-color .2s}
.scard:hover{transform:translateY(-5px);border-color:rgba(127,169,224,.4)}
.scard-top{position:relative;aspect-ratio:4/3;display:flex;align-items:flex-end;padding:12px;overflow:hidden}
.scard-top .glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:64px;font-weight:900;color:rgba(255,255,255,.16)}
.badge-live{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;
  height:26px;padding:0 11px;border-radius:var(--r-pill);background:var(--live);color:#fff;
  font-size:11.5px;font-weight:900;letter-spacing:.03em;z-index:2}
.badge-live .pulse{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.scard-top .viewers{position:relative;z-index:1;height:24px;padding:0 9px;border-radius:8px;
  background:rgba(0,0,0,.5);font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;gap:5px}
.scard-body{padding:14px}
.scard-body .who{display:flex;align-items:center;gap:10px}
.scard-body .who .ava{width:36px;height:36px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:#fff}
.scard-body .who .nm{font-size:15px;font-weight:900}
.scard-body .who .cat{font-size:12px;color:var(--navy-muted);margin-top:1px}
.scard-body .title{font-size:14px;color:#C6CEDC;margin:12px 0 14px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px}
.watch{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:42px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.06);border:1px solid var(--navy-line);color:#fff;font-size:13.5px;font-weight:700;
  transition:background-color .15s, border-color .15s}
.watch:hover{background:var(--blue);border-color:var(--blue)}
.carousel-nav{display:flex;gap:10px}
.cbtn{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid var(--navy-line);color:#fff;
  transition:background-color .15s, border-color .15s, color .15s, opacity .15s}
.cbtn:hover{background:rgba(255,255,255,.14)}
.cbtn:disabled{opacity:.3;cursor:not-allowed}
.carousel-foot{display:flex;align-items:center;justify-content:space-between;margin-top:26px}
.dots{display:flex;gap:8px}
.dots button{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.22);
  transition:width .2s, border-radius .2s, background-color .2s}
.dots button.on{width:24px;border-radius:5px;background:var(--blue-300)}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.tslider{position:relative;max-width:860px;margin:0 auto}
.tviewport{overflow:hidden}
.ttrack{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.tslide{flex:0 0 100%;min-width:0;padding:0 6px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:40px;box-shadow:var(--sh-2);text-align:center}
.tcard .stars{color:#F5A623;font-size:16px;letter-spacing:3px;margin-bottom:18px}
.tcard blockquote{font-size:clamp(19px,2.2vw,24px);font-weight:700;line-height:1.6;letter-spacing:-.02em;color:var(--ink)}
.tcard blockquote .mk{color:var(--blue)}
.tperson{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:24px}
.tperson .ava{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff}
.tperson .nm{font-size:15px;font-weight:900;text-align:left}
.tperson .role{font-size:13px;color:var(--muted);text-align:left;margin-top:2px}
.tnav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:28px}
.tnav .cbtn{background:#fff;border:1.5px solid var(--line-strong);color:var(--ink)}
.tnav .cbtn:hover{border-color:var(--blue);color:var(--blue);background:#fff}
.tdots{display:flex;gap:8px}
.tdots button{width:8px;height:8px;border-radius:50%;background:var(--line-strong);
  transition:width .2s, border-radius .2s, background-color .2s}
.tdots button.on{width:24px;border-radius:5px;background:var(--blue)}

/* ============================================================
   CTA banner + Footer
   ============================================================ */
.cta-banner{position:relative;overflow:hidden;background:var(--blue);color:#fff;text-align:center;padding:72px 0}
.cta-banner .neb{position:absolute;inset:0;background:
  radial-gradient(50% 80% at 20% 0%, rgba(255,255,255,.18),transparent 60%),
  radial-gradient(50% 80% at 85% 100%, rgba(14,17,22,.22),transparent 60%);pointer-events:none}
.cta-banner h2{position:relative;font-size:clamp(28px,3.6vw,42px);font-weight:900;line-height:1.2;letter-spacing:-.02em}
.cta-banner p{position:relative;margin-top:14px;font-size:17px;color:rgba(255,255,255,.9)}
.cta-banner .cta-actions{position:relative;display:flex;gap:12px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.cta-banner .btn--primary{background:#fff;color:var(--blue);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.cta-banner .btn--primary:hover{background:#fff;color:var(--blue-700)}

.footer{background:var(--navy);color:#fff;padding:72px 0 34px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.footer .brand .wm-main{color:#fff}
.footer .fdesc{margin-top:16px;font-size:14px;color:var(--navy-muted);line-height:1.7;max-width:30em}
.footer .socials{display:flex;gap:10px;margin-top:20px}
.footer .socials a{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.06);
  border:1px solid var(--navy-line);display:flex;align-items:center;justify-content:center;
  transition:background-color .15s, border-color .15s}
.footer .socials a:hover{background:var(--blue);border-color:var(--blue)}
.footer .socials svg{width:18px;height:18px;color:#fff}
.fcol h4{font-size:13px;font-weight:900;color:#fff;letter-spacing:.04em;margin-bottom:16px}
.fcol a{display:block;font-size:14px;color:var(--navy-muted);padding:6px 0;transition:color .15s}
.fcol a:hover{color:#fff}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:48px;padding-top:26px;border-top:1px solid var(--navy-line)}
.footer-bottom p{font-size:13px;color:var(--muted-2)}
.footer-bottom .links{display:flex;gap:20px}
.footer-bottom .links a{font-size:13px;color:var(--navy-muted)}
.footer-bottom .links a:hover{color:#fff}

/* ============================================================
   MOBILE
   ============================================================ */
.mobile-menu{display:none}
@media (max-width:980px){
  .nav,.link-login{display:none}
  .burger{display:flex}
  .header-cta{gap:8px}
  .hero-inner{grid-template-columns:1fr;gap:18px;padding:64px 0 76px}
  .scene{height:340px;order:-1}
  .tool-grid{grid-template-columns:1fr;gap:28px}
  .bootcamp{grid-template-columns:1fr}
  .bootcamp-r{min-height:200px}
  .course-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
  .footer .brand-col{grid-column:1/-1}
}
@media (max-width:680px){
  :root{--pad:18px}
  .section{padding:60px 0}
  .journey-track{grid-template-columns:1fr 1fr;gap:30px 18px}
  .journey-line{display:none}
  .course-grid{grid-template-columns:1fr}
  .scard{flex:0 0 calc((100% - 20px))}
  .hero-stats{gap:18px}
  .hero-stats .num{font-size:20px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
