:root {
  color-scheme: dark;
  --ink: #f7f6ff;
  --muted: #a7abc1;
  --dim: #73778e;
  --night: #070a18;
  --rail: #090c1d;
  --panel: rgba(18, 22, 46, 0.82);
  --panel-solid: #11162e;
  --line: rgba(255, 255, 255, 0.1);
  --violet: #9a7cff;
  --violet-strong: #7657ef;
  --amber: #ffc46b;
  --green: #73e1b8;
  --blue: #39bce7;
  font-family: Inter, "Segoe UI", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body { margin: 0; min-width: 320px; min-height: 100vh; color: var(--ink); background: var(--night); }
button, a { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }

.home-ambient { position: fixed; z-index: 0; width: 34rem; height: 34rem; border-radius: 50%; filter: blur(120px); opacity: .12; pointer-events: none; }
.ambient-violet { top: -16rem; left: 18%; background: #7959ff; }
.ambient-blue { right: -18rem; bottom: -12rem; background: #198bbd; }

.home-shell { position: relative; z-index: 1; display: grid; grid-template-columns: 244px minmax(0, 1fr); min-height: 100vh; }
.side-rail { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 34px; padding: 30px 20px 22px; border-right: 1px solid var(--line); background: linear-gradient(180deg, rgba(10,13,31,.98), rgba(6,9,23,.96)); }
.rail-brand { display: block; width: 128px; margin-left: 10px; }
.rail-brand img { display: block; width: 100%; filter: drop-shadow(0 0 18px rgba(123,92,255,.22)); }
.rail-nav { display: grid; gap: 7px; }
.rail-link { width: 100%; min-height: 46px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid transparent; border-radius: 9px; color: var(--muted); background: transparent; text-align: left; text-decoration: none; font-size: 13px; }
.rail-link span { color: #c7bbff; font-size: 17px; text-align: center; }
.rail-link small { color: var(--dim); font-size: 8px; letter-spacing: .12em; }
.rail-link:hover, .rail-link.is-active { color: var(--ink); border-color: rgba(154,124,255,.28); background: rgba(118,87,239,.15); }
.rail-profile { margin-top: auto; display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.025); }
.profile-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #101426; background: linear-gradient(135deg, #ffc46b, #f49bbb); font-size: 12px; font-weight: 800; }
.rail-profile strong, .rail-profile small { display: block; }
.rail-profile strong { font-size: 12px; }
.rail-profile small { margin-top: 3px; color: var(--dim); font-size: 10px; }

.home-main { width: min(1460px, 100%); margin: 0 auto; padding: 0 34px; }
.home-topbar { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.home-topbar > div:first-child { display: grid; gap: 5px; }
.home-topbar strong { font-size: 16px; }
.topbar-kicker { color: var(--dim); font-size: 9px; letter-spacing: .18em; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.signal-button { border: 1px solid var(--line); color: var(--muted); background: rgba(255,255,255,.03); }
.signal-button { width: 38px; height: 38px; border-radius: 50%; }

.locale-switch {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(255,255,255,.03);
}

.locale-switch button {
  min-width: 34px;
  padding: 7px 8px;
  border: 0;
  border-radius: 6px;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  cursor: pointer;
}

.locale-switch button.is-active {
  color: #fff;
  background: linear-gradient(135deg, rgba(104,91,255,.92), rgba(32,177,224,.72));
  box-shadow: 0 4px 14px rgba(72,93,255,.3);
}

.command-hero { position: relative; overflow: hidden; min-height: 470px; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(390px,.95fr); align-items: center; margin-top: 28px; padding: clamp(32px,5vw,68px); border: 1px solid rgba(154,124,255,.28); border-radius: 18px; background: linear-gradient(120deg, rgba(14,17,42,.98) 5%, rgba(16,20,52,.84) 54%, rgba(6,15,35,.94)); box-shadow: 0 30px 90px rgba(0,0,0,.35); }
.command-hero::before { content:""; position:absolute; inset:0; background: linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size: 36px 36px; mask-image: linear-gradient(90deg,transparent,black); }
.hero-copy { position: relative; z-index: 2; }
.home-kicker { margin: 0 0 14px; color: var(--amber); font-size: 10px; font-weight: 800; letter-spacing: .19em; }
.hero-copy h1 { max-width: 760px; margin: 0; font-size: clamp(38px,5vw,68px); line-height: 1.02; letter-spacing: -.045em; }
.hero-copy > p:not(.home-kicker) { max-width: 630px; margin: 22px 0 0; color: var(--muted); font-size: 17px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.home-primary, .home-secondary { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 0 20px; border-radius: 8px; text-decoration: none; font-weight: 750; font-size: 13px; }
.home-primary { border: 1px solid #997eff; color: #fff; background: linear-gradient(135deg,#8062f3,#5f3ddd); box-shadow: 0 12px 34px rgba(92,59,214,.26); }
.home-secondary { border: 1px solid var(--line); color: var(--muted); background: rgba(255,255,255,.025); }
.hero-proof { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 38px; color: var(--muted); font-size: 11px; }
.hero-proof span { display: grid; gap: 3px; }
.hero-proof strong { color: var(--ink); font-size: 9px; letter-spacing: .14em; }

.hero-visual { position: relative; z-index: 1; min-height: 360px; display: grid; place-items: center; }
.intel-globe { position: absolute; width: min(36vw,420px); aspect-ratio: 1; border: 1px solid rgba(89,191,233,.35); border-radius: 50%; background: radial-gradient(circle at 35% 30%,rgba(77,125,255,.32),transparent 18%),radial-gradient(circle at 62% 64%,rgba(133,88,255,.28),transparent 18%),repeating-radial-gradient(ellipse at center,transparent 0 24px,rgba(100,183,225,.14) 25px 26px),radial-gradient(circle at center,#0e2d52,#081225 66%,transparent 67%); box-shadow: inset -40px -30px 70px rgba(0,0,0,.55),0 0 70px rgba(63,123,230,.22); transform: rotate(-8deg); }
.intel-globe::before, .intel-globe::after { content:""; position:absolute; inset:10% 34%; border:1px solid rgba(102,195,230,.2); border-radius:50%; }
.intel-globe::after { inset:34% 8%; }
.orbit { position:absolute; inset:-8%; border:1px solid rgba(154,124,255,.24); border-radius:50%; }
.orbit-a { transform:rotate(28deg) scaleY(.36); }
.orbit-b { transform:rotate(-38deg) scaleY(.5); }
.globe-axis { position:absolute; top:-8%; left:50%; width:1px; height:116%; background:linear-gradient(transparent,rgba(255,196,107,.38),transparent); }
.signal-point { position:absolute; width:8px; height:8px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 5px rgba(255,196,107,.12),0 0 20px #ffc46b; }
.signal-one { top:28%; left:33%; }.signal-two { top:56%; right:23%; }.signal-three { bottom:23%; left:47%; }
.hero-stamp-card { position:absolute; right:2%; bottom:2%; width:145px; display:grid; padding:14px; border:1px solid rgba(154,124,255,.4); border-radius:12px; background:rgba(8,11,30,.86); backdrop-filter:blur(12px); box-shadow:0 20px 45px rgba(0,0,0,.4); transform:rotate(3deg); }
.hero-stamp-card img { width:100%; border-radius:8px; }
.hero-stamp-card span { margin-top:10px; color:var(--dim); font-size:8px; letter-spacing:.16em; }
.hero-stamp-card strong { margin-top:3px; font-size:12px; letter-spacing:.12em; }
.hero-coordinate { position:absolute; left:4%; bottom:4%; color:rgba(167,171,193,.55); font:9px ui-monospace,monospace; letter-spacing:.12em; }

.journey-section, .passport-section, .sessions-section { padding-top: 72px; scroll-margin-top: 24px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.section-heading h2, .horizon-section h2 { margin:0; font-size:clamp(27px,3vw,39px); letter-spacing:-.03em; }
.section-heading .home-kicker { margin-bottom:8px; }
.sync-status, .section-note { color:var(--dim); font-size:11px; }
.sync-status i { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:var(--green); box-shadow:0 0 10px var(--green); }

.status-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.status-card { min-height:92px; display:flex; align-items:center; gap:13px; padding:16px; border:1px solid var(--line); border-radius:11px; background:var(--panel); }
.status-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; font-size:17px; }
.status-green { color:var(--green); background:rgba(115,225,184,.12); }.status-violet{color:var(--violet);background:rgba(154,124,255,.13)}.status-blue{color:var(--blue);background:rgba(57,188,231,.12)}.status-amber{color:var(--amber);background:rgba(255,196,107,.12)}
.status-card small, .status-card strong { display:block; }
.status-card small { color:var(--dim); font-size:8px; letter-spacing:.15em; }
.status-card strong { margin-top:7px; font-size:13px; }

.continue-card { display:grid; grid-template-columns:180px minmax(0,1fr) auto; align-items:center; gap:24px; margin-top:14px; padding:22px; border:1px solid rgba(154,124,255,.3); border-radius:14px; background:linear-gradient(110deg,rgba(30,27,71,.88),rgba(14,18,42,.9)); }
.continue-art { position:relative; overflow:hidden; aspect-ratio:1.35; border-radius:10px; background:#090d24; }
.continue-art img { width:100%; height:100%; object-fit:cover; }
.scan-line { position:absolute; left:0; right:0; top:18%; height:1px; background:linear-gradient(90deg,transparent,#8adfff,transparent); box-shadow:0 0 16px #63cfee; animation:scan 4s ease-in-out infinite; }
@keyframes scan { 50% { top:82%; } }
.mission-tag { color:var(--violet); font-size:9px; font-weight:800; letter-spacing:.15em; }
.continue-copy h3, .session-copy h3, .session-empty h3 { margin:7px 0 8px; font-size:24px; }
.continue-copy p, .session-copy p, .session-empty p { margin:0; color:var(--muted); line-height:1.55; font-size:13px; }
.mission-meta { display:flex; gap:18px; margin-top:13px; color:var(--dim); font-size:10px; }
.home-progress { overflow:hidden; height:5px; margin-top:17px; border-radius:999px; background:rgba(255,255,255,.08); }
.home-progress span { display:block; width:0%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--violet-strong),var(--amber)); transition:width .4s ease; }
.continue-copy > small { display:block; margin-top:7px; color:var(--dim); font-size:9px; }
.continue-button { display:inline-flex; align-items:center; gap:26px; padding:15px 18px; border-radius:8px; color:#fff; background:var(--violet-strong); text-decoration:none; font-size:12px; font-weight:750; }

.passport-total { width:160px; height:5px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.08); }
.passport-total span { display:block; width:0%; height:100%; background:linear-gradient(90deg,var(--violet),var(--amber)); }
.stamp-route { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.stamp-tile { position:relative; min-height:225px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:18px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:rgba(16,20,42,.78); text-align:center; text-decoration:none; }
.stamp-tile::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(145deg,rgba(255,255,255,.03),transparent 45%); pointer-events:none; }
.stamp-tile:hover { border-color:rgba(154,124,255,.34); }
.stamp-active { border-color:rgba(154,124,255,.52); color:var(--ink); background:linear-gradient(150deg,rgba(56,42,111,.7),rgba(13,17,41,.9)); }
.stamp-tile img, .instrument-icon { width:96px; height:96px; margin:10px 0; }
.stamp-tile img { object-fit:cover; border-radius:50%; }
.instrument-icon { display:grid; place-items:center; border:1px solid rgba(154,124,255,.22); border-radius:50%; color:rgba(154,124,255,.55); font-size:38px; background:radial-gradient(circle,rgba(118,87,239,.12),transparent 70%); }
.stamp-number { position:absolute; top:13px; left:14px; color:var(--dim); font:9px ui-monospace,monospace; letter-spacing:.16em; }
.stamp-state { color:var(--dim); font-size:7px; letter-spacing:.18em; }
.stamp-active .stamp-state { color:var(--green); }
.stamp-tile strong { margin-top:7px; font-size:13px; }
.stamp-tile small { margin-top:4px; color:var(--dim); font-size:10px; }
.stamp-tile.is-complete { border-color:rgba(115,225,184,.5); box-shadow:inset 0 0 28px rgba(115,225,184,.08); }

.sessions-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:14px; }
.session-card { min-height:260px; border:1px solid var(--line); border-radius:13px; background:var(--panel); }
.session-featured { display:grid; grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr); overflow:hidden; }
.session-visual { position:relative; min-height:260px; display:grid; place-items:center; background:radial-gradient(circle at center,rgba(119,70,232,.36),transparent 25%),linear-gradient(140deg,#171337,#080d20); }
.session-visual::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.025) 35px); }
.session-visual > span:last-child { position:absolute; left:18px; bottom:16px; color:var(--muted); font-size:8px; letter-spacing:.17em; }
.session-pulse { position:relative; z-index:1; width:58px; height:58px; display:grid; place-items:center; padding-left:4px; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:white; background:rgba(118,87,239,.72); box-shadow:0 0 0 12px rgba(118,87,239,.09),0 0 38px rgba(118,87,239,.45); }
.session-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:28px; }
.inline-action { margin-top:22px; padding:0; border:0; color:var(--violet); background:transparent; font-weight:750; font-size:12px; }
.session-empty { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:16px; padding:28px; }
.calendar-icon { width:58px; height:58px; display:grid; place-items:center; border:1px solid rgba(255,196,107,.25); border-radius:10px; color:var(--amber); background:rgba(255,196,107,.08); font-size:20px; font-weight:800; }
.ghost-action { margin-top:4px; padding:10px 13px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:transparent; font-size:11px; }

.horizon-section { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:36px; margin-top:72px; padding:38px; border:1px solid var(--line); border-radius:15px; background:linear-gradient(110deg,rgba(11,17,38,.94),rgba(35,26,70,.68)); }
.horizon-section > div:first-child > p:last-child { color:var(--muted); line-height:1.6; }
.horizon-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.horizon-cards span { min-height:72px; display:flex; align-items:end; padding:14px; border:1px solid rgba(255,255,255,.09); border-radius:9px; color:#bebfd0; background:rgba(255,255,255,.025); font-size:12px; }
.home-footer { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:30px; border-top:1px solid var(--line); color:var(--dim); font-size:9px; letter-spacing:.12em; }

.kickoff-dialog { width:min(620px,calc(100% - 28px)); padding:34px; border:1px solid rgba(154,124,255,.45); border-radius:15px; color:var(--ink); background:#11152c; box-shadow:0 35px 100px rgba(0,0,0,.65); }
.kickoff-dialog::backdrop { background:rgba(2,4,13,.78); backdrop-filter:blur(5px); }
.kickoff-dialog h2 { margin:0; font-size:34px; }
.kickoff-dialog > p:not(.home-kicker), .kickoff-dialog li { color:var(--muted); line-height:1.6; }
.kickoff-dialog ol { margin:20px 0 26px; padding-left:22px; }
.kickoff-dialog li { margin:9px 0; }
.dialog-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border:1px solid var(--line); border-radius:50%; color:var(--muted); background:transparent; font-size:22px; }
.kickoff-dialog .home-primary { border:1px solid #997eff; }
.home-toast { position:fixed; z-index:20; right:24px; bottom:24px; max-width:360px; padding:14px 16px; border:1px solid rgba(154,124,255,.38); border-radius:10px; color:var(--ink); background:rgba(16,20,44,.96); box-shadow:0 18px 50px rgba(0,0,0,.45); font-size:12px; line-height:1.5; opacity:0; transform:translateY(12px); pointer-events:none; transition:.2s ease; }
.home-toast.is-visible { opacity:1; transform:translateY(0); }

@media (max-width: 1080px) {
  .home-shell { grid-template-columns: 84px minmax(0,1fr); }
  .side-rail { padding-inline:12px; align-items:center; }
  .rail-brand { width:58px; margin:0; }
  .rail-link { grid-template-columns:1fr; place-items:center; padding:0; font-size:0; }
  .rail-link span { font-size:19px; }
  .rail-link small { display:none; }
  .rail-profile { grid-template-columns:38px; padding:8px; }
  .rail-profile > span:not(.profile-avatar) { display:none; }
  .command-hero { grid-template-columns:1fr .7fr; }
  .hero-copy h1 { font-size:46px; }
  .hero-proof { gap:14px; }
  .status-grid { grid-template-columns:repeat(2,1fr); }
  .stamp-route { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 760px) {
  .home-shell { display:block; }
  .side-rail { position:sticky; z-index:10; top:0; width:100%; height:auto; flex-direction:row; align-items:center; gap:12px; padding:10px 14px; border-right:0; border-bottom:1px solid var(--line); }
  .rail-brand { width:74px; }
  .rail-nav { display:flex; margin-left:auto; }
  .rail-link { width:42px; min-height:40px; }
  .rail-link:nth-child(n+3) { display:none; }
  .rail-profile { display:none; }
  .home-main { padding:0 16px; }
  .home-topbar { min-height:66px; }
  .home-topbar strong { font-size:13px; }
  .command-hero { grid-template-columns:1fr; min-height:auto; padding:30px 24px; }
  .hero-copy h1 { font-size:39px; }
  .hero-copy > p:not(.home-kicker) { font-size:15px; }
  .hero-visual { min-height:300px; margin-top:12px; }
  .intel-globe { width:290px; }
  .hero-stamp-card { width:112px; }
  .section-heading { align-items:start; flex-direction:column; }
  .status-grid { grid-template-columns:1fr 1fr; }
  .continue-card { grid-template-columns:92px 1fr; }
  .continue-button { grid-column:1/-1; justify-content:center; }
  .stamp-route { grid-template-columns:1fr 1fr; }
  .stamp-tile { min-height:190px; padding:12px; }
  .stamp-tile img, .instrument-icon { width:72px; height:72px; }
  .sessions-grid, .horizon-section { grid-template-columns:1fr; }
  .session-featured { grid-template-columns:1fr; }
  .session-visual { min-height:190px; }
  .home-footer { align-items:flex-start; flex-direction:column; justify-content:center; }
}

@media (max-width: 480px) {
  .hero-copy h1 { font-size:34px; }
  .hero-proof { display:grid; grid-template-columns:1fr 1fr; }
  .status-grid, .stamp-route { grid-template-columns:1fr; }
  .continue-card { grid-template-columns:1fr; }
  .continue-art { max-height:180px; }
  .continue-button { grid-column:auto; }
  .topbar-kicker { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .scan-line { animation:none; top:50%; }
}
