(function(){
/* global React */
const { useState } = React;

// ─────────────────────────────────────────────────────────────────────────
// Tokens — exact values from brief
// ─────────────────────────────────────────────────────────────────────────
const C = {
  inkwell: "#1C492C",
  vellum: "#F4F0C2",
  sage: "#AFCC75",
  oxblood: "#4B781C",
  charcoal: "#22382A"
};

const FONT_DISPLAY = `"Frank Ruhl Libre", "Tiempos Headline", Georgia, serif`;
const FONT_BODY = `"Inter", "Söhne", "GT America", -apple-system, sans-serif`;
const FONT_ITALIC = `"Frank Ruhl Libre", "Tiempos Text", Georgia, serif`;
const FONT_MONO = `"JetBrains Mono", ui-monospace, "SF Mono", monospace`;

// ─────────────────────────────────────────────────────────────────────────
// Tally mark — three hand-drawn strokes. SVG. Stroke-based, not filled.
// This is the maker's mark; it appears on every surface.
// ─────────────────────────────────────────────────────────────────────────
function Tally({ size = 24, color = "currentColor", strokeWidth = 2.4, slant = false }) {
  const w = size * 1.6;
  const h = size;
  return (
    <svg width={w} height={h} viewBox="0 0 48 30" fill="none" aria-hidden="true" style={{ display: "block" }}>
      <path d="M8 3.2 L7.2 27.4" stroke={color} strokeWidth={strokeWidth} strokeLinecap="round" />
      <path d="M19 2.6 L19.4 27.8" stroke={color} strokeWidth={strokeWidth} strokeLinecap="round" />
      <path d="M30 3.6 L29.6 27.2" stroke={color} strokeWidth={strokeWidth} strokeLinecap="round" />
      {slant &&
      <path d="M3 24.5 L36 5.8" stroke={color} strokeWidth={strokeWidth} strokeLinecap="round" />
      }
    </svg>);

}

// Documentary photo placeholder — striped, monospace caption.
function Photo({ caption, ratio = "4 / 5", tone = "ink", style = {} }) {
  const isInk = tone === "ink";
  const bg = isInk ? C.inkwell : "#d9d3c4";
  const line = isInk ? "rgba(244,240,194,0.07)" : "rgba(28,73,44,0.06)";
  const fg = isInk ? "rgba(244,240,194,0.55)" : "rgba(28,73,44,0.55)";
  return (
    <div
      style={{
        aspectRatio: ratio,
        width: "100%",
        background: `repeating-linear-gradient(135deg, ${bg} 0 8px, ${line} 8px 9px)`,
        backgroundColor: bg,
        position: "relative",
        ...style
      }}>
      
      <div
        style={{
          position: "absolute", inset: 0,
          display: "flex", alignItems: "flex-end",
          padding: "14px 16px",
          fontFamily: FONT_MONO,
          fontSize: 10, letterSpacing: "0.06em",
          textTransform: "uppercase",
          color: fg
        }}>
        
        ↳ {caption}
      </div>
    </div>);

}

// Small caption / metadata mono row.
function Mono({ children, color = C.charcoal, size = 10, style = {} }) {
  return (
    <div style={{
      fontFamily: FONT_MONO, fontSize: size, letterSpacing: "0.14em",
      textTransform: "uppercase", color, ...style
    }}>
      {children}
    </div>);

}

// Hairline rule — half a pixel feel.
function Rule({ color = "currentColor", thickness = 1, style = {} }) {
  return <div style={{ height: thickness, background: color, width: "100%", ...style }} />;
}

// ─────────────────────────────────────────────────────────────────────────
// 1. WORDMARK — horizontal + stacked lockups
// ─────────────────────────────────────────────────────────────────────────
function WordmarkSheet() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      padding: "72px 80px", display: "flex", flexDirection: "column",
      fontFamily: FONT_BODY
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
        <Mono color={C.inkwell}>Wordmark — 01 / 02</Mono>
        <Mono color={C.inkwell}>Lockups</Mono>
      </div>

      <div style={{ flex: 1, display: "grid", gridTemplateColumns: "1.1fr 1fr", gap: 64, marginTop: 56 }}>
        <div style={{ display: "flex", flexDirection: "column", justifyContent: "center", borderRight: `1px solid ${C.inkwell}22`, paddingRight: 56 }}>
          <Mono color={`${C.inkwell}88`} style={{ marginBottom: 28 }}>Horizontal</Mono>
          <div style={{ display: "flex", alignItems: "center", gap: 22 }}>
            <Tally size={42} color={C.inkwell} strokeWidth={2.2} />
            <div style={{
              fontFamily: FONT_DISPLAY, fontWeight: 500,
              fontSize: 44, lineHeight: 1, letterSpacing: "-0.018em"
            }}>
              Chances. Choices. Changes.
            </div>
          </div>
          <div style={{ marginTop: 18, marginLeft: 64 }}>
            <Mono color={`${C.inkwell}88`} size={9}>An eight-week peer-led recovery program · Debra King</Mono>
          </div>
        </div>

        <div style={{ display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "flex-start" }}>
          <Mono color={`${C.inkwell}88`} style={{ marginBottom: 36 }}>Stacked</Mono>
          <Tally size={56} color={C.oxblood} strokeWidth={2.6} />
          <div style={{
            fontFamily: FONT_DISPLAY, fontWeight: 500,
            fontSize: 56, lineHeight: 0.98, letterSpacing: "-0.022em",
            marginTop: 26, color: C.inkwell
          }}>
            Chances.<br />Choices.<br />Changes.
          </div>
          <div style={{ marginTop: 24, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 17, color: C.charcoal }}>
            Recovery is possible. You're worth it.
          </div>
        </div>
      </div>

      <div style={{ marginTop: 48 }}>
        <Rule color={`${C.inkwell}33`} />
        <div style={{ display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 24, paddingTop: 18 }}>
          <div>
            <Mono color={`${C.inkwell}88`} size={9} style={{ marginBottom: 10 }}>Maker's mark</Mono>
            <Tally size={28} color={C.inkwell} strokeWidth={2.4} />
          </div>
          <div>
            <Mono color={`${C.inkwell}88`} size={9} style={{ marginBottom: 10 }}>Display</Mono>
            <div style={{ fontFamily: FONT_DISPLAY, fontSize: 22, color: C.inkwell }}>Frank Ruhl Libre</div>
          </div>
          <div>
            <Mono color={`${C.inkwell}88`} size={9} style={{ marginBottom: 10 }}>Body</Mono>
            <div style={{ fontFamily: FONT_BODY, fontSize: 15, color: C.charcoal }}>Inter Regular · 16/24</div>
          </div>
          <div>
            <Mono color={`${C.inkwell}88`} size={9} style={{ marginBottom: 10 }}>Single accent</Mono>
            <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
              <div style={{ width: 18, height: 18, background: C.oxblood }} />
              <span style={{ fontFamily: FONT_MONO, fontSize: 11, color: C.charcoal }}>#4B781C Leaf</span>
            </div>
          </div>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 2. DAY 1 POSTER — type-only, set like a Penguin cover
// ─────────────────────────────────────────────────────────────────────────
function Day1Poster() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, position: "relative", padding: "64px 60px",
      display: "flex", flexDirection: "column"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Mono color={C.inkwell} size={10}>No. 001 · Day one</Mono>
        <Tally size={20} color={C.inkwell} strokeWidth={2.2} />
        <Mono color={C.inkwell} size={10}>Cohort affirmation</Mono>
      </div>

      <Rule color={C.inkwell} thickness={1} style={{ marginTop: 14 }} />

      <div style={{ flex: 1, display: "flex", flexDirection: "column", justifyContent: "center", paddingTop: 24 }}>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 96, lineHeight: 0.95, letterSpacing: "-0.025em",
          color: C.inkwell, textWrap: "balance"
        }}>
          You're not<br />
          behind.<br />
          <span style={{ position: "relative", display: "inline-block" }}>
            You're exactly
            <svg width="100%" height="14" viewBox="0 0 600 14" preserveAspectRatio="none"
            style={{ position: "absolute", left: 0, bottom: -6 }}>
              <path d="M2 7 Q 150 2, 300 7 T 598 7" stroke={C.oxblood} strokeWidth="3" fill="none" strokeLinecap="round" />
            </svg>
          </span><br />
          where you're<br />
          supposed to be.
        </div>
      </div>

      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-end", marginTop: 32 }}>
        <div style={{ maxWidth: 360 }}>
          <div style={{ fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 18, color: C.charcoal, lineHeight: 1.45 }}>
            Some weeks recovery is a list of phone calls you didn't make.
            <br />Today is not one of those weeks.
          </div>
        </div>
        <div style={{ display: "flex", alignItems: "flex-end", gap: 22 }}>
          <div style={{ textAlign: "right" }}>
            <div style={{ fontFamily: FONT_DISPLAY, fontSize: 17, color: C.inkwell, letterSpacing: "-0.005em", lineHeight: 1.3 }}>
              cccrecovery.ca<br />(289) 207-2617
            </div>
            <Mono color={`${C.inkwell}99`} size={9} style={{ marginTop: 8 }}>
              Peer-led recovery · Debra King
            </Mono>
          </div>
          <QRCode value="https://cccrecovery.ca" size={104} fg={C.inkwell} bg={C.vellum} quiet={2} />
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 3. PRINT FLYER — Evergreen 8.5×11
// ─────────────────────────────────────────────────────────────────────────
function FlyerEvergreen() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, display: "grid",
      gridTemplateRows: "auto 1fr auto",
      padding: "56px 56px 48px"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
        <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
          <Tally size={18} color={C.inkwell} strokeWidth={2.2} />
          <Mono color={C.inkwell} size={10}>Chances. Choices. Changes.</Mono>
        </div>
        <Mono color={`${C.inkwell}88`} size={10}>Vol. 01 — A peer-led recovery program</Mono>
      </div>

      <Rule color={C.inkwell} style={{ marginTop: 16 }} />

      <div style={{ display: "grid", gridTemplateColumns: "1.15fr 1fr", gap: 56, paddingTop: 48, alignItems: "stretch" }}>
        <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
          <div>
            <Mono color={C.oxblood} size={10} style={{ marginBottom: 22 }}>An eight-week cohort</Mono>
            <h1 style={{
              fontFamily: FONT_DISPLAY, fontWeight: 500, margin: 0,
              fontSize: 76, lineHeight: 0.96, letterSpacing: "-0.025em",
              color: C.inkwell, textWrap: "balance"
            }}>
              Recovery, set in type.
            </h1>
          </div>

          <div style={{ marginTop: 36, maxWidth: 460 }}>
            <p style={{
              fontFamily: FONT_BODY, fontSize: 16, lineHeight: 1.55,
              color: C.charcoal, margin: 0
            }}>
              Eight weeks. A small group. Honest conversation
              about the work of staying sober — daytimers and
              to-do lists, boundaries and phone calls, quality
              over quantity.
              <br /><br />
              Led by Debra King, with lived experience and the
              language to match.
            </p>
            <div style={{ marginTop: 28, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 19, color: C.inkwell }}>
              You're right where you're supposed to be.
            </div>
          </div>
        </div>

        <div style={{ display: "flex", flexDirection: "column" }}>
          <Photo caption="Debra King — portrait, available light, 35mm" ratio="3 / 4" tone="ink" />
          <Mono color={`${C.inkwell}88`} size={9} style={{ marginTop: 10 }}>
            ↳ Documentary, never editorial-glossy
          </Mono>
        </div>
      </div>

      <div style={{ marginTop: 36 }}>
        <Rule color={`${C.inkwell}55`} />
        <div style={{ display: "grid", gridTemplateColumns: "auto 1fr auto auto", gap: 32, paddingTop: 16, alignItems: "center" }}>
          <Mono color={C.inkwell} size={10}>cccrecovery.ca</Mono>
          <Mono color={`${C.inkwell}88`} size={10} style={{ textAlign: "center" }}>
            Blue skies and green lights.
          </Mono>
          <Mono color={C.inkwell} size={10}>(289) 207-2617</Mono>
          <QRCode value="https://cccrecovery.ca" size={88} fg={C.inkwell} bg={C.vellum} quiet={2} />
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 3b. ACRONYM POSTER — HALT / FEAR set as acrostics, in Debra's words
// ─────────────────────────────────────────────────────────────────────────
function AcrostichPoster() {
  const Acrostic = ({ letters, color = C.inkwell, accent = C.oxblood }) =>
  <div style={{ display: "flex", flexDirection: "column", gap: 6 }}>
      {letters.map(([L, rest], i) =>
    <div key={i} style={{ display: "flex", alignItems: "baseline", gap: 14 }}>
          <span style={{
        fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 96,
        lineHeight: 0.92, letterSpacing: "-0.03em", color: accent,
        width: 64, display: "inline-block"
      }}>{L}</span>
          <span style={{
        fontFamily: FONT_DISPLAY, fontWeight: 400, fontSize: 56,
        lineHeight: 0.95, letterSpacing: "-0.02em", color
      }}>{rest}</span>
        </div>
    )}
    </div>;


  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "64px 60px",
      display: "flex", flexDirection: "column"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Mono color={C.inkwell} size={10}>No. 002 · Vocabulary</Mono>
        <Tally size={20} color={C.inkwell} strokeWidth={2.2} />
        <Mono color={C.inkwell} size={10}>The words we use</Mono>
      </div>
      <Rule color={C.inkwell} thickness={1} style={{ marginTop: 14 }} />

      <div style={{ flex: 1, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 56, paddingTop: 44 }}>
        <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
          <Mono color={C.oxblood} size={10}>HALT — when to stop and ask why</Mono>
          <Acrostic letters={[
          ["H", "ungry"],
          ["A", "ngry"],
          ["L", "onely"],
          ["T", "ired"]]
          } />
          <div style={{ fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 17, color: C.charcoal, maxWidth: 360, lineHeight: 1.5 }}>
            "I was all of the above. So I went home."
          </div>
        </div>
        <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between", borderLeft: `1px solid ${C.inkwell}33`, paddingLeft: 48 }}>
          <Mono color={C.oxblood} size={10}>FEAR — and what to do with it</Mono>
          <Acrostic letters={[
          ["F", "uck"],
          ["E", "verything"],
          ["A", "nd"],
          ["R", "ecover"]]
          } />
          <div style={{ fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 17, color: C.charcoal, maxWidth: 360, lineHeight: 1.5 }}>
            "This was not my goal. It caught up with me anyway."
          </div>
        </div>
      </div>

      <div style={{ marginTop: 32 }}>
        <Rule color={`${C.inkwell}55`} />
        <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr 1fr", gap: 24, paddingTop: 14, alignItems: "center" }}>
          <Mono color={C.inkwell} size={10}>Chances. Choices. Changes.</Mono>
          <Mono color={`${C.inkwell}88`} size={10} style={{ textAlign: "center" }}>Quality, not quantity.</Mono>
          <Mono color={C.inkwell} size={10} style={{ textAlign: "right" }}>cccrecovery.ca</Mono>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 4. PRINT FLYER — Cohort launch 8.5×11
// ─────────────────────────────────────────────────────────────────────────
function FlyerCohort() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.inkwell, color: C.vellum,
      fontFamily: FONT_BODY, display: "grid",
      gridTemplateRows: "auto 1fr auto",
      padding: "56px 56px 48px"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
        <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
          <Tally size={18} color={C.vellum} strokeWidth={2.2} />
          <Mono color={C.vellum} size={10}>Chances. Choices. Changes.</Mono>
        </div>
        <Mono color={`${C.vellum}88`} size={10}>Cohort 01 · Spring 2026</Mono>
      </div>

      <Rule color={C.vellum} style={{ marginTop: 16, opacity: 0.5 }} />

      <div style={{ display: "grid", gridTemplateColumns: "1fr 0.95fr", gap: 56, paddingTop: 56, alignItems: "stretch" }}>
        <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
          <div>
            <Mono color={C.sage} size={10} style={{ marginBottom: 24 }}>Now enrolling — small group</Mono>
            <h1 style={{
              fontFamily: FONT_DISPLAY, fontWeight: 500, margin: 0,
              fontSize: 88, lineHeight: 0.94, letterSpacing: "-0.028em",
              color: C.vellum, textWrap: "balance"
            }}>
              Day one
              <br />
              <span style={{ position: "relative", display: "inline-block" }}>
                begins
                <svg width="100%" height="12" viewBox="0 0 240 12" preserveAspectRatio="none"
                style={{ position: "absolute", left: 0, bottom: -4 }}>
                  <path d="M2 6 Q 60 2, 120 6 T 238 6" stroke={C.oxblood} strokeWidth="3" fill="none" strokeLinecap="round" />
                </svg>
              </span>
              <br />
              May 18.
            </h1>
          </div>

          <div style={{ marginTop: 36 }}>
            <Mono color={`${C.vellum}88`} size={10} style={{ marginBottom: 14 }}>Tuition</Mono>
            <div style={{ display: "flex", gap: 36, alignItems: "flex-end" }}>
              <div>
                <div style={{ fontFamily: FONT_DISPLAY, fontSize: 38, color: C.vellum, lineHeight: 1 }}>$249</div>
                <Mono color={C.sage} size={9} style={{ marginTop: 6 }}>Founders' rate · first cohort</Mono>
              </div>
              <div style={{ borderLeft: `1px solid ${C.vellum}33`, paddingLeft: 28 }}>
                <div style={{ fontFamily: FONT_DISPLAY, fontSize: 28, color: `${C.vellum}99`, lineHeight: 1 }}>$499</div>
                <Mono color={`${C.vellum}66`} size={9} style={{ marginTop: 6 }}>Regular thereafter</Mono>
              </div>
            </div>
          </div>
        </div>

        <div style={{
          border: `1px solid ${C.vellum}33`, padding: "40px 32px",
          display: "flex", flexDirection: "column", justifyContent: "space-between"
        }}>
          <Mono color={`${C.vellum}88`} size={9}>Cohort schedule</Mono>
          <div>
            <div style={{ fontFamily: FONT_DISPLAY, fontSize: 22, color: C.vellum, lineHeight: 1.2 }}>
              Mondays, 7–9 p.m.
              <br />May 18 — July 6, 2026.
            </div>
            <div style={{ marginTop: 22, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 16, color: `${C.vellum}cc`, lineHeight: 1.5 }}>
              Eight evenings. Small group. Honest work.
            </div>
          </div>
          <div>
            <Rule color={`${C.vellum}33`} style={{ marginBottom: 14 }} />
            <div style={{ display: "flex", alignItems: "center", gap: 16 }}>
              <div style={{ background: C.vellum, padding: 8 }}>
                <QRCode value="https://cccrecovery.ca" size={92} fg={C.inkwell} bg={C.vellum} quiet={2} />
              </div>
              <Mono color={C.vellum} size={9} style={{ lineHeight: 1.7 }}>
                Scan to apply<br />cccrecovery.ca
              </Mono>
            </div>
          </div>
        </div>
      </div>

      <div style={{ marginTop: 36 }}>
        <Rule color={`${C.vellum}33`} />
        <div style={{ display: "grid", gridTemplateColumns: "auto 1fr auto", gap: 32, paddingTop: 16, alignItems: "center" }}>
          <Mono color={C.vellum} size={10}>cccrecovery.ca</Mono>
          <Mono color={`${C.vellum}88`} size={10} style={{ textAlign: "center" }}>
            Recovery is possible. You're worth it.
          </Mono>
          <Mono color={C.vellum} size={10}>(289) 207-2617</Mono>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 5. INSTAGRAM — Brand intro post
// ─────────────────────────────────────────────────────────────────────────
function IGIntro() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "60px 56px",
      display: "flex", flexDirection: "column", justifyContent: "space-between"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Tally size={22} color={C.inkwell} strokeWidth={2.4} />
        <Mono color={`${C.inkwell}88`} size={10}>Est. 2026</Mono>
      </div>

      <div>
        <Mono color={C.oxblood} size={10} style={{ marginBottom: 24 }}>The vocabulary, unedited</Mono>
        <div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
          {[["H", "ungry"], ["A", "ngry"], ["L", "onely"], ["T", "ired"]].map(([L, r], i) =>
          <div key={i} style={{ display: "flex", alignItems: "baseline", gap: 12 }}>
              <span style={{ fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 84, lineHeight: 0.92, letterSpacing: "-0.03em", color: C.oxblood, width: 56 }}>{L}</span>
              <span style={{ fontFamily: FONT_DISPLAY, fontWeight: 400, fontSize: 56, lineHeight: 0.95, letterSpacing: "-0.02em", color: C.inkwell }}>{r}</span>
            </div>
          )}
        </div>
        <div style={{ marginTop: 24, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 18, color: C.charcoal, maxWidth: 520 }}>
          When all four hit at once, you go home. That's the rule.
        </div>
      </div>

      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-end" }}>
        <Mono color={C.inkwell} size={10}>cccrecovery.ca</Mono>
        <Mono color={`${C.inkwell}88`} size={10}>01 / 03</Mono>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 6. INSTAGRAM — Pull quote
// ─────────────────────────────────────────────────────────────────────────
function IGQuote() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.inkwell, color: C.vellum,
      fontFamily: FONT_BODY, padding: "60px 56px",
      display: "flex", flexDirection: "column", justifyContent: "space-between"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Tally size={22} color={C.vellum} strokeWidth={2.4} />
        <Mono color={`${C.vellum}88`} size={10}>Epigraph</Mono>
      </div>

      <div style={{ paddingLeft: 0 }}>
        <div style={{
          fontFamily: FONT_DISPLAY, fontStyle: "italic", fontWeight: 400,
          fontSize: 70, lineHeight: 1.04, letterSpacing: "-0.022em",
          color: C.vellum, textWrap: "balance"
        }}>
          <span style={{ position: "relative", display: "inline" }}>
            You're worth
            <svg width="100%" height="12" viewBox="0 0 360 12" preserveAspectRatio="none"
            style={{ position: "absolute", left: 0, bottom: -2 }}>
              <path d="M2 6 Q 90 2, 180 6 T 358 6" stroke={C.oxblood} strokeWidth="3" fill="none" strokeLinecap="round" />
            </svg>
          </span>
          {" "}it.
        </div>
        <div style={{ marginTop: 28, fontFamily: FONT_BODY, fontSize: 15, color: `${C.vellum}aa`, maxWidth: 480, lineHeight: 1.55 }}>
          Not because you've earned it.
          <br />Because worth was never the question.
        </div>
      </div>

      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-end" }}>
        <Mono color={C.vellum} size={10}>— Chances. Choices. Changes.</Mono>
        <Mono color={`${C.vellum}88`} size={10}>02 / 03</Mono>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 7. INSTAGRAM — Cohort launch
// ─────────────────────────────────────────────────────────────────────────
function IGCohort() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "60px 56px",
      display: "flex", flexDirection: "column", justifyContent: "space-between"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Tally size={22} color={C.inkwell} strokeWidth={2.4} />
        <Mono color={C.oxblood} size={10}>Now enrolling</Mono>
      </div>

      <div>
        <Mono color={`${C.inkwell}88`} size={10} style={{ marginBottom: 18 }}>Cohort 01 · Mondays</Mono>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 100, lineHeight: 0.92, letterSpacing: "-0.03em",
          color: C.inkwell
        }}>
          May 18.
        </div>
        <div style={{ marginTop: 24, display: "flex", alignItems: "baseline", gap: 18 }}>
          <div style={{ fontFamily: FONT_DISPLAY, fontSize: 30, color: C.inkwell }}>$249</div>
          <Mono color={`${C.inkwell}99`} size={10}>Founders' rate · first cohort</Mono>
        </div>
      </div>

      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-end" }}>
        <Mono color={C.inkwell} size={10}>cccrecovery.ca</Mono>
        <Mono color={`${C.inkwell}88`} size={10}>03 / 03</Mono>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 8. STORY — Evergreen 1080×1920
// ─────────────────────────────────────────────────────────────────────────
function StoryEvergreen() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, display: "grid", gridTemplateRows: "1fr auto 1.1fr",
      padding: "70px 56px"
    }}>
      <div style={{ display: "flex", flexDirection: "column", justifyContent: "flex-start" }}>
        <Tally size={26} color={C.inkwell} strokeWidth={2.4} />
        <Mono color={`${C.inkwell}88`} size={10} style={{ marginTop: 18 }}>An eight-week cohort</Mono>
      </div>

      <div>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 88, lineHeight: 0.95, letterSpacing: "-0.028em",
          color: C.inkwell, textWrap: "balance"
        }}>
          Recovery is<br />possible.<br />
          <span style={{ position: "relative", display: "inline-block" }}>
            You're worth
            <svg width="100%" height="14" viewBox="0 0 480 14" preserveAspectRatio="none"
            style={{ position: "absolute", left: 0, bottom: -4 }}>
              <path d="M2 7 Q 120 2, 240 7 T 478 7" stroke={C.oxblood} strokeWidth="3.5" fill="none" strokeLinecap="round" />
            </svg>
          </span>
          {" "}it.
        </div>
        <div style={{ marginTop: 28, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 22, color: C.charcoal, maxWidth: 540, lineHeight: 1.5 }}>
          Eight Mondays. A small group. Honest conversation about the work of staying sober.
        </div>
      </div>

      <div style={{ display: "flex", flexDirection: "column", justifyContent: "flex-end" }}>
        <Rule color={`${C.inkwell}33`} />
        <div style={{ marginTop: 18, display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
          <Mono color={C.inkwell} size={10}>cccrecovery.ca</Mono>
          <Mono color={`${C.inkwell}88`} size={10}>Debra King</Mono>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 9. STORY — Cohort launch 1080×1920
// ─────────────────────────────────────────────────────────────────────────
function StoryCohort() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.inkwell, color: C.vellum,
      fontFamily: FONT_BODY, padding: "70px 56px",
      display: "grid", gridTemplateRows: "auto 1fr auto"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Tally size={24} color={C.vellum} strokeWidth={2.4} />
        <Mono color={C.sage} size={10}>Cohort 01</Mono>
      </div>

      <div style={{ display: "flex", flexDirection: "column", justifyContent: "center" }}>
        <Mono color={`${C.vellum}88`} size={10} style={{ marginBottom: 24 }}>Day one begins</Mono>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 132, lineHeight: 0.9, letterSpacing: "-0.034em",
          color: C.vellum
        }}>
          June<br />1.
        </div>
        <div style={{ marginTop: 36, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 24, paddingRight: 60 }}>
          <div>
            <Mono color={`${C.vellum}77`} size={9}>Founders'</Mono>
            <div style={{ fontFamily: FONT_DISPLAY, fontSize: 32, color: C.vellum, marginTop: 4 }}>$249</div>
          </div>
          <div>
            <Mono color={`${C.vellum}77`} size={9}>Regular</Mono>
            <div style={{ fontFamily: FONT_DISPLAY, fontSize: 32, color: `${C.vellum}aa`, marginTop: 4 }}>$499</div>
          </div>
        </div>
        <div style={{ marginTop: 36, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 22, color: `${C.vellum}cc`, maxWidth: 520, lineHeight: 1.45 }}>Eight weeks. Mondays, 7–9 p.m. Apply now.

        </div>
      </div>

      <div>
        <Rule color={`${C.vellum}33`} />
        <div style={{ marginTop: 14, display: "flex", justifyContent: "space-between" }}>
          <Mono color={C.vellum} size={10}>cccrecovery.ca</Mono>
          <Mono color={`${C.vellum}88`} size={10}>(289) 207-2617</Mono>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 10. LANDSCAPE — Referral partners (LinkedIn / Facebook)
// ─────────────────────────────────────────────────────────────────────────
function Landscape() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, display: "grid",
      gridTemplateColumns: "0.85fr 1.3fr"
    }}>
      <div style={{ position: "relative" }}>
        <Photo caption="Debra King — environmental portrait" ratio="auto" tone="ink" style={{ height: "100%" }} />
        <div style={{
          position: "absolute", left: 24, bottom: 22,
          color: C.vellum
        }}>
          <Tally size={18} color={C.vellum} strokeWidth={2.2} />
          <Mono color={`${C.vellum}cc`} size={9} style={{ marginTop: 8 }}>Debra King · Founder</Mono>
        </div>
      </div>

      <div style={{ padding: "44px 44px", display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
        <div style={{ display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
          <Mono color={C.inkwell} size={10}>For referral partners</Mono>
          <Mono color={`${C.inkwell}88`} size={10}>cccrecovery.ca</Mono>
        </div>

        <div>
          <div style={{
            fontFamily: FONT_DISPLAY, fontWeight: 500,
            fontSize: 52, lineHeight: 0.98, letterSpacing: "-0.022em",
            color: C.inkwell, textWrap: "balance"
          }}>
            Chances. Choices. Changes.
          </div>
          <div style={{ marginTop: 18, fontFamily: FONT_BODY, fontSize: 16, color: C.charcoal, lineHeight: 1.55, maxWidth: 540 }}>
            An eight-week peer-led recovery program for adults ready to do
            the work — led by Debra King, with lived experience and the
            language to match.
          </div>
          <div style={{ marginTop: 18, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 18, color: C.oxblood }}>
            Recovery is possible. You're worth it.
          </div>
        </div>

        <div>
          <Rule color={`${C.inkwell}33`} />
          <div style={{ marginTop: 14, display: "grid", gridTemplateColumns: "1fr 1fr 1fr", gap: 16 }}>
            <Mono color={C.inkwell} size={9}>(289) 207-2617</Mono>
            <Mono color={C.inkwell} size={9} style={{ backgroundColor: "rgb(244, 240, 194)" }}><span style={{ color: "#1c492c" }}></span></Mono>
            <Mono color={C.inkwell} size={9} style={{ textAlign: "right" }}>debra@cccrecovery.ca</Mono>
          </div>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// 11. PALETTE / TYPE specimen — for reference
// ─────────────────────────────────────────────────────────────────────────
function Specimen() {
  const swatches = [
  { name: "Forest",  group: "Primary",   hex: "#1C492C", bg: "#1C492C", fg: C.vellum, role: "Type · dark surfaces" },
  { name: "Leaf",    group: "Primary",   hex: "#4B781C", bg: "#4B781C", fg: C.vellum, role: "Active · pull-quote underline" },
  { name: "Lime",    group: "Primary",   hex: "#9DAE20", bg: "#9DAE20", fg: "#1C492C", role: "Highlight · used sparingly" },
  { name: "Moss",    group: "Secondary", hex: "#AFCC75", bg: "#AFCC75", fg: "#1C492C", role: "Soft accent" },
  { name: "Cream",   group: "Secondary", hex: "#F4F0C2", bg: "#F4F0C2", fg: "#1C492C", role: "Primary background" }];

  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "56px 64px",
      display: "flex", flexDirection: "column"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between" }}>
        <Mono color={C.inkwell}>Specimen — Palette + Type</Mono>
        <Mono color={`${C.inkwell}88`}>One dominates per surface · never equal weight</Mono>
      </div>

      <div style={{ marginTop: 36, display: "grid", gridTemplateColumns: "repeat(5, 1fr)", gap: 14 }}>
        {swatches.map((s) =>
        <div key={s.hex} style={{ display: "flex", flexDirection: "column", gap: 10 }}>
            <div style={{ background: s.bg, color: s.fg, height: 180, padding: 14, display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
              <div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
                <Mono color={s.fg} size={9} style={{ opacity: 0.7 }}>{s.group}</Mono>
                <Mono color={s.fg} size={9}>{s.name}</Mono>
              </div>
              <Mono color={s.fg} size={9}>{s.hex}</Mono>
            </div>
            <Mono color={`${C.inkwell}99`} size={9}>{s.role}</Mono>
          </div>
        )}
      </div>

      <div style={{ marginTop: 56, display: "grid", gridTemplateColumns: "1.1fr 1fr", gap: 56 }}>
        <div>
          <Mono color={`${C.inkwell}88`} style={{ marginBottom: 18 }}>Display — Frank Ruhl Libre</Mono>
          <div style={{ fontFamily: FONT_DISPLAY, fontSize: 64, lineHeight: 0.96, letterSpacing: "-0.024em", color: C.inkwell }}>
            Aa Bb Cc<br />Recovery, set in type.
          </div>
          <div style={{ marginTop: 22, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 22, color: C.charcoal }}>
            Italic for pull quotes only.
          </div>
        </div>
        <div>
          <Mono color={`${C.inkwell}88`} style={{ marginBottom: 18 }}>Body — Inter · 16/24 Regular</Mono>
          <div style={{ fontFamily: FONT_BODY, fontSize: 16, lineHeight: 1.55, color: C.charcoal, maxWidth: 460 }}>
            HALT. Hungry, Angry, Lonely, Tired.
            <br />FEAR. Fuck Everything And Recover.
            <br />Blue skies and green lights.
            <br /><br />
            The vocabulary is the point. We don't sand it down.
          </div>
        </div>
      </div>

      <div style={{ marginTop: "auto", paddingTop: 36 }}>
        <Rule color={`${C.inkwell}33`} />
        <div style={{ display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 24, paddingTop: 16 }}>
          <Mono color={C.inkwell} size={9}>Sentence case only</Mono>
          <Mono color={C.inkwell} size={9}>One typeface per role</Mono>
          <Mono color={C.inkwell} size={9}>Asymmetric grids</Mono>
          <Mono color={C.inkwell} size={9}>60% air on every surface</Mono>
        </div>
      </div>
    </div>);

}

// ─────────────────────────────────────────────────────────────────────────
// CANVAS COMPOSITION
// ─────────────────────────────────────────────────────────────────────────
function App() {
  const { DesignCanvas, DCSection, DCArtboard } = window;
  return (
    <DesignCanvas>
      <DCSection id="foundation" title="Foundation" subtitle="Wordmark, maker's mark, palette and type — the brand at rest.">
        <DCArtboard id="wordmark" label="Wordmark — horizontal & stacked lockups" width={1400} height={900}>
          <WordmarkSheet />
        </DCArtboard>
        <DCArtboard id="specimen" label="Palette + Type specimen" width={1400} height={900}>
          <Specimen />
        </DCArtboard>
      </DCSection>

      <DCSection id="hero" title="Day one" subtitle="The soul of the system — set like a Penguin Modern Classic, gifted to participants on cohort day one.">
        <DCArtboard id="day1" label="Day 1 affirmation poster — 18 × 24 in" width={900} height={1200}>
          <Day1Poster />
        </DCArtboard>
        <DCArtboard id="acrostic" label="Vocabulary poster — HALT / FEAR" width={1200} height={900}>
          <AcrostichPoster />
        </DCArtboard>
      </DCSection>

      <DCSection id="print" title="Print flyers" subtitle="8.5 × 11 in — evergreen and cohort-launch variants.">
        <DCArtboard id="flyer-evergreen" label="Flyer — evergreen" width={850} height={1100}>
          <FlyerEvergreen />
        </DCArtboard>
        <DCArtboard id="flyer-cohort" label="Flyer — cohort launch" width={850} height={1100}>
          <FlyerCohort />
        </DCArtboard>
      </DCSection>

      <DCSection id="instagram" title="Instagram — square" subtitle="1080 × 1080 · Three-post launch sequence.">
        <DCArtboard id="ig-1" label="01 / 03 — Brand intro" width={1080} height={1080}>
          <IGIntro />
        </DCArtboard>
        <DCArtboard id="ig-2" label="02 / 03 — Pull quote" width={1080} height={1080}>
          <IGQuote />
        </DCArtboard>
        <DCArtboard id="ig-3" label="03 / 03 — Cohort launch" width={1080} height={1080}>
          <IGCohort />
        </DCArtboard>
      </DCSection>

      <DCSection id="story" title="Vertical story" subtitle="1080 × 1920 · Evergreen and cohort-launch variants.">
        <DCArtboard id="story-1" label="Story — evergreen" width={1080} height={1920}>
          <StoryEvergreen />
        </DCArtboard>
        <DCArtboard id="story-2" label="Story — cohort launch" width={1080} height={1920}>
          <StoryCohort />
        </DCArtboard>
      </DCSection>

      <DCSection id="landscape" title="Landscape" subtitle="1200 × 630 · LinkedIn / Facebook — for referral partners.">
        <DCArtboard id="landscape" label="Referral partner card" width={1200} height={630}>
          <Landscape />
        </DCArtboard>
      </DCSection>
    </DesignCanvas>);

}


// ─────────────────────────────────────────────────────────────────────────
// PROFILE LOGO — square 1080×1080, designed to crop cleanly into the
// circular avatar that Instagram and Facebook use. All key marks sit inside
// the inner 820px-diameter "safe circle".
// ─────────────────────────────────────────────────────────────────────────
function ProfileLogo() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY,
      display: "flex", flexDirection: "column",
      alignItems: "center", justifyContent: "center",
      padding: "120px"
    }}>
      <div style={{ display: "flex", flexDirection: "column", alignItems: "center", gap: 38 }}>
        <svg width="220" height="138" viewBox="0 0 48 30" fill="none" aria-hidden="true">
          <path d="M8 3.2 L7.2 27.4"   stroke={C.inkwell} strokeWidth="2.4" strokeLinecap="round"/>
          <path d="M19 2.6 L19.4 27.8" stroke={C.inkwell} strokeWidth="2.4" strokeLinecap="round"/>
          <path d="M30 3.6 L29.6 27.2" stroke={C.inkwell} strokeWidth="2.4" strokeLinecap="round"/>
        </svg>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 168, lineHeight: 0.92, letterSpacing: "-0.028em",
          color: C.inkwell, textAlign: "center"
        }}>
          C.C.C.
        </div>
        <div style={{
          fontFamily: FONT_DISPLAY, fontStyle: "italic", fontWeight: 400,
          fontSize: 36, lineHeight: 1.2, color: C.charcoal, textAlign: "center"
        }}>
          Chances. Choices. Changes.
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// PROFILE LOGO ON INKWELL — alt version for accounts that prefer a dark mark.
// ─────────────────────────────────────────────────────────────────────────
function ProfileLogoDark() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.inkwell, color: C.vellum,
      fontFamily: FONT_BODY,
      display: "flex", flexDirection: "column",
      alignItems: "center", justifyContent: "center",
      padding: "120px"
    }}>
      <div style={{ display: "flex", flexDirection: "column", alignItems: "center", gap: 38 }}>
        <svg width="220" height="138" viewBox="0 0 48 30" fill="none" aria-hidden="true">
          <path d="M8 3.2 L7.2 27.4"   stroke={C.vellum} strokeWidth="2.4" strokeLinecap="round"/>
          <path d="M19 2.6 L19.4 27.8" stroke={C.vellum} strokeWidth="2.4" strokeLinecap="round"/>
          <path d="M30 3.6 L29.6 27.2" stroke={C.vellum} strokeWidth="2.4" strokeLinecap="round"/>
        </svg>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 168, lineHeight: 0.92, letterSpacing: "-0.028em",
          color: C.vellum, textAlign: "center"
        }}>
          C.C.C.
        </div>
        <div style={{
          fontFamily: FONT_DISPLAY, fontStyle: "italic", fontWeight: 400,
          fontSize: 36, lineHeight: 1.2, color: `${C.vellum}cc`, textAlign: "center"
        }}>
          Chances. Choices. Changes.
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// STORY — H.A.L.T. acrostic (1080×1920), matches the FEAR story format.
// ─────────────────────────────────────────────────────────────────────────
function StoryHalt() {
  const rows = [
    ["H", "ungry"],
    ["A", "ngry"],
    ["L", "onely"],
    ["T", "ired"]
  ];
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY,
      padding: "70px 64px",
      display: "flex", flexDirection: "column"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Tally size={26} color={C.inkwell} strokeWidth={2.4} />
        <Mono color={C.oxblood} size={11}>H.A.L.T. — when to stop and ask why</Mono>
      </div>

      <div style={{
        flex: 1, display: "flex", flexDirection: "column",
        justifyContent: "space-evenly", paddingTop: 24
      }}>
        {rows.map(([L, rest], i) => (
          <div key={i} style={{
            display: "flex", alignItems: "baseline", gap: 28,
            borderBottom: i < rows.length - 1 ? `1px solid ${C.inkwell}22` : "none",
            paddingBottom: 16
          }}>
            <span style={{
              fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 260,
              lineHeight: 0.86, letterSpacing: "-0.04em", color: C.oxblood,
              width: 200, display: "inline-block"
            }}>{L}</span>
            <span style={{
              fontFamily: FONT_DISPLAY, fontWeight: 400, fontSize: 80,
              lineHeight: 0.95, letterSpacing: "-0.02em", color: C.charcoal
            }}>{rest}</span>
          </div>
        ))}
      </div>

      <div style={{
        fontFamily: FONT_DISPLAY, fontStyle: "italic", fontWeight: 400,
        fontSize: 32, lineHeight: 1.35, letterSpacing: "-0.012em",
        color: C.inkwell, marginTop: 28, maxWidth: 880
      }}>
        "I was all of the above. So I went home."
      </div>

      <div style={{ marginTop: 28, display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <Mono color={C.inkwell} size={11}>cccrecovery.ca</Mono>
        <Mono color={`${C.inkwell}88`} size={11}>Blue skies and green lights.</Mono>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// VOCABULARY REFERENCE — 1400×900, brand-reference card showing HALT + FEAR
// as a side-by-side glossary. Quieter than the postable Stories versions.
// ─────────────────────────────────────────────────────────────────────────
function VocabularyReference() {
  const Acro = ({ letters }) => (
    <div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
      {letters.map(([L, rest], i) => (
        <div key={i} style={{ display: "flex", alignItems: "baseline", gap: 14 }}>
          <span style={{
            fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 90,
            lineHeight: 0.92, letterSpacing: "-0.03em", color: C.oxblood,
            width: 64, display: "inline-block"
          }}>{L}</span>
          <span style={{
            fontFamily: FONT_DISPLAY, fontWeight: 400, fontSize: 52,
            lineHeight: 0.95, letterSpacing: "-0.02em", color: C.inkwell
          }}>{rest}</span>
        </div>
      ))}
    </div>
  );

  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "60px 72px",
      display: "flex", flexDirection: "column"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
          <Tally size={20} color={C.inkwell} strokeWidth={2.2} />
          <Mono color={C.inkwell} size={10}>Vocabulary — for designers & partners</Mono>
        </div>
        <Mono color={`${C.inkwell}88`} size={10}>Reference</Mono>
      </div>
      <Rule color={`${C.inkwell}55`} style={{ marginTop: 12 }} />

      <div style={{ flex: 1, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 72, paddingTop: 40, alignItems: "stretch" }}>
        <div style={{ display: "flex", flexDirection: "column", gap: 22 }}>
          <Mono color={C.oxblood} size={10}>H.A.L.T. — when to stop and ask why</Mono>
          <Acro letters={[
            ["H", "ungry"],
            ["A", "ngry"],
            ["L", "onely"],
            ["T", "ired"]
          ]} />
          <div style={{ marginTop: "auto", fontFamily: FONT_DISPLAY, fontStyle: "italic",
                        fontSize: 18, color: C.charcoal, lineHeight: 1.5, maxWidth: 460 }}>
            "I was all of the above. So I went home."
          </div>
        </div>

        <div style={{
          display: "flex", flexDirection: "column", gap: 22,
          borderLeft: `1px solid ${C.inkwell}33`, paddingLeft: 56
        }}>
          <Mono color={C.oxblood} size={10}>F.E.A.R. — and what to do with it</Mono>
          <Acro letters={[
            ["F", "uck"],
            ["E", "verything"],
            ["A", "nd"],
            ["R", "ecover"]
          ]} />
          <div style={{ marginTop: "auto", fontFamily: FONT_DISPLAY, fontStyle: "italic",
                        fontSize: 18, color: C.charcoal, lineHeight: 1.5, maxWidth: 460 }}>
            "This was not my goal. It caught up with me anyway."
          </div>
        </div>
      </div>

      <div style={{ marginTop: 32 }}>
        <Rule color={`${C.inkwell}33`} />
        <div style={{
          display: "grid", gridTemplateColumns: "1fr 1fr 1fr",
          paddingTop: 14, alignItems: "center"
        }}>
          <Mono color={C.inkwell} size={9}>Chances. Choices. Changes.</Mono>
          <Mono color={`${C.inkwell}88`} size={9} style={{ textAlign: "center" }}>The vocabulary, in Debra's words.</Mono>
          <Mono color={C.inkwell} size={9} style={{ textAlign: "right" }}>cccrecovery.ca</Mono>
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// QR — real, scannable QR rendered as crisp SVG rects. Uses the global
// `qrcode` generator loaded in index.html. Encodes the program website so a
// scan lands on the apply page (matching the QR on Debra's current card).
// ─────────────────────────────────────────────────────────────────────────
function QRCode({ value, size = 210, fg = C.inkwell, bg = C.vellum, quiet = 2 }) {
  let qr;
  try {
    qr = window.qrcode(0, "M");
    qr.addData(value);
    qr.make();
  } catch (e) {
    // Library not present — render a quiet placeholder rather than crashing.
    return <div style={{ width: size, height: size, background: bg }} />;
  }
  const count = qr.getModuleCount();
  const total = count + quiet * 2;
  const cell = size / total;
  const rects = [];
  for (let r = 0; r < count; r++) {
    for (let c = 0; c < count; c++) {
      if (qr.isDark(r, c)) {
        rects.push(
          <rect
            key={r + "_" + c}
            x={(c + quiet) * cell}
            y={(r + quiet) * cell}
            width={cell + 0.6}
            height={cell + 0.6}
            fill={fg}
          />
        );
      }
    }
  }
  return (
    <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}
      shapeRendering="crispEdges" style={{ display: "block" }} aria-label="QR code to cccrecovery.ca">
      <rect width={size} height={size} fill={bg} />
      {rects}
    </svg>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// BUSINESS CARD — FRONT (3.5 × 2 in · 1050 × 600 at 300dpi)
// The identity side: cream stock, the person named, the promise stated.
// ─────────────────────────────────────────────────────────────────────────
function BusinessCardFront() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.vellum, color: C.inkwell,
      fontFamily: FONT_BODY, padding: "58px 64px",
      display: "flex", flexDirection: "column", justifyContent: "space-between"
    }}>
      <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
        <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
          <Tally size={26} color={C.inkwell} strokeWidth={2.4} />
          <Mono color={C.inkwell} size={11}>Chances. Choices. Changes.</Mono>
        </div>
        <Mono color={`${C.inkwell}88`} size={11}>Est. 2026</Mono>
      </div>

      <div>
        <div style={{
          fontFamily: FONT_DISPLAY, fontWeight: 500,
          fontSize: 80, lineHeight: 0.95, letterSpacing: "-0.024em", color: C.inkwell
        }}>
          Debra King
        </div>
        <Mono color={C.oxblood} size={12} style={{ marginTop: 16 }}>
          Founder · Peer recovery counsellor
        </Mono>
        <div style={{
          marginTop: 24, fontFamily: FONT_ITALIC, fontStyle: "italic",
          fontSize: 25, lineHeight: 1.34, color: C.charcoal
        }}>
          <span style={{ position: "relative", display: "inline-block" }}>
            Recovery is possible.
            <svg width="100%" height="12" viewBox="0 0 360 12" preserveAspectRatio="none"
              style={{ position: "absolute", left: 0, bottom: -3 }}>
              <path d="M2 6 Q 90 2, 180 6 T 358 6" stroke={C.oxblood} strokeWidth="3" fill="none" strokeLinecap="round" />
            </svg>
          </span>
          <br />You're worth it.
        </div>
      </div>

      <div>
        <Rule color={`${C.inkwell}33`} />
        <div style={{ marginTop: 16, display: "flex", justifyContent: "space-between", alignItems: "baseline" }}>
          <Mono color={C.inkwell} size={11}>cccrecovery.ca</Mono>
          <Mono color={`${C.inkwell}88`} size={11}>Toronto, ON</Mono>
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// BUSINESS CARD — BACK (3.5 × 2 in · 1050 × 600 at 300dpi)
// The message side: forest stock, the program in one breath, contact + QR.
// ─────────────────────────────────────────────────────────────────────────
function BusinessCardBack() {
  return (
    <div style={{
      width: "100%", height: "100%", background: C.inkwell, color: C.vellum,
      fontFamily: FONT_BODY, padding: "54px 58px",
      display: "grid", gridTemplateColumns: "1.3fr 0.82fr", gap: 46
    }}>
      <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
        <div>
          <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
            <Tally size={22} color={C.vellum} strokeWidth={2.2} />
            <Mono color={C.sage} size={10}>A new beginning starts here</Mono>
          </div>
          <div style={{
            marginTop: 24, fontFamily: FONT_DISPLAY, fontWeight: 500,
            fontSize: 34, lineHeight: 1.06, letterSpacing: "-0.02em", color: C.vellum,
            textWrap: "balance"
          }}>
            An eight-week supportive recovery program.
          </div>
          <p style={{
            margin: "16px 0 0", fontFamily: FONT_BODY, fontSize: 15.5, lineHeight: 1.55,
            color: `${C.vellum}cc`, maxWidth: 420
          }}>
            We help individuals in recovery rebuild healthier habits,
            strengthen resilience, and create lasting change.
          </p>
        </div>

        <div>
          <Rule color={`${C.vellum}33`} />
          <div style={{ marginTop: 14, display: "flex", flexDirection: "column", gap: 7 }}>
            <Mono color={C.vellum} size={11}>(289) 207-2617</Mono>
            <Mono color={C.vellum} size={11}>debra@cccrecovery.ca</Mono>
          </div>
        </div>
      </div>

      <div style={{ display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", gap: 16 }}>
        <div style={{ background: C.vellum, padding: 14, display: "block" }}>
          <QRCode value="https://cccrecovery.ca" size={196} fg={C.inkwell} bg={C.vellum} quiet={2} />
        </div>
        <Mono color={`${C.vellum}aa`} size={10} style={{ textAlign: "center", lineHeight: 1.5 }}>
          Scan to apply<br />cccrecovery.ca
        </Mono>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────
// CIRCULAR STICKERS — die-cut circles, print at 3 in on matte vinyl.
// Rendered on a 1000 × 1000 canvas: light backing sheet, dashed cut line,
// artwork inside the 920 px face. Print shop trims on the dashed line.
// ─────────────────────────────────────────────────────────────────────────
function StickerArcText({ id, text, radius = 368, color = C.inkwell, fontSize = 27 }) {
  // Mono caps set along the top arc of the 920 × 920 sticker face.
  const cx = 460, cy = 460;
  return (
    <svg width="100%" height="100%" viewBox="0 0 920 920"
      style={{ position: "absolute", inset: 0, pointerEvents: "none" }} aria-hidden="true">
      <defs>
        <path id={id} d={`M ${cx - radius} ${cy} A ${radius} ${radius} 0 0 1 ${cx + radius} ${cy}`} fill="none" />
      </defs>
      <text fontFamily={FONT_MONO} fontSize={fontSize} letterSpacing="0.34em" fill={color}>
        <textPath href={`#${id}`} startOffset="50%" textAnchor="middle">{text}</textPath>
      </text>
    </svg>
  );
}

function StickerShell({ face = C.vellum, children }) {
  return (
    <div style={{ width: "100%", height: "100%", background: "transparent", position: "relative", fontFamily: FONT_BODY }}>
      {/* die-cut line */}
      <div style={{ position: "absolute", inset: 21, borderRadius: "50%", border: "2px dashed rgba(28,73,44,0.3)" }} />
      {/* sticker face — the margin around it is transparent (die-cut) */}
      <div style={{ position: "absolute", inset: 40, borderRadius: "50%", background: face, overflow: "hidden", boxShadow: "inset 0 0 0 2px rgba(28,73,44,0.22)" }}>
        {children}
      </div>
    </div>
  );
}

function StickerWordmark() {
  return (
    <StickerShell face={C.vellum}>
      <StickerArcText id="st-arc-wordmark" text="A PEER-LED RECOVERY PROGRAM · TORONTO" color={`${C.inkwell}aa`} />
      <div style={{ position: "absolute", inset: 0, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center" }}>
        <Tally size={56} color={C.inkwell} strokeWidth={2.6} />
        <div style={{ marginTop: 28, fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 108, lineHeight: 1.02, letterSpacing: "-0.03em", color: C.inkwell }}>
          Chances.<br />Choices.<br />
          <span style={{ position: "relative", display: "inline-block" }}>
            Changes.
            <svg width="100%" height="12" viewBox="0 0 360 12" preserveAspectRatio="none" style={{ position: "absolute", left: 0, bottom: -2 }}>
              <path d="M2 6 Q 90 1, 180 6 T 358 6" stroke={C.oxblood} strokeWidth="4" fill="none" strokeLinecap="round" />
            </svg>
          </span>
        </div>
      </div>
      <div style={{ position: "absolute", left: 0, right: 0, bottom: 96, textAlign: "center", fontFamily: FONT_MONO, fontSize: 22, letterSpacing: "0.28em", color: C.oxblood, whiteSpace: "nowrap" }}>
        CCCRECOVERY.CA
      </div>
    </StickerShell>
  );
}

function StickerPossible() {
  return (
    <StickerShell face={C.inkwell}>
      <StickerArcText id="st-arc-possible" text="CHANCES · CHOICES · CHANGES" fontSize={28} color={`${C.vellum}99`} />
      <div style={{ position: "absolute", inset: 0, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center" }}>
        <div style={{ fontFamily: FONT_DISPLAY, fontWeight: 500, fontSize: 124, lineHeight: 0.98, letterSpacing: "-0.032em", color: C.vellum }}>
          Recovery<br />is{" "}
          <span style={{ position: "relative", display: "inline-block" }}>
            possible.
            <svg width="100%" height="12" viewBox="0 0 360 12" preserveAspectRatio="none" style={{ position: "absolute", left: 0, bottom: -2 }}>
              <path d="M2 6 Q 90 1, 180 6 T 358 6" stroke={C.oxblood} strokeWidth="5" fill="none" strokeLinecap="round" />
            </svg>
          </span>
        </div>
        <div style={{ marginTop: 34, fontFamily: FONT_ITALIC, fontStyle: "italic", fontSize: 44, color: C.sage, whiteSpace: "nowrap" }}>
          You're worth it.
        </div>
      </div>
      <div style={{ position: "absolute", left: 0, right: 0, bottom: 96, textAlign: "center", fontFamily: FONT_MONO, fontSize: 21, letterSpacing: "0.28em", color: `${C.vellum}cc`, whiteSpace: "nowrap" }}>
        CCCRECOVERY.CA
      </div>
    </StickerShell>
  );
}

function StickerScan() {
  return (
    <StickerShell face={C.vellum}>
      <StickerArcText id="st-arc-scan" text="A PEER-LED RECOVERY PROGRAM · TORONTO" color={`${C.inkwell}aa`} />
      <div style={{ position: "absolute", inset: 0, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", gap: 28 }}>
        <Tally size={44} color={C.inkwell} strokeWidth={2.6} />
        <QRCode value="https://cccrecovery.ca" size={330} fg={C.inkwell} bg={C.vellum} quiet={2} />
        <div style={{ textAlign: "center", fontFamily: FONT_MONO, fontSize: 24, letterSpacing: "0.28em", color: C.oxblood, whiteSpace: "nowrap" }}>
          SCAN TO APPLY
        </div>
      </div>
      <div style={{ position: "absolute", left: 0, right: 0, bottom: 90, textAlign: "center", fontFamily: FONT_MONO, fontSize: 20, letterSpacing: "0.24em", color: `${C.inkwell}99`, whiteSpace: "nowrap" }}>
        CCCRECOVERY.CA
      </div>
    </StickerShell>
  );
}


Object.assign(window, {
  BS_WordmarkSheet: typeof WordmarkSheet !== 'undefined' ? WordmarkSheet : null,
  BS_Day1Poster: typeof Day1Poster !== 'undefined' ? Day1Poster : null,
  BS_FlyerEvergreen: typeof FlyerEvergreen !== 'undefined' ? FlyerEvergreen : null,
  BS_AcrostichPoster: typeof AcrostichPoster !== 'undefined' ? AcrostichPoster : null,
  BS_FlyerCohort: typeof FlyerCohort !== 'undefined' ? FlyerCohort : null,
  BS_IGIntro: typeof IGIntro !== 'undefined' ? IGIntro : null,
  BS_IGQuote: typeof IGQuote !== 'undefined' ? IGQuote : null,
  BS_IGCohort: typeof IGCohort !== 'undefined' ? IGCohort : null,
  BS_StoryEvergreen: typeof StoryEvergreen !== 'undefined' ? StoryEvergreen : null,
  BS_StoryCohort: typeof StoryCohort !== 'undefined' ? StoryCohort : null,
  BS_Landscape: typeof Landscape !== 'undefined' ? Landscape : null,
  BS_Specimen: typeof Specimen !== 'undefined' ? Specimen : null,
  BS_ProfileLogo: typeof ProfileLogo !== 'undefined' ? ProfileLogo : null,
  BS_ProfileLogoDark: typeof ProfileLogoDark !== 'undefined' ? ProfileLogoDark : null,
  BS_StoryHalt: typeof StoryHalt !== 'undefined' ? StoryHalt : null,
  BS_VocabularyReference: typeof VocabularyReference !== 'undefined' ? VocabularyReference : null,
  BS_BusinessCardFront: typeof BusinessCardFront !== 'undefined' ? BusinessCardFront : null,
  BS_BusinessCardBack: typeof BusinessCardBack !== 'undefined' ? BusinessCardBack : null,
  BS_StickerWordmark: typeof StickerWordmark !== 'undefined' ? StickerWordmark : null,
  BS_StickerPossible: typeof StickerPossible !== 'undefined' ? StickerPossible : null,
  BS_StickerScan: typeof StickerScan !== 'undefined' ? StickerScan : null,
  // Shared scannable QR — reused by the Launch Kit and First Monday print pieces.
  CCC_QRCode: typeof QRCode !== 'undefined' ? QRCode : null
});
})();