/* =====================================================================
   PART I THEME — Korean clinic editorial (ivory / charcoal / ruby / gold)
   Scoped to html[data-theme="part1"]. Also holds theme-agnostic styles
   for the course selector, gate tracker and declaration forms.
   ===================================================================== */

/* ---------------------------------------------------- shared components */
.nav-links a { white-space: nowrap; }
@media (min-width: 821px) and (max-width: 1100px) { .nav-links a { padding: 8px 10px; font-size: 12.5px; } .nav-user .whoami { display: none; } }
.course-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 22px; }
.course-card {
  display: grid; grid-template-rows: 200px 1fr auto; text-decoration: none !important; color: var(--text);
  border: 1px solid var(--line-2); border-radius: var(--r-xl); overflow: hidden; background: linear-gradient(160deg, var(--surface-2), var(--surface));
  box-shadow: var(--shadow-m); transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.course-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-l); }
.course-card .cc-art { background-image: var(--card-img); background-size: cover; background-position: center; position: relative; }
.course-card .cc-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0), var(--surface)); }
.course-card .cc-body { padding: 22px 24px 8px; }
.course-card .cc-body h2 { font-size: 26px; margin-bottom: 4px; }
.course-card .cc-stats { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 14px; font-size: 12px; color: var(--text-faint); }
.course-card .cc-stats b { color: var(--text); font-family: var(--font-display); font-size: 15px; }
.course-card .cc-ring { display: flex; align-items: center; gap: 18px; padding: 16px 24px 22px; flex-wrap: wrap; }
.course-card .cc-ring .ring { width: 96px; height: 96px; }
.course-card .cc-ring .ring-mid b { font-size: 24px; }
.course-card.theme-part1 { --ring-a: #C5A86E; --ring-b: #6A212E; }
.course-card.theme-gsp { --ring-a: #a8f0cd; --ring-b: #c9a961; }

.gates { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.gate { border: 1px solid var(--line); border-radius: var(--r-m); padding: 14px; background: rgba(127,127,127,.06); position: relative; }
.gate b { display: block; font-size: 13.5px; margin: 8px 0 3px; }
.gate span { font-size: 11.5px; color: var(--text-faint); line-height: 1.4; display: block; }
.gate-n { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; font-family: var(--font-display); font-size: 14px; border: 1px solid var(--line-2); color: var(--text-dim); }
.gate.done { border-color: var(--ok); background: rgba(70,185,138,.1); }
.gate.done .gate-n { background: var(--ok); color: #fff; border-color: var(--ok); }
.gate.now { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,169,97,.18); }
.gate.now .gate-n { background: var(--gold); color: #2a2007; border-color: var(--gold); }
.chk-line { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--text-dim); margin: 8px 0; cursor: pointer; }
.chk-line input { margin-top: 4px; width: 16px; height: 16px; accent-color: var(--gold); flex-shrink: 0; }

/* ------------------------------------------------------------ 3D lab */
.p13d { position: relative; border-radius: var(--r-l); overflow: hidden; border: 1px solid var(--line); background: linear-gradient(160deg, rgba(0,0,0,.06), rgba(0,0,0,.18)); }
.p13d canvas { display: block; width: 100%; height: 100%; }
.p13d-stage { position: relative; height: 440px; }
@media (max-width: 700px) { .p13d-stage { height: 340px; } }
.p13d-palette { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; border-top: 1px solid var(--line); }
.p13d-cap { padding: 0 14px 14px; font-size: 14px; color: var(--text-dim); min-height: 52px; }
.p13d-cap b { color: var(--text); }
.p13d-hint { position: absolute; top: 10px; left: 12px; font-size: 10.5px; letter-spacing: .16em;
  text-transform: uppercase; color: #262626; pointer-events: none;
  background: color-mix(in srgb, var(--surface) 78%, transparent);
  padding: 4px 9px; border-radius: 7px; }
.p13d-fallback { perspective: 900px; height: 380px; display: grid; place-items: center; }
.p13d-block { position: relative; width: 300px; height: 220px; transform-style: preserve-3d; transform: rotateX(56deg) rotateZ(-32deg); transition: transform .8s var(--ease); }
.p13d-fallback:hover .p13d-block { transform: rotateX(50deg) rotateZ(-20deg); }
.p13d-layer { position: absolute; inset: 0; border-radius: 6px; border: 1px solid rgba(0,0,0,.15); display: flex; align-items: center; justify-content: center; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #3a2a24; transition: transform .6s var(--ease), background .6s, box-shadow .6s; }
@media (max-width: 560px) { .p13d-stage, .p13d-fallback { height: 300px; } }

/* ============================================================ THEME */
html[data-theme="part1"] {
  --abyss: #f3efe6; --deep: #efe9dc; --forest: #e9e2d2; --forest-2: #e2d9c4; --moss: #8f7539; --sea: #6A212E; --spume: #8a3a49; --glow: #6A212E;
  --paper: #FDFCF8; --ink: #1A1A1A; --ink-2: #2D2D2D;
  --gold: #9a7f47; --gold-lo: #7a6236; --gold-hi: #b08c48;
  --danger: #b23a3a; --warn: #b9832a; --ok: #2f7d5b; --info: #3e6f8f; --plum: #6b4a7e;
  --bg: #F4F2EB; --surface: #FFFFFF; --surface-2: #FDFCF8; --surface-3: #F4F2EB;
  --line: rgba(45,45,45,.12); --line-2: rgba(45,45,45,.22);
  --text: #1A1A1A; --text-dim: #4a4a4a; --text-faint: #5d5851;
  --shadow-s: 0 2px 10px rgba(40,30,20,.06); --shadow-m: 0 10px 30px rgba(40,30,20,.1); --shadow-l: 0 24px 60px rgba(40,30,20,.16);
  --ring-a: #C5A86E; --ring-b: #6A212E;
}
html[data-theme="part1"] body { background: var(--bg); color: var(--text); }
html[data-theme="part1"] body::before {
  background:
    radial-gradient(900px 500px at 10% -10%, rgba(197,168,110,.22), transparent 60%),
    radial-gradient(800px 500px at 95% 5%, rgba(106,33,46,.10), transparent 60%),
    linear-gradient(175deg, #F7F4EC 0%, #F4F2EB 50%, #EFEBE0 100%);
}
html[data-theme="part1"] body::after { opacity: .05; mix-blend-mode: multiply; }
html[data-theme="part1"] ::selection { background: var(--gold); color: #1A1A1A; }
html[data-theme="part1"] a { color: var(--sea); }
html[data-theme="part1"] :focus-visible { outline-color: var(--sea); }
html[data-theme="part1"] .eyebrow { color: var(--sea); }
html[data-theme="part1"] .eyebrow.sea { color: var(--gold-lo); }
html[data-theme="part1"] h1, html[data-theme="part1"] h2, html[data-theme="part1"] h3 { color: var(--ink); }

/* nav */
html[data-theme="part1"] .nav { background: rgba(253,252,248,.84); border-bottom: 1px solid var(--gold); }
html[data-theme="part1"] .brand-mark { background: linear-gradient(140deg, var(--sea), #4a151f); color: var(--gold); border-color: var(--gold); }
html[data-theme="part1"] .brand-txt b { color: var(--ink); }
html[data-theme="part1"] .brand-txt span { color: var(--sea); }
html[data-theme="part1"] .nav-links a { color: var(--text-dim); }
html[data-theme="part1"] .nav-links a:hover { color: var(--ink); background: rgba(45,45,45,.06); }
html[data-theme="part1"] .nav-links a.on { background: var(--sea); color: #fff; }
html[data-theme="part1"] .nav-user { border-left-color: var(--line); }
html[data-theme="part1"] .avatar { background: linear-gradient(140deg, var(--gold), var(--gold-lo)); color: #1A1A1A; }
@media (max-width: 820px) { html[data-theme="part1"] .nav-links { background: rgba(253,252,248,.98); } }

/* buttons */
html[data-theme="part1"] .btn-primary { background: linear-gradient(135deg, var(--sea), #4a151f); color: #fff; border-color: rgba(106,33,46,.4); box-shadow: 0 8px 22px rgba(106,33,46,.22); }
html[data-theme="part1"] .btn-primary:hover { box-shadow: 0 12px 30px rgba(106,33,46,.3); }
html[data-theme="part1"] .btn-gold { background: linear-gradient(135deg, #e6d3a5, var(--gold)); color: #1A1A1A; }
html[data-theme="part1"] .btn-ghost { border-color: var(--line-2); color: var(--ink); background: rgba(255,255,255,.5); }
html[data-theme="part1"] .btn-ghost:hover { background: #fff; border-color: var(--sea); }

/* surfaces */
html[data-theme="part1"] .card, html[data-theme="part1"] .perf, html[data-theme="part1"] .stage-body, html[data-theme="part1"] .qcard, html[data-theme="part1"] .tl-panel, html[data-theme="part1"] .course-card { background: #fff; border-color: var(--line); }
html[data-theme="part1"] .card { border-top: 3px solid var(--gold); }
html[data-theme="part1"] .panel { background: linear-gradient(165deg, #fff, #F7F4EC); border-color: var(--gold); }
html[data-theme="part1"] .card-flat, html[data-theme="part1"] .gcard, html[data-theme="part1"] .step, html[data-theme="part1"] .stat, html[data-theme="part1"] .ccol, html[data-theme="part1"] .bucket, html[data-theme="part1"] .product, html[data-theme="part1"] .writ, html[data-theme="part1"] .qa, html[data-theme="part1"] .tablewrap, html[data-theme="part1"] .svgfig, html[data-theme="part1"] .sortpool, html[data-theme="part1"] .casefile, html[data-theme="part1"] .mapfig .art, html[data-theme="part1"] .sim-scene, html[data-theme="part1"] .gate { background: #fff; }
html[data-theme="part1"] .gcard h4 { color: var(--sea); }
html[data-theme="part1"] .gcard p, html[data-theme="part1"] .step p, html[data-theme="part1"] .product p, html[data-theme="part1"] .ccol dd { color: var(--text-dim); }
html[data-theme="part1"] .step b, html[data-theme="part1"] .product h4, html[data-theme="part1"] .tl-panel h4, html[data-theme="part1"] .casefile .who b, html[data-theme="part1"] .check .q, html[data-theme="part1"] .writ .q, html[data-theme="part1"] .qcard .qt, html[data-theme="part1"] .recall .q, html[data-theme="part1"] .fb b, html[data-theme="part1"] .blocks p b, html[data-theme="part1"] .blocks p strong, html[data-theme="part1"] .sim-top h4, html[data-theme="part1"] .flip-f b { color: var(--ink); }
html[data-theme="part1"] .step .n { background: linear-gradient(140deg, rgba(197,168,110,.35), rgba(106,33,46,.12)); color: var(--sea); }
html[data-theme="part1"] .blocks p, html[data-theme="part1"] .blocks ul.bul li, html[data-theme="part1"] .blocks ol.num li, html[data-theme="part1"] .note p, html[data-theme="part1"] .note li, html[data-theme="part1"] .sim-scene p, html[data-theme="part1"] .tl-col li, html[data-theme="part1"] .qa-a > div, html[data-theme="part1"] .model, html[data-theme="part1"] .flip-b p { color: #2D2D2D; }
html[data-theme="part1"] .blocks .lead { color: var(--ink); }
html[data-theme="part1"] .blocks ul.bul li::before { background: var(--gold); }
html[data-theme="part1"] .blocks ol.num li::before { background: rgba(197,168,110,.25); color: var(--sea); }
html[data-theme="part1"] .quote { color: #3a2a24; border-left-color: var(--gold); }
html[data-theme="part1"] .quote cite { color: var(--sea); }
html[data-theme="part1"] .svgfig .ttl { color: var(--sea); }
html[data-theme="part1"] .svgfig text { fill: #2D2D2D; }

/* notes: light variants */
html[data-theme="part1"] .note { background: var(--nbg, #fff); }
html[data-theme="part1"] .note.essential { --nc: #6A212E; --nb: rgba(106,33,46,.3); --nbg: #FBF6F2; }
html[data-theme="part1"] .note.clinical  { --nc: #3e6f8f; --nb: rgba(62,111,143,.35); --nbg: #F3F7FA; }
html[data-theme="part1"] .note.safety    { --nc: #b23a3a; --nb: rgba(178,58,58,.4); --nbg: #FDF4F4; }
html[data-theme="part1"] .note.trainer   { --nc: #9a7f47; --nb: rgba(197,168,110,.6); --nbg: #FBF7EE; }
html[data-theme="part1"] .note.tip       { --nc: #2f7d5b; --nb: rgba(47,125,91,.35); --nbg: #F1F8F4; }
html[data-theme="part1"] .note.protocol  { --nc: #6b4a7e; --nb: rgba(107,74,126,.35); --nbg: #F7F3FA; }
html[data-theme="part1"] .note.reaction  { --nc: #b9832a; --nb: rgba(185,131,42,.4); --nbg: #FCF7EC; }
html[data-theme="part1"] .note.stop      { --nc: #b23a3a; --nb: rgba(178,58,58,.6); --nbg: #FBEDED; }
html[data-theme="part1"] .note.client    { --nc: #6A212E; --nb: rgba(197,168,110,.6); --nbg: #FDFCF8; }
html[data-theme="part1"] .note.business  { --nc: #3f6b55; --nb: rgba(63,107,85,.35); --nbg: #F2F7F3; }
html[data-theme="part1"] .note.client p { font-style: italic; }

/* interactive */
html[data-theme="part1"] .opt, html[data-theme="part1"] .chip, html[data-theme="part1"] .hunt-line, html[data-theme="part1"] .seq-item, html[data-theme="part1"] .tl-node, html[data-theme="part1"] .lesson-row .tick, html[data-theme="part1"] .qa-q, html[data-theme="part1"] .flip-f { background: #fff; color: var(--ink); border-color: var(--line-2); }
html[data-theme="part1"] .opt:hover:not(:disabled), html[data-theme="part1"] .chip:hover:not(:disabled), html[data-theme="part1"] .seq-item:hover { border-color: var(--sea); background: #FBF6F2; }
html[data-theme="part1"] .opt .mk, html[data-theme="part1"] .seq-item .pos, html[data-theme="part1"] .seq-item .mv button { background: #F4F2EB; color: var(--sea); border-color: var(--line-2); }
html[data-theme="part1"] .opt.right { border-color: var(--ok); background: #EAF6EF; }
html[data-theme="part1"] .opt.wrong { border-color: var(--danger); background: #FBECEC; }
html[data-theme="part1"] .opt.sel, html[data-theme="part1"] .chip.sel { border-color: var(--sea); background: #FBF6F2; box-shadow: 0 0 0 2px rgba(106,33,46,.2); }
html[data-theme="part1"] .chip.ok, html[data-theme="part1"] .seq-item.ok, html[data-theme="part1"] .hunt-line.hit { border-color: var(--ok); background: #EAF6EF; color: #1A1A1A; }
html[data-theme="part1"] .chip.no, html[data-theme="part1"] .seq-item.no, html[data-theme="part1"] .hunt-line.miss { border-color: var(--danger); background: #FBECEC; }
html[data-theme="part1"] .hunt-line.flagged { border-color: var(--gold); background: #FBF7EE; }
html[data-theme="part1"] .hunt-line.falsepos { border-color: var(--warn); background: #FCF7EC; }
html[data-theme="part1"] .hunt-line { color: var(--text-dim); }
html[data-theme="part1"] .tl-node.on { background: linear-gradient(140deg, var(--sea), #4a151f); color: #fff; border-color: var(--gold); }
html[data-theme="part1"] .tl-node b, html[data-theme="part1"] .tl-node span { color: inherit; }
html[data-theme="part1"] .tl-panel .when { color: var(--sea); }
html[data-theme="part1"] .flip-b { background: linear-gradient(150deg, var(--sea), #4a151f); border-color: var(--gold); }
html[data-theme="part1"] .flip-b p { color: #fff; }
html[data-theme="part1"] .flip-f::after { color: var(--text-faint); }
html[data-theme="part1"] .fb.good { background: #EAF6EF; border-color: rgba(47,125,91,.4); color: #1f4d38; }
html[data-theme="part1"] .fb.bad { background: #FBECEC; border-color: rgba(178,58,58,.4); color: #6d2222; }
html[data-theme="part1"] .fb.info { background: #F3F7FA; border-color: rgba(62,111,143,.4); color: #2c4d63; }
html[data-theme="part1"] .check { background: linear-gradient(160deg, #FBF7EE, #fff); border-color: rgba(197,168,110,.6); }
html[data-theme="part1"] .check .kh, html[data-theme="part1"] .writ .kh { color: var(--sea); }
html[data-theme="part1"] .recall { background: linear-gradient(160deg, #F7F3FA, #fff); border-color: rgba(107,74,126,.5); }
html[data-theme="part1"] .recall .kh { color: var(--plum); }
html[data-theme="part1"] .model { background: #FBF7EE; border-color: rgba(197,168,110,.6); }
html[data-theme="part1"] .model b { color: var(--sea); }
html[data-theme="part1"] .field input, html[data-theme="part1"] .field select, html[data-theme="part1"] .field textarea { background: #fff; border-color: var(--line-2); color: var(--ink); }
html[data-theme="part1"] .field input:focus, html[data-theme="part1"] .field textarea:focus { border-color: var(--sea); }
html[data-theme="part1"] .field label { color: var(--text-faint); }

/* games & sims */
html[data-theme="part1"] .gamecard { background: linear-gradient(150deg, #fff, #F7F4EC); border-color: var(--gold); }
html[data-theme="part1"] .gamecard .gk { color: var(--sea); }
html[data-theme="part1"] .gamecard .gb { color: var(--text-dim); }
html[data-theme="part1"] .simroom { background: linear-gradient(165deg, #fff, #F4F2EB); border-color: var(--gold); }
html[data-theme="part1"] .sim-top { background: #2D2D2D; border-bottom-color: var(--gold); }
html[data-theme="part1"] .sim-top .stg { color: var(--gold); }
html[data-theme="part1"] .sim-top h4 { color: #fff; }
html[data-theme="part1"] .sim-scene { background: #FBF6F2; }
html[data-theme="part1"] .sim-log li { color: var(--text-dim); border-bottom-color: var(--line); }
html[data-theme="part1"] .sim-log h5 { color: var(--text-faint); }
html[data-theme="part1"] .score-hero { background: linear-gradient(160deg, #FBF7EE, #fff); border-color: var(--gold); }
html[data-theme="part1"] .score-hero .big { color: var(--sea); }
html[data-theme="part1"] .score-hero.fail { background: linear-gradient(160deg, #FBECEC, #fff); }
html[data-theme="part1"] .score-hero.fail .big { color: var(--danger); }
html[data-theme="part1"] .brk .sc { color: var(--sea); }
html[data-theme="part1"] .bar { background: rgba(45,45,45,.1); }
html[data-theme="part1"] .bar i { background: var(--accent, var(--sea)); }
html[data-theme="part1"] .gprog i { background: rgba(45,45,45,.12); }
html[data-theme="part1"] .casefile > header { background: #F4F2EB; }
html[data-theme="part1"] .casefile .ph { background: linear-gradient(140deg, var(--gold), var(--gold-lo)); color: #1A1A1A; border-color: var(--gold); }
html[data-theme="part1"] .dl .row dt { color: var(--sea); }
html[data-theme="part1"] .dl .row dd { color: var(--text-dim); }
html[data-theme="part1"] .bucket > h5 { color: var(--bc, var(--sea)); }
html[data-theme="part1"] .bucket.armed { border-color: var(--gold); background: #FBF7EE; }
html[data-theme="part1"] .gauge-mark { background: var(--sea); box-shadow: 0 0 10px rgba(106,33,46,.6); }
html[data-theme="part1"] .gauge-read b { color: var(--sea); }
html[data-theme="part1"] .verdict.yes { background: #EAF6EF; color: #1f4d38; }
html[data-theme="part1"] .verdict.mod { background: #FCF7EC; color: #6d4a12; }
html[data-theme="part1"] .verdict.no { background: #FBECEC; color: #6d2222; }

/* tables */
html[data-theme="part1"] table.dt th { background: #F4F2EB; color: var(--sea); }
html[data-theme="part1"] table.dt td { color: var(--text-dim); border-bottom-color: var(--line); }
html[data-theme="part1"] table.dt td:first-child { color: var(--ink); }
html[data-theme="part1"] table.dt tbody tr:hover { background: #FBF6F2; }
html[data-theme="part1"] .ccol > header { background: var(--ch, #F4F2EB); }
html[data-theme="part1"] .ccol dt { color: var(--sea); }
html[data-theme="part1"] .compare .ccol > header b { color: var(--ink); }

/* dashboard / map */
html[data-theme="part1"] .dash-hero::after { background: linear-gradient(100deg, rgba(244,242,235,.96) 25%, rgba(244,242,235,.6) 62%, rgba(244,242,235,.25)); }
html[data-theme="part1"] .dash-hero::before { opacity: .55; }
html[data-theme="part1"] .lesson-hero::after { background: linear-gradient(95deg, rgba(244,242,235,.96) 30%, rgba(244,242,235,.6)); }
html[data-theme="part1"] .dash-sub, html[data-theme="part1"] .lesson-hero .sub, html[data-theme="part1"] .sec-head p { color: var(--text-dim); }
html[data-theme="part1"] .pill { background: #fff; color: var(--text-dim); border-color: var(--line-2); }
html[data-theme="part1"] .pill.gold { background: #FBF7EE; color: var(--gold-lo); border-color: var(--gold); }
html[data-theme="part1"] .pill.sea { background: #FBF6F2; color: var(--sea); border-color: rgba(106,33,46,.4); }
html[data-theme="part1"] .ring .track { stroke: rgba(45,45,45,.1); }
html[data-theme="part1"] .ring-mid b { color: var(--ink); }
html[data-theme="part1"] .stat b { color: var(--sea); }
html[data-theme="part1"] .continue { background: linear-gradient(120deg, #FBF7EE, #fff); border-color: var(--gold); }
html[data-theme="part1"] .continue small { color: var(--sea); }
html[data-theme="part1"] .continue-n { background: #fff; color: var(--sea); border-color: var(--gold); }
html[data-theme="part1"] .perf::before { background: var(--accent, var(--sea)); }
html[data-theme="part1"] .perf .val { color: var(--ink); }
html[data-theme="part1"] .journey::before { background: linear-gradient(180deg, var(--gold), var(--sea)); opacity: .5; }
html[data-theme="part1"] .stage-dot { background: #fff; color: var(--text-dim); }
html[data-theme="part1"] .stage.done .stage-dot { background: var(--sea); border-color: var(--sea); color: #fff; box-shadow: 0 0 0 5px rgba(106,33,46,.12); }
html[data-theme="part1"] .stage.now .stage-dot { background: var(--gold); border-color: var(--gold); color: #1A1A1A; }
html[data-theme="part1"] .stage.now .stage-body { border-color: var(--gold); }
html[data-theme="part1"] .stage-head:hover { background: #FBF6F2; }
html[data-theme="part1"] .stage-head .desc { color: var(--text-faint); }
html[data-theme="part1"] .lesson-row { color: var(--ink); border-bottom-color: var(--line); }
html[data-theme="part1"] .lesson-row:hover:not(:disabled) { background: #FBF6F2; }
html[data-theme="part1"] .lesson-row.done .tick { background: var(--sea); border-color: var(--sea); color: #fff; }
html[data-theme="part1"] .lesson-row.now .tick { border-color: var(--gold); color: var(--sea); }
html[data-theme="part1"] .lesson-row .sub { color: var(--text-faint); }
html[data-theme="part1"] .tag { color: var(--text-faint); }
html[data-theme="part1"] .tag.game { color: var(--gold-lo); background: #FBF7EE; border-color: var(--gold); }
html[data-theme="part1"] .tag.sim { color: var(--plum); background: #F7F3FA; }
html[data-theme="part1"] .tag.safe { color: var(--danger); background: #FBECEC; }
html[data-theme="part1"] .crumbs a { color: var(--sea); }
html[data-theme="part1"] .lesson-meta .pill { background: #fff; }
html[data-theme="part1"] .foot { color: var(--text-faint); border-top-color: var(--gold); }
html[data-theme="part1"] .toast { background: linear-gradient(135deg, var(--sea), #4a151f); color: #fff; }
html[data-theme="part1"] .remediate { background: #FCF7EC; }
html[data-theme="part1"] .remediate a { color: var(--ink); background: #fff; }
html[data-theme="part1"] .map-legend { color: var(--text-dim); }
html[data-theme="part1"] .cert-top .logo, html[data-theme="part1"] .cert-mid .name, html[data-theme="part1"] .cert-bot .sig .nm { color: #6A212E; }
html[data-theme="part1"] #certificate::before { border-color: #C5A86E; }
html[data-theme="part1"] .cert-seal { border-color: #C5A86E; color: #6A212E; }
html[data-theme="part1"] .cert-top .sub { color: #9a7f47; }
html[data-theme="part1"] .admin-tbl th { color: var(--sea); }
html[data-theme="part1"] .admin-tbl td { border-bottom-color: var(--line); }
html[data-theme="part1"] .auth-art { background: linear-gradient(150deg, #e2d9c4, #F4F2EB); }
html[data-theme="part1"] figure.fig img { border-color: var(--gold); }
html[data-theme="part1"] .mapfig .art { background: #F7F4EC; }
html[data-theme="part1"] .zoneinfo .verdict { color: inherit; }

/* ---------------------------------------------- SEOULOGY BURGUNDY ACCENTS
   The picture games inherit the course palette; these bring the Seoulogy
   burgundy (--sea #6A212E) through the interactive elements.            */
[data-theme="part1"] .s2-step,
[data-theme="part1"] .p3-step        { color: var(--sea); }
[data-theme="part1"] .s2-score b,
[data-theme="part1"] .p3-score b     { color: var(--sea); }
[data-theme="part1"] .s2-prompt,
[data-theme="part1"] .p3-prompt      { color: var(--ink); }
[data-theme="part1"] .p3-track i.on  { border-color: var(--sea);
                                       background: color-mix(in srgb, var(--sea) 14%, transparent);
                                       color: var(--sea); }
[data-theme="part1"] .p3-num         { background: var(--sea); }
[data-theme="part1"] .s2-hint        { color: var(--sea); }
[data-theme="part1"] .gamecard > header {
  border-left: 3px solid var(--sea);
}
[data-theme="part1"] .p3-card:hover:not(:disabled),
[data-theme="part1"] .p3-tile:hover:not(:disabled),
[data-theme="part1"] .s2-opt:hover:not(:disabled),
[data-theme="part1"] .s2-bucket:hover:not(:disabled) { border-color: var(--sea); }
/* captions under the teaching photographs */
[data-theme="part1"] .fig figcaption,
[data-theme="part1"] .vidfig figcaption { color: var(--text-dim); }

/* the glossary popup on Part I's light theme */
html[data-theme="part1"] .gloss-pop {
  background: #fff; border-color: rgba(107,74,126,.35);
  color: var(--ink); box-shadow: 0 16px 44px rgba(40,20,30,.18);
}
html[data-theme="part1"] .gloss-pop p { color: #4a4450; }
html[data-theme="part1"] .gloss-pop b { color: #8a5a2b; }
html[data-theme="part1"] .gloss-pop::after { background: #fff; border-color: rgba(107,74,126,.35); }
html[data-theme="part1"] .gloss { border-bottom-color: #a4762f; }
html[data-theme="part1"] .gloss:hover, html[data-theme="part1"] .gloss:focus-visible {
  border-bottom-color: #a4762f; background: rgba(164,118,47,.13);
}

/* comparison-column subtitles sit on a 20% colour tint; the faint token
   does not survive that on a light theme */
html[data-theme="part1"] .ccol > header span { color: #3a3630; }
html[data-theme="part1"] .ccol > header b { color: var(--ink); }
