@font-face { font-family: Gather Serif; src: local('Georgia'); font-display: swap; }
:root { --cream:#f8f6ef; --paper:#fffefa; --forest:#294237; --deep:#23392f; --sage:#eef1e9; --ink:#293d32; --muted:#68705f; --line:#e4e3d8; --terracotta:#a95136; --peach:#eed2b4; --radius:18px; --shadow:0 16px 60px #273c3218; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--ink); background:var(--cream); font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button { color:inherit; }
button:disabled { cursor:wait; opacity:.6; }
a { color:var(--forest); text-underline-offset:3px; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid #af714e; outline-offset:3px; }
button,input,select { min-height:44px; }
button { border:0; }
svg { width:20px; height:20px; display:block; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:'Gather Serif',Georgia,serif; font-weight:400; }
p { line-height:1.55; }
[hidden] { display:none!important; }
.skip-link { position:fixed; top:-100px; left:12px; z-index:200; padding:12px; background:var(--forest); color:white; border-radius:8px; }
.skip-link:focus { top:12px; }
.site-header { border-bottom:1px solid var(--line); padding:env(safe-area-inset-top) 0 0; background:var(--cream); }
.header-inner { max-width:1200px; margin:auto; padding:20px 32px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.wordmark { display:flex; align-items:center; gap:10px; background:transparent; padding:0; font-family:Georgia,serif; font-size:32px; line-height:1; letter-spacing:-1px; text-decoration:none; color:var(--forest); }
.wordmark svg { width:30px; height:30px; fill:currentColor; stroke:var(--cream); stroke-width:1.5; }
.wordmark-small { font-family:Georgia,serif; font-size:23px; }
.header-actions { display:flex; align-items:center; gap:12px; }
.private-label { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; display:flex; align-items:center; gap:7px; color:var(--muted); }
.private-label svg { width:14px; height:14px; }
.icon-button { width:44px; height:44px; padding:0; display:flex; align-items:center; justify-content:center; border-radius:50%; background:transparent; flex-shrink:0; }
.icon-button:hover { background:var(--sage); }
.primary,.secondary,.quiet,.danger { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:12px 18px; border-radius:11px; font-size:14px; font-weight:600; text-decoration:none; min-height:46px; line-height:1.25; }
.primary { background:var(--forest); color:#fffef6; }
.primary:hover { background:var(--deep); }
.secondary { background:var(--sage); color:var(--forest); }
.quiet { background:transparent; color:var(--forest); border:1px solid var(--line); }
.danger { background:#faeee8; color:#913d28; }
.full { width:100%; }
.text-button { background:transparent; padding:10px 0; font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.main { max-width:1200px; margin:auto; padding:42px 32px 108px; }
.eyebrow { text-transform:uppercase; font-size:10px; font-weight:700; letter-spacing:2.4px; color:var(--terracotta); line-height:1.5; }
.hero { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.hero h1 { font-size:46px; letter-spacing:-1.8px; line-height:1.15; margin:10px 0; }
.hero p { font-size:14px; color:var(--muted); }
.demo-badge { background:#ede4c7; padding:6px 9px; border-radius:7px; color:#6b5b29; font-size:11px; font-weight:600; }
.search { width:100%; position:relative; }
.search svg { position:absolute; left:16px; top:14px; color:var(--muted); }
.search input { width:100%; padding:14px 42px; border:1px solid var(--line); background:var(--paper); border-radius:12px; color:var(--ink); font-size:14px; height:50px; }
.search input::placeholder { color:var(--muted); }
.search-clear { position:absolute; right:5px; top:3px; width:44px; height:44px; background:none; padding:0; }
.search-clear svg { position:static; margin:auto; width:16px; }
.filter-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:18px 0 24px; }
.filter-chip { min-height:40px; border-radius:24px; background:transparent; padding:9px 15px; color:var(--muted); font-size:13px; border:1px solid var(--line); display:flex; align-items:center; gap:6px; white-space:nowrap; }
.filter-chip svg { width:16px; height:16px; }
.filter-chip[aria-pressed=true] { color:var(--forest); background:#e8ede4; border-color:#d9e1d3; font-weight:600; }
.collection-select { padding:10px 28px 10px 12px; background:transparent; border:0; color:var(--forest); font-size:13px; margin-left:auto; max-width:180px; }
.library-topline { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:18px; margin-bottom:18px; color:var(--muted); font-size:12px; }
.sort-select { border:0; background:transparent; color:var(--forest); padding:4px; min-height:36px; font-size:12px; }
.recipe-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }
.recipe-card { border:1px solid var(--line); border-radius:16px; background:var(--paper); overflow:hidden; position:relative; transition:transform .15s,box-shadow .15s; }
.recipe-card:hover { box-shadow:0 9px 26px #273c320a; transform:translateY(-2px); }
.card-art-button { width:100%; padding:0; display:block; background:none; }
.recipe-art { width:100%; height:166px; overflow:hidden; position:relative; background:#edd3b6; display:flex; align-items:center; justify-content:center; }
.recipe-art:before { content:''; position:absolute; width:165px; height:165px; top:28px; left:22%; border-radius:50%; background:#fff7e529; }
.recipe-art:after { content:''; position:absolute; width:200px; height:200px; top:21px; left:45%; border-radius:50%; border:1px solid #fff9e577; }
.recipe-art svg { width:62px; height:62px; z-index:1; color:#7c8167; stroke-width:.9; }
.art-1 { background:#e8d189; }
.art-2 { background:#e6b899; }
.art-3 { background:#d4dfc5; }
.art-4 { background:#d6dccf; }
.recipe-art img { width:100%; height:100%; object-fit:cover; position:relative; z-index:2; }
.recipe-art.has-photo:after,.recipe-art.has-photo:before { display:none; }
.art-source-label { position:absolute; left:12px; bottom:12px; z-index:3; background:#fffff6dc; border-radius:6px; padding:5px 8px; font-size:10px; display:flex; align-items:center; gap:5px; color:var(--forest); }
.art-source-label svg { width:12px; height:12px; }
.card-body { padding:17px 18px 18px; }
.card-title-row { display:flex; align-items:start; gap:8px; }
.card-title { padding:0; text-align:left; background:none; flex:1; font-family:Georgia,serif; font-size:22px; letter-spacing:-.45px; line-height:1.16; min-height:30px; }
.favorite-button { min-width:44px; width:44px; height:44px; margin:-10px -9px -7px 0; border-radius:50%; display:flex; align-items:center; justify-content:center; background:none; color:#8c9584; }
.favorite-button[aria-pressed=true] { color:var(--terracotta); }
.favorite-button[aria-pressed=true] svg { fill:currentColor; }
.card-summary { font-size:12px; color:var(--muted); line-height:1.5; margin:8px 0 13px; min-height:36px; }
.recipe-meta { display:flex; flex-wrap:wrap; gap:15px; color:var(--muted); font-size:11px; align-items:center; }
.recipe-meta span { display:flex; align-items:center; gap:5px; }
.recipe-meta svg { width:14px; height:14px; }
.tag-list { display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.tag { font-size:10px; color:var(--forest); background:var(--sage); padding:5px 8px; border-radius:6px; }
.status-tag { font-size:10px; color:#86632c; background:#f6edd3; padding:5px 8px; border-radius:6px; display:inline-flex; align-items:center; gap:5px; }
.status-tag.error { color:#984b35; background:#fae8df; }
.status-tag svg { width:12px; height:12px; }
.queue-banner { display:flex; align-items:center; gap:12px; background:#edeadd; border:1px solid #e4dfc9; border-radius:12px; padding:14px 16px; margin-bottom:20px; }
.queue-banner>.banner-icon { background:#fffefa9e; width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.queue-banner .banner-copy { flex:1; min-width:0; }
.queue-banner strong { display:block; font-size:13px; font-weight:600; }
.queue-banner p { font-size:11px; color:var(--muted); margin-top:2px; }
.queue-banner button { background:transparent; color:var(--forest); font-size:12px; font-weight:600; padding:5px; }
.queue-banner button svg { width:17px; }
.notice { font-size:12px; line-height:1.6; padding:12px 14px; border-radius:10px; margin-bottom:18px; background:#eceee5; color:#65715f; }
.notice.error { background:#faece5; color:#874730; }
.notice.warning { background:#f5edd4; color:#786232; }
.notice strong { color:inherit; }
.notice a { color:inherit; }
.empty-state { padding:44px 20px 56px; text-align:center; background:linear-gradient(180deg,#f0eddf80,transparent); border:1px dashed #dcdccf; border-radius:18px; }
.empty-state .empty-art { width:90px; height:90px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:auto auto 19px; background:#e7e9da; }
.empty-state svg { width:44px; height:44px; stroke-width:1; }
.empty-state h2 { font-size:29px; margin-bottom:10px; }
.empty-state p { max-width:330px; margin:auto auto 22px; font-size:13px; color:var(--muted); }
.mobile-nav { display:none; }
.footer-note { display:flex; justify-content:center; align-items:center; gap:6px; color:var(--muted); font-size:10px; margin-top:36px; }
.footer-note svg { width:12px; height:12px; }
.welcome { max-width:440px; margin:70px auto 0; padding:0 24px 80px; text-align:center; }
.welcome-art { margin:0 auto 26px; width:110px; height:110px; background:#e4e9d8; border-radius:35px 35px 35px 8px; display:flex; align-items:center; justify-content:center; transform:rotate(-7deg); }
.welcome-art svg { width:64px; height:64px; color:var(--forest); stroke-width:1; transform:rotate(7deg); }
.welcome h1 { font-size:43px; letter-spacing:-1.5px; margin:8px 0 15px; }
.welcome>p { font-size:14px; color:var(--muted); }
.welcome form { margin-top:30px; text-align:left; }
.welcome .primary { margin-top:15px; }
.welcome-note { margin:26px auto 0; max-width:300px; font-size:11px!important; }
.welcome .text-button { margin-top:15px; }
.field { margin-bottom:18px; display:block; }
.field>span,.field-label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.field input,.field textarea,.field select { width:100%; border:1px solid var(--line); border-radius:9px; background:var(--paper); padding:12px; font-size:14px; color:var(--ink); line-height:1.45; }
.field textarea { resize:vertical; min-height:110px; }
.field .help { display:block; font-size:11px; font-weight:400; color:var(--muted); line-height:1.5; margin:6px 0 0; }
.field-error { font-size:12px; color:#9c422e; line-height:1.5; margin:10px 0; }
.field-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.field-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
dialog { width:min(600px,calc(100% - 36px)); border:0; padding:0; border-radius:22px; box-shadow:var(--shadow); background:var(--cream); color:var(--ink); max-height:calc(100dvh - 56px); overscroll-behavior:contain; }
dialog::backdrop { background:#16281f85; backdrop-filter:blur(4px); }
.dialog-head { display:flex; align-items:center; justify-content:space-between; padding:24px 26px 18px; gap:14px; border-bottom:1px solid var(--line); background:var(--cream); position:sticky; top:0; z-index:5; }
.dialog-head h2 { font-size:28px; letter-spacing:-.5px; }
.dialog-head .eyebrow { margin-bottom:5px; }
.dialog-body { padding:22px 26px 28px; }
.dialog-head .icon-button { margin-right:-9px; }
.dialog-actions { display:flex; justify-content:end; gap:10px; margin-top:22px; }
.dialog-actions .primary { flex:1; }
.dialog-description { font-size:13px; color:var(--muted); margin-bottom:20px; }
.import-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:5px; border-radius:12px; background:#edece2; margin-bottom:24px; }
.import-tab { display:flex; flex-direction:column; align-items:center; gap:5px; border-radius:8px; padding:10px 4px; color:var(--muted); background:none; font-size:11px; min-height:61px; }
.import-tab[aria-selected=true] { background:var(--paper); box-shadow:0 1px 5px #293d3210; color:var(--forest); font-weight:600; }
.photo-picker { display:block; cursor:pointer; padding:30px 20px; border:1px dashed #bdc9b4; border-radius:14px; text-align:center; background:#eff1e6; }
.photo-picker .photo-picker-icon { width:60px; height:60px; border-radius:50%; background:#dfe7d5; display:flex; align-items:center; justify-content:center; margin:auto auto 12px; }
.photo-picker svg { width:28px; height:28px; }
.photo-picker strong { display:block; font-size:14px; }
.photo-picker p { margin-top:5px; font-size:11px; color:var(--muted); }
.file-input { width:100%; margin:14px 0 0; color:var(--muted); font-size:12px; }
.file-input::file-selector-button { min-height:44px; border:1px solid var(--line); color:var(--forest); background:var(--paper); border-radius:8px; padding:8px 12px; font:inherit; margin-right:8px; }
.photo-preview { width:100%; height:240px; object-fit:contain; border-radius:12px; margin:15px 0; background:#e5e7dd; }
.privacy-caption { display:flex; gap:7px; align-items:start; font-size:11px; color:var(--muted); line-height:1.55; margin:16px 0; }
.privacy-caption svg { width:14px; height:14px; margin-top:2px; }
.detail-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.back-button { background:none; padding:8px 0; display:flex; align-items:center; gap:6px; font-size:13px; min-height:44px; }
.detail-actions { display:flex; gap:7px; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:45px; }
.detail-visual .recipe-art { height:300px; border-radius:18px; }
.detail-visual .recipe-art svg { width:104px; height:104px; }
.detail-visual .recipe-art:before { width:280px; height:280px; top:35px; left:12%; }
.detail-visual .recipe-art:after { width:320px; height:320px; top:25px; left:45%; }
.detail-heading h1 { font-size:43px; line-height:1.1; letter-spacing:-1.3px; margin:10px 0 16px; }
.detail-summary { font-size:14px; color:var(--muted); margin-bottom:22px; }
.detail-heading .recipe-meta { font-size:12px; gap:19px; margin-bottom:22px; }
.detail-heading .recipe-meta svg { width:17px; height:17px; }
.source-box { border:1px solid var(--line); padding:16px; border-radius:12px; margin-top:20px; font-size:12px; display:flex; gap:12px; align-items:start; overflow-wrap:anywhere; }
.source-box>svg { color:#87917d; }
.source-box strong { display:block; font-weight:600; margin-bottom:4px; }
.source-box p { font-size:11px; color:var(--muted); }
.source-box .text-button { font-size:11px; padding:5px 0; min-height:32px; }
.recipe-section { margin:32px 0 0; }
.recipe-section h2 { font-size:27px; letter-spacing:-.6px; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:16px; }
.ingredients { list-style:none; margin:0; padding:0; }
.ingredient { display:flex; align-items:start; gap:10px; padding:9px 0; font-size:14px; line-height:1.55; }
.ingredient input { width:18px; height:18px; min-height:18px; margin:3px 1px 0; accent-color:var(--forest); cursor:pointer; }
.ingredient:has(input:checked)>span { text-decoration:line-through; color:var(--muted); }
.instructions { list-style:none; counter-reset:steps; padding:0; margin:0; }
.instructions li { counter-increment:steps; display:flex; gap:14px; line-height:1.65; font-size:14px; margin:0 0 22px; }
.instructions li:before { content:counter(steps); font-family:Georgia,serif; font-size:19px; min-width:29px; height:29px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#e7ecdf; color:var(--forest); margin-top:1px; }
.recipe-note { background:#efedde; border-left:3px solid #bcba93; border-radius:0 10px 10px 0; padding:16px 18px; font-size:13px; white-space:pre-wrap; line-height:1.7; }
.review-actions { display:flex; gap:10px; margin-top:18px; }
.review-actions .primary { flex:1; }
.source-text { white-space:pre-wrap; font-family:inherit; font-size:13px; line-height:1.6; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:10px; max-height:300px; overflow:auto; }
.settings-block { border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:20px; }
.settings-block:last-child { border-bottom:0; padding-bottom:0; margin-bottom:0; }
.settings-block h3 { font-family:inherit; font-size:13px; font-weight:600; margin-bottom:7px; display:flex; align-items:center; gap:8px; }
.settings-block h3 svg { width:17px; height:17px; }
.settings-block p { color:var(--muted); font-size:12px; }
.settings-block .secondary,.settings-block .quiet { margin-top:14px; }
.check-row { display:flex; gap:10px; align-items:start; font-size:12px; line-height:1.6; cursor:pointer; margin:12px 0; }
.check-row input { accent-color:var(--forest); width:18px; height:18px; min-height:18px; margin-top:2px; flex-shrink:0; }
.check-row small { display:block; color:var(--muted); font-size:11px; }
.setup-steps { list-style:none; counter-reset:setup; padding:0; margin:18px 0 24px; }
.setup-steps li { counter-increment:setup; display:flex; gap:12px; font-size:12px; line-height:1.65; margin-bottom:16px; }
.setup-steps li:before { content:counter(setup); min-width:23px; height:23px; border-radius:50%; background:var(--sage); color:var(--forest); display:flex; align-items:center; justify-content:center; font-weight:600; }
.prompt-box { font-size:13px; line-height:1.7; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:10px; margin-bottom:12px; }
.cooking-title { font-size:32px; margin-bottom:6px; }
.cooking-progress { margin:18px 0 26px; background:#e1e6d9; height:4px; border-radius:4px; overflow:hidden; }
.cooking-progress>div { background:var(--forest); height:100%; transition:width .2s; }
.cooking-number { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--muted); }
.cooking-step { font-family:Georgia,serif; font-size:25px; line-height:1.6; margin:12px 0 32px; }
.cooking-controls { display:flex; gap:10px; }
.cooking-controls .primary { flex:1; }
.toast { position:fixed; bottom:30px; left:50%; transform:translate(-50%,20px); max-width:calc(100% - 38px); min-width:220px; background:var(--forest); color:#fffef6; font-size:12px; padding:14px 19px; border-radius:12px; text-align:center; box-shadow:0 8px 30px #263a3233; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; z-index:110; }
.toast.visible { opacity:1; transform:translate(-50%,0); }
.busy-indicator { position:fixed; right:18px; top:18px; z-index:120; background:var(--forest); color:white; padding:9px 14px; font-size:12px; border-radius:8px; box-shadow:var(--shadow); }
.startup { display:flex; align-items:center; justify-content:center; flex-direction:column; height:75vh; color:var(--muted); font-size:14px; }
.startup-leaf { font-family:Georgia,serif; color:var(--forest); font-size:60px; margin-bottom:12px; }
.noscript { padding:30px; text-align:center; }
@media (max-width:700px) {
  .header-inner { padding:17px 20px 15px; }
  .wordmark { font-size:30px; }
  .wordmark svg { width:26px; height:26px; }
  .header-actions { gap:4px; }
  .private-label { font-size:9px; letter-spacing:1px; }
  .private-label svg { width:12px; height:12px; }
  .header-add { display:none; }
  .main { padding:27px 20px calc(110px + env(safe-area-inset-bottom)); }
  .hero { margin-bottom:23px; }
  .hero h1 { font-size:39px; letter-spacing:-1.5px; margin:8px 0 10px; }
  .hero p { font-size:12px; max-width:270px; }
  .eyebrow { font-size:9px; letter-spacing:1.9px; }
  .hero>.primary { display:none; }
  .search input { font-size:16px; height:49px; padding-left:41px; }
  .filter-row { flex-wrap:nowrap; overflow-x:auto; margin:15px -20px 21px; padding:0 20px; gap:7px; scrollbar-width:none; }
  .filter-row::-webkit-scrollbar { display:none; }
  .filter-chip { min-height:40px; font-size:12px; padding:8px 13px; }
  .collection-select { margin-left:0; flex-shrink:0; max-width:130px; font-size:12px; }
  .recipe-grid { grid-template-columns:1fr; gap:20px; }
  .recipe-art { height:170px; }
  .card-body { padding:18px 20px 20px; }
  .card-title { font-size:25px; }
  .card-summary { font-size:13px; min-height:0; margin-bottom:14px; }
  .recipe-meta { font-size:11px; }
  .tag { font-size:10px; }
  .library-topline { margin-bottom:16px; padding-top:14px; }
  .queue-banner { padding:12px; gap:10px; }
  .queue-banner strong { font-size:12px; }
  .queue-banner p { font-size:10px; }
  .mobile-nav { display:flex; position:fixed; bottom:0; left:0; right:0; justify-content:space-around; align-items:center; background:#fffefaed; backdrop-filter:blur(14px); border-top:1px solid var(--line); padding:9px 20px calc(9px + env(safe-area-inset-bottom)); z-index:30; }
  .nav-button { min-width:65px; padding:4px 12px; display:flex; flex-direction:column; align-items:center; gap:4px; background:transparent; color:var(--muted); font-size:9px; line-height:1.3; }
  .nav-button[aria-current=page] { color:var(--forest); font-weight:600; }
  .nav-button svg { width:20px; height:20px; }
  .nav-add { display:flex; align-items:center; justify-content:center; background:var(--forest); color:white; width:50px; height:50px; border-radius:16px; box-shadow:0 5px 13px #29423718; padding:0; }
  .nav-add svg { width:22px; height:22px; }
  .toast { bottom:calc(92px + env(safe-area-inset-bottom)); }
  dialog { width:100%; max-width:100%; margin:auto 0 0; max-height:calc(100dvh - env(safe-area-inset-top) - 22px); border-radius:24px 24px 0 0; }
  .dialog-head { padding:21px 22px 17px; }
  .dialog-head h2 { font-size:27px; }
  .dialog-body { padding:20px 22px calc(25px + env(safe-area-inset-bottom)); }
  .field input,.field textarea,.field select { font-size:16px; }
  .field>span { font-size:12px; }
  .field-grid { gap:8px; }
  .field-grid .field input { padding:11px 9px; }
  .field-grid .field>span { font-size:11px; }
  .detail-top { margin-bottom:17px; }
  .detail-grid { grid-template-columns:1fr; gap:25px; }
  .detail-visual .recipe-art { height:230px; }
  .detail-heading h1 { font-size:37px; margin-top:8px; }
  .detail-summary { font-size:14px; }
  .source-box { margin-top:14px; }
  .detail-visual .source-box { display:none; }
  .detail-heading .mobile-source { display:flex; }
  .review-actions { flex-wrap:wrap; }
  .recipe-section { margin-top:29px; }
  .recipe-section h2 { font-size:28px; }
  .ingredient { font-size:15px; padding:11px 0; }
  .ingredient input { width:20px; height:20px; min-height:20px; margin-top:2px; }
  .instructions li { font-size:15px; }
  .welcome { margin-top:41px; }
  .welcome h1 { font-size:39px; }
  .welcome form { margin-top:24px; }
}
@media (min-width:701px) { .mobile-source { display:none; } }
@media (min-width:480px) and (max-width:700px) { .recipe-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .card-title { font-size:21px; } .recipe-art { height:150px; } .card-body { padding:15px; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
