:root{--bg:#f7f5ef;--surface:#fffdfa;--surface-2:#f0eee5;--text:#252720;--muted:#6c7065;--border:#deddd4;--accent:#39715a;--accent-strong:#285642;--error:#a53a32;--success:#39715a;--radius:18px;--radius-sm:11px;--shadow:0 12px 36px #2a302717;--space:clamp(1rem,2.5vw,1.6rem);--header-h:76px;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px}.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}body{background:radial-gradient(circle at 85% -10%,#e1eddf 0,transparent 30rem),var(--bg);min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:3px}:focus-visible{outline:3px solid #7daf98}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}h1,h2,p{margin-top:0}h1{letter-spacing:-.045em;font-size:clamp(2rem,7vw,3.7rem);line-height:1.03}h2{letter-spacing:-.025em}label{gap:.45rem;font-size:.92rem;font-weight:650;display:grid}input,textarea,select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:#fff;min-height:46px;padding:.78rem .9rem;font-size:1rem}textarea{resize:vertical}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:.8rem;font-weight:750}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin-bottom:.55rem;font-size:.74rem;font-weight:800}.button{border:1px solid var(--border);background:var(--surface);border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.68rem 1rem;font-weight:750;display:inline-flex}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-strong)}.button.ghost{background:0 0}.danger{color:var(--error)}.icon-button{border:1px solid var(--border);background:var(--surface);border-radius:50%;width:44px;height:44px;font-size:1.15rem}.stack{gap:1rem;display:grid}.alert{border-radius:var(--radius-sm);border:1px solid;padding:.85rem 1rem}.alert.error{color:#79271f;background:#fff0ee;border-color:#e5aaa5}.auth-page{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.auth-card{border:1px solid var(--border);width:min(100%,440px);box-shadow:var(--shadow);background:#fffdfaf0;border-radius:28px;padding:clamp(1.5rem,5vw,2.5rem)}.auth-card h1{font-size:clamp(2rem,8vw,3rem)}.auth-switch{text-align:center;color:var(--muted);margin:1.5rem 0 0}.auth-switch a{color:var(--accent);font-weight:750}.brand-mark{background:var(--accent);color:#fff;border-radius:14px;place-items:center;width:40px;height:40px;font-family:Georgia,serif;font-size:1.6rem;font-style:italic;display:inline-grid}.app-frame{min-height:100vh}.app-header{height:var(--header-h);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;background:#f7f5efd9;border-bottom:1px solid #deddd4cc;justify-content:space-between;align-items:center;padding:0 max(1rem,50vw - 560px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.03em;align-items:center;gap:.7rem;font-weight:850;display:flex}.account{align-items:center;gap:.7rem;display:flex}.account-copy{text-align:right;display:none}.account-copy small,.account-copy strong{display:block}.account-copy small{color:var(--muted)}.app-main{width:min(100% - 2rem,1120px);padding:clamp(2rem,6vw,5rem) 0 calc(7rem + env(safe-area-inset-bottom));margin:0 auto}.bottom-nav{z-index:20;border-top:1px solid var(--border);padding:.45rem max(.5rem,env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdfaf5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:50px;color:var(--muted);align-content:center;place-items:center;gap:.1rem;font-size:.78rem;font-weight:700;display:grid}.bottom-nav a span{font-size:1.2rem}.bottom-nav a[aria-current=page]{color:var(--accent)}.center-state{text-align:center;align-content:center;place-items:center;gap:1rem;min-height:100vh;padding:2rem;display:grid}.loader{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.home-hero,.page-heading{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:2.4rem;display:flex}.home-hero p:not(.eyebrow){color:var(--muted);font-size:1.15rem}.section-heading{justify-content:space-between;align-items:end;margin:2.5rem 0 1rem;display:flex}.section-heading h2{margin-bottom:0}.section-heading>a{color:var(--accent);font-weight:750}.recipe-grid{gap:.8rem;display:grid}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:64px 1fr auto;align-items:center;gap:1rem;min-height:88px;padding:.8rem;transition:transform .15s,box-shadow .15s;display:grid}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.recipe-card h2{margin:0 0 .25rem;font-size:1rem}.recipe-card p{color:var(--muted);margin:0;font-size:.85rem}.recipe-art{width:64px;height:64px;color:var(--accent);background:linear-gradient(145deg,#e5efe3,#f3dcc1);border-radius:14px;place-items:center;font-size:1.4rem;display:grid}.state-card{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);text-align:center;padding:clamp(2rem,8vw,4rem)}.state-icon{color:var(--accent);font-size:2.5rem}.skeleton{background:linear-gradient(90deg,var(--surface-2),#fff,var(--surface-2));background-size:200%;min-height:88px;animation:1.3s infinite shimmer}.detail-skeleton{border-radius:var(--radius);height:520px}.detail-hero{background:linear-gradient(145deg,#e6efe4,#f6eadb);border-radius:28px;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding:clamp(1.5rem,5vw,3.5rem);display:flex}.detail-hero h1{margin-bottom:.7rem}.lead{max-width:60ch;color:var(--muted)}.favorite-button{color:#aaa;width:48px;height:48px;box-shadow:var(--shadow);background:#fff;border:0;border-radius:50%;flex:0 0 48px;font-size:1.4rem}.favorite-button.active{color:#b63e48}.detail-actions{flex-wrap:wrap;gap:.6rem;margin:1rem 0 2rem;display:flex}.detail-columns{gap:2rem;display:grid}.detail-columns section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space)}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.8rem 0;display:flex}.ingredient-list li:last-child{border-bottom:0}.instructions{white-space:pre-wrap;line-height:1.7}.recipe-form{max-width:850px}.form-grid{gap:1rem;display:grid}.ingredient-rows{gap:.8rem;display:grid}.ingredient-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:.6rem;padding:1rem;display:grid}.ingredient-row .icon-button{align-self:end}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:.7rem;display:flex}.page-heading h1{margin-bottom:0}.suggestion-summary{padding:var(--space);border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,var(--surface),#e8f1e7);flex-direction:column;justify-content:space-between;align-items:flex-start;gap:1rem;margin:0 0 2.5rem;display:flex}.suggestion-summary h2{margin-bottom:.35rem}.suggestions-flow{max-width:780px;margin:0 auto}progress{width:100%;height:.7rem;accent-color:var(--accent)}.suggestion-list,.match-grid{gap:1rem;display:grid}.suggestion-card,.match-card,.completion-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:1rem;display:grid}.suggestion-card h2,.match-card h2,.completion-card h2{margin-bottom:0}.vote-actions{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.vote-actions .button{width:100%}.vote-like.selected{background:var(--accent);border-color:var(--accent);color:#fff}.vote-dislike.selected{color:#fff;background:#5d6158;border-color:#5d6158}.own-vote{color:var(--accent);margin:0;font-weight:750}.completion-card{background:#e8f1e7;margin-top:1rem}.waiting-card{max-width:680px;margin:0 auto}.match-card p:not(.eyebrow){color:var(--muted)}.suggestions-flow>.button{margin-top:1rem}.weekly-plan-flow{max-width:850px;margin:0 auto}.match-picker,.plan-meal-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;display:grid}.match-picker{margin-bottom:1rem}.match-picker-list,.reorder-actions,.plan-actions{flex-wrap:wrap;gap:.6rem;display:flex}.plan-meal-list{gap:1rem;display:grid}.plan-meal-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.plan-meal-heading h2{margin-bottom:0}.plan-fields{gap:1rem;display:grid}.plan-actions{justify-content:flex-end;margin-top:1rem}.shopping-flow{max-width:850px;margin:0 auto}.shopping-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.shopping-filters .button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.shopping-list{gap:.75rem;display:grid}.shopping-item{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:.65rem;display:grid}.shopping-item.is-complete{background:var(--surface-2)}.shopping-check{grid-template-columns:24px 1fr;align-items:start;gap:.8rem;font-size:1rem}.shopping-check input{width:22px;height:22px;min-height:22px;accent-color:var(--accent);margin:.1rem 0 0}.shopping-check span{gap:.2rem;display:grid}.shopping-check small,.shopping-source{color:var(--muted);font-weight:500}.shopping-source{margin:0 0 0 2.8rem;font-size:.88rem}.alert.success{color:#285642;background:#e8f1e7;border-color:#9fc4ae}.heading-actions,.sync-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.sync-actions{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:1rem;padding:1rem}.sync-actions p{margin:0}.integrations-flow{max-width:850px;margin:0 auto}.integration-card,.history-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;display:grid}.integration-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.integration-heading h2{margin-bottom:0}.status-pill{border:1px solid var(--border);border-radius:999px;align-items:center;min-height:36px;padding:.45rem .75rem;font-size:.85rem;display:inline-flex}.status-pill.connected{color:#285642;background:#e8f1e7;border-color:#9fc4ae}.status-pill.disconnected{color:var(--muted);background:var(--surface-2)}.integration-form{gap:1rem;display:grid}.integration-form .button{width:100%}.sync-history{margin-top:2rem}.sync-history .section-heading{margin-bottom:1rem}.history-card{margin-bottom:.75rem}.history-card p{margin:0}.history-card .alert{margin-top:.25rem}@media (min-width:700px){.integration-form{grid-template-columns:1fr 1fr}.integration-form .button{grid-column:1/-1;justify-self:end;width:auto}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@media (min-width:700px){.account-copy{display:block}.bottom-nav{border:1px solid var(--border);border-radius:999px;width:460px;padding:.25rem;bottom:1rem;left:50%;right:auto;transform:translate(-50%)}.home-hero,.page-heading{flex-direction:row;justify-content:space-between;align-items:end}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-columns{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}.form-grid{grid-template-columns:1fr 2fr}.ingredient-row{grid-template-columns:2fr 1fr 1.4fr 1fr auto}.plan-fields{grid-template-columns:1fr 1fr}}@media (min-width:1000px){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:380px){.app-main{width:min(100% - 1rem,1120px)}.ingredient-row{grid-template-columns:1fr}.detail-actions .button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.external-import-flow{max-width:920px;margin:0 auto}.external-search-form{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:.75rem;display:grid}.external-search-form .button{width:100%}.external-result-grid{gap:1rem;display:grid}.external-result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:96px 1fr;gap:1rem;padding:1rem;display:grid}.external-result-card h3{margin:0 0 .35rem}.external-result-card .stack{align-content:space-between}.external-recipe-image,.external-preview-image{background-position:50%;background-size:cover;background-color:var(--surface-2);border-radius:14px}.external-recipe-image{min-height:112px}.external-preview{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1.25rem;display:grid}.external-preview-heading{grid-template-columns:1fr 96px;align-items:start;gap:1rem;display:grid}.external-preview-heading h2{margin-bottom:.4rem}.external-preview-image{width:96px;height:96px}.import-servings{background:var(--surface-2);border-radius:var(--radius-sm);gap:.75rem;padding:1rem;display:grid}.import-servings p{margin:0}.review-status{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.review-status p{margin:0}.import-ingredient-row{grid-template-columns:1fr 1fr}.import-ingredient-row .icon-button{align-self:end}@media (min-width:700px){.external-search-form{grid-template-columns:1fr auto;align-items:end}.external-search-form .button{width:auto}.external-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.external-preview-heading{grid-template-columns:1fr 160px}.external-preview-image{width:160px;height:120px}.import-ingredient-row{grid-template-columns:2fr 1fr 1.4fr 1fr 1.5fr auto}}.household-flow{max-width:760px;margin:0 auto}.surface-card,.setup-cue{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.household-flow>.surface-card+.surface-card{margin-top:1rem}.setup-cue{background:linear-gradient(135deg,var(--surface),#e8f1e7);flex-direction:column;align-items:flex-start;gap:1rem;margin:0 0 2.5rem;display:flex}.setup-cue h2,.setup-cue p:last-child,.surface-card h2{margin-bottom:0}.pairing-join{gap:1rem;display:grid}.pairing-join h1,.pairing-join h2,.pairing-join p{margin-bottom:0}@media (min-width:700px){.setup-cue{flex-direction:row;justify-content:space-between;align-items:center}}.weekly-history-flow{max-width:850px;margin:0 auto}.history-week-list{gap:1rem;display:grid}.history-week-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;display:grid}.history-week-card h2,.history-week-card h3,.history-week-card p:last-child{margin-bottom:0}.history-week-card section{border-top:1px solid var(--border);padding-top:1rem}.history-week-card ul{margin:.5rem 0 0;padding-left:1.2rem}.history-week-card li+li{margin-top:.4rem}.import-inbox-flow{gap:1rem;max-width:850px;margin:0 auto;display:grid}.import-inbox-list{gap:1rem;display:grid}.import-inbox-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;display:grid}.import-inbox-card h3{margin:.6rem 0 .35rem}.discard-confirmation{background:var(--surface-2);border-radius:var(--radius-sm);padding:1rem}.discard-confirmation p{margin:0 0 .75rem}@media (min-width:700px){.import-inbox-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.discard-confirmation{min-width:300px}}.recipe-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.recipe-filters .button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.cooking-history-flow{gap:1rem;max-width:850px;margin:0 auto;display:grid}.cooking-history-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.cooking-history-card{padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;display:grid}.cooking-history-card h2,.cooking-history-card p{margin-bottom:0}@media (min-width:700px){.cooking-history-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}}.alert.warning{color:#6b4a12;background:#fff6e0;border-color:#e6c77a}.sync-actions .alert{flex:100%}a.icon-button{color:inherit;place-items:center;display:inline-grid}a.icon-button[aria-current=page]{border-color:var(--accent);color:var(--accent)}.list-picker{gap:.6rem;display:grid}.list-picker h3{margin:0}.list-picker .heading-actions{align-items:end}.list-picker select{min-width:14rem}.checkbox-row{align-items:flex-start;gap:.6rem;margin:.6rem 0;font-weight:500;display:flex}.checkbox-row input{width:20px;height:20px;min-height:20px;accent-color:var(--accent);margin-top:.15rem}.external-candidate{gap:.4rem;margin:.4rem 0;display:grid}.external-candidate .external-recipe-image{aspect-ratio:4/3;border-radius:var(--radius-sm);background-position:50%;background-size:cover;max-width:320px}.diet-tag-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:.6rem 0;padding:.8rem 1rem}.diet-tag-fieldset legend{padding:0 .3rem;font-size:.92rem;font-weight:650}.diet-tag-options{flex-wrap:wrap;column-gap:1.2rem;display:flex}.diet-tag-options .checkbox-row{margin:.3rem 0}.translation-note{gap:.6rem;display:grid}.translation-note p{margin:0}.translation-original{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.8rem 1rem}.translation-original h3{margin:0 0 .4rem}.translation-original ul{margin:0 0 .6rem;padding-left:1.2rem}.translation-offer{justify-items:start;gap:.5rem;display:grid}.translation-offer p{margin:0}.candidate-image{aspect-ratio:3/4;border-radius:var(--radius);background:var(--surface-2);width:100%;max-width:420px;margin:0;position:relative;overflow:hidden}.candidate-image img{object-fit:cover;width:100%;height:100%;display:block}.candidate-image figcaption{color:#fff;letter-spacing:.03em;background:#0000008c;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;position:absolute;bottom:.6rem;left:.6rem}.candidate-image.pending{color:var(--muted);background:linear-gradient(90deg,var(--surface-2),#fff,var(--surface-2));background-size:200%;place-content:center;justify-items:center;gap:.6rem;animation:1.6s infinite shimmer;display:grid}.suggestion-card .candidate-image,.match-card .candidate-image{justify-self:center}.swipe-stage{flex-direction:column;flex:auto;gap:.9rem;width:100%;max-width:460px;min-height:0;margin:0 auto;display:flex;position:relative}.swipe-stage.has-next:before{content:"";border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);z-index:0;height:100%;max-height:calc(100% - 8rem);position:absolute;inset:.9rem .9rem auto}.swipe-card{z-index:1;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;will-change:transform;border-radius:var(--radius);background:var(--surface);min-height:0;box-shadow:var(--shadow);flex-direction:column;flex:auto;padding:0;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .28s;display:flex;position:relative;overflow:hidden}.swipe-card.dragging{cursor:grabbing;transition:none}.swipe-card.leaving{opacity:.15}.swipe-card .candidate-image{aspect-ratio:auto;border-radius:0;flex:auto;max-width:none;height:min(54vh,480px);min-height:160px;margin:0}.swipe-card .candidate-image img{-webkit-user-drag:none;pointer-events:none}.swipe-card-fallback-image{flex:auto;min-height:160px}.swipe-card-info{flex:none;padding:1rem 1.15rem 1.1rem}.swipe-card-info h2{margin-bottom:.3rem}.swipe-card-meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .3rem;display:flex}.swipe-card-hint{margin:.4rem 0 0;font-size:.78rem}.swipe-stamp{z-index:2;letter-spacing:.04em;text-transform:uppercase;pointer-events:none;opacity:0;background:#fffdfaeb;border:3px solid;border-radius:12px;padding:.3rem .8rem;font-size:1.15rem;font-weight:850;position:absolute;top:1.6rem}.swipe-stamp.like{color:var(--accent);left:1.4rem;transform:rotate(-10deg)}.swipe-stamp.dislike{color:#5d6158;right:1.4rem;transform:rotate(10deg)}.swipe-stage .vote-actions{z-index:1;flex:none;position:relative}.swipe-back{flex:none;align-self:center}.completion-card .button.ghost{justify-self:start}.discover-deck{flex-direction:column;gap:.7rem;width:100%;max-width:460px;margin:0 auto;display:flex}.discover-deck-header{flex-direction:column;flex:none;gap:.3rem;display:flex}.discover-deck-progress{align-items:center;gap:.6rem;font-size:.85rem;display:flex}.discover-deck-progress strong{white-space:nowrap;font-weight:750}.discover-deck-progress progress{flex:1;min-width:0}.discover-deck-week{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;font-size:.82rem;display:flex}.discover-deck-week a{color:var(--accent);font-weight:700}.discover-deck .completion-card{flex:none}@media (max-width:699px){.app-main:has(.discover-deck){padding-top:.65rem;padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))}.discover-deck{height:calc(100dvh - var(--header-h) - .65rem - 4.6rem - env(safe-area-inset-bottom));overflow-y:auto}}.recipe-sheet{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#2527208c;justify-content:center;align-items:flex-end;animation:.2s match-fade;display:flex;position:fixed;inset:0}.recipe-sheet-card{-webkit-overflow-scrolling:touch;background:var(--surface);width:100%;max-width:520px;max-height:88dvh;box-shadow:var(--shadow);border-radius:24px 24px 0 0;animation:.32s cubic-bezier(.32,.72,0,1) sheet-up;position:relative;overflow-y:auto}.recipe-sheet-topbar{z-index:1;background:var(--surface);justify-content:flex-end;padding:.5rem .5rem 0;display:flex;position:sticky;top:0}.recipe-sheet-handle{background:var(--border);border-radius:999px;width:36px;height:4px;position:absolute;top:.6rem;left:50%;transform:translate(-50%)}.recipe-sheet-image{margin:0}.recipe-sheet-image .candidate-image,.recipe-sheet-image .external-recipe-image{aspect-ratio:auto;border-radius:0;max-width:none;height:min(34vh,300px)}.recipe-sheet-body{padding:1rem 1.3rem calc(1.6rem + env(safe-area-inset-bottom))}.recipe-sheet-body h2{margin-bottom:.3rem}.recipe-sheet-body h3{margin:1.1rem 0 .5rem;font-size:1rem}.recipe-sheet-body>.loader{margin:1rem auto}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width:700px){.recipe-sheet{align-items:center;padding:1.5rem}.recipe-sheet-card{border-radius:24px;max-height:min(88dvh,720px);animation:.3s cubic-bezier(.34,1.56,.64,1) match-pop}.recipe-sheet-topbar{border-radius:24px 24px 0 0}}.recipe-art.has-image{background:var(--surface-2);padding:0;position:relative;overflow:hidden}.recipe-art.has-image img{object-fit:cover;width:100%;height:100%;display:block}.art-badge{color:#fff;background:#0009;border-radius:999px;padding:.14rem .3rem;font-size:.62rem;font-weight:800;line-height:1;position:absolute}.art-badge.ai{letter-spacing:.04em;bottom:.25rem;right:.25rem}.art-badge.fav{color:#b63e48;background:#fffdfaeb;font-size:.8rem;top:.25rem;left:.25rem}.recipe-detail-image{margin:0 0 1rem}.recipe-detail-image .candidate-image{max-width:min(100%,420px);margin:0 auto}.recipe-tags{flex-wrap:wrap;gap:.35rem;margin-top:.3rem;display:flex}.tag{background:var(--surface-2);color:var(--muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:.1rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.match-celebration{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#252720b8;place-items:center;padding:1.5rem;animation:.25s match-fade;display:grid;position:fixed;inset:0}.match-celebration-card{text-align:center;background:var(--surface);width:min(100%,380px);box-shadow:var(--shadow);border-radius:28px;padding:clamp(1.5rem,6vw,2.5rem);animation:.45s cubic-bezier(.34,1.56,.64,1) match-pop}.match-celebration-burst{color:var(--accent);margin:0 0 1rem;font-size:1.6rem;font-weight:850;animation:1.1s infinite match-pulse}.match-celebration-image{max-width:220px;margin:0 auto 1rem}.match-celebration-image .candidate-image{max-width:none}.match-celebration h2{margin-bottom:.3rem}.match-celebration .button{width:100%;margin-top:1rem}@keyframes match-fade{0%{opacity:0}to{opacity:1}}@keyframes match-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes match-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}
