:root{color-scheme:light;--paper: #f3efe5;--ink: #171714;--muted: #5c5a52;--wash: #dfdbd0;--white: #fffdf7;--mark: #a12c22;--success: #245b3a;--rule: 1px solid var(--ink);--serif: Georgia, "Times New Roman", serif;--sans: Arial, Helvetica, sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button,.button,select,input[type=range],input[type=file]{min-height:44px}button{cursor:pointer}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}img{max-width:100%;display:block}p{max-width:68ch}h1,h2,h3{font-family:var(--serif);line-height:1.02;margin-block:0 .5em;text-wrap:balance}h1{font-size:clamp(2.8rem,8vw,6.8rem);letter-spacing:-.055em}h2{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.035em}h3{font-size:1.35rem}:focus-visible{outline:3px solid var(--mark);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;padding:12px 18px;background:var(--ink);color:var(--paper)}.skip-link:focus{top:16px}.route-announcer{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.demo-banner{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px max(24px,calc((100vw - 1440px)/2));background:var(--mark);color:var(--white);font-size:.82rem;letter-spacing:.035em}.demo-actions{display:flex;align-items:center;gap:18px;white-space:nowrap}.demo-banner a,.demo-banner button{color:var(--white)}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;padding:0 4px}.site-header{border-bottom:2px solid var(--ink)}.header-inner{max-width:1440px;min-height:72px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:inline-flex;align-items:baseline;gap:12px;text-decoration:none;font-family:var(--serif);font-size:1.2rem;font-weight:700}.wordmark>span:first-child{padding-right:12px;border-right:var(--rule);font:800 .78rem/1 var(--sans);letter-spacing:.12em}.site-header nav,.site-footer nav{display:flex;gap:clamp(16px,3vw,32px);font-size:.9rem;font-weight:700}.broadsheet-grid{max-width:1440px;margin:auto;padding:clamp(48px,8vw,112px) 24px 64px;display:grid;grid-template-columns:minmax(0,7fr) minmax(320px,5fr);gap:clamp(32px,6vw,88px);border-bottom:var(--rule)}.hero-copy{align-self:center}.kicker,.label{margin:0 0 16px;font-size:.76rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.dek{max-width:51ch;margin:24px 0 28px;font:1.22rem/1.5 var(--serif)}.hero-action{display:flex;align-items:center;gap:18px;max-width:610px}.hero-action span{max-width:25ch;color:var(--muted);font-size:.86rem;line-height:1.35}.secondary-start{margin-top:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:var(--rule);padding:10px 18px;background:var(--paper);font-weight:800;line-height:1.15;text-align:center;text-decoration:none;box-shadow:none}.button:hover{background:var(--wash)}.button:active{transform:translateY(1px)}.button.primary{background:var(--ink);color:var(--paper)}.button.primary:hover{background:#31312d}.button.secondary{background:transparent}.button.danger{border-color:var(--mark);color:var(--mark);background:transparent}.button.compact{min-height:44px;padding:8px 14px;font-size:.86rem}.plain-facts{margin:32px 0 0;padding:18px 0 0;border-top:var(--rule);display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;font-size:.84rem;font-weight:700}.plain-facts li:before{content:"■";margin-right:8px;color:var(--mark);font-size:.65em}.hero-art{margin:0;align-self:start;padding-top:16px;border-top:8px solid var(--ink)}.hero-art img{width:100%;aspect-ratio:3 / 2;object-fit:cover;filter:grayscale(1) contrast(1.08);mix-blend-mode:multiply}.hero-art figcaption{padding:10px 0;border-bottom:var(--rule);font-size:.8rem;color:var(--muted)}.preview-section,.how-section,.limits-section,.recent-logs,.data-controls{max-width:1200px;margin:0 auto;padding:clamp(64px,9vw,112px) 24px}.section-folio{display:flex;justify-content:space-between;padding-bottom:8px;margin-bottom:24px;border-bottom:var(--rule);font-size:.74rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.preview-sheet{margin-top:40px;padding:32px;display:grid;grid-template-columns:1fr auto 1fr;gap:32px;align-items:center;background:var(--white);border:var(--rule);box-shadow:10px 10px 0 var(--wash)}.preview-sheet p{margin:4px 0}.preview-sheet ins{color:var(--mark);font-weight:800;text-decoration:none}.preview-arrow{font:3rem/1 var(--serif);color:var(--mark)}.how-section{max-width:none;border-block:var(--rule)}.how-section>*{max-width:1200px;margin-inline:auto}.steps{display:grid;grid-template-columns:repeat(3,1fr);padding:0;margin-top:48px;list-style:none;border-block:var(--rule)}.steps li{padding:24px;border-right:var(--rule)}.steps li:last-child{border-right:0}.steps li>span{display:block;margin-bottom:48px;color:var(--mark);font-size:.78rem;font-weight:800}.columns{columns:2;column-gap:64px;column-rule:var(--rule);font:1.1rem/1.6 var(--serif)}.columns p{margin-top:0;break-inside:avoid}.app-page,.form-page,.page,.legal-page,.not-found{max-width:1440px;margin:auto;padding:clamp(40px,7vw,88px) 24px}.app-intro{display:grid;grid-template-columns:1fr minmax(260px,.7fr);gap:24px;padding-bottom:32px;border-bottom:4px solid var(--ink)}.app-intro .kicker{grid-column:1 / -1}.app-intro h1{font-size:clamp(2.8rem,6vw,5.5rem)}.app-intro>p:not(.kicker){margin-top:8px;font:1.1rem/1.5 var(--serif)}.offline-note{grid-column:1 / -1;max-width:none;margin:0;padding:12px;background:var(--ink);color:var(--paper);font-weight:700}.app-grid{display:grid;grid-template-columns:minmax(250px,3fr) minmax(0,9fr);gap:0;border-bottom:var(--rule)}.meal-library{padding:32px 24px 32px 0;border-right:var(--rule)}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.library-heading h2{margin:0;font-size:1.6rem}.meal-library ul{margin:24px 0 0;padding:0;list-style:none;border-top:var(--rule)}.meal-library li{border-bottom:var(--rule)}.meal-library li a{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:16px;padding:12px 10px;text-decoration:none}.meal-library li a:hover,.meal-library li a.active{background:var(--wash)}.meal-library li a.active{box-shadow:inset 5px 0 0 var(--mark)}.meal-library strong,.meal-library small{display:block}.meal-library small{margin-top:4px;color:var(--muted)}.empty-state{grid-column:1 / -1;padding:64px 0}.log-workspace{padding:32px 0 56px 40px;min-width:0}.meal-heading{display:flex;justify-content:space-between;align-items:start;gap:24px;padding-bottom:24px;border-bottom:var(--rule)}.meal-heading h2{font-size:clamp(2rem,3vw,3.1rem)}.heading-actions{display:flex;gap:8px}.portion-control{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,3fr) 88px;gap:18px;align-items:center;padding:28px 0;border-bottom:var(--rule)}.portion-control label{display:flex;flex-direction:column}.portion-control label span{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.portion-control label strong{font:2rem/1 var(--serif);color:var(--mark)}input[type=range]{width:100%;accent-color:var(--mark)}.number-input{width:100%}fieldset{min-width:0}.log-ingredients{margin:28px 0;padding:0;border:0}.log-ingredients>legend{margin-bottom:16px;font:700 1.35rem var(--serif)}.log-ingredient{display:grid;grid-template-columns:2fr 1fr 1.1fr;gap:18px;align-items:center;min-height:82px;padding:12px 0;border-top:var(--rule)}.log-ingredient:last-child{border-bottom:var(--rule)}.log-ingredient label{display:block;font-weight:800}.log-ingredient small{color:var(--muted)}.log-ingredient select{display:block;width:100%;max-width:280px;margin-top:4px;border:var(--rule);background:var(--white)}.amount-label input{width:100px}.delta{margin:0;color:var(--mark);font-size:.82rem;font-weight:800}input,select,textarea{border:var(--rule);border-radius:0;background:var(--white);padding:9px 10px}.budget-section{margin-top:40px}.nutrition-table{border-top:4px solid var(--ink)}.nutrition-row{display:grid;grid-template-columns:1.2fr 1fr 1.4fr 1fr;align-items:center;gap:12px;min-height:64px;border-bottom:var(--rule);font-variant-numeric:tabular-nums}.nutrition-row>strong{font:1.65rem var(--serif)}.nutrition-row small{font:.75rem var(--sans)}.band-state{font-weight:800}.band-state.within{color:var(--success)}.band-state.above,.band-state.below{color:var(--mark)}.form-actions{display:flex;align-items:center;gap:16px;margin-top:32px}.form-actions>span{color:var(--muted);font-size:.84rem}.recent-logs,.data-controls{padding-inline:0;border-bottom:var(--rule)}.log-table{margin-top:24px;border-top:3px solid var(--ink);font-variant-numeric:tabular-nums}.log-row{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:12px;padding:12px;border-bottom:var(--rule)}.log-header{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;background:var(--wash)}.control-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.file-button{cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.file-button:has(input:focus-visible){outline:3px solid var(--mark);outline-offset:3px}.form-page{max-width:1100px}.form-page>header{padding-bottom:40px;border-bottom:5px solid var(--ink)}.form-page h1{font-size:clamp(2.8rem,6vw,5rem)}.form-page form>section{padding:48px 0;border-bottom:var(--rule)}.form-page form>section>p{color:var(--muted)}.field-grid{display:grid;gap:16px}.field-grid.two{grid-template-columns:repeat(2,1fr)}.field-grid.three{grid-template-columns:2fr 1fr 1fr}.field-grid.four{grid-template-columns:repeat(4,1fr)}.field-grid label,.form-page>form>section>label,.band-fields label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:800}.field-grid>label,.band-fields>fieldset{min-width:0}.field-grid input,.band-fields input{width:100%;min-width:0}textarea{width:100%;min-height:96px;resize:vertical}.ingredient-editor{position:relative;margin:24px 0;padding:24px;border:var(--rule);background:#fffdf780}.ingredient-editor legend{padding:0 8px;font:700 1.2rem var(--serif)}.remove-row{position:absolute;right:16px;top:-24px;border:0;background:var(--paper);color:var(--mark);text-decoration:underline}.ingredient-editor details{margin-top:20px;border-top:1px dashed var(--muted);padding-top:12px}.ingredient-editor summary{min-height:44px;padding:8px 0;cursor:pointer;font-weight:800}.substitute-fields{padding:16px;background:var(--wash)}.band-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.band-fields fieldset{display:grid;gap:10px;border:var(--rule);padding:16px}.band-fields legend{font-weight:800}.form-error{min-height:28px;padding-top:16px;color:var(--mark);font-weight:800}.legal-page{max-width:780px}.legal-page h1{border-bottom:5px solid var(--ink);padding-bottom:24px}.legal-page h2{margin-top:48px;font-size:1.8rem}.not-found{min-height:65vh;display:grid;place-content:center;justify-items:start}.error-code{margin:0;color:var(--mark);font:800 clamp(5rem,18vw,12rem)/.8 var(--sans);letter-spacing:-.09em}.site-footer{max-width:1440px;min-height:170px;margin:auto;padding:40px 24px;border-top:5px solid var(--ink);display:grid;grid-template-columns:1fr auto;gap:16px 32px;align-items:start;font-size:.82rem}.site-footer p{margin:0}.site-footer p:last-child{grid-column:1 / -1;color:var(--muted)}.toast{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:50;max-width:min(420px,calc(100vw - 40px));padding:14px 18px;border:2px solid var(--paper);outline:2px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:800}.edition-enter{animation:edition-change .18s ease-out;transform-origin:top center}@keyframes edition-change{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:840px){.broadsheet-grid{grid-template-columns:1fr}.hero-art{max-width:640px}.plain-facts,.app-grid{grid-template-columns:1fr}.meal-library{padding-right:0;border-right:0;border-bottom:var(--rule)}.log-workspace{padding-left:0}.band-fields{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.wordmark-long{display:none}.header-inner{min-height:64px;padding-inline:16px}.site-header nav{gap:14px;font-size:.82rem}.demo-banner{align-items:flex-start;padding:10px 16px;flex-direction:column;gap:2px}.broadsheet-grid,.app-page,.form-page,.page,.legal-page,.not-found,.preview-section,.how-section,.limits-section{padding-inline:16px}h1{font-size:clamp(2.65rem,14vw,4rem)}.hero-action,.form-actions{align-items:stretch;flex-direction:column}.hero-action span{max-width:none}.preview-sheet{grid-template-columns:1fr;padding:20px}.preview-arrow{transform:rotate(90deg)}.steps{grid-template-columns:1fr}.steps li{border-right:0;border-bottom:var(--rule)}.steps li:last-child{border-bottom:0}.steps li>span{margin-bottom:16px}.columns{columns:1}.app-intro{grid-template-columns:1fr}.app-intro .kicker{grid-column:auto}.meal-heading{flex-direction:column}.heading-actions{width:100%}.heading-actions .button{flex:1}.portion-control{grid-template-columns:1fr 78px}.portion-control label{grid-column:1 / -1}.log-ingredient{grid-template-columns:1fr 1fr;gap:12px}.log-ingredient>div:first-child{grid-column:1 / -1}.nutrition-row{grid-template-columns:1fr 1fr;padding:10px 0;gap:2px 12px}.nutrition-row>span:nth-child(3){color:var(--muted)}.field-grid.two,.field-grid.three,.field-grid.four,.band-fields{grid-template-columns:1fr}.nutrient-fields{grid-template-columns:repeat(2,1fr)!important}.ingredient-editor{padding:20px 12px}.log-row{grid-template-columns:1fr 1.5fr}.log-header span:nth-child(n+3),.log-row span:nth-child(n+3){display:none}.control-row .button{width:100%}.site-footer{grid-template-columns:1fr;padding-inline:16px}.site-footer p:last-child{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.edition-enter{animation:none}.button:active{transform:none}}
