/* ============================================================
   journey.css - the solution blueprint explorer.
   Reskinned onto the site's navy/teal/Inter system. Structure and
   interaction match the original prototype; palette and type are aligned
   with home.css. Category colours stay distinct (teal / blue / violet)
   so the diagram bands remain legible.
   ============================================================ */

:root{
  --ink-soft:#33475b;
  --paper-warm:#eef2f6;
  --paper-deep:#e3e9f0;
  --rule:#d6dee6;
  --rule-soft:#e6ecf2;
  --accent:#0c7d7d;
  --accent-soft:#e3f4f4;
  --font-display:'Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  /* diagram band colours */
  --cat-infra:#0c7d7d;   /* infrastructure — teal */
  --cat-sect:#2f80ed;    /* sectoral — blue */
  --cat-interop:#7a5af0; /* interop — violet */
}

body{font-size:15px}

/* ===== Intro ===== */
.intro{max-width:1280px;margin:0 auto;padding:48px 32px 8px}
.intro .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:12px}
.intro h1{font-family:var(--font-display);font-weight:600;font-size:clamp(26px,3.2vw,34px);line-height:1.12;letter-spacing:-0.02em;max-width:760px;margin-bottom:12px}
.intro p{color:var(--ink-soft);max-width:700px;font-size:16px}
.preview-note{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-deep);border:1px solid var(--teal);border-radius:5px;padding:5px 10px;background:var(--accent-soft)}
.preview-note::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--teal)}

/* ===== Layout ===== */
.explorer{max-width:1280px;margin:28px auto 80px;padding:0 32px;display:grid;grid-template-columns:248px 300px 1fr;gap:0;border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:#fff;min-height:640px}
.panel{min-width:0}
.panel-head{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:16px 20px 10px}

/* Panel 1: events */
.col-events{background:var(--paper-warm);border-right:1px solid var(--rule)}
.events-list{padding:0 10px 16px}
.event-item{position:relative;display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:11px 12px 11px 30px;border-radius:7px;font-family:var(--font-body);transition:background .14s ease}
.event-item:hover{background:rgba(15,163,163,.06)}
.event-item .ev-title{display:block;font-size:14px;font-weight:600;color:var(--ink);line-height:1.25}
.event-item .ev-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.event-item::before{content:'';position:absolute;left:14px;top:16px;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid var(--rule);z-index:2}
.events-list .event-item:not(:last-child)::after{content:'';position:absolute;left:17.5px;top:24px;width:1px;height:calc(100% - 8px);background:var(--rule);z-index:1}
.event-item.active{background:#fff;box-shadow:inset 2px 0 0 var(--teal)}
.event-item.active::before{background:var(--teal);border-color:var(--teal)}
.event-item.active .ev-title{color:var(--teal-deep)}
.event-item.deep .ev-title::after{content:'\25CF';color:var(--teal);font-size:7px;vertical-align:middle;margin-left:6px}
.event-item.scaffold{opacity:.72}
.event-item.scaffold .ev-title{font-weight:500}

/* Panel 2: use cases */
.col-cases{border-right:1px solid var(--rule);background:#fff}
.cases-list{padding:0 14px 16px}
.case-item{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--rule-soft);cursor:pointer;padding:13px 14px;border-radius:8px;margin-bottom:9px;transition:all .14s ease}
.case-item:hover{border-color:var(--teal);background:#fff}
.case-item .case-title{font-size:14px;font-weight:600;color:var(--ink)}
.case-item .case-sum{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.4}
.case-item.active{border-color:var(--teal);background:var(--accent-soft)}
.case-item.active .case-title{color:var(--teal-deep)}
.case-item.stub{opacity:.66}
.case-item.stub .case-title::after{content:'planned';font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);border-radius:3px;padding:1px 4px;margin-left:8px;vertical-align:middle;font-weight:400}
.cases-empty{padding:8px 20px;color:var(--muted);font-size:13px}

/* Panel 3: schema */
.col-schema{background:#fff}
.schema-title{padding:16px 24px 4px}
.schema-title h2{font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--ink);line-height:1.15;letter-spacing:-0.01em}
.schema-title p{color:var(--ink-soft);font-size:13.5px;margin-top:4px;max-width:520px}
.schema-body{padding:8px 24px 28px}
.case-desc{color:var(--ink-soft);font-size:14.5px;line-height:1.6;max-width:600px;margin:6px 0 20px}

/* canvas card */
.canvas{border:1px solid var(--rule);border-radius:10px;background:var(--paper);padding:18px 26px;background-image:linear-gradient(rgba(11,31,51,.04) 1px, transparent 1px),linear-gradient(90deg, rgba(11,31,51,.04) 1px, transparent 1px);background-size:26px 26px}
.canvas-cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:right;margin-bottom:6px}

/* SVG node styles */
.nr{fill:var(--paper);stroke-width:1.4}
.nname{font-family:var(--font-display);font-weight:600;font-size:17px;fill:var(--ink)}
.nname.sm{font-size:15px}
.ndesc{font-family:var(--font-body);font-size:11px;fill:var(--muted)}
.ntag{font-family:var(--font-mono);font-size:8.7px;letter-spacing:.05em;font-weight:500}
.fl{stroke:var(--ink-soft);stroke-width:1.25;fill:none}
.fl.dashed{stroke-dasharray:4 3}
.fllabel{font-family:var(--font-mono);font-size:9.5px;fill:var(--ink-soft);letter-spacing:.04em}
.glabel{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;font-weight:500;fill:var(--muted)}
.gline{stroke:#e6edf3;stroke-width:1}

/* placeholder */
.schema-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);height:380px;gap:10px;border:1px dashed var(--rule);border-radius:10px}
.schema-placeholder .big{font-family:var(--font-display);font-size:19px;color:var(--ink-soft);font-weight:600;letter-spacing:-0.01em}
.schema-placeholder .mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em}

.foot{max-width:1280px;margin:0 auto 60px;padding:0 32px;color:var(--muted);font-size:12.5px}

@media (max-width:1000px){
  .explorer{grid-template-columns:1fr}
  .col-events,.col-cases{border-right:none;border-bottom:1px solid var(--rule)}
}

/* Below ~560px the SVG would shrink its labels to ~8px; let it scroll
   horizontally instead so the flow stays legible. */
@media (max-width:560px){
  .canvas{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .canvas svg{min-width:460px}
}
