:root{color:#25221e;font-synthesis:none;text-rendering:optimizelegibility;background:#f8f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}.app-shell{background:radial-gradient(circle at 12% 16%,#d9e2cecc,#0000 34rem),linear-gradient(145deg,#fbfaf6,#f2ecdf);place-items:center;min-height:100vh;padding:clamp(1.5rem,5vw,4rem);display:grid}.welcome{text-align:center;background:#ffffffc2;border:1px solid #25221e1f;border-radius:2rem;width:min(100%,44rem);padding:clamp(2rem,7vw,5rem);box-shadow:0 1.5rem 5rem #493e2b1f}.setup-card{background:#ffffffd1;border:1px solid #25221e1f;border-radius:2rem;width:min(100%,48rem);padding:clamp(1.5rem,5vw,3.5rem);box-shadow:0 1.5rem 5rem #493e2b1f}.setup-title{font-size:clamp(2.4rem,8vw,4.75rem)}.setup-intro{color:#5b554c;margin:1rem 0 1.5rem;line-height:1.55}.setup-choices{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;display:grid}.choice-card{cursor:pointer;background:#fff;border:1px solid #25221e2e;border-radius:1rem;align-items:flex-start;gap:.75rem;min-height:7.5rem;padding:1rem;display:flex}.choice-card.selected{border-color:#627458;box-shadow:0 0 0 .12rem #c6d2be}.choice-card input{accent-color:#34472f;width:1.1rem;height:1.1rem;margin:.15rem 0 0}.choice-card span,.setup-form label{gap:.35rem;display:grid}.choice-card small{color:#6d675f;line-height:1.4}.setup-form{gap:1rem;margin-top:1.25rem;display:grid}.setup-form input,.setup-form select{width:100%;min-height:3rem;color:inherit;background:#fff;border:1px solid #25221e40;border-radius:.65rem;padding:.65rem .8rem}.setup-form button{justify-self:start}.setup-status,.setup-error,.reconnect-note{margin:1rem 0 0;font-size:.92rem;line-height:1.5}.setup-error{color:#8b2f28}.setup-success{color:#34472f;margin:1rem 0 0;font-weight:700}.schema-preview{gap:.65rem;margin:1.25rem 0;display:grid}.schema-preview details{background:#ffffffb8;border:1px solid #25221e29;border-radius:.8rem;padding:.85rem 1rem}.schema-preview summary{color:#34472f;cursor:pointer;font-weight:700}.schema-preview summary span{color:#6d675f;margin-left:.35rem;font-size:.82rem;font-weight:500}.schema-preview p{color:#5b554c;margin:.75rem 0 0;font-size:.88rem;line-height:1.55}.schema-issues{color:#8b2f28;margin:.75rem 0 1rem;padding-left:1.25rem;font-size:.88rem}.recipes-shell{width:min(100%,86rem);min-height:calc(100vh - clamp(3rem,10vw,8rem))}.recipes-header{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(1.5rem,4vw,2.75rem);display:flex}.recipes-header h1{font-size:clamp(3.25rem,8vw,6rem)}.recipes-intro{color:#5b554c;margin:.85rem 0 0;line-height:1.5}.recipes-actions{align-items:center;gap:.75rem;padding-bottom:.15rem;display:flex}.view-toggle{background:#ffffffb3;border:1px solid #25221e2e;border-radius:999px;grid-template-columns:repeat(2,minmax(4rem,1fr));padding:.25rem;display:inline-grid}.view-toggle button,.text-button{color:#34472f;background:0 0;min-height:2.75rem;padding:.55rem 1rem}.view-toggle button[aria-pressed=true]{color:#fff;background:#34472f;box-shadow:0 .2rem .7rem #34472f33}.text-button{text-underline-offset:.18em;text-decoration:underline}.recipes-notice{color:#55481f;background:#fff9df;border:1px solid #b8a66d;border-radius:.75rem;margin:0 0 1rem;padding:.85rem 1rem}.recipe-collection{margin:0;padding:0;list-style:none}.recipe-collection.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:clamp(1rem,2.5vw,1.5rem);display:grid}.recipe-card{background:#ffffffdb;border:1px solid #25221e21;border-radius:1.25rem;height:100%;overflow:hidden;box-shadow:0 .65rem 2rem #493e2b14}.recipe-photo{aspect-ratio:4/3;color:#627458;background:radial-gradient(circle at 30% 25%,#ffffffa6,#0000 35%),#dfe7d9;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:3.5rem;display:grid;overflow:hidden}.recipe-photo img{object-fit:cover;width:100%;height:100%}.recipe-card-copy{gap:.9rem;padding:1.1rem 1.15rem 1.2rem;display:grid}.recipe-card h2,.recipes-state h2{color:#25221e;letter-spacing:-.025em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.45rem;font-weight:600;line-height:1.12}.recipe-meta{color:#5b554c;flex-wrap:wrap;align-items:center;gap:.6rem .85rem;min-width:0;font-size:.9rem;display:flex}.recipe-meta a{color:#34472f;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:.25rem 0;font-weight:700;overflow:hidden}.recipe-rating{color:#735b28;font-weight:700}.muted{color:#6d675f;font-weight:500}.recipe-collection.list{gap:.75rem;display:grid}.recipe-collection.list .recipe-card{grid-template-columns:minmax(8rem,12rem) minmax(0,1fr);min-height:8rem;display:grid}.recipe-collection.list .recipe-photo{aspect-ratio:auto;height:100%}.recipe-collection.list .recipe-card-copy{align-content:center}.recipes-state{text-align:left;background:#ffffffc2;border:1px solid #25221e21;border-radius:1.25rem;align-content:center;justify-items:start;gap:1rem;width:min(100%,38rem);min-height:13rem;margin:clamp(2rem,8vw,6rem) auto;padding:clamp(1.5rem,5vw,2.5rem);display:grid}.recipes-state p{color:#5b554c;margin:0;line-height:1.55}.loading-mark{border:.2rem solid #c6d2be;border-top-color:#34472f;border-radius:50%;width:2rem;height:2rem;animation:.9s linear infinite loading-rotation}.load-more{place-items:center;padding:2rem 0 0;display:grid}@keyframes loading-rotation{to{transform:rotate(360deg)}}.reconnect-note{color:#5b554c}.reconnect-note a{color:#34472f;font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{color:#627458;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .75rem;font-size:.78rem;font-weight:700}h1{letter-spacing:-.06em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.4rem,12vw,6.5rem);font-weight:500;line-height:.95}.lede{color:#5b554c;max-width:32rem;margin:1.5rem auto 2rem;font-size:clamp(1rem,3vw,1.2rem);line-height:1.6}button{color:#fff;background:#34472f;border:0;border-radius:999px;min-height:3rem;padding:.75rem 1.4rem;font-weight:700}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.preview-note{color:#6d675f;margin:.75rem 0 0;font-size:.82rem}.status-title{font-size:clamp(2.4rem,9vw,4.75rem)}.button-link{color:#fff;background:#34472f;border-radius:999px;align-items:center;min-height:3rem;padding:.75rem 1.4rem;font-weight:700;text-decoration:none;display:inline-flex}button:focus-visible,.button-link:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:.2rem;outline:.2rem solid #735b28}.recipe-card:focus-within{border-color:#735b28}@media (width<=35rem){.app-shell{padding:1rem}.welcome,.setup-card{border-radius:1.25rem}.setup-choices{grid-template-columns:1fr}}@media (width<=42rem){.recipes-shell{min-height:calc(100vh - 2rem)}.recipes-header{align-items:start;gap:1.25rem;display:grid}.recipes-actions{justify-content:space-between;width:100%}.recipe-collection.grid{grid-template-columns:1fr}.recipe-collection.list .recipe-card{grid-template-columns:7rem minmax(0,1fr);min-height:7rem}.recipe-collection.list .recipe-card-copy{gap:.55rem;padding:.8rem .9rem}.recipe-collection.list .recipe-card h2{font-size:1.15rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
