    :root { --navy-deep:#061B2C; --navy-1:#0A2C46; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    /* keep anchored sections clear of the sticky nav */
    [id] { scroll-margin-top:84px; }
    body {
      margin:0; background:#fff; color:var(--navy);
      font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,"Hiragino Sans","Yu Gothic","Noto Sans JP","Meiryo",sans-serif;
      -webkit-font-smoothing:antialiased;
    }
    /* Sticky nav, same treatment as the landing page */
    .nav { position:sticky; top:0; z-index:50; background:rgba(6,27,44,0.55); backdrop-filter:saturate(180%) blur(22px); -webkit-backdrop-filter:saturate(180%) blur(22px); border-bottom:1px solid rgba(255,255,255,0.06); transition:background 0.25s, border-color 0.25s; }
    .nav.scrolled { background:rgba(255,255,255,0.85); border-bottom:1px solid rgba(16,61,94,0.08); }
    .nav-inner { max-width:1080px; margin:0 auto; padding:14px 28px; display:flex; align-items:center; justify-content:space-between; }
    .nav-brand { font-weight:600; font-size:17px; letter-spacing:-0.01em; color:#fff; text-decoration:none; display:flex; align-items:center; gap:10px; transition:color 0.25s; }
    .nav.scrolled .nav-brand { color:var(--navy); }
    .nav-brand .mark { width:30px; height:30px; object-fit:contain; }
    .nav-links { display:flex; align-items:center; gap:24px; }
    .nav-links a { color:#fff; text-decoration:none; font-size:14px; font-weight:500; opacity:0.82; transition:opacity 0.15s, color 0.25s; }
    .nav.scrolled .nav-links a { color:var(--navy); }
    .nav-links a:hover { opacity:1; }
    .nav-cta { background:#fff; color:var(--navy-deep) !important; padding:8px 18px; border-radius:999px; opacity:1 !important; font-weight:600; }
    .nav.scrolled .nav-cta { background:var(--navy); color:#fff !important; }

    .hero-band { background:linear-gradient(180deg, var(--navy-deep) 0%, var(--navy-1) 100%); color:#fff; margin-top:-61px; padding-top:61px; }
    .hero { max-width:1080px; margin:0 auto; padding:84px 28px 72px; }
    .eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--coral); background:rgba(233,120,98,0.14); border:1px solid rgba(233,120,98,0.35); border-radius:999px; padding:5px 14px; margin-bottom:18px; }
    .hero h1 { font-size:clamp(32px, 5vw, 50px); line-height:1.08; letter-spacing:-0.02em; margin:0 0 16px; font-weight:700; }
    .hero h1 .accent { color:var(--coral); }
    .hero p.lead { font-size:17.5px; line-height:1.65; color:rgba(255,255,255,0.85); max-width:62ch; margin:0 0 26px; }
    .btn-pill { display:inline-block; text-decoration:none; font-weight:600; font-size:14.5px; padding:12px 26px; border-radius:999px; border:1.5px solid transparent; transition:background 0.15s, transform 0.12s; }
    .btn-pill:active { transform:translateY(1px); }
    .btn-pill.coral { background:var(--coral); color:#fff; }
    .btn-pill.coral:hover { background:var(--coral-700); }
    .btn-pill.ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,0.35); margin-left:10px; }
    .btn-pill.ghost:hover { border-color:#fff; }

    .section { padding:84px 28px; max-width:1080px; margin:0 auto; }
    .section-head { text-align:center; margin-bottom:44px; }
    .section-head .kicker { font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal); margin-bottom:12px; }
    .section-head h2 { font-size:clamp(26px, 3.6vw, 36px); letter-spacing:-0.015em; margin:0 0 12px; }
    .section-head p { color:#4f6678; font-size:16px; line-height:1.65; max-width:64ch; margin:0 auto; }
    .section-head p a, .body-link { color:var(--teal-700); font-weight:600; text-decoration:none; border-bottom:1.5px solid rgba(42,123,159,0.35); }
    .section-head p a:hover, .body-link:hover { border-bottom-color:var(--teal); }

    .os-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:18px; }
    .os-card { background:#fff; border:1px solid #E3EAF0; border-radius:18px; padding:26px 24px; box-shadow:0 2px 10px rgba(16,61,94,0.05); display:flex; flex-direction:column; transition:transform 0.16s, box-shadow 0.16s; }
    .os-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px -18px rgba(16,61,94,0.35); }
    .os-card .num { width:34px; height:34px; border-radius:10px; background:var(--navy); color:#fff; font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
    .os-card:nth-child(2) .num { background:var(--teal); }
    .os-card:nth-child(3) .num { background:var(--coral); }
    .os-card:nth-child(4) .num { background:var(--navy-1); }
    .os-card h3 { margin:0 0 8px; font-size:16.5px; letter-spacing:-0.01em; }
    .os-card p { margin:0; color:#4f6678; font-size:14px; line-height:1.6; flex:1; }
    .os-card a.card-link { margin-top:14px; font-size:13px; font-weight:600; color:var(--teal-700); text-decoration:none; }
    .os-card a.card-link:hover { text-decoration:underline; }

    .band { background:#F4F8FB; }
    .steps { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px; counter-reset:step; }
    .step { background:#fff; border:1px solid #E3EAF0; border-radius:16px; padding:22px 20px; position:relative; }
    .step::before { counter-increment:step; content:counter(step); position:absolute; top:-13px; left:18px; width:26px; height:26px; border-radius:50%; background:var(--coral); color:#fff; font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(184,73,47,0.4); }
    .step h3, .step h4 { margin:6px 0 7px; font-size:14.5px; }
    .step p { margin:0; font-size:13px; color:#4f6678; line-height:1.55; }

    .split { display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:start; }
    @media (max-width:840px){ .split { grid-template-columns:1fr; } }
    .panel { background:#fff; border:1px solid #E3EAF0; border-radius:18px; padding:28px 26px; box-shadow:0 2px 10px rgba(16,61,94,0.05); }
    .panel h3 { margin:0 0 16px; font-size:17px; display:flex; align-items:center; gap:9px; }
    .panel h3 .dot { width:9px; height:9px; border-radius:50%; background:var(--coral); flex:0 0 auto; }
    .panel ul { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:13px; }
    .panel li { display:flex; gap:11px; font-size:14px; line-height:1.55; color:#33506a; }
    .panel li .tick { flex:0 0 auto; width:20px; height:20px; border-radius:50%; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; margin-top:1px; }
    .panel li strong { color:var(--navy); }

    .details { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:18px; }
    .detail-card { background:#fff; border:1px solid #E3EAF0; border-radius:18px; padding:26px 24px; }
    .detail-card h3, .detail-card h4 { margin:0 0 12px; font-size:13px; font-weight:700; letter-spacing:0.07em; text-transform:uppercase; color:var(--teal-700); }
    .detail-card p, .detail-card li { font-size:14px; color:#33506a; line-height:1.6; }
    .detail-card ul { margin:0; padding-left:18px; }
    .cohort { border-left:3px solid var(--coral); padding:2px 0 2px 14px; margin-bottom:14px; }
    .cohort .when { font-weight:700; color:var(--navy); font-size:14.5px; }
    .cohort .time { font-size:13px; color:#4f6678; margin-top:2px; }
    .cohort a { font-size:12.5px; color:var(--teal-700); font-weight:600; text-decoration:none; }
    .cohort a:hover { text-decoration:underline; }
    .price { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid #EDF2F6; font-size:14px; color:#33506a; }
    .price:last-child { border-bottom:0; }
    .price b { color:var(--navy); white-space:nowrap; }

    .cta-band { background:linear-gradient(180deg, var(--navy-1) 0%, var(--navy-deep) 100%); color:#fff; text-align:center; }
    .cta-band .section { padding:72px 28px; }
    .cta-band h2 { font-size:clamp(24px, 3.4vw, 32px); margin:0 0 12px; letter-spacing:-0.015em; }
    .cta-band p { color:rgba(255,255,255,0.8); max-width:58ch; margin:0 auto 24px; font-size:15.5px; line-height:1.65; }

    footer.site { background:#F4F8FB; border-top:1px solid #E3EAF0; }
    footer.site .section { padding:36px 28px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:center; }
    footer.site p { margin:0; font-size:12.5px; color:#5f7588; line-height:1.6; max-width:70ch; }
    footer.site a { color:var(--teal-700); font-weight:600; text-decoration:none; }
    footer.site a:hover { text-decoration:underline; }
    @media (max-width:680px){
      .nav-inner { flex-wrap:wrap; gap:10px 16px; padding:12px 18px; }
      .nav-links { gap:16px; width:100%; justify-content:flex-start; flex-wrap:wrap; }
      .nav-links a.subnav { font-size:13px; }
      .nav-cta { margin-left:auto; }
    }
    @media (max-width:640px){ .section { padding:60px 20px; } .hero { padding:60px 20px 52px; } .btn-pill.ghost { margin-left:0; margin-top:10px; } }

    /* Shared sub-nav links for the PRISM information set */
    .nav-links a.subnav.active { opacity:1; border-bottom:2px solid var(--coral); padding-bottom:3px; }
    .nav.scrolled .nav-links a.subnav.active { border-bottom-color:var(--coral); }
    /* Livermore acknowledgement footer block */
    .dl-foot { background:var(--navy-deep); color:rgba(255,255,255,0.82); }
    .dl-foot .section { padding:54px 28px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; }
    @media (max-width:840px){ .dl-foot .section { grid-template-columns:1fr; gap:26px; } }
    .dl-foot h3, .dl-foot h4 { font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--coral); margin:0 0 14px; }
    .dl-foot p { margin:0 0 14px; font-size:13.5px; line-height:1.65; color:rgba(255,255,255,0.78); }
    .dl-foot ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
    .dl-foot a { color:#fff; text-decoration:none; font-size:13.5px; opacity:0.82; transition:opacity 0.15s; }
    .dl-foot a:hover { opacity:1; text-decoration:underline; }
    .dl-foot .colophon { grid-column:1 / -1; border-top:1px solid rgba(255,255,255,0.12); padding-top:20px; margin-top:6px; font-size:12px; color:rgba(255,255,255,0.6); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }
    .dl-foot .colophon a { font-size:12px; }


    /* ============================================================
       Editorial layer: makes the PRISM info set feel hand-designed
       rather than templated. Pure CSS, no libraries, respects
       prefers-reduced-motion.
       ============================================================ */

    /* Scroll progress hairline pinned under the nav */
    .skip-link { position:absolute; left:-9999px; top:0; z-index:100; background:var(--navy); color:#fff; padding:10px 16px; border-radius:0 0 8px 0; font-size:13px; font-weight:600; text-decoration:none; }
    .skip-link:focus { left:0; }
    .read-progress { position:fixed; top:0; left:0; height:2px; width:0; z-index:60;
      background:linear-gradient(90deg, var(--teal) 0%, var(--coral) 100%);
      transition:width 0.08s linear; }

    /* Hero: off-centre layout with a soft prism-light glow behind the title.
       Replaces the dead-centre, evenly-padded template hero. */
    .hero-band { position:relative; overflow:hidden; }
    .hero-band::before { content:""; position:absolute; top:-30%; right:-10%; width:620px; height:620px;
      background:radial-gradient(circle at 30% 30%, rgba(233,120,98,0.22), rgba(42,123,159,0.16) 40%, transparent 68%);
      filter:blur(8px); pointer-events:none; }
    .hero-band::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
      background:linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent); }
    .hero { position:relative; z-index:1; max-width:1080px; }
    .hero h1 { max-width:18ch; }
    /* the eyebrow gets a small leading rule, an editorial tell */
    .eyebrow { position:relative; }

    /* Section eyebrow ("kicker") with a drawn rule rather than plain caps */
    .section-head .kicker { display:inline-flex; align-items:center; gap:10px; }
    .section-head .kicker::before { content:""; width:26px; height:2px; background:var(--coral); border-radius:2px; }

    /* Oversized ghost numerals behind the OS cards: gives the grid a designed
       rhythm instead of four identical boxes. */
    .os-grid { counter-reset:os; }
    .os-card { position:relative; overflow:hidden; }
    .os-card::after { counter-increment:os; content:"0" counter(os); position:absolute; right:-6px; bottom:-22px;
      font-size:104px; font-weight:800; line-height:1; color:var(--navy); opacity:0.04; letter-spacing:-0.04em; pointer-events:none; }
    .os-card .num { position:relative; z-index:1; }
    /* hover lifts and the left edge lights up in the card's colour */
    .os-card { border-left:3px solid transparent; }
    .os-card:nth-child(1):hover { border-left-color:var(--navy); }
    .os-card:nth-child(2):hover { border-left-color:var(--teal); }
    .os-card:nth-child(3):hover { border-left-color:var(--coral); }
    .os-card:nth-child(4):hover { border-left-color:var(--navy-1); }

    /* Links in body copy: a wipe-in underline rather than the default bar */
    .body-link, .section-head p a { background-image:linear-gradient(var(--teal), var(--teal));
      background-size:0% 1.5px; background-repeat:no-repeat; background-position:0 100%;
      border-bottom:0 !important; transition:background-size 0.25s ease; padding-bottom:1px; }
    .body-link:hover, .section-head p a:hover { background-size:100% 1.5px; }

    /* Steps: the connector line that makes them read as a journey, not tiles */
    .steps { position:relative; }
    @media (min-width:721px){
      .steps::before { content:""; position:absolute; top:11px; left:8%; right:8%; height:2px;
        background:repeating-linear-gradient(90deg, rgba(184,73,47,0.35) 0 8px, transparent 8px 16px); z-index:0; }
      .step { z-index:1; }
    }

    /* Panels: a subtle corner accent instead of a flat rounded box */
    .panel { position:relative; }
    .panel::before { content:""; position:absolute; top:0; left:28px; width:46px; height:3px;
      background:var(--coral); border-radius:0 0 3px 3px; }

    /* Buttons: weightier press feel + a sheen sweep on the primary, so they
       don't look like the default pill every generated site ships. */
    .btn-pill { position:relative; overflow:hidden; will-change:transform; }
    .btn-pill.coral::after { content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
      background:linear-gradient(100deg, transparent, rgba(255,255,255,0.35), transparent); transform:skewX(-18deg); }
    .btn-pill.coral:hover::after { animation:sheen 0.7s ease; }
    @keyframes sheen { to { left:140%; } }

    /* Reveal-on-scroll for sections and cards */
    /* Only hide for animation once JS confirms it can reveal them. */
    .js-reveal .reveal { opacity:0; transform:translateY(16px); transition:opacity 0.6s ease, transform 0.6s ease; }
    .js-reveal .reveal.in { opacity:1; transform:none; }

    @media (prefers-reduced-motion: reduce){
      .read-progress, .btn-pill.coral:hover::after, .reveal { transition:none; animation:none; }
      .reveal { opacity:1; transform:none; }
    }


    /* Keyboard focus: a clear ring on every interactive element in the set,
       since the design relies on hover that keyboard users never see. */
    .nav-links a:focus-visible, .nav-cta:focus-visible, .btn-pill:focus-visible,
    .os-card a:focus-visible, .body-link:focus-visible, .dl-foot a:focus-visible,
    .cohort a:focus-visible {
      outline:2px solid var(--coral); outline-offset:3px; border-radius:4px;
    }
