/* GENERATED by scripts/build-site.mjs from app/globals.css. Do not edit. */
/* ── Design tokens (app @theme, verbatim) ── */
:root {
  --color-brand-primary: #C0392B;
  --color-brand-secondary: #E67E22;
  --color-brand-dark: #1b2d1d;
  --color-brand-surface: #1E3524;
  --color-brand-text: #F5F5F5;
  --color-brand-muted: #7A9E7A;
  --color-brand-card: #F2EDD7;

  --font-sans: 'Inter', system-ui, sans-serif;
  --font-display: var(--font-display, 'Georgia', serif);

  /* ── Motion tokens (CSS side; lib/motion.ts mirrors these numbers for JS) ──
     fast  = hover/press feedback          base = most UI state changes
     slow  = reveals, step changes          hero = one-off entrance moments */
  --motion-fast: 150ms;
  --motion-base: 220ms;
  --motion-slow: 320ms;
  --motion-hero: 650ms;
  --motion-dist: 16px;      /* enter/reveal travel distance */
  --motion-dist-sm: 8px;    /* small items: alerts, chips, labels */
  --ease-out-soft: cubic-bezier(0.2, 0, 0, 1);       /* decelerate: things arriving */
  --ease-in-soft: cubic-bezier(0.4, 0, 1, 1);        /* accelerate: things leaving */
  --ease-spring: cubic-bezier(0.34, 1.3, 0.64, 1);   /* slight overshoot: press release, badges */

  --animate-fade-in: fade-in var(--motion-base) var(--ease-out-soft) both;
  --animate-fade-up: fade-up var(--motion-slow) var(--ease-out-soft) both;
  --animate-shimmer: shimmer 1.4s linear infinite;
}

/* ── Keyframes (app, verbatim) ── */
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes fade-up {
  from { opacity: 0; transform: translateY(var(--motion-dist)); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to   { background-position: -200% 0; }
}
@keyframes ember-pulse {
  0%, 100% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50%       { opacity: 1;   transform: translateX(-50%) scale(1.08); }
}
@keyframes smoke-rise {
  0%   { opacity: 0; transform: translateX(-50%) translateY(0) scale(0.8); }
  40%  { opacity: 0.15; }
  100% { opacity: 0; transform: translateX(-50%) translateY(-80px) scale(1.4); }
}

/* END GENERATED: tokens + keyframes. Hand-written layer follows (site/src/site.css, minified). */
:root{--font-display:'Abril Fatface', Georgia, serif}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-brand-dark);color:var(--color-brand-text);font-family:var(--font-sans);line-height:1.5}main{flex:1}img, svg{display:block;max-width:100%;height:auto}a{color:inherit}.font-display{font-family:var(--font-display);font-weight:400}.wrap{width:100%;max-width:72rem;margin-inline:auto;padding-inline:1rem}button:not(:disabled){transition:scale var(--motion-fast) var(--ease-out-soft)}button:not(:disabled):active{scale:0.97}.transition-ui{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, translate, scale, rotate, filter;transition-timing-function:var(--ease-out-soft);transition-duration:var(--motion-base)}.lift:hover{translate:0 -2px}.skeleton{background:linear-gradient( 100deg, rgba(255,255,255,0.05) 30%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.05) 70% );background-size:200% 100%;animation:var(--animate-shimmer)}html[data-js] .reveal:not([data-inview]){opacity:0}.reveal[data-inview]{animation:fade-up var(--motion-slow) var(--ease-out-soft) both;animation-delay:var(--reveal-delay,0ms)}.reveal[data-inview][data-instant]{animation:none}.collapse-box{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--motion-base) var(--ease-out-soft), opacity var(--motion-fast) var(--ease-out-soft)}.collapse-box>*{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear var(--motion-base)}.collapse-box[data-open]>*{visibility:visible;transition:none}.collapse-box[data-open]{grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--motion-base) var(--ease-out-soft), opacity var(--motion-slow) var(--ease-out-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;min-height:3rem;padding:0.75rem 1.5rem;border:0;border-radius:0.75rem;background-color:var(--color-brand-primary);color:var(--color-brand-text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn:hover{background-color:var(--color-brand-secondary)}.btn-ghost{background-color:transparent;color:var(--color-brand-muted);text-decoration:underline;text-underline-offset:0.2em}.btn-ghost:hover{background-color:transparent;color:var(--color-brand-text)}.site-header{position:sticky;top:0;z-index:50;background-color:var(--color-brand-surface);border-bottom:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:3.5rem}.brand{color:var(--color-brand-text);font-weight:700;font-size:1.125rem;letter-spacing:-0.025em;text-decoration:none;white-space:nowrap}.brand:hover{color:var(--color-brand-secondary)}.site-nav{display:none;align-items:center;gap:1.5rem;font-size:0.875rem;font-weight:500}.site-nav a:not(.btn){position:relative;padding-block:0.25rem;color:var(--color-brand-muted);text-decoration:none}.site-nav a:not(.btn):hover{color:var(--color-brand-text)}.site-nav a[aria-current='page']{color:var(--color-brand-secondary);font-weight:700;box-shadow:inset 0 -2px 0 var(--color-brand-secondary)}.btn-sm{min-height:0;padding:0.5rem 1rem;font-size:0.75rem;font-weight:700}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;padding:0.25rem;margin-inline-end:-0.25rem;border:0;background:transparent;color:var(--color-brand-muted);cursor:pointer}.menu-toggle:hover{color:var(--color-brand-text)}.menu-toggle .icon-close,.menu-toggle[aria-expanded='true'] .icon-open{display:none}.menu-toggle[aria-expanded='true'] .icon-close{display:block}.mobile-menu nav{display:flex;flex-direction:column;gap:0.75rem;padding:0.75rem 1rem;border-top:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent);background-color:var(--color-brand-surface);font-size:0.875rem;font-weight:500}.mobile-menu nav a:not(.btn){color:var(--color-brand-muted);text-decoration:none}.mobile-menu nav a:not(.btn):hover{color:var(--color-brand-text)}.mobile-menu nav .btn{margin-top:0.5rem;font-size:0.75rem;font-weight:700}html:not([data-js]) .menu-toggle{display:none}html:not([data-js]) .mobile-menu{grid-template-rows:1fr;opacity:1}html:not([data-js]) .mobile-menu>*{visibility:visible}@media (min-width:768px){.site-nav{display:flex}.menu-toggle,.mobile-menu{display:none}}.site-footer{background-color:var(--color-brand-surface);border-top:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent);color:var(--color-brand-muted);font-size:0.875rem}.site-footer .wrap{display:flex;flex-direction:column;gap:0.75rem;padding-block:1.5rem}.site-footer p{margin:0}.footer-row{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:0.75rem;text-align:center}.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.footer-nav a{text-decoration:none}.footer-nav a:hover{color:var(--color-brand-text)}.disclosure{font-size:0.875rem;color:var(--color-brand-text);text-align:center}@media (min-width:640px){.footer-row{flex-direction:row;text-align:left}.disclosure{text-align:left}}.wrap>h2,.steps h2,.sample h2,.featured h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.1;margin:0 0 1rem}.section-lede{color:var(--color-brand-muted);max-width:40rem;margin:0 0 1.5rem}.hero{padding-block:2.5rem 3rem}.hero-grid{display:grid;gap:2rem;align-items:center}.eyebrow{margin:0 0 0.75rem;color:var(--color-brand-secondary);font-size:0.75rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(2.5rem,7vw,4.25rem);line-height:1.05;letter-spacing:-0.01em;margin:0 0 1rem}.hero .lede{color:var(--color-brand-muted);font-size:1.125rem;line-height:1.55;max-width:34rem;margin:0 0 1.5rem}.hero .actions{display:flex;flex-wrap:wrap;gap:0.75rem 1rem;align-items:center}.hero-note{margin:1rem 0 0;color:var(--color-brand-muted);font-size:0.875rem}.btn-lg{min-height:3.5rem;padding:1rem 1.75rem;font-size:1.0625rem;font-weight:700;border-radius:1rem}.hero-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:1.5rem;border:1px solid color-mix(in srgb, var(--color-brand-muted) 25%, transparent);box-shadow:0 24px 64px color-mix(in srgb, var(--color-brand-secondary) 18%, transparent)}@media (max-width:767px){.hero .btn{width:100%}}@media (min-width:768px){.hero{padding-block:4rem 4.5rem}.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:3rem}}.card{background-color:var(--color-brand-card);color:var(--color-brand-dark);border-radius:1rem;padding:1.25rem}.steps{padding-block:3rem;background-color:var(--color-brand-surface);border-block:1px solid color-mix(in srgb, var(--color-brand-muted) 15%, transparent)}.step-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.step{position:relative;padding:1.5rem 1.25rem 1.25rem}.step-num{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:999px;background-color:var(--color-brand-primary);color:var(--color-brand-text);font-family:var(--font-display);font-size:1.25rem;margin-bottom:0.75rem}.step h3{margin:0 0 0.375rem;font-size:1.25rem;font-weight:700;letter-spacing:-0.01em}.step p{margin:0;color:color-mix(in srgb, var(--color-brand-dark) 78%, transparent);line-height:1.5}@media (min-width:768px){.step-grid{grid-template-columns:repeat(3, minmax(0,1fr));gap:1.25rem}}.sample{padding-block:3.5rem}.sample-grid{display:grid;gap:2rem;align-items:center}.sample-copy p{color:var(--color-brand-muted);line-height:1.55;margin:0 0 1rem;max-width:34rem}.sample-copy .btn{margin-top:0.5rem}.plan-card{background-color:var(--color-brand-surface);border:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent);border-radius:1.25rem;padding:1.25rem;box-shadow:0 24px 64px color-mix(in srgb, var(--color-brand-dark) 60%, transparent)}.plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.plan-kicker{margin:0 0 0.125rem;color:var(--color-brand-muted);font-size:0.75rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase}.plan-title{margin:0;font-size:1.375rem;font-weight:700;letter-spacing:-0.01em}.pill{flex:none;display:inline-block;padding:0.25rem 0.625rem;border-radius:999px;background-color:var(--color-brand-dark);color:var(--color-brand-secondary);font-size:0.75rem;font-weight:600}.stats{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:0.75rem;margin:0}.stat{display:flex;flex-direction:column;gap:0.125rem;background-color:var(--color-brand-dark);border-radius:0.75rem;padding:1rem}.stat dt{color:var(--color-brand-muted);font-size:0.75rem;font-weight:500;letter-spacing:0.04em;text-transform:uppercase}.stat dd{display:flex;flex-direction:column;gap:0.125rem;margin:0;color:var(--color-brand-text);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.stat small{color:var(--color-brand-muted);font-size:0.75rem;font-weight:400}.plan-when{margin:1rem 0 0;padding:0.875rem 1rem;border-radius:0.75rem;background-color:var(--color-brand-dark);color:var(--color-brand-text);font-size:0.9375rem}.plan-when strong{color:var(--color-brand-secondary)}.plan-foot{margin:0.75rem 0 0;color:var(--color-brand-muted);font-size:0.75rem}@media (min-width:768px){.sample-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:3rem}}.featured{padding-block:1rem 4rem}.tile-grid{display:grid;gap:1rem}.tile{display:flex;flex-direction:column;overflow:hidden;border-radius:1rem;background-color:var(--color-brand-surface);border:1px solid color-mix(in srgb, var(--color-brand-muted) 15%, transparent);color:var(--color-brand-text);text-decoration:none}.tile:hover{border-color:color-mix(in srgb, var(--color-brand-muted) 45%, transparent)}.tile img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.tile-body{display:flex;flex-direction:column;gap:0.25rem;padding:1rem}.tile-title{font-size:1.125rem;font-weight:700;letter-spacing:-0.01em}.tile-meta{font-size:0.875rem;color:var(--color-brand-muted)}.tile-meta strong{color:var(--color-brand-secondary);font-variant-numeric:tabular-nums}.tile-note{font-size:0.75rem;color:var(--color-brand-muted)}@media (min-width:640px){.tile-grid{grid-template-columns:repeat(2, minmax(0,1fr))}}@media (min-width:1024px){.tile-grid{grid-template-columns:repeat(3, minmax(0,1fr));gap:1.25rem}}.guides h2,.gallery h2,.gear h2,.faq h2,.play h2,.closing h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.1;margin:0 0 1rem}.guides{padding-block:3.5rem;background-color:var(--color-brand-surface);border-block:1px solid color-mix(in srgb, var(--color-brand-muted) 15%, transparent)}.guides-grid{display:grid;gap:2rem;align-items:start}.guides-copy .btn-ghost{padding-inline:0;min-height:0}.recipes-card{margin-top:1.5rem}.recipes-card h3{margin:0 0 0.375rem;font-size:1.25rem;font-weight:700;letter-spacing:-0.01em}.recipes-card p{margin:0 0 1rem;color:color-mix(in srgb, var(--color-brand-dark) 78%, transparent)}.guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.75rem}.guide-link{display:flex;flex-direction:column;gap:0.25rem;padding:1rem 1.25rem;border-radius:0.75rem;background-color:var(--color-brand-dark);border:1px solid color-mix(in srgb, var(--color-brand-muted) 15%, transparent);color:var(--color-brand-text);text-decoration:none}.guide-link:hover{border-color:color-mix(in srgb, var(--color-brand-secondary) 45%, transparent)}.guide-link:hover .guide-title{color:var(--color-brand-secondary)}.guide-title{font-weight:600;line-height:1.3}.guide-desc{font-size:0.875rem;line-height:1.45;color:var(--color-brand-muted)}@media (min-width:768px){.guides-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem}}.gallery{padding-block:3rem}.gallery-row,.closing-row,.play-grid{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}.gallery-row .section-lede,.play-grid .section-lede{margin-bottom:0}@media (min-width:768px){.gallery-row,.closing-row,.play-grid{flex-direction:row;align-items:center;justify-content:space-between;gap:2rem}.gallery-row h2,.closing-row h2,.play-grid h2{margin-bottom:0.5rem}}.gear{padding-block:3.5rem;background-color:var(--color-brand-surface);border-block:1px solid color-mix(in srgb, var(--color-brand-muted) 15%, transparent)}.gear-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.gear-item{display:flex;flex-direction:column;gap:0.375rem}.gear-cat{color:var(--color-brand-primary);font-size:0.75rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase}.gear-name{color:var(--color-brand-dark);font-size:1.125rem;font-weight:700;letter-spacing:-0.01em;line-height:1.3;text-decoration:none}.gear-name:hover{color:var(--color-brand-primary);text-decoration:underline;text-underline-offset:0.15em}.gear-name .paid{font-size:0.8125rem;font-weight:500;color:color-mix(in srgb, var(--color-brand-dark) 78%, transparent);white-space:nowrap}.gear-desc{margin:0;color:color-mix(in srgb, var(--color-brand-dark) 78%, transparent);line-height:1.5}.gear-foot{margin:1.5rem 0 0}.gear-foot a{color:var(--color-brand-muted);font-weight:600;text-decoration:none}.gear-foot a:hover{color:var(--color-brand-text)}.gear .disclosure{margin:0.75rem 0 0;text-align:left}@media (min-width:768px){.gear-grid{grid-template-columns:repeat(3, minmax(0,1fr));gap:1.25rem}}.play{padding-block:3rem}.faq{padding-block:3.5rem}.faq-wrap{max-width:48rem}.faq-list{list-style:none;margin:0;padding:0;border-top:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent)}.faq-item{border-bottom:1px solid color-mix(in srgb, var(--color-brand-muted) 20%, transparent)}.faq-q{margin:0;font-size:1.0625rem;font-weight:600}.faq-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1rem 0;border:0;background:transparent;color:var(--color-brand-text);font:inherit;text-align:left;cursor:pointer}.faq-toggle:hover{color:var(--color-brand-secondary)}.faq-chev{flex:none;color:var(--color-brand-muted);transition:rotate var(--motion-base) var(--ease-out-soft)}.faq-toggle[aria-expanded='true'] .faq-chev{rotate:180deg}.faq-a p{margin:0;padding:0 0 1.125rem;color:var(--color-brand-muted);line-height:1.55;max-width:42rem}html:not([data-js]) .faq-a{grid-template-rows:1fr;opacity:1}html:not([data-js]) .faq-a>*{visibility:visible}html:not([data-js]) .faq-chev{display:none}.closing{padding-block:1rem 4.5rem}.closing-row h2{max-width:28rem}.notfound .wrap{max-width:44rem}

/* GENERATED: reduced-motion and print policy (app, verbatim). Do not edit. */
@media (prefers-reduced-motion: reduce) {
  .reveal[data-inview] {
    animation-name: fade-in;
    animation-duration: var(--motion-base);
    animation-delay: 0ms;
  }
  ::view-transition-old(.page-exit),
  ::view-transition-new(.page-enter) {
    animation-name: fade-in;
    animation-duration: var(--motion-fast);
  }
  .lift:hover {
    translate: none;
  }
  .slide-indicator,
  .collapse-box,
  .collapse-box[data-open] {
    transition-duration: 0ms; /* position/size changes: instant is the honest no-motion version */
  }
  .collapse-box,
  .collapse-box[data-open] {
    transition: opacity var(--motion-base) var(--ease-out-soft);
  }
  .animate-fade-up {
    animation-name: fade-in;
  }
  .ember-glow,
  .smoke-wisp {
    animation: none;
  }
}

@media print {
  header, footer, .no-print { display: none !important; }
  body { background: white !important; color: black !important; font-size: 12pt; }
  .print-title { display: block !important; }
  .milestone-card { break-inside: avoid; }
  /* Nothing may be mid-animation or pre-reveal on paper. */
  .reveal, .animate-fade-up, .animate-fade-in, [style*="opacity"] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
  .collapse-box { grid-template-rows: 1fr !important; opacity: 1 !important; }
  .slide-indicator { display: none !important; }
  /* Ensure light text is readable on white */
  * { color: black !important; background: transparent !important; border-color: #ccc !important; }
}
