/* palate-player.css — the course player (~/techfoundations/course-player) in the BakedIn canon (LIBRARY D-21).
   A THEME, not a fork: loaded after player.css by the staging adapter in checks/check_palate_lesson.py. Every value is a
   token from bakedin-app/docs/aesthetic-canon.md ("Token | Value" table + the section accents) — the checker's palette leg
   reads that same table, so a colour typed here that is not a canon token fails the gate.
   player.css says "nothing else in this file names a colour"; nine rules do (#fff on --ink/--accent, rgba whites/blacks).
   With a light --ink those become white-on-near-white, so they are re-pointed here at canon tokens. */
:root{
  --bg:#0A0E10; --ink:#E7F2F0; --mut:rgba(231,242,240,.72); --line:rgba(236,201,116,.18); --card:#111A1C;
  --accent:#ECC974; --accent-hi:#F4DD9A; --accent-soft:rgba(236,201,116,.14); --accent-ring:rgba(236,201,116,.38);
  --rail-a:#111A1C; --rail-b:#0A0E10; --rail-line:rgba(236,201,116,.18); --node:#162125; --off:rgba(231,242,240,.36);
  --ok:#3FE0A0; --ok-bg:#111A1C; --ok-line:rgba(63,224,160,.6);
  --no:#FF7A66; --no-bg:#111A1C; --no-line:rgba(255,122,102,.6);
  --shadow:0 0 24px rgba(236,201,116,.18);
  --display:"Fraunces",Georgia,serif; --sans:"Inter",-apple-system,"Segoe UI",sans-serif;
}
body{font-family:var(--sans)}
h1,h2,h3,.ttl,.wm{font-family:var(--display);letter-spacing:-.01em}
a{color:#F4DD9A}
.skip{background:#ECC974;color:#14100A}
.welc .pl,.step.on .node{background:#ECC974;color:#14100A}
.mvh .ic svg{stroke:#14100A}
.step:hover{background:rgba(236,201,116,.14)}
button.nav,.btn{background:#ECC974;color:#14100A}
.btn.accent{background:#F4DD9A;color:#14100A}
.visual{background:#070A0B;box-shadow:0 0 24px rgba(236,201,116,.18)}
.verdict .vh i{color:#14100A}
.scrim{background:rgba(7,10,11,.6)}
/* found by check_palate_lesson.py on its first run (2026-10-28): the player leaves form text at the UA default (black on
   the dark card, axe color-contrast on #ta) and greys the disabled Next with --off at 36 % alpha (press gate 1.07:1). */
textarea,input[type=text],select{color:#E7F2F0}
textarea::placeholder,input::placeholder{color:rgba(231,242,240,.72)}
button.nav:disabled{background:#162125;color:rgba(231,242,240,.72)}
/* #content becomes a tab stop in staging (see the checker's STAGING PATCH); its focus must show */
.content:focus-visible{outline:2px solid #ECC974;outline-offset:-2px}
/* the completion step (2026-10-28, wf_58afdd52-fe5 visual-design r2): player.css paints .cert as a cream parchment
   gradient in Georgia; with this theme's light --ink its text read at 1.08:1. Re-pointed to D-21: near-black ground, gold
   rule and hairline, champagne name rule, Fraunces display, Inter labels. No gradient: the press gate cannot measure text
   over a background-image, so the card is a flat canon colour it can measure. */
.cert{background:#0A0E10;border:1px solid #ECC974;font-family:var(--display);color:#E7F2F0}
.cert::before{border-color:rgba(236,201,116,.18)}
.cert .lab,.cert .meta div div:first-child{font-family:var(--sans);color:#ECC974}
.cert .lab[style]{color:rgba(231,242,240,.72)!important}
.cert .name{font-family:var(--display);color:#E7F2F0;border-bottom-color:#F4DD9A}
.cert .course{font-family:var(--display);color:#E7F2F0}
.cert .meta{color:#E7F2F0}
.cert .fine{font-family:var(--sans);color:rgba(231,242,240,.72);border-top-color:rgba(236,201,116,.18)}
.cert .wm{font-family:var(--display);color:rgba(236,201,116,.5)}   /* PREVIEW is text: 3.73:1 on the ground (large-text AA 3:1) */

/* W-16 (lane G4, 2026-11-04): no paragraph past 80 characters a line; the gate measures it on every staged page */
#content p,#content li,.welcome p{max-width:60ch}

.mustsay{margin:0;padding:8px 20px;font-size:.85rem;line-height:1.4}
/* player-light.css — the course player on asharedpalate.com in the LIGHT site (D-31), loaded after palate-player.css by build.py.
   The lessons and their gates were written against the dark canon (D-21); this re-points the player's tokens at the site's own
   (web.css --pl-*), so a learner leaves a white site for a white lesson. Figures keep their dark panel: they were drawn for it. */
:root{
  --bg:#FFFFFF; --ink:#1F1D1A; --mut:#5C5750; --line:#E4DDD0; --card:#FAF7F2;
  --accent:#8A6100; --accent-hi:#6B4A00; --accent-soft:rgba(138,97,0,.10); --accent-ring:rgba(138,97,0,.35);
  --rail-a:#FAF7F2; --rail-b:#FFFFFF; --rail-line:#E4DDD0; --node:#F3EEE6; --off:#8C8579;
  --ok:#1F6B4F; --ok-bg:#FAF7F2; --ok-line:#1F6B4F; --no:#7A3B00; --no-bg:#FAF7F2; --no-line:#7A3B00;
  --shadow:0 1px 3px rgba(31,29,26,.14);
}
body{background:#FFFFFF;color:#1F1D1A}
a{color:#8A6100}
.skip{background:#8A6100;color:#FFFFFF}
.welc .pl,.step.on .node{background:#ECC974;color:#1F1D1A}
.step:hover{background:rgba(138,97,0,.08)}
button.nav,.btn{background:#8A6100;color:#FFFFFF}
.btn.accent{background:#ECC974;color:#1F1D1A}
.mvh .ic svg{stroke:#1F1D1A}
.verdict .vh i{color:#1F1D1A}
textarea,input[type=text],select{color:#1F1D1A;background:#FFFFFF}
textarea::placeholder,input::placeholder{color:#5C5750}
button.nav:disabled{background:#F3EEE6;color:#5C5750}
.content:focus-visible{outline:2px solid #8A6100}
.cert{background:#FFFFFF;border:1px solid #8A6100;color:#1F1D1A}
.cert::before{border-color:#E4DDD0}
.cert .lab,.cert .meta div div:first-child{color:#6B4A00}
.cert .lab[style]{color:#5C5750!important}
.cert .name,.cert .course,.cert .meta{color:#1F1D1A}
.cert .name{border-bottom-color:#8A6100}
.cert .fine{color:#5C5750;border-top-color:#E4DDD0}
.cert .wm{color:rgba(138,97,0,.55)}
.mustsay{color:#5C5750}
