:root {
  color-scheme: dark;
  --accent: #55d9ff;
  --gold:   #ffd472;
  --panel-bg: rgba(4, 6, 12, 0.95);
  --text: rgba(240, 245, 255, 0.9);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  width: 100%; height: 100%;
  background: #000;
  overflow: hidden;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  color: var(--text);
}

#mainCanvas {
  position: fixed; inset: 0; z-index: 0;
  display: block; width: 100%; height: 100%;
  cursor: grab;
}
#mainCanvas:active { cursor: grabbing; }


/* ── Nav bar — full width top ───────────────────────────────── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 13px 13px 13px 22px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.68) 0%, transparent 100%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.0s ease;
}
.nav.visible { opacity: 1; pointer-events: auto; }

.nav-logo {
  font: 800 13px/1 Inter, sans-serif;
  letter-spacing: 0.24em;
  color: var(--gold);
  text-transform: uppercase;
  user-select: none;
}

.nav-links { display: flex; gap: 4px; }

.nav-links button {
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 999px;
  padding: 5px 13px;
  background: rgba(0,0,0,0.36);
  color: rgba(215,230,255,0.76);
  font: 600 11px/1.2 Inter, sans-serif;
  letter-spacing: 0.04em;
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.nav-links button:hover {
  background: rgba(85,217,255,0.15);
  border-color: rgba(85,217,255,0.38);
  color: var(--accent);
}

/* ── Skip — bottom right ─────────────────────────────────────── */
.skip-btn {
  position: fixed;
  bottom: 16px; right: 16px;
  z-index: 10;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 999px;
  padding: 6px 14px;
  background: rgba(0,0,0,0.42);
  color: rgba(200,220,255,0.65);
  font: 600 11px/1.2 Inter, sans-serif;
  letter-spacing: 0.05em;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: opacity 0.4s ease, background 0.2s;
}
.skip-btn:hover { background: rgba(255,255,255,0.08); }
.skip-btn.hidden { opacity: 0; pointer-events: none; }

/* ── Solar controls — bottom right, above skip ───────────────── */
.solar-controls {
  position: fixed;
  bottom: 58px; right: 16px;
  z-index: 6;
  display: flex;
  flex-direction: column;
  gap: 5px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.8s ease;
}
.solar-controls.visible { opacity: 1; pointer-events: auto; }

.solar-controls button {
  width: 34px; height: 34px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 9px;
  background: rgba(0,0,0,0.52);
  color: rgba(200,220,255,0.78);
  font-size: 17px; line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  display: flex; align-items: center; justify-content: center;
}
.solar-controls button:hover {
  background: rgba(85,217,255,0.14);
  border-color: rgba(85,217,255,0.4);
  color: var(--accent);
}

/* ── Tooltip ─────────────────────────────────────────────────── */
.planet-tooltip {
  position: fixed; z-index: 6;
  pointer-events: none;
  transform: translate(-50%, calc(-100% - 13px));
  background: rgba(4,6,14,0.9);
  border: 1px solid rgba(85,217,255,0.3);
  border-radius: 8px;
  padding: 5px 12px;
  font: 700 10px/1.2 Inter, sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.12s ease;
  white-space: nowrap;
}
.planet-tooltip.visible { opacity: 1; }

/* ── Content panel ───────────────────────────────────────────── */
.panel-overlay {
  position: fixed; top: 0; left: 0; bottom: 0; right: 50vw; z-index: 8;
  background:
    radial-gradient(circle at 34% 50%, rgba(85,217,255,0.10), transparent 28%),
    rgba(0,0,0,0.34);
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease;
  backdrop-filter: blur(1px);
}
.panel-overlay.open { opacity: 1; pointer-events: auto; }

.content-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0; z-index: 12;
  width: 50vw;
  min-width: 460px;
  max-width: 680px;
  background:
    linear-gradient(145deg, rgba(10,14,28,0.98), rgba(3,5,12,0.96) 54%, rgba(8,12,24,0.98)),
    var(--panel-bg);
  border-left: 1px solid rgba(85,217,255,0.16);
  box-shadow: -30px 0 80px rgba(0,0,0,0.48), inset 1px 0 0 rgba(255,255,255,0.05);
  backdrop-filter: blur(26px);
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
}
.content-panel.open { transform: translateX(0); }

.close-panel {
  position: sticky; top: 0; float: right;
  margin: 12px 12px 0 0;
  width: 28px; height: 28px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  color: rgba(220,235,255,0.8);
  font-size: 12px; cursor: pointer; z-index: 1;
}
.close-panel:hover { background: rgba(255,255,255,0.14); }

.panel-body { padding: 34px clamp(24px, 4vw, 48px) 64px; clear: both; }

.panel-body h2 {
  font-size: 22px; font-weight: 800;
  letter-spacing: -0.01em; color: var(--gold);
  margin-bottom: 4px;
}
.panel-body .subtitle {
  font-size: 10px; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(85,217,255,0.65);
  margin-bottom: 22px;
}
.panel-body p {
  font-size: 14px; line-height: 1.78;
  color: rgba(210,222,242,0.82); margin-bottom: 14px;
}

.skill-section-title {
  font: 700 9px/1 Inter, sans-serif; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--gold); margin: 18px 0 8px; opacity: 0.75;
}
.skill-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-bottom: 6px; }
.skill-tag {
  border: 1px solid rgba(85,217,255,0.2); border-radius: 6px;
  padding: 8px 12px; font: 600 12px Inter, sans-serif;
  color: var(--accent); background: rgba(85,217,255,0.05);
}

.project-card {
  border: 1px solid rgba(255,255,255,0.09); border-radius: 10px;
  padding: 14px; margin-bottom: 10px;
  background: rgba(255,255,255,0.03);
  transition: border-color 0.2s;
}
.project-card:hover { border-color: rgba(85,217,255,0.32); }
.project-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 6px; }
.project-header h3 { font-size: 13px; font-weight: 700; }
.project-date { font-size: 10px; color: var(--accent); opacity: 0.65; }
.project-card p  { font-size: 12px; margin: 0 0 10px; color: rgba(180,195,220,0.72); line-height: 1.65; }
.project-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.project-tags span { font: 600 10px Inter, sans-serif; padding: 3px 8px; border-radius: 4px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: rgba(200,215,240,0.65); }

.company-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.07); padding-bottom: 8px; }
.company-name { font: 800 13px Inter, sans-serif; color: var(--gold); letter-spacing: 0.06em; }
.company-total { font: 600 10px Inter, sans-serif; color: rgba(85,217,255,0.55); }

.timeline-item { position: relative; padding-left: 18px; margin-bottom: 20px; }
.timeline-item::before {
  content: ""; position: absolute; left: 0; top: 5px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--gold);
}
.timeline-item::after {
  content: ""; position: absolute; left: 3px; top: 12px; bottom: -20px;
  width: 1px; background: rgba(255,255,255,0.07);
}
.timeline-item:last-child::after { display: none; }
.timeline-item h3  { font-size: 13px; font-weight: 700; }
.timeline-item .yr { font-size: 10px; color: var(--accent); margin: 2px 0 6px; letter-spacing: 0.06em; }

.contact-link {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid rgba(255,255,255,0.09); border-radius: 8px;
  padding: 12px 16px; margin-bottom: 10px;
  font: 600 13px Inter, sans-serif;
  color: rgba(210,222,242,0.88);
  background: rgba(255,255,255,0.03);
  cursor: pointer; text-decoration: none;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.contact-link:hover { border-color: var(--accent); background: rgba(85,217,255,0.07); color: var(--accent); }

@media (max-width: 600px) {
  .nav-links button { padding: 4px 8px; font-size: 10px; }
  .panel-overlay    { right: 0; }
  .content-panel    { width: 100vw; min-width: 0; max-width: none; }
}
