
    :root {
      --navy-950: #061a2b;
      --navy-850: #0d2941;
      --navy-750: #173e5d;
      --teal-700: #007f79;
      --teal-100: #d8f1ee;
      --teal-050: #edf9f7;
      --indigo-700: #4f46a5;
      --gold-500: #f4b942;
      --gold-100: #fff4cf;
      --ink: #172b3a;
      --muted: #4b6473;
      --surface: #ffffff;
      --page: #f3f7f9;
      --line: #cbdce4;
      --success: #eaf7f0;
      --success-line: #23845e;
      --warning: #fff7d8;
      --warning-line: #d69e00;
      --focus: #ffbf47;
      --max: 76rem;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--page);
      font-family: Arial, Helvetica, sans-serif;
      line-height: 1.62;
    }

    a {
      color: #075d85;
    }

    a:hover {
      color: #043e59;
    }

    a:focus-visible,
    summary:focus-visible,
    input:focus-visible {
      outline: .2rem solid var(--focus);
      outline-offset: .2rem;
    }

    .skip-link {
      position: absolute;
      left: 1rem;
      top: -6rem;
      z-index: 100;
      padding: .75rem 1rem;
      border-radius: .4rem;
      color: #000;
      background: var(--focus);
      font-weight: 800;
    }

    .skip-link:focus {
      top: 1rem;
    }

    .hero {
      position: relative;
      overflow: hidden;
      color: #fff;
      background:
        radial-gradient(circle at 80% 18%, rgba(99, 215, 206, .28), transparent 24rem),
        radial-gradient(circle at 74% 90%, rgba(79, 70, 165, .42), transparent 32rem),
        linear-gradient(125deg, var(--navy-950), var(--navy-850) 58%, #21356c);
    }

    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      opacity: .55;
      background-image:
        linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
      background-size: 2.5rem 2.5rem;
      mask-image: linear-gradient(90deg, transparent, black);
    }

    .hero-inner {
      position: relative;
      z-index: 1;
      width: min(100% - 2rem, var(--max));
      margin: auto;
      padding: 2.2rem 0 2rem;
    }

    .breadcrumb {
      margin: 0 0 1rem;
      color: #cde8eb;
      font-size: .92rem;
    }

    .breadcrumb a {
      color: #fff;
    }

    .eyebrow {
      display: inline-block;
      margin-bottom: .8rem;
      padding: .3rem .68rem;
      border: 1px solid rgba(255, 255, 255, .48);
      border-radius: 999px;
      background: rgba(6, 26, 43, .55);
      font-weight: 800;
      font-size: .8rem;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    h1 {
      max-width: 22ch;
      margin: 0;
      font-size: clamp(2rem, 5vw, 3.6rem);
      line-height: 1.06;
      letter-spacing: -.03em;
    }

    .hero-lead {
      max-width: 50rem;
      margin: 1rem 0 0;
      color: #e5f2f5;
      font-size: clamp(1rem, 1.8vw, 1.2rem);
    }

    .hero-line {
      width: 6rem;
      height: .35rem;
      margin: 1.3rem 0;
      border: 0;
      background: linear-gradient(90deg, var(--gold-500), #63d7ce);
    }

    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: .55rem;
      margin-top: 1.35rem;
    }

    .hero-meta span {
      padding: .4rem .68rem;
      border: 1px solid rgba(255, 255, 255, .3);
      border-radius: .5rem;
      background: rgba(6, 26, 43, .55);
      font-size: .9rem;
      font-weight: 700;
    }

    .nav-bar {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: .4rem .9rem;
      margin-top: 1.4rem;
      padding: .6rem .8rem;
      border: 1px solid rgba(255, 255, 255, .3);
      border-radius: .7rem;
      background: rgba(6, 26, 43, .65);
      font-size: .92rem;
    }

    .nav-bar a {
      color: #fff;
      font-weight: 700;
      text-decoration: none;
      padding: .25rem .4rem;
      border-bottom: 2px solid transparent;
    }

    .nav-bar a:hover,
    .nav-bar a:focus-visible {
      border-bottom-color: var(--gold-500);
      color: #fff;
    }

    .nav-bar .sep {
      color: #9fc3ce;
      font-weight: 400;
    }

    main {
      width: min(100% - 2rem, var(--max));
      margin: -1rem auto 0;
      position: relative;
      z-index: 2;
    }

    .panel {
      margin-bottom: 1.4rem;
      padding: clamp(1.25rem, 3vw, 2.1rem);
      border: 1px solid var(--line);
      border-radius: 1rem;
      background: var(--surface);
      box-shadow: 0 .45rem 1.25rem rgba(16, 42, 67, .07);
    }

    .panel > :last-child {
      margin-bottom: 0;
    }

    .panel-overview {
      border-top: .4rem solid var(--teal-700);
    }

    h2 {
      margin: 0 0 .7rem;
      color: var(--navy-850);
      font-size: clamp(1.45rem, 2.8vw, 2rem);
      line-height: 1.18;
    }

    h3 {
      margin: 1.35rem 0 .5rem;
      color: var(--navy-750);
      font-size: 1.2rem;
    }

    h4 {
      margin: 1.1rem 0 .4rem;
      color: var(--indigo-700);
      font-size: 1.02rem;
    }

    .toc {
      background: #f5f8fb;
      padding: 1.2rem 1.5rem;
      border-radius: .8rem;
      border: 1px solid var(--line);
      margin-bottom: 1.4rem;
    }

    .toc h2 {
      margin-top: 0;
      border-bottom: none;
      font-size: 1.25rem;
      padding-bottom: 0;
    }

    .toc ul {
      columns: 2 240px;
      column-gap: 2rem;
      list-style: none;
      padding: 0;
      margin: .5rem 0 0 0;
    }

    .toc li {
      padding: .2rem 0;
      break-inside: avoid;
    }

    .toc a {
      color: #075d85;
      text-decoration: none;
      border-bottom: 1px dotted transparent;
    }

    .toc a:hover {
      border-bottom-color: #075d85;
    }

    .grid-2,
    .grid-3 {
      display: grid;
      gap: 1rem;
    }

    .grid-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .card {
      padding: 1.1rem;
      border: 1px solid #cfdee5;
      border-radius: .75rem;
      background: #f8fbfc;
    }

    .card h3 {
      margin: 0 0 .45rem;
      color: var(--teal-700);
    }

    .callout {
      margin: 1rem 0;
      padding: 1rem 1.1rem;
      border-left: .35rem solid var(--indigo-700);
      border-radius: .45rem;
      background: #f1f0ff;
    }

    .callout.warning {
      border-left-color: var(--warning-line);
      background: var(--warning);
    }

    .callout.success {
      border-left-color: var(--success-line);
      background: var(--success);
    }

    .outcomes {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .8rem;
      margin: 1rem 0 0;
      padding: 0;
      list-style: none;
      counter-reset: outcome;
    }

    .outcomes li {
      position: relative;
      min-height: 5rem;
      padding: 1rem 1rem 1rem 3.6rem;
      border: 1px solid #cfe2e4;
      border-radius: .72rem;
      background: linear-gradient(145deg, #fff, #f2f9f8);
    }

    .outcomes li::before {
      counter-increment: outcome;
      content: counter(outcome);
      position: absolute;
      left: 1rem;
      top: 1rem;
      display: grid;
      place-items: center;
      width: 1.9rem;
      height: 1.9rem;
      border-radius: 50%;
      color: #fff;
      background: var(--indigo-700);
      font-weight: 800;
    }

    .button {
      display: inline-block;
      padding: .68rem .9rem;
      border: 2px solid var(--indigo-700);
      border-radius: .55rem;
      color: var(--indigo-700);
      background: #fff;
      font-weight: 800;
      text-decoration: none;
    }

    .button:hover,
    .button:focus-visible {
      color: #fff;
      background: var(--indigo-700);
    }

    .button-primary {
      color: #fff;
      background: var(--indigo-700);
    }

    .button-primary:hover,
    .button-primary:focus-visible {
      border-color: var(--navy-850);
      background: var(--navy-850);
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: .65rem;
      margin-top: 1rem;
    }

    .box {
      border-radius: .7rem;
      padding: 1.1rem 1.3rem;
      margin: 1.2rem 0;
      border-left: .4rem solid;
    }

    .box-definition {
      background: #edf2fa;
      border-color: #2b4f7a;
    }

    .box-activity {
      background: #eef4fb;
      border-color: #2b5797;
    }

    .box-exercise {
      background: #f4f2fa;
      border-color: #5e4c8a;
    }

    .box-homework {
      background: #f2f7f0;
      border-color: #3d7a4a;
    }

    .box-project {
      background: #f5f0eb;
      border-color: #8a6e4b;
    }

    .box-reflection {
      background: #faf0f5;
      border-color: #a6577a;
    }

    .box-key {
      background: #eaf4ea;
      border-color: #2d6a2d;
    }

    .box-scenario {
      background: #f2f4f8;
      border-color: #4a5e7a;
    }

    .box-warning {
      background: #fef6e6;
      border-color: #d48c2c;
    }

    .box strong {
      display: block;
      font-size: .95rem;
      text-transform: uppercase;
      letter-spacing: .02em;
      margin-bottom: .3rem;
    }

    details {
      margin: .7rem 0;
      border: 1px solid var(--line);
      border-radius: .6rem;
      background: #fff;
    }

    summary {
      padding: .85rem 1rem;
      color: var(--navy-850);
      background: #f3f8fa;
      cursor: pointer;
      font-weight: 800;
      border-radius: .6rem;
    }

    details[open] summary {
      border-bottom: 1px solid var(--line);
      border-radius: .6rem .6rem 0 0;
    }

    details > div {
      padding: .2rem 1rem 1rem;
    }

    .question {
      background: #f8faff;
      border: 1px solid var(--line);
      border-radius: .7rem;
      padding: 1.1rem 1.4rem;
      margin: 1.1rem 0;
    }

    .question .q-label {
      font-weight: 700;
      color: var(--navy-850);
      display: block;
      margin-bottom: .3rem;
    }

    fieldset {
      border: none;
      padding: 0;
      margin: .6rem 0;
    }

    legend {
      font-weight: 600;
      color: var(--navy-750);
      padding: 0;
      margin-bottom: .3rem;
    }

    .options {
      display: flex;
      flex-direction: column;
      gap: .2rem;
      padding-left: .3rem;
    }

    .options label {
      display: flex;
      align-items: baseline;
      gap: .4rem;
      padding: .15rem 0;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      margin: 1.2rem 0;
      font-size: .95rem;
    }

    caption {
      caption-side: bottom;
      font-size: .9rem;
      color: var(--muted);
      padding: .4rem 0;
      text-align: left;
    }

    thead {
      background: #e6ebf2;
    }

    th,
    td {
      padding: .6rem .9rem;
      border: 1px solid var(--line);
      text-align: left;
      vertical-align: top;
    }

    th {
      font-weight: 700;
      color: var(--navy-850);
    }

    tbody tr:nth-child(even) {
      background: #f8f9fc;
    }

    .table-wrap {
      overflow-x: auto;
      margin-top: 1rem;
    }

    .table-wrap table {
      min-width: 48rem;
    }

    .small-meta {
      font-size: .9rem;
      color: var(--muted);
    }

    .badge {
      display: inline-block;
      background: var(--teal-100);
      color: var(--navy-850);
      font-size: .75rem;
      font-weight: 700;
      padding: .15rem .7rem;
      border-radius: 20px;
      text-transform: uppercase;
      letter-spacing: .03em;
    }

    .footer-note {
      font-size: .9rem;
      color: var(--muted);
      border-top: 1px solid var(--line);
      padding-top: 1.2rem;
      margin-top: 2rem;
      text-align: center;
    }

    footer {
      margin-top: 3rem;
      padding: 1.4rem 1rem;
      color: #dce9ef;
      background: var(--navy-950);
      text-align: center;
      font-size: .9rem;
    }

    hr {
      border: none;
      border-top: 2px solid #e6ebf2;
      margin: 2.5rem 0;
    }

    @media (max-width:54rem) {
      .grid-2,
      .grid-3,
      .outcomes {
        grid-template-columns: 1fr;
      }
      .toc ul {
        columns: 1;
      }
    }

    @media (prefers-reduced-motion:reduce) {
      html {
        scroll-behavior: auto;
      }
    }

    @media print {
      .nav-bar {
        display: none;
      }
      .panel {
        box-shadow: none;
      }
      body {
        background: #fff;
      }
    }