:root {
  --ink: #eff4ff;
  --muted: #aeb9cf;
  --line: rgba(214, 226, 255, 0.22);
  --paper: #080d1d;
  --accent: #72e7ff;
  --violet: #aa8cff;
}

* { box-sizing: border-box; }

html { background: var(--paper); }

body {
  margin: 0;
  color: var(--ink);
  font-family: "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 50% 0%, #1b2855 0, transparent 33rem),
    var(--paper);
}

.page {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 940px);
  min-height: 100svh;
  margin: 0 auto;
  padding: clamp(72px, 15vh, 150px) 0 44px;
  display: flex;
  flex-direction: column;
}

.nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: clamp(70px, 13vh, 145px); font-family: Consolas, "Courier New", monospace; font-size: .7rem; font-weight: 700; letter-spacing: .08em; }
.nav > div { display: flex; gap: clamp(12px, 2.4vw, 26px); }
.nav a, .scroll-cue { text-decoration: none; }
.brand { font-size: 1.3rem; letter-spacing: -.1em; color: var(--ink); }
.brand span { color: var(--accent); }
.intro { min-height: 53vh; }

.aurora {
  position: fixed;
  z-index: 0;
  width: 35rem;
  height: 35rem;
  border-radius: 50%;
  filter: blur(35px);
  opacity: 0.2;
  pointer-events: none;
  animation: float 15s ease-in-out infinite alternate;
}

.aurora-one { top: -13rem; left: -12rem; background: #5047ff; }
.aurora-two { right: -15rem; bottom: -14rem; background: #00d4ff; animation-delay: -7s; }

@keyframes float { to { transform: translate(3rem, 2rem) scale(1.15); } }

.eyebrow, .label {
  margin: 0;
  color: var(--muted);
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.status-dot {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  margin: 0 0.55rem 0.06rem 0;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 12px var(--accent);
}

h1 {
  max-width: 850px;
  margin: 18px 0 8px;
  font-size: clamp(3rem, 8vw, 6.5rem);
  line-height: 0.98;
  letter-spacing: -0.075em;
  text-shadow: 0 8px 38px rgba(107, 160, 255, 0.18);
}

h1 span {
  color: var(--accent);
  font-size: 0.42em;
  font-weight: 500;
  letter-spacing: -0.045em;
  white-space: nowrap;
}

.affiliation {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 600;
  color: #d6e0f7;
}

.greeting {
  max-width: 610px;
  margin: 55px 0 0;
  font-size: clamp(1.25rem, 2.5vw, 1.7rem);
  font-weight: 500;
  line-height: 1.65;
  word-break: keep-all;
  color: #d9e2f5;
}

.greeting strong { color: var(--accent); font-weight: 650; }

.scroll-cue { display: inline-flex; gap: 9px; margin-top: 44px; color: var(--muted); font-family: Consolas, "Courier New", monospace; font-size: .68rem; font-weight: 700; letter-spacing: .1em; }
.scroll-cue span { color: var(--accent); animation: bounce 1.5s ease-in-out infinite; }
@keyframes bounce { 50% { transform: translateY(5px); } }

.section { display: grid; grid-template-columns: minmax(120px, .42fr) 1fr; gap: 35px; padding: 115px 0; border-top: 1px solid var(--line); }
.section-number { margin: 8px 0 0; color: var(--accent); font-family: Consolas, "Courier New", monospace; font-size: .7rem; font-weight: 700; letter-spacing: .09em; }
.section h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.75rem); letter-spacing: -.065em; line-height: 1.12; }
.body-copy { max-width: 610px; margin: 28px 0 0; color: #c3cee4; font-size: 1.08rem; line-height: 1.8; word-break: keep-all; }

.focus-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 38px; }
.focus-card { min-height: 250px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, rgba(145, 173, 255, .12), rgba(255, 255, 255, .025)); transition: transform 180ms ease, background 180ms ease; }
.focus-card:hover { transform: translateY(-6px); background: linear-gradient(145deg, rgba(114, 231, 255, .18), rgba(255, 255, 255, .04)); }
.focus-card span { color: var(--accent); font-family: Consolas, "Courier New", monospace; font-size: .72rem; }
.focus-card h3 { margin: 47px 0 16px; font-size: 1.42rem; line-height: 1.05; letter-spacing: -.05em; }
.focus-card p { margin: 0; color: var(--muted); font-size: .89rem; line-height: 1.65; word-break: keep-all; }
.now-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(200px, .8fr); gap: 30px; align-items: end; }
.course-title { margin: 28px 0 0; color: var(--accent); font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 700; letter-spacing: -.05em; }
.next-card { padding: 24px; border-left: 2px solid var(--violet); background: rgba(170, 140, 255, .1); }
.next-card > p:last-child { margin: 18px 0 0; color: #d2c8f5; line-height: 1.7; word-break: keep-all; }

.contact {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
  padding-top: 90px;
  color: var(--muted);
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.82rem;
}

.contact p { width: 100%; margin: 0 0 5px; font-size: 0.68rem; letter-spacing: 0.12em; }

a {
  color: inherit;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

a:hover { color: var(--accent); }

@media (max-width: 560px) {
  .page { width: min(100% - 36px, 940px); }
  .greeting { margin-top: 42px; }
  .contact { padding-top: 64px; }
  .nav { margin-bottom: 76px; }
  .nav > div { gap: 12px; }
  .intro { min-height: auto; }
  .section { grid-template-columns: 1fr; gap: 23px; padding: 75px 0; }
  .section-number { margin: 0; }
  .focus-grid, .now-layout { grid-template-columns: 1fr; }
  .focus-card { min-height: 0; }
  .focus-card h3 { margin-top: 34px; }
}
