*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-size:16px}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--color-border:#e2dbd2;--color-bg:#f0ece5}body{color:#1e2028;background-color:#f0ece5;min-height:100dvh;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;line-height:1.7}h1,h2,h3,h4,h5,h6{color:#c0503a;font-family:Playfair Display,georgia,serif;font-weight:700;line-height:1.2}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}p{color:#4a4e5a;margin-bottom:1rem}p:last-child{margin-bottom:0}a{color:#c0503a;text-decoration:none;transition:color .15s}a:hover{color:#a8422e}ul,ol{margin-bottom:1rem;padding-left:1.5rem}ul:last-child,ol:last-child{margin-bottom:0}li{color:#4a4e5a;margin-bottom:.25rem}li:last-child{margin-bottom:0}section{margin-bottom:3rem}section:last-child{margin-bottom:0}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],textarea{color:#1e2028;background:#fff;border:1px solid #e2dbd2;border-radius:8px;outline:none;width:100%;padding:.5rem .75rem;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;transition:border-color .15s,box-shadow .15s}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=number]::placeholder,textarea::placeholder{color:#8892a4}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=number]:focus,textarea:focus{border-color:#c0503a;box-shadow:0 0 0 3px #f5e8e5}:root{--mobile-nav-h:64px}app-shell{display:block}.shell{min-height:100vh;display:flex}.sidebar{display:none}@media (width>=769px){.sidebar{background:#2b2d33;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;width:72px;height:100vh;padding:20px 0;display:flex;position:sticky;top:0}}.sidebar-brand{color:#fff;margin-bottom:24px;font-family:Playfair Display,georgia,serif;font-size:20px;font-weight:700;line-height:1}.sidebar-brand span{color:#c0503a}.nav-item{cursor:pointer;color:#ffffff73;background:0 0;border:none;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item.active{color:#fff;background:#ffffff1f}.nav-item.active:before{content:"";background:#c0503a;border-radius:0 4px 4px 0;width:4px;height:24px;position:absolute;left:-12px}.sidebar-spacer{flex:1}.page-main{min-width:0;padding-top:var(--mobile-nav-h);flex:1}@media (width>=769px){.page-main{padding-top:0}}.shell-slot{flex:1;min-width:0}.top-bar{opacity:0;flex-direction:column;gap:8px;margin-block:20px;padding:16px 16px 0;animation:.4s forwards shell-fade-in;display:flex}@media (width>=480px){.top-bar{flex-direction:row;justify-content:space-between;align-items:center;padding:20px 20px 0}}@media (width>=769px){.top-bar{padding:24px 32px 0}}@media (width>=1025px){.top-bar{padding:24px 40px 0}}.top-bar h1{color:#1e2028;letter-spacing:-.3px;font-family:Playfair Display,georgia,serif;font-size:1.125rem;font-weight:600}@media (width>=769px){.top-bar h1{font-size:1.375rem}}.top-actions{align-items:center;gap:12px;display:flex}.weather-pill{color:#4a4e5a;background:#fff;border:1px solid #e2dbd2;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.75rem;font-weight:500;display:flex}@media (width>=480px){.weather-pill{padding:8px 16px;font-size:.875rem}}@keyframes shell-fade-in{to{opacity:1}}.mobile-nav{padding:calc(8px + env(safe-area-inset-top)) 16px 8px;z-index:200;background:#2b2d33;display:block;position:fixed;top:0;left:0;right:0}@media (width>=769px){.mobile-nav{display:none}}.mobile-nav-inner{justify-content:space-around;display:flex}.mob-nav-item{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;font-size:10px;font-weight:600;text-decoration:none;display:flex}.mob-nav-item.active{color:#fff}.mob-nav-item .m-icon{font-size:20px}.container{width:100%;max-width:1100px;margin-inline:auto;padding-inline:1rem}#app{flex:1;padding-block:3rem}.loading{color:#8892a4;letter-spacing:.08em;text-transform:uppercase;justify-content:center;padding-block:4.5rem;font-size:.875rem;display:flex}.error-message{text-align:center;color:#4a4e5a;max-width:480px;margin-inline:auto;padding:3rem 1.5rem}.error-message__title{color:#1e2028;margin-bottom:.75rem;font-family:Playfair Display,georgia,serif;font-size:1.75rem}.index-header{margin-bottom:3rem}.index-header__title{color:#1e2028;margin-bottom:.5rem;font-family:Playfair Display,georgia,serif;font-size:2.25rem;font-weight:700;line-height:1.2}.index-header__subtitle{color:#4a4e5a;font-size:1.125rem}.tag-filter{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2rem;display:flex}.tag-filter__label{text-transform:uppercase;letter-spacing:.08em;color:#8892a4;margin-right:.25rem;font-size:.75rem;font-weight:500}.recipe-count{color:#8892a4;margin-bottom:1.5rem;font-size:.875rem}.recipe-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.recipe-card{cursor:pointer;background:#f6f4f0;border:1px solid #e2dbd2;border-radius:20px;flex-direction:column;gap:.75rem;padding:1.5rem;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;box-shadow:0 2px 8px #0000000f,0 0 1px #00000014}.recipe-card:hover{border-color:#c0503a;transform:translateY(-2px);box-shadow:0 8px 28px #0000001a,0 1px 4px #0000000f}.recipe-card__title{color:#1e2028;font-family:Playfair Display,georgia,serif;font-size:1.375rem;font-weight:700;line-height:1.2}.recipe-card__description{color:#4a4e5a;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.7;display:-webkit-box;overflow:hidden}.recipe-card__meta{color:#8892a4;border-top:1px solid #e2dbd2;flex-wrap:wrap;gap:1rem;margin-top:auto;padding-top:.75rem;font-size:.75rem;display:flex}.recipe-card__meta-item{align-items:center;gap:.25rem;display:flex}.recipe-card__meta-icon{opacity:.7}.recipe-card__tags{flex-wrap:wrap;gap:.25rem;display:flex}.tag{letter-spacing:.03em;color:#4e5870;cursor:pointer;text-transform:lowercase;background:#e8eaf0;border:1px solid #0000;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.tag:hover,.tag--active{color:#c0503a;background:#f5e8e5;border-color:#c0503a}.recipe-detail{max-width:720px;margin-inline:auto}.recipe-detail__back{color:#8892a4;cursor:pointer;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.875rem;transition:color .15s;display:inline-flex}.recipe-detail__back:hover{color:#c0503a}.recipe-detail__header{border-bottom:1px solid #e2dbd2;margin-bottom:2rem;padding-bottom:2rem}.recipe-detail__title{color:#1e2028;margin-bottom:.75rem;font-family:Playfair Display,georgia,serif;font-size:2.25rem;font-weight:700;line-height:1.2}.recipe-detail__description{color:#4a4e5a;margin-bottom:1.5rem;font-size:1.125rem;line-height:1.7}.recipe-detail__stats{flex-wrap:wrap;gap:1.5rem;display:flex}.recipe-detail__stat{flex-direction:column;gap:.25rem;display:flex}.recipe-detail__stat-label{text-transform:uppercase;letter-spacing:.08em;color:#8892a4;font-size:.75rem;font-weight:500}.recipe-detail__stat-value{color:#1e2028;font-size:1.125rem;font-weight:500}.recipe-detail__tags{flex-wrap:wrap;gap:.25rem;margin-top:1.5rem;display:flex}.recipe-section{margin-bottom:3rem}.recipe-section__title{color:#1e2028;border-bottom:2px solid #c0503a;margin-bottom:1.5rem;padding-bottom:.75rem;font-family:Playfair Display,georgia,serif;font-size:1.75rem;font-weight:700;display:inline-block}.ingredients-list{flex-direction:column;gap:.5rem;display:flex}.ingredients-list__item{color:#1e2028;border-bottom:1px solid #e2dbd2;align-items:baseline;gap:.75rem;padding:.75rem 0;font-size:1rem;display:flex}.ingredients-list__item:before{content:"";background:#c0503a;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block;position:relative;top:-2px}.instructions-list{counter-reset:steps;flex-direction:column;gap:1.5rem;display:flex}.instructions-list__item{counter-increment:steps;grid-template-columns:2rem 1fr;align-items:start;gap:1rem;display:grid}.instructions-list__item:before{content:counter(steps);color:#c0503a;padding-top:2px;font-family:Playfair Display,georgia,serif;font-size:1.375rem;font-weight:700;line-height:1}.instructions-list__item-text{color:#1e2028;line-height:1.7}.recipe-notes{background:#e2dbd2;border-left:3px solid #c0503a;border-radius:0 14px 14px 0;margin-top:3rem;padding:1.5rem}.recipe-notes__title{color:#c0503a;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem;font-family:Playfair Display,georgia,serif;font-size:1rem;font-style:italic;font-weight:700}.recipe-notes__body{color:#4a4e5a;font-size:.875rem;line-height:1.7}.site-footer{text-align:center;color:#8892a4;border-top:1px solid #e2dbd2;padding-block:1.5rem;font-size:.875rem}.no-results{text-align:center;color:#8892a4;padding:3rem;font-size:.875rem}@media (width>=600px){.container{padding-inline:2rem}.recipe-grid{grid-template-columns:repeat(2,1fr)}.recipe-detail__title,.index-header__title{font-size:3rem}}@media (width>=900px){.container{padding-inline:3rem}.recipe-grid{grid-template-columns:repeat(3,1fr)}}
