/* Self-hosted brand fonts (GDPR): the drafts used CDN links, the program area uses ../fonts/ */
@font-face{font-family:'Satoshi';src:url('../fonts/Satoshi-Variable.woff2') format('woff2');font-weight:300 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Fraunces';src:url('../fonts/Fraunces.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}

/* Emotional Downshift - shared programme styles
   Used by programme-loss.html, programme-play.html and future programme modules.
   Warm paper, Fraunces display (600), Satoshi body, light/dark via [data-theme].
   Working drafts load fonts via CDN links in each page head; production copies
   must switch to self-hosted woff2 (GDPR, see PUBLISH-THESE-SITES.md).
   Created 30 Jul 2026: programme-loss.html referenced this file before it existed. */

:root {
  /* colour */
  --color-bg:#F7F2E8;
  --color-surface:#FFFDF7;
  --color-surface-2:#FBF7ED;
  --color-border:#E6DEC9;
  --color-text:#26221A;
  --color-text-muted:#6F6858;
  --color-primary:#01696F;

  /* system accents */
  --c-loss:#8C5B7C;   /* PANIC/GRIEF - mauve */
  --c-fear:#c97a1e;   /* FEAR - amber */
  --c-anger:#a8431f;  /* RAGE - rust */
  --c-drive:#B8860B;  /* SEEKING - ochre */
  --c-play:#3E7D4F;   /* PLAY - green */

  /* type */
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Satoshi', 'Helvetica Neue', Arial, sans-serif;
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1.05rem;
  --text-lg:1.25rem;
  --text-xl:1.6rem;
  --text-2xl:2.1rem;
  --text-3xl:2.7rem;

  /* space */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem;

  /* shape */
  --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-2xl:22px;
  --shadow-sm:0 1px 3px rgba(38,34,26,.07);
  --shadow-md:0 6px 18px rgba(38,34,26,.10);
}

[data-theme="dark"] {
  --color-bg:#1A1813;
  --color-surface:#221F18;
  --color-surface-2:#28241C;
  --color-border:#383327;
  --color-text:#ECE6D8;
  --color-text-muted:#A79F8C;
  --color-primary:#5FB9B4;
  --c-loss:#B189A4;
  --c-fear:#D99A4E;
  --c-anger:#C56A45;
  --c-drive:#CFA43C;
  --c-play:#6FAE81;
  --shadow-sm:0 1px 3px rgba(0,0,0,.4);
  --shadow-md:0 6px 18px rgba(0,0,0,.5);
}

/* base */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease, color .25s ease;
}
h1,h2,h3 { font-family:var(--font-display); font-weight:600; letter-spacing:-.005em; line-height:1.15; margin:0 0 var(--space-4); }
p { margin:0 0 var(--space-4); }
a { color:var(--color-primary); }
em { font-style:italic; }

/* layout */
.wrap { max-width:820px; margin:0 auto; padding:var(--space-8) var(--space-6); }

/* top bar */
.topbar { display:flex; align-items:center; justify-content:space-between; padding-top:var(--space-2); }
.crumb { display:inline-flex; align-items:center; gap:.55rem; font-weight:700; font-size:var(--text-sm); letter-spacing:.02em; color:var(--color-text); text-decoration:none; }
.home-ic { width:1.5rem; height:1.5rem; color:var(--prog-accent, var(--color-primary)); }
.theme-btn { background:var(--color-surface); border:1px solid var(--color-border); border-radius:999px; width:2.2rem; height:2.2rem; font-size:1rem; color:var(--color-text); cursor:pointer; line-height:1; }
.theme-btn:hover { border-color:var(--color-text-muted); }

/* hero */
.hero { padding-top:var(--space-10); padding-bottom:var(--space-6); }
.eyebrow { display:inline-flex; align-items:center; gap:.5rem; font-size:var(--text-xs); font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--prog-accent, var(--color-primary)); margin-bottom:var(--space-4); }
.eyebrow .dot { width:.55rem; height:.55rem; border-radius:999px; background:var(--prog-accent, var(--color-primary)); flex:none; }
.hero h1 { font-size:clamp(2rem, 5vw, var(--text-3xl)); max-width:22ch; }
.hero h1 em { font-style:italic; color:var(--prog-accent, var(--color-primary)); }
.lead { font-size:var(--text-lg); color:var(--color-text-muted); max-width:62ch; }
.scope { font-size:var(--text-sm); color:var(--color-text-muted); background:var(--color-surface-2); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); max-width:62ch; }

/* section heads */
.section-head { margin-bottom:var(--space-8); }
.section-head h2.big { font-size:clamp(1.5rem, 3.6vw, var(--text-2xl)); max-width:26ch; }
.section-head p { color:var(--color-text-muted); max-width:64ch; }

/* find-your-level band */
.findlevel { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); flex-wrap:wrap; background:var(--color-surface); border:1px solid var(--color-border); border-left:4px solid var(--prog-accent, var(--color-primary)); border-radius:var(--radius-xl); padding:var(--space-6) var(--space-8); box-shadow:var(--shadow-sm); }
.findlevel h2 { font-size:var(--text-xl); margin-bottom:var(--space-2); }
.fl-text { flex:1 1 24rem; }
.fl-text p { color:var(--color-text-muted); margin-bottom:0; }

/* buttons */
.btn { display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:var(--text-sm); text-decoration:none; color:var(--color-text); background:var(--color-surface); border:1px solid var(--color-border); border-radius:999px; padding:.7rem 1.3rem; transition:transform .15s ease, box-shadow .15s ease; }
.btn:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn svg { width:1.05rem; height:1.05rem; }
.btn.primary { background:var(--prog-accent, var(--color-primary)); border-color:transparent; color:#fff; }
.btn.primary:hover { filter:brightness(1.06); }

/* level blocks */
.level-block { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-2xl); padding:var(--space-8); box-shadow:var(--shadow-sm); margin-bottom:var(--space-8); border-top:4px solid var(--lb, var(--color-border)); }
.level-block.l1 { --lb:#c97a1e; }
.level-block.l2 { --lb:var(--c-loss); }
.level-block.l3 { --lb:var(--color-primary); }
.level-head { display:flex; gap:var(--space-5); align-items:flex-start; margin-bottom:var(--space-6); }
.lnum { flex:none; width:2.6rem; height:2.6rem; border-radius:999px; background:var(--lb, var(--color-primary)); color:#fff; font-family:var(--font-display); font-weight:600; font-size:1.25rem; display:flex; align-items:center; justify-content:center; }
.level-head .meta { font-size:var(--text-xs); font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--lb, var(--color-primary)); margin-bottom:var(--space-1); }
.level-head h3 { font-size:var(--text-lg); margin-bottom:var(--space-2); }
.level-head .blurb { color:var(--color-text-muted); font-size:var(--text-sm); margin-bottom:0; max-width:60ch; }

/* tool cards */
.tools { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.tool { background:var(--color-surface-2); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-5); display:flex; flex-direction:column; }
.tool-kind { font-size:var(--text-xs); font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--lb, var(--color-primary)); margin-bottom:var(--space-2); }
.tool h4 { font-family:var(--font-display); font-weight:600; letter-spacing:-.005em; font-size:var(--text-base); margin:0 0 var(--space-2); }
.tool p { font-size:var(--text-sm); color:var(--color-text-muted); }
.steps { margin:0; padding-left:1.15rem; font-size:var(--text-sm); }
.steps li { margin-bottom:var(--space-2); }
.steps li::marker { font-weight:700; color:var(--lb, var(--color-primary)); }

/* closing */
.closing { text-align:center; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-2xl); padding:var(--space-10) var(--space-8); box-shadow:var(--shadow-sm); }
.closing h2 { font-size:var(--text-xl); max-width:30ch; margin-left:auto; margin-right:auto; }
.closing p { color:var(--color-text-muted); max-width:52ch; margin-left:auto; margin-right:auto; }

/* footer */
footer.wrap { padding-top:var(--space-6); padding-bottom:var(--space-12); }
.footer-note { font-size:var(--text-sm); color:var(--color-text-muted); max-width:68ch; }
.crisis { font-size:var(--text-sm); color:var(--color-text-muted); font-weight:700; }

@media (max-width:860px) { .tools { grid-template-columns:1fr; } }
