/* Layout: a calm reading column under a sticky page nav; each day reads as a printed program. Forest green and brass, light and dark. */
:root {
  --ground: #f1f3ee;
  --panel: #ffffff;
  --panel-2: #e6ebe3;
  --line: #cfd8cc;
  --text: #1c2a22;
  --muted: #5b6b60;
  --accent: #8a6d22;
  --accent-ink: #6f5718;
  --forest: #1f3a2d;
  --fill-bg: rgba(138, 109, 34, 0.12);
  --display: "Marcellus", "Trajan Pro", Georgia, serif;
  --body: "Spectral", Georgia, "Times New Roman", serif;
  --label: "Jost", "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ground: #0e1914; --panel: #13221b; --panel-2: #182a21; --line: #2a4035;
    --text: #e4dfcc; --muted: #a3b2a2; --accent: #c8a64f; --accent-ink: #d9bb6a;
    --forest: #0a130f; --fill-bg: rgba(200, 166, 79, 0.16); color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ground: #0e1914; --panel: #13221b; --panel-2: #182a21; --line: #2a4035;
  --text: #e4dfcc; --muted: #a3b2a2; --accent: #c8a64f; --accent-ink: #d9bb6a;
  --forest: #0a130f; --fill-bg: rgba(200, 166, 79, 0.16); color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--ground); color: var(--text);
  font-family: var(--body); font-weight: 300; font-size: 17px; line-height: 1.65;
}
body::before {
  content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px);
  z-index: 10; background: var(--forest);
}
a { color: var(--accent-ink); text-decoration-color: var(--accent); text-underline-offset: 3px; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; margin: 0; text-wrap: balance; line-height: 1.2; }
h1 { font-size: clamp(2.1rem, 6vw, 3rem); }
h2 { font-size: 1.55rem; }
h3 { font-size: 1.25rem; }
p { margin: 0; }
.eyebrow { font-family: var(--label); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.fill { background: var(--fill-bg); border-bottom: 1px dashed var(--accent); padding: 0 0.25em; font-style: italic; }

/* Masthead */
.masthead { background: var(--forest); color: #e9e4d2; }
.mast-inner, .nav-wrap, .page, .foot-inner {
  max-width: 820px; margin: 0 auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}
.mast-inner { padding-block: 22px 10px; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; justify-content: space-between; }
.brand { font-family: var(--display); font-size: 1.3rem; color: #e9e4d2; text-decoration: none; }
.brand .fill { color: #e9e4d2; }
.dates { font-family: var(--label); font-size: 0.8rem; letter-spacing: 0.06em; color: #b9c3b4; }
.dates .fill { color: #e9e4d2; }
.site-nav { display: flex; gap: 4px 18px; overflow-x: auto; padding-block: 8px 12px; scrollbar-width: none; }
.site-nav a { font-family: var(--label); font-size: 0.82rem; letter-spacing: 0.06em; color: #c9d1c4; text-decoration: none; white-space: nowrap; padding-block: 4px; border-bottom: 2px solid transparent; }
.site-nav a:hover { color: #fff; }
.site-nav a[aria-current="page"] { color: #fff; border-bottom-color: #c8a64f; }

/* Page */
.page { padding-block: 44px 64px; display: flex; flex-direction: column; gap: 48px; }
.hero, .block { display: flex; flex-direction: column; gap: 14px; }
.lede { font-size: 1.15rem; max-width: 62ch; }
.prose { display: flex; flex-direction: column; gap: 12px; max-width: 64ch; }
.prose ul { margin: 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 4px; }
.note { color: var(--muted); font-size: 0.95rem; }
.toc { display: flex; flex-wrap: wrap; gap: 8px 18px; font-family: var(--label); font-size: 0.85rem; }

/* Cards and arc */
.cards { display: grid; gap: 14px; }
.cards.two { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 18px 20px; text-decoration: none; color: var(--text); display: flex; flex-direction: column; gap: 6px; }
.card:hover { border-color: var(--accent); }
.card b { font-family: var(--display); font-weight: 400; font-size: 1.3rem; }
.card-k { font-family: var(--label); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-ink); }
.card span:last-child { color: var(--muted); font-size: 0.97rem; }
.arc { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.arc li a { display: grid; grid-template-columns: 7rem 10rem 1fr; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--text); text-decoration: none; align-items: baseline; }
.arc li a:hover b { color: var(--accent-ink); }
.arc .day { font-family: var(--label); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.arc b { font-family: var(--display); font-weight: 400; font-size: 1.2rem; }
.arc span:last-child { color: var(--muted); min-width: 0; }
@media (max-width: 600px) { .arc li a { grid-template-columns: 1fr; } }

/* Lists */
.agreements, .steps { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 10px; max-width: 64ch; }
.agreements li::marker, .steps li::marker { color: var(--accent-ink); font-family: var(--display); }
.words { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.words li { font-family: var(--label); font-size: 0.85rem; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); }
.sparks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sparks li { font-family: var(--display); font-size: 1.2rem; padding-left: 18px; border-left: 2px solid var(--accent); }
.checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 24px; }
.checklist li { padding-left: 26px; position: relative; }
.checklist li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 13px; height: 13px; border: 1.5px solid var(--accent); border-radius: 2px; }
.tight { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 4px; }

/* Poem */
.poem { margin: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 24px 26px; display: flex; flex-direction: column; gap: 14px; }
.poem blockquote { margin: 0; font-style: italic; font-size: 1.1rem; display: flex; flex-direction: column; gap: 12px; }
.poem figcaption { font-family: var(--label); font-size: 0.8rem; color: var(--muted); letter-spacing: 0.04em; }

/* Worksheet */
.worksheet { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); overflow: hidden; }
.ws-head, .ws-row { display: grid; grid-template-columns: minmax(7rem, 30%) 1fr; }
.ws-head span { font-family: var(--label); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); padding: 10px 14px; border-bottom: 1px solid var(--line); }
.ws-row span { min-height: 3rem; padding: 10px 14px; border-bottom: 1px solid var(--line); color: var(--muted); font-family: var(--display); }
.ws-row span:first-child { border-right: 1px solid var(--line); }
.ws-row:last-child span { border-bottom: 0; }

/* Day pages */
.intention { font-family: var(--display); font-size: 1.35rem; max-width: 40ch; color: var(--accent-ink); }
.schedule { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.schedule li { display: grid; grid-template-columns: 7rem 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.schedule .time { font-family: var(--label); font-size: 0.85rem; font-variant-numeric: tabular-nums; color: var(--muted); padding-top: 0.15em; }
.schedule b { font-weight: 500; }
.schedule p { color: var(--muted); font-size: 0.97rem; }
.schedule li > div { min-width: 0; }
.sessions { display: flex; flex-direction: column; gap: 16px; }
.session { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.session p, .session ol { max-width: 64ch; }
.prompt { font-family: var(--display); font-size: 1.2rem; color: var(--accent-ink); }
.closing { border-top: 1px solid var(--line); padding-top: 24px; }
.question { font-family: var(--display); font-size: 1.4rem; max-width: 40ch; }

/* Logistics */
.ltable { margin: 0; border-top: 1px solid var(--line); }
.lrow { display: grid; grid-template-columns: 9rem 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.lrow dt { font-family: var(--label); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); padding-top: 0.3em; }
.lrow dd { margin: 0; min-width: 0; }
@media (max-width: 560px) { .lrow, .schedule li { grid-template-columns: 1fr; gap: 2px; } }

/* Footer */
.foot { border-top: 1px solid var(--line); }
.foot-inner { padding-block: 22px 40px; display: flex; flex-direction: column; gap: 6px; font-size: 0.92rem; color: var(--muted); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Meal roster */
.roster-wrap { overflow-x: auto; }
.roster { width: 100%; border-collapse: collapse; }
.roster th { text-align: left; font-family: var(--label); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); padding: 0 12px 10px 0; border-bottom: 1px solid var(--line); }
.roster td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); }
.roster td:last-child { font-family: var(--display); font-size: 1.1rem; }

/* Phase dividers and council */
.schedule li.phase { display: block; padding: 22px 0 6px; border-bottom: 1px solid var(--accent); }
.schedule li.phase span { font-family: var(--display); font-size: 1.15rem; color: var(--accent-ink); }
.schedule li.phase:first-child { padding-top: 6px; }
.council { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.council li { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; }
.council b { display: block; font-family: var(--display); font-weight: 400; font-size: 1.1rem; color: var(--accent-ink); }

/* Qualities list */
.aspects-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.aspects-list li { background: var(--panel); padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.aspects-list b { font-family: var(--display); font-weight: 400; font-size: 1.1rem; color: var(--accent-ink); }
.aspects-list span { color: var(--muted); font-size: 0.95rem; line-height: 1.45; }

/* Opening letter */
.letter { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 28px 30px; display: flex; flex-direction: column; gap: 14px; max-width: 68ch; font-size: 1.08rem; }
.letter p:first-child { font-family: var(--display); font-size: 1.3rem; color: var(--accent-ink); }
.letter .sign { font-family: var(--display); font-size: 1.15rem; padding-top: 6px; }
@media (max-width: 560px) { .letter { padding: 22px 20px; } }

/* ===== Luminous theme: periwinkle mist, silver lattice, gold light ===== */
:root {
  --ground: #e8eaf6; --ground-2: #d7dbef;
  --panel: rgba(255, 255, 255, 0.66); --panel-2: rgba(255, 255, 255, 0.5);
  --line: rgba(98, 108, 170, 0.24);
  --text: #20244a; --muted: #5a6090;
  --accent: #b78f2c; --accent-ink: #876717;
  --forest: #1b1f4a;
  --glow: rgba(243, 206, 112, 0.55);
  --lattice: rgba(70, 82, 160, 0.10);
  --shadow: 0 1px 0 rgba(255,255,255,0.7) inset, 0 10px 30px -18px rgba(40, 48, 120, 0.45);
  --fill-bg: rgba(183, 143, 44, 0.14);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ground: #0c0e25; --ground-2: #161a3d;
    --panel: rgba(30, 35, 78, 0.62); --panel-2: rgba(30, 35, 78, 0.45);
    --line: rgba(170, 180, 240, 0.18);
    --text: #e7e8f7; --muted: #a6abd4;
    --accent: #e4c36b; --accent-ink: #efd384;
    --forest: #080a1f;
    --glow: rgba(240, 200, 100, 0.38);
    --lattice: rgba(190, 200, 255, 0.08);
    --shadow: 0 1px 0 rgba(255,255,255,0.05) inset, 0 12px 34px -18px rgba(0, 0, 0, 0.8);
    --fill-bg: rgba(228, 195, 107, 0.16); color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ground: #0c0e25; --ground-2: #161a3d;
  --panel: rgba(30, 35, 78, 0.62); --panel-2: rgba(30, 35, 78, 0.45);
  --line: rgba(170, 180, 240, 0.18);
  --text: #e7e8f7; --muted: #a6abd4;
  --accent: #e4c36b; --accent-ink: #efd384;
  --forest: #080a1f;
  --glow: rgba(240, 200, 100, 0.38);
  --lattice: rgba(190, 200, 255, 0.08);
  --shadow: 0 1px 0 rgba(255,255,255,0.05) inset, 0 12px 34px -18px rgba(0, 0, 0, 0.8);
  --fill-bg: rgba(228, 195, 107, 0.16); color-scheme: dark;
}

body {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, var(--glow), transparent 70%),
    linear-gradient(180deg, var(--ground) 0%, var(--ground-2) 100%);
  background-attachment: fixed;
  position: relative;
}
body::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    repeating-linear-gradient(60deg, var(--lattice) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(-60deg, var(--lattice) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(0deg, var(--lattice) 0 1px, transparent 1px 40px);
  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 30%, #000 30%, transparent 85%);
          mask-image: radial-gradient(ellipse 90% 70% at 50% 30%, #000 30%, transparent 85%);
}
body::before { background: var(--forest); }

/* Masthead: night sky with a lattice of light and a rising gold glow */
.masthead {
  background:
    radial-gradient(ellipse 60% 140% at 50% 130%, rgba(243, 206, 112, 0.42), transparent 60%),
    repeating-linear-gradient(60deg, rgba(220, 226, 255, 0.10) 0 1px, transparent 1px 34px),
    repeating-linear-gradient(-60deg, rgba(220, 226, 255, 0.10) 0 1px, transparent 1px 34px),
    linear-gradient(180deg, var(--forest) 0%, #2a3078 100%);
  border-bottom: 1px solid rgba(243, 206, 112, 0.35);
  box-shadow: 0 0 40px -10px rgba(243, 206, 112, 0.45);
}
.brand { letter-spacing: 0.06em; text-shadow: 0 0 18px rgba(243, 206, 112, 0.55); color: #f6efd8; }
.site-nav a[aria-current="page"] { border-bottom-color: #f0cf74; text-shadow: 0 0 12px rgba(243, 206, 112, 0.6); }

/* Halo behind each page title */
.hero { position: relative; isolation: isolate; padding-top: 12px; }
.hero::before {
  content: ""; position: absolute; z-index: -1; left: -40px; top: -70px;
  width: 340px; height: 340px; max-width: 90vw; border-radius: 50%;
  background: radial-gradient(circle, var(--glow) 0%, rgba(243, 206, 112, 0.12) 40%, transparent 70%);
}
.hero::after {
  content: ""; position: absolute; z-index: -1; left: 30px; top: 0; width: 200px; height: 200px; max-width: 60vw;
  border-radius: 50%; border: 1px solid rgba(183, 143, 44, 0.30);
  box-shadow: 0 0 0 18px rgba(183, 143, 44, 0.06), 0 0 0 40px rgba(183, 143, 44, 0.04);
}
h1 { color: var(--text); text-shadow: 0 0 28px var(--glow); }
h2 { color: var(--accent-ink); }

/* Glass panels with a soft inner light */
.card, .session, .letter, .poem, .worksheet, .council li, .aspects-list, .words li {
  background: var(--panel);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
          backdrop-filter: blur(10px) saturate(1.2);
  border-color: var(--line);
  box-shadow: var(--shadow);
}
.aspects-list li { background: var(--panel-2); }
.card:hover, .session:hover { border-color: var(--accent); box-shadow: var(--shadow), 0 0 26px -8px var(--glow); }
.letter { border-image: linear-gradient(135deg, rgba(243, 206, 112, 0.7), rgba(120, 130, 210, 0.35), rgba(243, 206, 112, 0.7)) 1; border-width: 1px; border-style: solid; border-radius: 0; }
.letter p:first-child, .sign { text-shadow: 0 0 16px var(--glow); }
.schedule li.phase { border-bottom-color: var(--accent); }
.schedule li.phase span { text-shadow: 0 0 14px var(--glow); }
.arc li a:hover b { text-shadow: 0 0 14px var(--glow); }
.foot { border-top-color: var(--line); background: linear-gradient(0deg, rgba(27, 31, 74, 0.08), transparent); }

/* Packing */
.packing { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.pack-group { background: var(--panel); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.pack-group h3 { color: var(--accent-ink); font-size: 1.15rem; }
.pack-group .checklist { grid-template-columns: 1fr; }
.house-note { font-family: var(--display); font-size: 1.15rem; color: var(--accent-ink); }

/* Caution note */
.caution { border: 1px solid var(--accent); border-radius: 6px; padding: 14px 18px; background: var(--fill-bg); max-width: 68ch; }
.caution b { font-weight: 500; }

/* Departure note band */
.depart-band { background: var(--fill-bg); border-bottom: 1px solid var(--line); }
.depart-band p {
  max-width: 820px; margin: 0 auto; padding-block: 10px;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
  font-family: var(--label); font-size: 0.85rem; letter-spacing: 0.02em; color: var(--text);
}

/* Weekend rundown */
.day-jump { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin-top: 6px; }
.day-jump a { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; text-decoration: none; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); }
.day-jump a:hover { border-color: var(--accent); }
.day-jump b { font-family: var(--display); font-weight: 400; font-size: 1.1rem; color: var(--accent-ink); }
.day-jump span { font-family: var(--label); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--muted); }
.day-section { display: flex; flex-direction: column; gap: 36px; padding-top: 40px; border-top: 1px solid var(--accent); scroll-margin-top: 16px; }
.day-title { font-size: clamp(1.8rem, 5vw, 2.4rem); color: var(--text); text-shadow: 0 0 24px var(--glow); }
.day-section .hero::after { display: none; }
.day-section .hero::before { width: 260px; height: 260px; top: -60px; }
.evenings { border-top: 1px solid var(--accent); padding-top: 40px; scroll-margin-top: 16px; }
.session h4 { font-family: var(--display); font-weight: 400; font-size: 1.25rem; margin: 0; }
.pack-group h3 { margin: 0; }

/* Intention */
.intention-block { background: var(--panel); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; max-width: 68ch; scroll-margin-top: 16px; }
.intention-block h3 { color: var(--accent-ink); margin: 0; }
.intention-block ul { margin: 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 4px; }

/* ===== Punch: hip hop meets the architecture of the universe ===== */
:root {
  --heavy: "Anton", "Impact", "Arial Narrow Bold", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --gold-1: #f7e3a1; --gold-2: #d9ad3c; --gold-3: #8f6a12;
  --edge: rgba(217, 173, 60, 0.55);
}

/* Labels go mono, like blueprint callouts */
.eyebrow, .card-k, .lrow dt, .rows dt, .schedule .time, .day-jump span, .dates, .site-nav a, .ws-head span, .roster th, .index th {
  font-family: var(--mono); letter-spacing: 0.12em;
}
.eyebrow::before { content: "◇ "; color: var(--accent); }

/* Heavy gold headline type */
h1, .day-title, .brand {
  font-family: var(--heavy); font-weight: 400; text-transform: uppercase; letter-spacing: 0.02em; line-height: 0.95;
}
h1, .day-title {
  font-size: clamp(2.8rem, 10vw, 5.6rem);
  background: linear-gradient(180deg, var(--gold-1) 0%, var(--gold-2) 45%, var(--gold-3) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-text-stroke: 0.5px rgba(143, 106, 18, 0.35);
  text-shadow: none;
  filter: drop-shadow(0 0 18px var(--glow)) drop-shadow(0 2px 0 rgba(20, 22, 60, 0.25));
}
.day-title { font-size: clamp(2.4rem, 8vw, 4.2rem); }
h2 { font-family: var(--heavy); font-weight: 400; text-transform: uppercase; letter-spacing: 0.03em; font-size: clamp(1.6rem, 4.5vw, 2.2rem); color: var(--text); }
h2::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 10px; background: linear-gradient(90deg, var(--gold-2), transparent); }
.brand { font-size: 1.7rem; letter-spacing: 0.05em; color: #f6e7b8; text-shadow: 0 0 22px rgba(243, 206, 112, 0.7); }

/* Masthead: a perspective grid floor running to a gold horizon */
.masthead { position: relative; overflow: hidden; isolation: isolate; }
.masthead::after {
  content: ""; position: absolute; z-index: -1; left: -50%; right: -50%; bottom: -120px; height: 220px;
  background-image:
    linear-gradient(rgba(243, 206, 112, 0.45) 1px, transparent 1px),
    linear-gradient(90deg, rgba(200, 210, 255, 0.35) 1px, transparent 1px);
  background-size: 48px 48px;
  transform: perspective(260px) rotateX(62deg);
  transform-origin: top center;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%);
          mask-image: linear-gradient(180deg, transparent, #000 40%);
}
.masthead { border-bottom: 2px solid var(--gold-2); box-shadow: 0 0 48px -6px rgba(243, 206, 112, 0.6); }

/* Blueprint corner brackets on framed panels */
.card, .session, .letter, .pack-group, .intention-block, .poem {
  border-radius: 2px; position: relative;
}
.card::before, .session::before, .pack-group::before, .intention-block::before, .letter::before {
  content: ""; position: absolute; inset: -1px; pointer-events: none;
  background:
    linear-gradient(var(--gold-2), var(--gold-2)) top left / 14px 2px no-repeat,
    linear-gradient(var(--gold-2), var(--gold-2)) top left / 2px 14px no-repeat,
    linear-gradient(var(--gold-2), var(--gold-2)) bottom right / 14px 2px no-repeat,
    linear-gradient(var(--gold-2), var(--gold-2)) bottom right / 2px 14px no-repeat;
}
.card b, .session h4, .pack-group h3, .intention-block h3, .day-jump b {
  font-family: var(--heavy); font-weight: 400; text-transform: uppercase; letter-spacing: 0.04em;
}
.day-jump a { border-radius: 2px; border-color: var(--edge); }
.day-jump b { font-size: 1.35rem; }

/* Bigger, bolder hero halo with orbit rings */
.hero::after {
  border: 1px solid var(--edge);
  box-shadow: 0 0 0 22px rgba(217, 173, 60, 0.07), 0 0 0 48px rgba(217, 173, 60, 0.045), 0 0 0 80px rgba(217, 173, 60, 0.03);
}

/* Schedule phase markers hit harder */
.schedule li.phase span { font-family: var(--heavy); text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.4rem; }
.schedule .time { color: var(--accent-ink); }

/* Departure band reads like a marquee */
.depart-band p { font-family: var(--mono); font-size: 0.8rem; letter-spacing: 0.06em; }
@media (prefers-reduced-motion: no-preference) {
  .masthead::after { animation: gridflow 6s linear infinite; }
  @keyframes gridflow { from { background-position: 0 0, 0 0; } to { background-position: 0 48px, 0 0; } }
}

/* Opening statement */
.lede.design { font-size: clamp(1.2rem, 2.6vw, 1.45rem); line-height: 1.55; max-width: 60ch; }

/* Headline: solid ink with a hard gold offset shadow, no gradient */
h1, .day-title {
  background: none; -webkit-background-clip: border-box; background-clip: border-box;
  -webkit-text-stroke: 0; filter: none;
  color: var(--text);
  text-shadow: 3px 3px 0 var(--gold-2), 0 0 26px var(--glow);
}
.welcome { font-family: var(--display); font-size: clamp(1.15rem, 2.4vw, 1.35rem); line-height: 1.5; max-width: 56ch; color: var(--accent-ink); }

/* Home opening: all in the main ink color */
.lede.design, .welcome { color: var(--text); font-family: var(--body); font-size: clamp(1.2rem, 2.6vw, 1.45rem); line-height: 1.55; max-width: 60ch; }

/* Header without the name: give the nav room to breathe */
.nav-wrap .site-nav { padding-block: 18px 16px; }
