
:root{
  --gutter: 4%;
  --cardw: 36%;
  --nodeHalf: 6px;
  --brandA: #0db6ff;
  --brandB: #00ffd5;
}

*{ box-sizing:border-box; }
body{ margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"; color:#e6f7ff; background:#07121a; }
a{ color:#9fe1ff; text-decoration:none; }
a:hover{ text-decoration:underline; }

.container{ width:min(1100px,92vw); margin:0 auto; }
.section{ padding:36px 0; }

.btn{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid rgba(255,255,255,0.1); }
.btn-primary{ background:linear-gradient(135deg,var(--brandA),var(--brandB)); color:#04121a; font-weight:700; }
.btn-ghost{ background:rgba(255,255,255,0.06); color:#e6f7ff; }

.kicker{ letter-spacing:.12em; text-transform:uppercase; color:#bdeaff; font-size:12px; margin:0 0 8px; }
.accent{ color:#a9ffea; }
.section-head h2{ margin:0 0 8px; }
.section-head p{ margin:0 0 8px; color:#cfe6ff; }

/* --- HERO --- */
.hero-grid{
  display:grid;
  grid-template-columns: 1fr 380px;
  gap: clamp(20px, 4vw, 48px);
  align-items:center;
}
@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
}
.hero-title{ margin:0 0 6px; font-size: clamp(28px, 6vw, 52px); line-height:1.05; }
.hero-sub{ color:#c7e6ff; max-width: 60ch; margin: 8px 0 16px; }
.hero-ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.role-line{ margin:6px 0 12px; font-size: clamp(16px, 2.2vw, 22px); color:#d7faff; }
.role-text{ font-weight:800; background:linear-gradient(135deg,var(--brandA),var(--brandB)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cursor{ display:inline-block; width:1ch; color:#8be9ff; animation: blink 1s steps(2, start) infinite; }
@keyframes blink{ 50%{ opacity:0; } }

/* Photo + centered badge */
.hero-photo{ position:relative; justify-self:center; }
.hero-img{
  width: clamp(220px, 30vw, 320px);
  height: clamp(220px, 30vw, 320px);
  object-fit: cover; display:block;
  border-radius: 20px;
  border:1px solid rgba(255,255,255,0.08);
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
}
.photo-badge{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom: -14px;
  background:rgba(6,20,27,.82);
  border:1px solid rgba(255,255,255,0.12);
  padding:6px 12px; border-radius: 999px;
  font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:#def7ff;
  backdrop-filter: blur(8px);
}

/* --- TIMELINE SHELL --- */
.timeline-section{ overflow:hidden; position:relative; }
.mono{ position:relative; width:100%; }
.mline{
  position:absolute; left:50%; top:0; height:100%; width:2px;
  background:linear-gradient(to bottom,var(--brandA),var(--brandB)); opacity:.9; transform:translateX(-1px);
  box-shadow:0 0 10px rgba(0,240,255,0.2), inset 0 0 6px rgba(0,200,255,0.25);
  z-index:1;
}
.section-divider{ position:absolute; left:0; right:0; height:0; border-top:1px dashed rgba(0,255,213,0.35); z-index:1; }
.section-chip{
  position:absolute; left:50%; transform:translate(-50%,-50%);
  background:linear-gradient(135deg, rgba(0,255,213,0.18), rgba(13,182,255,0.18));
  border:1px solid rgba(0,255,213,0.55);
  color:#d6fbff; font-weight:800; letter-spacing:.14em; font-size:12px;
  padding:6px 12px; border-radius:999px; text-transform:uppercase; backdrop-filter:blur(6px);
  box-shadow:0 6px 30px rgba(0,255,213,0.15);
  z-index:2;
}
.section-chip.alt{ border-color:rgba(13,182,255,0.6); }

/* Items & dots */
.mitem{ position:absolute; left:0; right:0; }
.mnode{
  position:absolute; left:50%; top:10px; transform:translateX(-50%);
  width:12px; height:12px; border-radius:50%;
  background:linear-gradient(135deg,#00ffff,#00b3ff);
  box-shadow:0 0 0 6px rgba(0,255,213,0.08);
  border:1px solid rgba(0,255,213,0.45);
  z-index:3;
}

/* Leaders (JS draws left/top/width) */
.hlead{
  display:block; position:absolute; z-index:3;
  height:2px; min-height:0; max-height:2px; line-height:0;
  background:rgba(255,255,255,0.18); border-radius:2px;
  right:auto; bottom:auto; transform:none; border:0; box-shadow:none; outline:0;
}

/* Opposite-side label (mirrors card inner edge) */
.mlabel{
  position:absolute; top:-12px; z-index:4; font-size:12px; line-height:1.25;
  padding:6px 10px; border-radius:10px; border:1px solid rgba(255,255,255,0.12);
  background:rgba(5,12,18,0.6); backdrop-filter:blur(8px);
  color:#eaffff; width:max-content; max-width:38ch; pointer-events:none;
}
.mlabel.left{  right: calc(100% - (var(--gutter) + var(--cardw))); text-align:right; }
.mlabel.right{ left:  calc(100% - (var(--gutter) + var(--cardw))); text-align:left; }
.ml-title{ font-weight:800; color:#eaffff; }
.ml-date{  color:#9fb2c5; margin-top:2px; }

/* Cards */
.mcard{
  position:absolute; z-index:2; width:var(--cardw);
  background: rgba(9,14,22,0.88); border:1px solid rgba(255,255,255,0.08);
  border-radius:18px; padding:18px; box-shadow:0 10px 40px rgba(0,0,0,0.35);
}
.mcard.left { left: var(--gutter) !important; }
.mcard.right{ right: var(--gutter) !important; }

.mhead{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.pill{ background: rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:999px; padding:6px 10px; font-size:12px; color:#9fb2c5; }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tag{ font-size:12px; background:#06141b; border:1px solid rgba(255,255,255,0.08); padding:6px 10px; border-radius:999px; color:#b7eaff; }

/* YouTube */
.ytwrap{ position:relative; width:100%; aspect-ratio:16 / 9; border-radius:12px; overflow:hidden; margin-top:10px; border:1px solid rgba(255,255,255,0.08); }
.ytwrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* Mobile stacking */
@media (max-width: 740px){
  .hero-img{ width: 74vw; height: 74vw; }
  .mcard{ left:50% !important; right:auto !important; transform:translateX(-50%); width:92%; }
  .mlabel{ left:50% !important; right:auto !important; transform:translateX(-50%); text-align:center; }
}
        