@font-face{font-family:"Plus Jakarta Sans";src:url("../fonts/PlusJakartaSans-Variable.woff2") format("woff2");font-weight:100 900;font-display:optional}
:where(#ft-landing-page *,#ft-landing-page *::before,#ft-landing-page *::after){box-sizing:border-box}
#ft-landing-page{--ink:#101828;--muted:#536174;--line:#dfe5ec;--paper:#fff;--wash:#f6f7f4;--soft:#eef2f6;--red:#d82027;--red-dark:#a81218;--navy:#14253f;--lime:#d9f08c;position:relative;left:50%;width:var(--ft-vw,100vw);max-width:var(--ft-vw,100vw);margin-left:calc(var(--ft-vw,100vw) / -2);margin-right:calc(var(--ft-vw,100vw) / -2);color:var(--ink);background:var(--paper);font-family:"Plus Jakarta Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65;overflow:clip}
#ft-landing-page :where(h1,h2,h3,p,ul,ol,figure){margin:0}
#ft-landing-page :where(h1,h2,h3,a,button,summary,input,select,textarea,figcaption){font-family:inherit}
#ft-landing-page :where(ul,ol){padding:0}
#ft-landing-page a{color:inherit}
.ft-lp-container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.ft-lp-section{padding:84px 0;border-top:1px solid var(--line)}
.ft-lp-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--red-dark);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ft-lp-kicker::before{content:"";width:28px;height:2px;background:currentColor}
.ft-lp-section-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(280px,1fr);gap:56px;align-items:end;margin-bottom:36px}
.ft-lp-section h2{max-width:720px;font-size:clamp(2rem,4vw,3.35rem);line-height:1.06;letter-spacing:-.045em}
.ft-lp-lede{max-width:680px;color:var(--muted);font-size:1.06rem}
.ft-lp-hero{position:relative;padding:82px 0 72px;background:linear-gradient(125deg,#fbfaf6 0%,#f7f7f3 62%,#eef2f6 100%)}
.ft-lp-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(20,37,63,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(20,37,63,.035) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,black,transparent 76%);pointer-events:none}
.ft-lp-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:58px;align-items:center}
.ft-lp-hero h1{max-width:640px;font-size:clamp(2.75rem,5.8vw,5.25rem);line-height:.98;letter-spacing:-.06em;text-wrap:balance}
.ft-lp-hero h1 span{color:var(--red)}
.ft-lp-hero-copy{max-width:610px;color:var(--muted);font-size:1.12rem}
.ft-lp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:28px}
.ft-lp-primary,.ft-lp-secondary{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:999px;padding:12px 22px;font-weight:800;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.ft-lp-primary{background:var(--red);color:#fff!important;box-shadow:0 12px 28px rgba(216,32,39,.22)}
.ft-lp-primary:hover{background:var(--red-dark);transform:translateY(-2px);text-decoration:none}
.ft-lp-secondary{border:1px solid var(--ink);background:transparent}
.ft-lp-secondary:hover{background:var(--ink);color:#fff;text-decoration:none}
.ft-lp-proof{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:26px!important;list-style:none;color:#38465a;font-size:.88rem}
.ft-lp-proof li::before{content:"✓";margin-right:7px;color:var(--red);font-weight:900}
.ft-lp-product-shot{position:relative;margin:0;border:1px solid #d8dee7;border-radius:24px;background:#fff;padding:12px;box-shadow:0 34px 80px rgba(20,37,63,.16);transform:rotate(1deg)}
.ft-lp-product-shot img{display:block;width:100%;height:auto;border-radius:15px}
.ft-lp-product-shot figcaption{padding:10px 6px 2px;color:var(--muted);font-size:.78rem}
.ft-lp-day-rail{display:grid;grid-template-columns:90px 1fr;gap:15px;align-items:center;position:absolute;left:-34px;bottom:54px;width:min(330px,72%);padding:14px;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 16px 42px rgba(20,37,63,.18);transform:rotate(-1deg)}
.ft-lp-ring{display:grid;place-items:center;width:74px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--red) 0 66%,#e8ebef 66% 100%);font-weight:900}
.ft-lp-ring::before{content:"16:8";display:grid;place-items:center;width:58px;aspect-ratio:1;border-radius:50%;background:#fff}
.ft-lp-day-rail strong{display:block;font-size:.9rem}.ft-lp-day-rail span{color:var(--muted);font-size:.78rem}
.ft-lp-ecosystem{border-block:1px solid var(--line);background:#fff}
.ft-lp-ecosystem-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.ft-lp-ecosystem a{display:grid;gap:6px;padding:22px;border-right:1px solid var(--line);text-decoration:none}
.ft-lp-ecosystem a:first-child{padding-left:0}
.ft-lp-ecosystem a:last-child{padding-right:0;border-right:0}
.ft-lp-ecosystem span{color:var(--red-dark);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ft-lp-ecosystem strong{color:var(--ink);font-size:.96rem;line-height:1.35}
.ft-lp-ecosystem a:hover strong{color:var(--red-dark)}
.ft-lp-loop{background:#fff}
.ft-lp-loop-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:44px;align-items:center}
.ft-lp-screen{margin:0;border:1px solid var(--line);border-radius:22px;background:#fff;padding:10px;box-shadow:0 24px 64px rgba(20,37,63,.1)}
.ft-lp-screen img{display:block;width:100%;height:auto;border-radius:14px}.ft-lp-screen figcaption{padding:9px 6px 1px;color:var(--muted);font-size:.78rem}
.ft-lp-steps{list-style:none;counter-reset:loop;display:grid;gap:12px}
.ft-lp-steps li{counter-increment:loop;display:grid;grid-template-columns:52px 1fr;gap:16px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--wash)}
.ft-lp-steps li::before{content:"0" counter(loop);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;font-size:.82rem;font-weight:900}
.ft-lp-steps h3{font-size:1.12rem}.ft-lp-steps p{color:var(--muted);font-size:.93rem}
.ft-lp-after{background:var(--navy);color:#fff}
.ft-lp-after .ft-lp-kicker{color:var(--lime)}.ft-lp-after .ft-lp-lede{color:#c6d0dc}
.ft-lp-after-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start}
.ft-lp-clock{position:sticky;top:28px;padding:26px;border:1px solid rgba(255,255,255,.15);border-radius:24px;background:rgba(255,255,255,.06)}
.ft-lp-clock strong{display:block;font-size:clamp(2.7rem,6vw,5rem);line-height:1;letter-spacing:-.07em}.ft-lp-clock p{color:#c6d0dc}
.ft-lp-events{list-style:none;position:relative;display:grid;gap:16px}.ft-lp-events::before{content:"";position:absolute;left:33px;top:22px;bottom:22px;width:2px;background:rgba(217,240,140,.4)}
.ft-lp-events li{position:relative;display:grid;grid-template-columns:68px 1fr;gap:18px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.06)}
.ft-lp-event-time{z-index:1;display:grid;place-items:center;height:36px;border-radius:999px;background:var(--lime);color:var(--navy);font-size:.78rem;font-weight:900}.ft-lp-events h3{font-size:1rem}.ft-lp-events p{color:#c6d0dc;font-size:.9rem}
.ft-lp-food{background:var(--wash)}
.ft-lp-recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ft-lp-recipe{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff}.ft-lp-recipe img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.ft-lp-recipe-copy{padding:18px}.ft-lp-recipe h3{font-size:1.05rem;line-height:1.3}.ft-lp-recipe p{color:var(--muted);font-size:.88rem}.ft-lp-recipe a{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;color:var(--red-dark);font-weight:800}
.ft-lp-food-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.ft-lp-trust{background:#fff}.ft-lp-trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ft-lp-trust-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--wash)}.ft-lp-trust-card h3{font-size:1.05rem}.ft-lp-trust-card p{color:var(--muted);font-size:.92rem}.ft-lp-trust-card a{display:inline-flex;align-items:center;min-height:44px;color:var(--red-dark);font-weight:800}
.ft-lp-status{color:var(--muted);font-size:.82rem}.ft-lp-status time{font-weight:800;color:var(--ink)}
.ft-lp-final{background:linear-gradient(135deg,#f5f1e8 0%,#fff 52%,#f4e9e9 100%)}
.ft-lp-final-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:64px;align-items:start}
.ft-lp-final-copy p{color:var(--muted)}
.ft-lp-faq{display:grid;gap:10px}.ft-lp-faq details{border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 18px}.ft-lp-faq summary{cursor:pointer;padding:17px 28px 17px 0;font-weight:800;list-style:none;position:relative}.ft-lp-faq summary::-webkit-details-marker{display:none}.ft-lp-faq summary::after{content:"+";position:absolute;right:0;top:14px;font-size:1.35rem;color:var(--red)}.ft-lp-faq details[open] summary::after{content:"−"}.ft-lp-faq details p{padding:0 0 17px;color:var(--muted);font-size:.92rem}
#ft-landing-page :where(a,button,summary):focus-visible{outline:3px solid var(--red)!important;outline-offset:4px!important;box-shadow:0 0 0 5px rgba(216,32,39,.16)}
@media(max-width:900px){.ft-lp-section-head,.ft-lp-hero-grid,.ft-lp-loop-grid,.ft-lp-after-grid,.ft-lp-final-grid{grid-template-columns:1fr}.ft-lp-section-head{gap:18px}.ft-lp-hero-grid{gap:50px}.ft-lp-product-shot{transform:none}.ft-lp-clock{position:static}.ft-lp-recipe-grid,.ft-lp-trust-grid{grid-template-columns:1fr}.ft-lp-recipe{display:grid;grid-template-columns:180px 1fr}.ft-lp-recipe img{height:100%;aspect-ratio:auto}.ft-lp-day-rail{left:14px}.ft-lp-ecosystem-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-lp-ecosystem a:nth-child(even){border-right:0}.ft-lp-ecosystem a:nth-child(-n+2){border-bottom:1px solid var(--line)}.ft-lp-ecosystem a:first-child{padding-left:22px}.ft-lp-ecosystem a:last-child{padding-right:22px}}
@media(max-width:600px){.ft-lp-container{width:min(100% - 28px,1180px)}.ft-lp-section{padding:62px 0}.ft-lp-hero{padding:58px 0 62px}.ft-lp-hero h1{font-size:clamp(2.55rem,14vw,4rem)}.ft-lp-actions{align-items:stretch;flex-direction:column}.ft-lp-primary,.ft-lp-secondary{width:100%}.ft-lp-product-shot{padding:7px;border-radius:16px}.ft-lp-day-rail{position:static;width:100%;margin-top:10px;transform:none}.ft-lp-recipe{display:block}.ft-lp-recipe img{height:auto;aspect-ratio:4/3}.ft-lp-events li{grid-template-columns:58px 1fr;gap:12px;padding:14px}.ft-lp-events::before{left:28px}.ft-lp-trust-card{padding:20px}.ft-lp-ecosystem-grid{grid-template-columns:1fr}.ft-lp-ecosystem a{padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}.ft-lp-ecosystem a:last-child{padding-right:0;border-bottom:0}.ft-lp-ecosystem a:first-child{padding-left:0}}
@media(max-width:600px){.ft-lp-hero .ft-lp-actions{width:calc(100% - 64px)}}
@media(prefers-reduced-motion:reduce){#ft-landing-page *,#ft-landing-page *::before,#ft-landing-page *::after{scroll-behavior:auto!important;transition:none!important}}

/* App parity, 2026-07-25. Remaps the landing's local colour vocabulary onto the
   FastingOS app palette so the landing stops being a separate visual identity.
   Structure is owner-accepted and deliberately untouched: this is colour only.
   --paper stays #fff so cards keep reading as cards against the warm canvas.
   Authority: fastingos/DESIGN.md. */
#ft-landing-page {
  --ink: #0F172A;
  /* App muted (#64748B) measures 4.3:1 on the warm canvas and on the wash
     surfaces, under AA. Use the app's supporting ink instead. */
  --muted: #475569;
  --line: #E2E8F0;
  --wash: #F5F3F0;
  --soft: #F1F5F9;
  --red: #DC2626;
  --red-dark: #B91C1C;
  --navy: #243B4A;
  background: #FAF9F7;
}

/* Legibility pass, 2026-08-11. The Foxiz theme sets html{font-size:15px}, so every
   rem size in this sheet rendered 6.25% under its intended value: body copy landed
   between 11.7px and 16.8px. Sizes below are px on purpose - they must not depend on
   a root the theme owns. Structure and colour are untouched.
   Floor: prose >= 17px, headings >= 18px, captions and uppercase eyebrows may be
   smaller because they are labels, not reading text. Authority: fastingos/DESIGN.md. */
#ft-landing-page {
  font-size: 17px;
}
#ft-landing-page .ft-lp-hero-copy { font-size: 19px; }
#ft-landing-page .ft-lp-lede { font-size: 18px; }
#ft-landing-page .ft-lp-steps h3,
#ft-landing-page .ft-lp-recipe h3,
#ft-landing-page .ft-lp-trust-card h3,
#ft-landing-page .ft-lp-events h3 { font-size: 18px; }
#ft-landing-page .ft-lp-steps p,
#ft-landing-page .ft-lp-events p,
#ft-landing-page .ft-lp-clock p,
#ft-landing-page .ft-lp-recipe p,
#ft-landing-page .ft-lp-trust-card p,
#ft-landing-page .ft-lp-faq details p,
#ft-landing-page .ft-lp-final-copy p { font-size: 17px; }
#ft-landing-page .ft-lp-faq summary { font-size: 18px; }
#ft-landing-page .ft-lp-ecosystem strong { font-size: 17px; }
#ft-landing-page .ft-lp-proof { font-size: 16px; list-style: none; padding-left: 0; }
#ft-landing-page .ft-lp-proof li { list-style: none; }
#ft-landing-page .ft-lp-day-rail strong { font-size: 16px; }
#ft-landing-page .ft-lp-status { font-size: 15px; }
#ft-landing-page .ft-lp-steps li::before { font-size: 15px; }
#ft-landing-page .ft-lp-product-shot figcaption,
#ft-landing-page .ft-lp-screen figcaption,
#ft-landing-page .ft-lp-day-rail span,
#ft-landing-page .ft-lp-event-time { font-size: 14px; }
#ft-landing-page .ft-lp-kicker,
#ft-landing-page .ft-lp-ecosystem span { font-size: 13px; }

/* Spacing restore, audit D22. The id-level reset near the top of this file
   deliberately beats Foxiz's .rbct margins, but it also zeroed the margins the
   section rules set, so the h1 touched the hero copy. Same values as before,
   scoped to the landing id so they outrank the reset. */
#ft-landing-page .ft-lp-hero h1 { margin: 18px 0 22px; }
#ft-landing-page .ft-lp-steps p { margin-top: 4px; }
#ft-landing-page .ft-lp-clock p { margin-top: 14px; }
#ft-landing-page .ft-lp-events p { margin-top: 5px; }
#ft-landing-page .ft-lp-recipe p { margin-top: 7px; }
#ft-landing-page .ft-lp-trust-card p { margin-top: 8px; }
#ft-landing-page .ft-lp-status { margin-top: 22px; }
#ft-landing-page .ft-lp-final-copy h2 { margin-top: 16px; }
#ft-landing-page .ft-lp-final-copy p:not(.ft-lp-kicker) { margin-top: 18px; }

/* Three resource links, one row, when the public recipe pages are off (react-loader.php). */
.ft-lp-ecosystem-grid.ft-lp-ecosystem-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.ft-lp-ecosystem-grid--three a:nth-child(-n+2){border-bottom:0}.ft-lp-ecosystem-grid--three a:nth-child(2){border-right:1px solid var(--line)}}
@media(max-width:600px){.ft-lp-ecosystem-grid.ft-lp-ecosystem-grid--three{grid-template-columns:1fr}.ft-lp-ecosystem-grid--three a:nth-child(-n+2){border-bottom:1px solid var(--line)}.ft-lp-ecosystem-grid--three a:nth-child(2){border-right:0}}
