.app-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-lg);background:var(--cover);border-bottom:3px solid var(--red);z-index:50}.app-header-title{font-family:var(--font-body);font-weight:800;font-size:var(--text-wordmark);letter-spacing:.01em;color:var(--paper)}.app-header-account{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}.app-header-logout{background:transparent;border:1px solid var(--paper);color:var(--paper);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-stamp)}.app-header-logout:hover{background:var(--paper);color:var(--cover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12151bb8;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:100}.modal-card{position:relative;background:var(--paper);border-top:3px solid var(--red);box-shadow:var(--shadow-page-rest);padding:var(--space-xl) var(--space-md) var(--space-md);max-width:400px;width:100%}@media (prefers-reduced-motion: no-preference){.modal-overlay{animation:modal-overlay-in .18s ease-out both}.modal-card{animation:modal-card-in .22s cubic-bezier(.16,1,.3,1) both}}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-card-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-scroll{max-height:85vh;overflow-x:hidden;overflow-y:auto}.modal-footer{position:sticky;bottom:0;background:var(--paper);padding-top:var(--space-md);margin-top:var(--space-md);border-top:1px solid var(--paper-edge)}.modal-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:var(--radius-stamp);background:var(--red);color:var(--paper);border:none;font-family:var(--font-body);font-size:1.25rem;line-height:1;box-shadow:var(--shadow-tape-stuck)}.modal-close:hover{background:var(--red-deep)}.legal-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);color:var(--ink);margin:0 0 var(--space-xs)}.legal-updated{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft);margin:0 0 var(--space-lg)}.legal-heading{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:var(--space-lg) 0 var(--space-xs)}.legal-text{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink);line-height:1.5;margin:0}.legal-link{margin-top:var(--space-lg)}.account-menu-trigger{background:transparent;border:none;color:var(--paper);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;opacity:.8;text-decoration:underline;text-underline-offset:2px}.account-menu-email{font-family:var(--font-body);font-weight:700;font-size:var(--text-body);color:var(--ink);margin:0 0 var(--space-lg)}.account-menu-export{display:inline-block;text-decoration:none;margin-bottom:var(--space-lg)}.account-menu-confirm{margin-top:var(--space-lg)}@media (prefers-reduced-motion: no-preference){.account-menu-confirm{animation:account-menu-confirm-in .16s ease-out both}}@keyframes account-menu-confirm-in{0%{opacity:0}to{opacity:1}}.account-menu-confirm-instruction{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);margin:var(--space-sm) 0}.account-menu-confirm-instruction strong{color:var(--ink)}.account-menu-confirm-field{background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius-stamp);padding:var(--space-sm) var(--space-md);transition:border-color .15s ease}.account-menu-confirm-field:focus-within{border-color:var(--red)}.account-menu-confirm-input{width:100%;background:transparent;border:none;color:var(--ink);font-family:var(--font-body);font-size:var(--text-body)}.account-menu-confirm-input:focus{outline:none}.account-menu-confirm-actions{display:flex;gap:var(--space-md);margin-top:var(--space-md)}.account-menu-delete{display:block;color:var(--red)}@media (max-width: 480px){.account-menu-trigger{display:none}}.page-sheet{position:relative;width:100%;max-width:760px;background:var(--paper);box-shadow:var(--shadow-page-rest);border-top:3px solid var(--red);padding:var(--space-xl) var(--space-xl) var(--space-xxl)}@media (max-width: 720px){.page-sheet{padding:var(--space-lg) var(--space-md) var(--space-xl)}}.auth-caption{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--space-lg)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:360px}.auth-field{background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius-stamp);padding:var(--space-md) var(--space-lg);transition:border-color .15s ease}.auth-field:focus-within{border-color:var(--red)}.auth-input{width:100%;background:transparent;border:none;color:var(--ink);font-family:var(--font-body);font-size:var(--text-body)}.auth-input::placeholder{color:var(--ink-soft)}.auth-input:focus{outline:none}.auth-google{display:block;margin-top:var(--space-md);background:var(--ink)}.auth-toggle{display:block;margin-top:var(--space-lg)}.spine{display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-xxl);width:172px;flex-shrink:0}.spine-new{align-self:flex-start;background:transparent;border:none;color:var(--red);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-xs) var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid transparent}.spine-new:hover{color:var(--red-deep);border-bottom-color:var(--red-deep)}.spine-add-recipe{background:var(--red);color:var(--paper);border:none;border-radius:var(--radius-stamp);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-tape-stuck);white-space:nowrap;transition:background .15s ease}.spine-add-recipe:hover{background:var(--red-deep)}.spine-tab-list{display:flex;flex-direction:column;gap:var(--space-sm)}.spine-tab{background:var(--tape-recede);border:none;border-left:4px solid transparent;border-radius:var(--radius-stamp);color:var(--ink);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;text-align:left;padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-tape-stuck);white-space:nowrap;transform:translate(-10px);transition:transform .15s ease,background .15s ease,border-color .15s ease}.spine-tab[data-active=true]{background:var(--paper);border-left-color:var(--red);transform:translate(0);box-shadow:var(--shadow-tape-stuck)}.spine-tab-count{display:block;font-family:var(--font-body);font-weight:400;font-size:var(--text-label);color:var(--ink);letter-spacing:.04em;text-transform:none}@media (max-width: 720px){.spine{flex-direction:column;width:100%;padding-top:0;gap:var(--space-sm)}.spine-new{align-self:stretch;text-align:center;padding:var(--space-xs) var(--space-sm)}.spine-add-recipe{text-align:center}.spine-tab-list{flex-direction:row;gap:var(--space-xs)}.spine-tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;white-space:normal;border-left:none;border-bottom:4px solid transparent;transform:none;padding:var(--space-xs)}.spine-tab[data-active=true]{border-left:none;border-bottom-color:var(--red);transform:none}.spine-tab-count{display:block;font-size:var(--text-label)}}.tape-strip-wrap{margin-bottom:var(--space-xl)}.tape-strip{display:flex;align-items:center;gap:var(--space-sm);background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius-stamp);padding:var(--space-md) var(--space-lg);transition:border-color .15s ease}.tape-strip:focus-within{border-color:var(--red)}.tape-strip-caption{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--space-sm)}.tape-input{flex:1;background:transparent;border:none;color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);min-width:0}.tape-input::placeholder{color:var(--ink-soft)}.tape-input:focus{outline:none}.tape-strip-failed{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);background:var(--paper);border:1.5px solid var(--paper-edge);border-radius:var(--radius-stamp);padding:var(--space-md) var(--space-lg)}@media (prefers-reduced-motion: no-preference){.tape-strip-failed{animation:tape-strip-failed-in .32s cubic-bezier(.16,1,.3,1) both}}@keyframes tape-strip-failed-in{0%{opacity:0;transform:translate(0)}15%{opacity:1}30%{transform:translate(-4px)}50%{transform:translate(3px)}70%{transform:translate(-2px)}to{opacity:1;transform:translate(0)}}.tape-strip-failed-url{flex:1;font-family:var(--font-body);font-size:var(--text-body);color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tape-strip-audio-fallback{margin-top:var(--space-sm)}.home-empty{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink-soft);max-width:46ch}.home-last-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 var(--space-sm)}.home-last-recipe{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);width:100%;padding:0 0 var(--space-md);border:none;border-bottom:1px solid var(--paper-edge);margin-bottom:var(--space-md);background:none;text-align:left}.home-last-recipe-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-body);color:var(--ink)}.home-last-recipe-meta{flex-shrink:0;font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft)}@media (max-width: 720px){.home-last-recipe{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}.processing-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);margin:0 0 var(--space-lg);color:var(--ink)}.processing-transcript{display:flex;flex-direction:column;gap:var(--space-sm);min-height:140px;margin-bottom:var(--space-lg)}.processing-line{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink);line-height:1.55;max-width:70ch}.processing-line--transcript{color:var(--ink-soft);font-style:normal}@media (prefers-reduced-motion: no-preference){.processing-line--transcript{animation:processing-line-in .22s cubic-bezier(.16,1,.3,1) both}}@keyframes processing-line-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.processing-cursor{display:inline-block;width:.6em;background:var(--ink);animation:processing-blink 1s steps(1) infinite;margin-left:2px}@keyframes processing-blink{0%,49%{opacity:1}50%,to{opacity:0}}.processing-status{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--paper-edge);padding-top:var(--space-md)}.processing-status-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.processing-status-timer{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.06em;color:var(--ink-soft)}.embed-body{min-height:200px;display:flex;justify-content:center;overflow:hidden}.embed-body iframe,.embed-body blockquote{max-width:100%!important;width:100%!important}.embed-fallback{font-family:var(--font-marker);font-size:var(--text-marker-sm);color:var(--ink-soft);text-align:center;margin:var(--space-md) 0 0}.embed-fallback a{color:var(--red)}.recipe-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.recipe-title-row{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--space-sm)}.recipe-title{min-width:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-title);margin:0;color:var(--ink)}.recipe-title-input{flex:1;min-width:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-title);color:var(--ink);background:transparent;border:none;border-bottom:2px solid var(--red);padding:0;margin:0}.recipe-title-input:focus{outline:none}.recipe-title-edit{flex-shrink:0;align-self:center;background:none;border:none;padding:var(--space-xs);color:var(--ink-soft)}.recipe-title-edit:hover{color:var(--red)}.recipe-icon-wrap{flex-shrink:0;width:88px;height:88px}.recipe-icon-img{width:100%;height:100%;object-fit:cover;border:1px solid var(--paper-edge);box-shadow:var(--shadow-tape-stuck)}.recipe-icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--tape);color:var(--ink);font-family:var(--font-body);font-weight:700;font-size:var(--text-title);box-shadow:var(--shadow-tape-stuck)}.recipe-clip{flex-shrink:0;color:var(--ink)}@media (prefers-reduced-motion: no-preference){.recipe-clip{animation:recipe-clip-in .26s cubic-bezier(.16,1,.3,1) both}}@keyframes recipe-clip-in{0%{opacity:0;transform:translateY(-6px) rotate(-8deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.recipe-source-meta{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);margin:0 0 var(--space-xs)}.recipe-meta{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);margin:0 0 var(--space-lg)}.recipe-author-link{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent}.recipe-author-link:hover{color:var(--red);border-bottom-color:var(--red)}.recipe-source-link{background:none;border:none;padding:0;font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid transparent}.recipe-source-link:hover{color:var(--red);border-bottom-color:var(--red)}.recipe-note{font-family:var(--font-marker);font-size:var(--text-marker-sm);color:var(--red);transform:rotate(-1deg);margin:0 0 var(--space-lg)}.recipe-tools{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);margin:0 0 var(--space-lg)}.recipe-nutrition{margin:0 0 var(--space-xl)}.recipe-nutrition-grid{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-bottom:var(--space-sm)}.recipe-nutrition-item{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink)}.recipe-nutrition-item strong{font-weight:700}.recipe-nutrition-note{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft);margin:0}.recipe-category-picker{margin-bottom:var(--space-xl)}.recipe-category-options{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.recipe-category-reasoning{font-family:var(--font-marker);font-size:var(--text-marker-sm);color:var(--ink-soft);transform:rotate(-1deg);margin:0}.recipe-section-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 var(--space-sm)}.recipe-ingredients{list-style:none;margin:0 0 var(--space-xl);padding:0;display:flex;flex-direction:column}.recipe-ingredients li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--paper-edge);font-family:var(--font-body);font-size:var(--text-body);color:var(--ink);max-width:70ch}.recipe-steps{list-style:none;margin:0 0 var(--space-xl);padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.recipe-steps li{display:flex;gap:var(--space-md);font-family:var(--font-body);font-size:var(--text-body);color:var(--ink);max-width:70ch}.recipe-step-number{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);font-weight:700;font-size:var(--text-label)}.recipe-actions{display:flex;align-items:center;gap:var(--space-lg)}.recipe-saved-mark{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-weight:400;font-size:var(--text-label);color:var(--ink-soft)}.library-toolbar{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.library-filters-toggle{flex-shrink:0}.library-search{flex:1;min-width:0;margin-bottom:0;background:var(--paper);border:1.5px solid var(--paper-edge);border-radius:var(--radius-stamp);padding:var(--space-sm) var(--space-md);transition:border-color .15s ease}.library-search:focus-within{border-color:var(--red)}.library-exclude-search{margin-bottom:var(--space-md)}.library-search-input{width:100%;background:transparent;border:none;color:var(--ink);font-family:var(--font-body);font-size:var(--text-body)}.library-search-input::placeholder{color:var(--ink-soft)}.library-search-input:focus{outline:none}.library-filter-row{display:flex;align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.library-filter-label{flex-shrink:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.library-filter-chips{display:flex;gap:var(--space-sm);flex-wrap:wrap}.filter-panel-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 var(--space-lg)}.filter-panel-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.filter-panel-more{display:block;margin-top:var(--space-sm)}.library-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);margin:0 0 var(--space-lg);color:var(--ink)}.library-empty{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink-soft);max-width:44ch}.library-list{list-style:none;margin:0;padding:0}.library-row{position:relative;border-bottom:1px solid var(--paper-edge)}@media (prefers-reduced-motion: no-preference){.library-row{animation:library-row-in .2s cubic-bezier(.16,1,.3,1) both}.library-row:nth-child(2){animation-delay:30ms}.library-row:nth-child(3){animation-delay:60ms}.library-row:nth-child(4){animation-delay:90ms}.library-row:nth-child(5){animation-delay:.12s}.library-row:nth-child(n+6){animation-delay:.15s}}@keyframes library-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.library-row-open{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-xxl) var(--space-md) 0;background:none;border:none;text-align:left;color:var(--ink)}.library-row-open:hover .library-row-title{color:var(--red)}.library-row-icon{flex-shrink:0;width:40px;height:40px}.library-row-icon-img{width:100%;height:100%;object-fit:cover;border:1px solid var(--paper-edge)}.library-row-icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--tape);color:var(--ink);font-family:var(--font-body);font-weight:700;font-size:var(--text-body)}.library-row-title{flex:1;min-width:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-body);transition:color .15s ease}.library-row-meta{flex-shrink:0;font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft)}.library-row-delete{position:absolute;top:50%;right:0;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;background:none;border:none;padding:var(--space-md);color:var(--ink-soft)}.library-row-delete:hover{color:var(--red)}.library-row-confirm{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--paper-edge)}@media (prefers-reduced-motion: no-preference){.library-row-confirm{animation:library-row-confirm-in .16s ease-out both}}@keyframes library-row-confirm-in{0%{opacity:0}to{opacity:1}}.library-row-confirm-text{flex:1;min-width:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-body);color:var(--ink)}.library-row-confirm-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}@media (max-width: 720px){.library-row-open{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.library-row-confirm{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}.cook-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.cook-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);margin:0;color:var(--ink)}.cook-exit-confirm{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--paper-edge);margin-bottom:var(--space-lg)}.cook-exit-confirm-text{flex:1;min-width:0;font-family:var(--font-body);font-weight:700;font-size:var(--text-body);color:var(--ink)}.cook-exit-confirm-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.cook-phase-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--space-md)}.cook-timer{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);font-variant-numeric:tabular-nums;color:var(--red);margin:0 0 var(--space-md)}.cook-checklist{list-style:none;margin:0 0 var(--space-xl);padding:0;display:flex;flex-direction:column}.cook-checklist li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--paper-edge);font-family:var(--font-body);font-size:var(--text-body);color:var(--ink)}.cook-checklist label{flex:1}.cook-steps li[data-done=true] label{color:var(--ink-soft);text-decoration:line-through}.cook-steps li:not([data-current=true]):not([data-done=true]) label{color:var(--ink-soft);opacity:.6}.cook-done{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md)}.cook-done-stamp{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--red);border:2px solid var(--red);border-radius:var(--radius-stamp);padding:var(--space-xs) var(--space-md)}@media (prefers-reduced-motion: no-preference){.cook-done-stamp{animation:cook-done-stamp-in .32s cubic-bezier(.16,1,.3,1) both}}@keyframes cook-done-stamp-in{0%{opacity:0;transform:translateY(-6px) rotate(-6deg) scale(1.15)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}.cook-done-time{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);color:var(--ink);margin:0}.cook-done-note{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft);margin:0}.shopping-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-title);margin:0 0 var(--space-sm);color:var(--ink)}.shopping-subtitle{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:.04em;color:var(--ink-soft);margin:0 0 var(--space-lg)}.shopping-category-group{margin-bottom:var(--space-lg)}.shopping-checklist{list-style:none;margin:0 0 var(--space-xl);padding:0;display:flex;flex-direction:column}.shopping-checklist li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--paper-edge);font-family:var(--font-body);font-size:var(--text-body);color:var(--ink)}.app-layout{display:flex;align-items:flex-start;gap:var(--space-md);width:100%;max-width:900px}@media (max-width: 720px){.app-layout{flex-direction:column}}.guest-library{flex:1;min-width:0}.guest-banner{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft);background:var(--tape-recede);border-radius:var(--radius-stamp);padding:var(--space-sm) var(--space-md);margin:0 0 var(--space-lg)}.guest-banner-login{background:none;border:none;padding:0;font-family:var(--font-body);font-size:var(--text-label);font-weight:700;color:var(--red);text-decoration:underline}.guest-banner-login:hover{color:var(--red-deep)}:root{--cover: #1b1f27;--cover-deep: #12151b;--paper: #f5f6f8;--paper-line: rgba(30, 34, 42, .08);--paper-edge: #e2e4e9;--ink: #23283a;--ink-soft: rgba(35, 40, 58, .7);--red: #b23a2e;--red-deep: #8c2c22;--tape: #e4e7ed;--tape-recede: #c7cbd4;--tape-shadow: rgba(20, 22, 28, .18);--font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;--font-marker: "Permanent Marker", cursive;--text-title: clamp(1.5rem, 3vw, 2.25rem);--text-wordmark: 1.25rem;--text-body: 1rem;--text-label: .75rem;--text-marker: 1.25rem;--text-marker-sm: 1rem;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-xxl: 64px;--header-height: 56px;--radius-stamp: 0px;--shadow-page-rest: 0 8px 24px rgba(10, 12, 16, .22);--shadow-tape-stuck: 0 1px 3px rgba(20, 22, 28, .18);--shadow-stamp-rest: 0 3px 0 0 var(--red)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--cover);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit;cursor:pointer}.app-shell{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:calc(var(--header-height) + var(--space-lg)) var(--space-lg) var(--space-xxl);background:radial-gradient(ellipse at top,rgba(255,255,255,.04),transparent 60%),var(--cover)}@media (max-width: 720px){.app-shell{padding:calc(var(--header-height) + var(--space-md)) var(--space-sm) var(--space-lg)}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--red);outline-offset:2px}.stamp-button{background:var(--paper);color:var(--red);border:2px solid var(--red);border-radius:var(--radius-stamp);box-shadow:var(--shadow-stamp-rest);padding:var(--space-sm) var(--space-md);font-family:var(--font-body);font-size:var(--text-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background .15s ease,color .15s ease;white-space:nowrap}.stamp-button:hover:not(:disabled){background:var(--red);color:var(--paper)}.stamp-button:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.stamp-button:disabled{opacity:.5;cursor:not-allowed}.ghost-button{background:transparent;border:none;color:var(--ink);font-family:var(--font-body);font-size:var(--text-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:var(--space-xs) 0;border-bottom:1px solid transparent}.ghost-button:hover{border-bottom-color:var(--ink-soft)}.chip{background:var(--tape);border:1px solid transparent;color:var(--ink);font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-stamp)}.chip[data-selected=true]{background:var(--red);color:var(--paper)}.recipe-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:1.5px solid var(--ink);border-radius:var(--radius-stamp);flex-shrink:0;cursor:pointer;position:relative;background:var(--paper)}.recipe-checkbox:checked{border-color:var(--red)}.recipe-checkbox:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:9px;border:solid var(--red);border-width:0 2px 2px 0;transform:rotate(45deg)}@media (prefers-reduced-motion: no-preference){.recipe-checkbox:checked:after{animation:checkbox-check-in .16s cubic-bezier(.16,1,.3,1) both}}@keyframes checkbox-check-in{0%{opacity:0;transform:rotate(45deg) scale(.5)}to{opacity:1;transform:rotate(45deg) scale(1)}}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s;animation-timing-function:cubic-bezier(.16,1,.3,1)}.margin-note{font-family:var(--font-marker);font-size:var(--text-marker-sm);color:var(--red);transform:rotate(-1deg);margin:var(--space-sm) 0 0 var(--space-md)}.plain-note{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-soft);margin:var(--space-sm) 0 0}
