:root {
  --p-bg: #ffffff; --p-surface: #f9fafb; --p-ink: #1f2937; --p-muted: #6b7280;
  --p-accent: #0f766e; --p-accent-ink: #ffffff; --p-action: #0f766e; --p-action-ink: #ffffff;
  --p-inv-bg: #1f2937; --p-inv-surface: #2c3643; --p-inv-ink: #ffffff; --p-inv-muted: #a2a7ae;
  --p-inv-accent: #ffffff; --p-inv-accent-ink: #1f2937; --p-inv-action: #ffffff; --p-inv-action-ink: #1f2937;
  --font-display: "Geist", system-ui, sans-serif;
  --font-text: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --display-weight: 500;
  --display-tracking: -0.035em;
  --display-tracking-xl: -0.045em;
}
[hidden] { display: none !important; }
html { scroll-behavior: auto; scroll-padding-top: calc(var(--nav) + 24px); }
body { min-width: 0; }
button, input, select { font: inherit; }
button, a, input, select, summary { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .5; }
input, select { color: var(--p-ink); background: #fff; }
input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #0f766e; outline-offset: 4px; }
input[type=number] { min-width: 0; width: 100%; border: 0; min-height: 48px; padding: 10px 12px; border-radius: 8px; }
select { min-height: 48px; width: 100%; border: 1px solid #b8c4c2; border-radius: 8px; padding: 8px 12px; }
fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
legend { padding: 0; font-weight: 500; }
.nav { background: var(--p-bg); }
.nav__bar { gap: 24px; }
.nav__logo.brand { display: flex; gap: 10px; font-size: 20px; white-space: nowrap; letter-spacing: -.7px; }
.brand-mark { width: 44px; height: 44px; flex: 0 0 44px; overflow: hidden; display: block; }
.brand-mark img { width: 84px; height: 84px; max-width: none; transform: translate(-20px,-15px); }
.nav__links { display: flex !important; flex: 0 0 auto; margin-left: auto; gap: 24px; }
.nav__link { min-height: 44px; display: inline-flex; align-items: center; }
.nav__link[aria-current] { color: var(--p-accent); text-decoration: underline; text-underline-offset: 7px; }
.skip-link { position: fixed; top: 12px; left: 24px; z-index: 1000; }
.skip-link:focus { top: 12px; transform: none; background: #fff; color: #1f2937; }
.hero__proof { color: var(--p-muted); font-size: 14px; line-height: 1.5; }
.hero__art { background-color: #eaf3f0; }
.app-frame { background: #fff; border: 1px solid #dce5e2; border-radius: 12px; color: var(--p-ink); }
.assessment-window { min-height: 580px; }
.window-bar { display: flex; align-items: center; gap: 8px; padding: 18px 24px; border-bottom: 1px solid #e3eae7; font-size: 14px; padding-right: var(--ly-cut-room); }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--p-accent); }
.window-count { margin-left: auto; white-space: nowrap; color: var(--p-muted); font-variant-numeric: tabular-nums; }
.window-content { padding: 32px; padding-right: calc(var(--ly-cut-room) + 24px); }
.form-phase { margin-bottom: 20px; color: var(--p-accent); font-size: 14px; font-weight: 500; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: 15px; }
.field > span:first-child { font-weight: 500; }
.input-unit { display: flex; align-items: center; border: 1px solid #b8c4c2; border-radius: 8px; min-width: 0; background: white; }
.input-unit > span { padding-right: 14px; font-size: 14px; color: var(--p-muted); flex: none; }
.input-unit:focus-within { box-shadow: 0 0 0 2px #0f766e; }
.input-unit input:focus-visible { outline: 2px solid var(--p-accent); outline-offset: -2px; }
.hint { color: var(--p-muted); font-size: 14px; line-height: 1.6; margin-top: 12px; }
.window-content .field { margin-top: 20px; }
.window-content .btn { margin-top: 14px; width: 100%; }
.field-error { color: #a62b24; font-size: 14px; line-height: 1.5; margin-block: 12px; }
.field-error:empty { margin: 0; }
.window-privacy { font-size: 12px; color: var(--p-muted); line-height: 1.6; margin-top: 24px; }
.mini-progress { background: #eef2ef; height: 4px; border-radius: 2px; margin-top: 32px; overflow: hidden; }
.mini-progress i { display: block; width: 12.5%; height: 100%; background: var(--p-accent); }
.hero__art > .ly-piece--note { left: 32px; bottom: 32px; width: 300px; z-index: 2; }
.result-preview { background: #fff; border-radius: 12px; border: 1px solid #dce5e2; padding: 24px 24px 52px; }
.preview-heading { font-size: 16px; line-height: 1.4; margin: 0 0 16px; letter-spacing: -.2px; }
.preview-line { display: flex; align-items: center; gap: 10px; font-size: 14px; padding: 7px 0; }
.preview-line > span:first-child { color: var(--p-accent); }
.result-preview .loop-pause { width: 44px; height: 44px; }
.section-lead { max-width: 60ch; margin-top: 24px; font-size: var(--t-lead); line-height: 1.6; color: var(--p-muted); }
#how-it-works .steps { display: flex; list-style: none; padding: 0; margin-top: 96px; gap: 40px; }
.steps li { flex: 1; display: flex; gap: 20px; padding-top: 24px; border-top: 2px solid #cbdad4; }
.step-index { color: var(--p-accent); font-size: 32px; line-height: 1; flex: 0 0 24px; font-variant-numeric: tabular-nums; }
.steps h3 { font-size: 22px; letter-spacing: -.6px; margin: 0 0 18px; }
.steps p { font-size: 16px; line-height: 1.6; color: var(--p-muted); }
.quiz-layout { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; margin-top: 48px; align-items: start; }
.quiz-context { grid-column:1/span 5; }
.quiz-frame { grid-column:7/-1; }
.quiz-context { padding-top: 0; }
.quiz-context h3 { font-size: 24px; margin-bottom: 24px; }
.quiz-context p { font-size: 15px; }
progress { width: 100%; height: 8px; margin-top: 24px; border: 0; accent-color: var(--p-accent); border-radius: 8px; overflow: hidden; }
progress::-webkit-progress-bar { background: #e7eeeb; }
progress::-webkit-progress-value { background: var(--p-accent); }
.quiz-frame { padding: 32px; }
#assessment { height: auto; min-height: 100svh; }
#assessment > .wrap { height: auto; }
.quiz-frame legend { font-size: 28px; line-height: 1.3; letter-spacing: -.7px; }
.question-help { margin: 12px 0 24px; color: var(--p-muted); font-size: 15px; line-height: 1.6; }
.quiz-actions { display: flex; gap: 12px; justify-content: space-between; margin-top: 28px; }
.quiz-actions .btn { white-space: normal; }
.choice-list { display: grid; gap: 10px; }
.choice { position: relative; display: flex; align-items: center; flex-wrap: wrap; text-align: left; min-height: 54px; padding: 14px 44px 14px 18px; border-radius: 8px; border: 1px solid #c8d5cf; background: white; color: var(--p-ink); }
.choice small { width: 100%; font-size: 13px; color: var(--p-muted); padding-top: 4px; }
.choice-arrow { position: absolute; right: 18px; color: var(--p-accent); }
.choice:hover, .choice.is-selected { background: #edf6f2; border-color: var(--p-accent); }
.unit-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.unit-switch { min-height: 44px; min-width: 70px; padding: 6px 14px; border: 1px solid #b8c4c2; border-radius: 8px; color: var(--p-accent); background: #fff; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
#your-plan { height: auto; min-height: 100svh; }
#your-plan > .wrap { height: auto; }
.result-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.results-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 40px; }
.result-module { padding: 28px; background: var(--p-surface); border-radius: 12px; min-width: 0; }
.result-module h3 { font-size: 24px; margin: 0 0 24px; }
.result-module p { font-size: 15px; line-height: 1.65; }
.result-module .btn { margin-top: 24px; }
.result-wide { grid-column: 1/-1; }
.body-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.body-stats dt { color: var(--p-muted); font-size: 14px; margin-bottom: 12px; }
.body-stats dd { font-size: 22px; margin: 0; letter-spacing: -.6px; font-variant-numeric: tabular-nums; }
.calorie-targets { display: grid; gap: 8px; }
.calorie-targets > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: 8px; }
.calorie-targets .is-target { background: #dceee7; color: #0c625c; }
.calorie-targets dt { font-size: 14px; }
.calorie-targets dd { margin: 0; font-size: 24px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.calorie-targets small { font-size: 13px; }
.macro-numbers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.macro-numbers > div { display: flex; flex-direction: column; gap: 12px; }
.macro-numbers span { font-size: 13px; color: var(--p-muted); }
.macro-numbers strong { font-size: 28px; letter-spacing: -.8px; font-weight: 500; font-variant-numeric: tabular-nums; }
.macro-numbers small { font-size: 14px; }
.macro-bar { display: flex; height: 12px; border-radius: 6px; margin-top: 24px; overflow: hidden; }
.macro-bar i { min-width: 0; }
.macro-protein { background: #0f766e; }
.macro-fat { background: #f59e0b; }
.macro-carbs { background: #9cbdb3; }
.training-days { margin-top: 24px; }
.training-days details, .faq-list details { border-bottom: 1px solid #d5dfdb; }
.training-days summary, .faq-list summary { padding: 18px 32px 18px 0; cursor: pointer; min-height: 54px; line-height: 1.5; }
.exercise-list { margin: 0; padding: 0 0 20px 24px; }
.exercise-list li { padding: 12px 0; }
.exercise-list li > div { display: flex; flex-direction: column; gap: 6px; }
.exercise-list li span { color: var(--p-muted); font-size: 14px; }
.exercise-list p { margin-top: 8px; }
.cardio-number { font-size: 24px !important; color: var(--p-accent); margin-bottom: 20px; }
.progression-list { padding-left: 20px; }
.progression-list li { padding-left: 6px; margin-bottom: 20px; }
.progression-list strong { font-size: 15px; }
.progression-list p { margin-top: 6px; }
.table-scroll { max-width: 100%; overflow-x: auto; margin-block: 24px; }
table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
th, td { text-align: right; padding: 12px 8px; border-bottom: 1px solid #d5dfdb; }
th:first-child { text-align: left; }
thead th { font-weight: 500; }
.disclaimer { font-size: 14px; color: var(--p-muted); line-height: 1.6; margin-top: 32px; }
.example-result { margin-top: 56px; padding: 40px; }
.example-numbers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.example-numbers > div { display: flex; flex-direction: column; gap: 12px; }
.example-numbers strong { font-size: var(--t-stat); font-weight: 500; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.example-numbers span { font-size: 15px; color: var(--p-muted); }
.macro-entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; margin-top: 64px; align-items: center; }
.macro-mini { padding: 40px; }
.macro-mini strong { font-size: var(--t-stat); font-weight: 500; letter-spacing: -1px; }
.macro-mini p { margin-top: 16px; line-height: 1.6; }
.faq-list { max-width: 880px; margin-top: 40px; }
.faq-list summary { font-size: 20px; font-weight: 500; }
.faq-list p { padding: 0 0 24px; color: var(--p-muted); font-size: 16px; line-height: 1.7; }
.faq-item { margin-bottom: 16px; }
.faq-item h3 { font-size: 20px; margin:0 0 10px; letter-spacing:-.4px; }
.faq-item p { margin:0; padding-bottom:12px; }
.footer { padding-block: 64px; }
.footer.closing { height:auto; min-height:0; }
.footer-grid { display: block; }
.footer strong { font-size: 22px; letter-spacing: -.5px; }
.footer p { max-width: 48ch; font-size: 14px; line-height: 1.6; margin-top: 16px; }
.footer nav { display: flex; flex-direction: row; flex-wrap:wrap; gap:24px; align-items: flex-start; margin-top:24px; }
.footer nav a { min-height: 44px; display: inline-flex; align-items: center; }
.footer-note { grid-column: 1/-1; color: var(--p-inv-muted); }
.back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 20px; font-size: 14px; color: var(--p-accent); }
main > .hero--compact { height: auto; min-height: 100svh; }
.hero--compact .hero__lead { max-width: 62ch; margin-top: 24px; }
.hero--compact h1 { font-size: clamp(40px,4.4vw,64px); }
.calculator-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; margin-top: 40px; align-items: start; }
.calculator-form, .calculator-result { padding: 32px; }
.calculator-form .form-grid { margin-top: 24px; }
.calculator-result h2 { font-size: 24px; margin-bottom: 28px; }
.mode-switch { display: flex; flex-direction: column; gap: 8px; margin-bottom: 28px; }
.mode-switch legend { font-size: 15px; margin-bottom: 12px; }
.mode-switch label { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; }
.mode-switch input { width: 20px; height: 20px; accent-color: var(--p-accent); }
#macro-body-details { margin-top: 24px; padding-top: 24px; border-top: 1px solid #d5dfdb; }
#macro-body-details legend { float: left; width: 100%; font-size: 14px; }
#macro-body-details .form-grid { clear: both; }
#macro-form > button { margin-top: 24px; }
.macro-interpret { line-height: 1.6; font-size: 15px; margin-top: 20px; }
#formula p, body[data-page=privacy] main p { max-width: 76ch; margin-top: 24px; line-height: 1.7; }
.source-links { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 32px; }
.source-links a { display: inline-flex; min-height: 44px; align-items: center; }
.noscript { padding: 24px; background: #fff3dd; }
@media(min-width:1024px) { #assessment { --h: 1; } }
/* The live form stays unobstructed when the collage has less space. */
@media(max-width:1100px) { .hero__art > .ly-piece--note { display:none; } }
@media(max-width:1023px) {
 .hero__art > .ly-piece--note { left: 16px; bottom: 16px; width: 270px; }
 .quiz-layout { gap: 24px; grid-template-columns: minmax(0,1fr); }
 .quiz-context, .quiz-frame { grid-column:1; }
 .quiz-frame { padding: 24px; }
 .macro-entry-grid { gap: 32px; }
 .body-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .calculator-layout { gap: 20px; }
 .calculator-form, .calculator-result { padding: 24px; }
 .macro-numbers { gap: 10px; }
 .macro-numbers strong { font-size: 24px; }
}
@media(max-width:767px) {
 .nav__bar { flex-wrap: wrap; gap: 0; justify-content: flex-start; }
 .nav__links { display: flex !important; flex: 0 0 100%; width: 100%; max-width:100%; gap: 24px; margin: 0; }
 .nav__links .nav__link { padding-inline: 0; font-size: 14px; }
 :root { --nav: 108px; }
 .nav__logo.brand { font-size: 18px; flex:0 0 100%; }
 .calculator-layout, .quiz-layout, .macro-entry-grid { grid-template-columns: minmax(0,1fr); }
 .quiz-context { padding-top: 0; }
 .quiz-context h3 { font-size: 20px; margin-bottom: 12px; }
 .quiz-context .hint { display: none; }
 progress { margin-top: 12px; }
 .quiz-layout { gap: 24px; margin-top: 32px; }
 #how-it-works .steps { flex-direction: column; margin-top: 48px; gap: 28px; }
 .steps li { padding-top: 20px; }
 .steps h3 { margin-bottom: 8px; }
 .results-grid { grid-template-columns: minmax(0,1fr); }
 .example-result { padding: 24px; }
 .example-numbers { gap: 16px; }
 .example-numbers strong { font-size: var(--t-stat); }
 .example-numbers span { font-size: 12px; }
 .footer-grid { grid-template-columns: 1fr; gap: 28px; }
 .footer nav { flex-direction:column; gap:0; }
 .result-actions .btn { width: 100%; }
 .hero--compact { padding-top: calc(var(--nav) + 32px); }
}
@media(max-width:639px) {
 .hero__text > * + * { margin-top: 18px; }
 .hero__text > .btn-row { margin-top: 22px; }
 .hero__lead { font-size: 16px !important; line-height: 1.5 !important; }
 .hero__proof { font-size: 12px; }
 .hero__art { min-height: 210px; }
 .assessment-window { min-height: 370px; }
 .window-content { padding: 16px; padding-right: calc(var(--ly-cut-room) + 8px); }
 .window-bar { padding: 12px 16px; padding-right: var(--ly-cut-room); }
 .window-content .form-phase { margin-bottom: 12px; }
 .window-content .field { margin-top: 12px; }
 .window-privacy, .mini-progress { display: none; }
 .hero__art > .ly-piece:not(.ly-piece--main) { display: none; }
 .hero--collage h1 { font-size: 40px; }
 .quiz-frame, .result-module { padding: 20px; }
 .quiz-frame legend { font-size: 24px; }
 .quiz-actions { flex-direction: column-reverse; }
 .quiz-actions .btn { width: 100%; }
 .choice { min-height: 52px; }
 .body-stats { gap: 24px 12px; }
 .body-stats dd { font-size: 18px; }
 .result-module h3 { font-size: 22px; }
 .form-grid { gap: 16px; }
 .macro-numbers strong { font-size: 24px; }
 .macro-numbers span { font-size: 12px; }
 .example-numbers { grid-template-columns: 1fr; }
 .example-numbers > div { flex-direction: row; justify-content: space-between; align-items: baseline; }
 .example-numbers span { font-size: 14px; }
 .example-numbers strong { font-size: var(--t-stat); }
 .macro-mini { padding: 24px; }
 .btn-row > .btn { width: 100%; }
 .faq-list summary { font-size: 18px; }
 .hero--compact h1 { font-size: 40px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media print {
 @page { margin: 16mm; }
 html, body { height: auto !important; background: #fff !important; color: #000 !important; font-size: 10pt; }
 body > :not(main), main > :not(#your-plan) { display: none !important; }
 main, #your-plan, #your-plan > .wrap { display: block !important; height: auto !important; min-height: 0 !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
 #your-plan h2 { font-size: 24pt; }
 #your-plan .section-lead, #your-plan .disclaimer { font-size: 9pt; }
 .result-actions, #your-plan button { display: none !important; }
 .results-grid { display: block; margin-top: 20px; }
 .result-module { background: #fff; padding: 12px 0; border-bottom: 1px solid #bbb; break-inside: avoid; }
 .result-module h3 { font-size: 14pt; margin-bottom: 12px; }
 .result-module p, .exercise-list li span { font-size: 9pt; }
 .training-days details { break-inside: avoid; }
 .training-days details > * { display: block !important; }
 .training-days details::details-content { display: contents !important; content-visibility:visible !important; }
 .training-days summary { font-size: 12pt; padding: 8px 0; }
 .exercise-list li { padding: 6px 0; }
 .exercise-list p { margin-top: 3px; }
 .table-scroll { overflow: visible; }
 a { color: #000; text-decoration: none; }
 .macro-bar { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
 main > #your-plan[hidden] { display: none !important; }
}

.optional-measures { margin-top:24px; padding-top:16px; border-top:1px solid #d5dfdb; }
.optional-measures summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-size:14px; color:var(--p-accent); }
.optional-measures .field { margin-top:20px; }
.optional-measures .btn { margin-top:20px; }
.scope-note { margin-bottom:24px; }
.section-lead, .question-help, .steps p, .faq-list p { color: var(--p-ink); }
.example-result .hint { color:var(--p-ink); }
.faq-action { margin-top:24px; }
