:root{--bg:#ffffff;--card:#ffffff;--ink:#2c2a26;--muted:#8a8275;--line:#ece5d8;--accent:#e8743b;--accent-soft:#fcecdf;--green:#5a8a4c;--green-soft:#e9f1e4}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}.wrap{max-width:720px;margin:0 auto;padding:32px 20px 80px}.head{text-align:center;margin-bottom:24px}.head h1{font-size:clamp(28px,6vw,40px);margin:0 0 6px;letter-spacing:-.02em}.head p{margin:0;color:var(--muted);font-size:16px}.dobbel{display:block;margin:20px auto 22px;width:150px;height:150px;font-size:96px;line-height:150px;text-align:center;text-decoration:none;border:none;background:transparent;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .12s ease}.dobbel:hover{transform:translateY(-2px) rotate(-4deg)}.dobbel:active{transform:scale(.96)}.dobbel.rolt{animation:diceRoll .65s cubic-bezier(.36,.07,.19,.97)}@keyframes diceRoll{0%{transform:rotate(0deg) scale(1)}20%{transform:rotate(144deg) scale(1.2)}45%{transform:rotate(288deg) scale(.9)}70%{transform:rotate(504deg) scale(1.15)}to{transform:rotate(2turn) scale(1)}}.voorkeuren{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:18px}.vk{font-size:13px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:5px 12px;border-radius:999px}.hint{text-align:center;color:var(--muted);font-size:16px;padding:30px 0 10px}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 8px 30px rgba(80,60,30,.06);animation:pop .25s ease}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.titel{display:flex;align-items:center;gap:12px;width:100%;border:none;background:transparent;padding:0;margin:0;cursor:pointer;color:var(--ink);justify-content:center;text-align:center}.titel.open{margin:0 0 12px}.titel .naam{font-size:26px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.titel .chev{font-size:30px;line-height:1;color:var(--accent);transition:transform .2s ease}.titel.open .chev{transform:rotate(90deg)}.metarij{align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.badges,.metarij{display:flex;flex-wrap:wrap}.badges{gap:8px}.pinbtn{flex:none;border:none;background:transparent;cursor:pointer;padding:0 4px;height:38px;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}.pinicon{display:inline-block;font-size:30px;transform:rotate(-15deg) translateY(0);filter:drop-shadow(0 8px 4px rgba(0,0,0,.16));transition:transform .18s ease,filter .18s ease}.pinbtn:hover .pinicon:not(.in){transform:rotate(-15deg) translateY(11px);filter:drop-shadow(0 4px 2px rgba(0,0,0,.22))}.pinicon.in{transform:rotate(-15deg) translateY(11px);filter:drop-shadow(0 3px 2px rgba(0,0,0,.3));animation:prikIn .42s cubic-bezier(.36,.07,.19,.97)}@keyframes prikIn{0%{transform:rotate(-15deg) translateY(-6px) scale(1.08)}60%{transform:rotate(-15deg) translateY(14px) scale(.9)}to{transform:rotate(-15deg) translateY(11px) scale(1)}}.recept{animation:pop .2s ease;margin-top:16px}.intro{margin:0;color:var(--muted);font-size:15px;line-height:1.6}.badge{font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--green-soft);color:var(--green)}.badge.grijs{background:#f1ede4}.badge.grijs,.kop{color:var(--muted)}.kop{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:22px 0 10px}.boodschappen{list-style:none;margin:0;padding:0}.boodschappen li{padding:10px 0;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:color .12s ease}.boodschappen li:last-child{border-bottom:none}.boodschappen li:before{content:"";width:20px;height:20px;border:2px solid var(--line);border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;transition:all .12s ease}.boodschappen li.af{color:var(--muted);text-decoration:line-through}.boodschappen li.af:before{content:"✓";background:var(--accent);border-color:var(--accent)}.stappen{margin:0;padding:0;list-style:none}.stappen li{padding:0 0 12px;border-bottom:1px dashed var(--line);margin-bottom:12px}.stappen li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.opties{display:flex;flex-direction:column;gap:10px;margin-top:22px}.optie{display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:16px;font-weight:600;padding:15px 18px;border-radius:16px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.optie:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 8px 20px rgba(232,116,59,.12)}.optie:active{transform:scale(.99)}.kiesdit{width:100%;margin-top:24px;border:none;background:var(--accent);color:#fff;font-size:16px;font-weight:700;padding:15px 18px;border-radius:16px;cursor:pointer;box-shadow:0 8px 20px rgba(232,116,59,.3);transition:transform .12s ease,box-shadow .12s ease}.kiesdit:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(232,116,59,.4)}.kiesdit:active{transform:scale(.99)}.oordelen{display:flex;gap:10px;margin-top:22px}.oordeel{flex:1 1;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:16px;font-weight:700;padding:16px 12px;border-radius:16px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}.oordeel:hover{transform:translateY(-1px)}.oordeel:active{transform:scale(.98)}.oordeel.bah:hover{border-color:#c0563f;background:#fbe9e4}.oordeel.mwah:hover{border-color:var(--muted);background:#f3efe8}.oordeel.mmmm{flex:1.4 1}.oordeel.mmmm:hover{border-color:var(--green);background:var(--green-soft)}.leeg{text-align:center;color:var(--muted);padding:40px 0}.metaknoppen{display:flex;align-items:flex-start;gap:4px}.hartbtn{flex:none;border:none;background:transparent;cursor:pointer;padding:0 4px;height:38px;display:flex;align-items:center;justify-content:center}.harticon{display:inline-block;font-size:28px;line-height:1;color:#1c1c1c;transform:scale(1);transition:transform .18s cubic-bezier(.34,1.56,.64,1),color .18s ease,text-shadow .18s ease;text-shadow:0 1px 0 #000,0 2px 3px rgba(0,0,0,.35)}.hartbtn:hover .harticon{transform:scale(1.45);color:#e0182d;text-shadow:0 1px 0 #a00d1c,0 3px 6px rgba(224,24,45,.45)}.harticon.vol{color:#e0182d;text-shadow:0 1px 0 #a00d1c,0 2px 4px rgba(224,24,45,.4)}.harticon.pop{animation:hartPop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes hartPop{0%{transform:scale(1.45)}40%{transform:scale(1.7)}to{transform:scale(1.45)}}.favfloat{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);border:none;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:52px;height:52px}.favfloat-hart{position:absolute;font-size:52px;line-height:1;color:#e05a7a;opacity:.18;transition:opacity .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.favfloat:hover .favfloat-hart{opacity:.32}.favfloat-getal{position:relative;font-size:16px;font-weight:700;color:#e05a7a;opacity:.55;transition:opacity .15s ease;line-height:1;margin-top:4px}.favfloat:hover .favfloat-getal{opacity:.85}.favoverlay{position:fixed;inset:0;background:rgba(44,42,38,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;padding:0 0 80px;z-index:100;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.favmodal{background:var(--card);border:1px solid var(--line);border-radius:24px;width:min(480px,calc(100vw - 40px));max-height:70vh;overflow-y:auto;box-shadow:0 20px 60px rgba(80,60,30,.15);animation:slideUp .2s cubic-bezier(.22,1,.36,1)}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.favmodal-kop{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 14px;font-size:15px;font-weight:700;color:#e05a7a;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--card)}.favmodal-sluit{border:none;background:transparent;cursor:pointer;font-size:22px;color:var(--muted);line-height:1;padding:0;transition:color .12s ease}.favmodal-sluit:hover{color:var(--ink)}.favmodal-lijst{list-style:none;margin:0;padding:0}.favmodal-item{display:flex;align-items:center;border-bottom:1px dashed var(--line)}.favmodal-item:last-child{border-bottom:none}.favmodal-link{flex:1 1;display:flex;align-items:center;gap:10px;padding:14px 20px;text-decoration:none;color:var(--ink);transition:color .12s ease}.favmodal-link:hover{color:var(--accent)}.favmodal-emoji{font-size:20px;flex:none}.favmodal-naam{flex:1 1;font-size:15px;font-weight:500}.favmodal-tijd{font-size:13px;color:var(--muted);flex:none}.favmodal-del{border:none;background:transparent;cursor:pointer;padding:14px 16px 14px 4px;font-size:16px;opacity:.35;transition:opacity .12s ease;flex:none}.favmodal-del:hover{opacity:.8}.receptpagina{max-width:720px;margin:0 auto;padding:32px 20px 80px}.receptkop{text-align:center;margin-bottom:28px}.receptkop h1{font-size:clamp(26px,5vw,38px);font-weight:700;letter-spacing:-.02em;margin:0 0 16px}.receptkop .badges{justify-content:center}.overzichtkop{font-size:clamp(24px,5vw,36px);font-weight:700;letter-spacing:-.02em;margin:0 0 6px}.overzichtmeta{color:var(--muted);font-size:14px;margin:0 0 36px}.overzichtgroep{margin-bottom:32px}.overzichtkeuken{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.overzichtlijst{list-style:none;margin:0;padding:0}.overzichtlink{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);text-decoration:none;color:var(--ink);transition:color .12s ease}.overzichtlijst li:last-child .overzichtlink{border-bottom:none}.overzichtlink:hover{color:var(--accent)}.overzichtemoji{font-size:20px;flex:none}.overzichtnaam{flex:1 1;font-size:15px;font-weight:500}.overzichttijd{font-size:13px;color:var(--muted);flex:none}