.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.scroll-fade-mask{-webkit-mask-image:linear-gradient(to right,transparent 0,black 24px,black calc(100% - 24px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 24px,black calc(100% - 24px),transparent 100%)}.scroll-fade-mask-start-only{-webkit-mask-image:linear-gradient(to right,black 0,black calc(100% - 24px),transparent 100%);mask-image:linear-gradient(to right,black 0,black calc(100% - 24px),transparent 100%)}.scroll-fade-mask-end-only{-webkit-mask-image:linear-gradient(to right,transparent 0,black 24px,black 100%);mask-image:linear-gradient(to right,transparent 0,black 24px,black 100%)}@keyframes swipeHint{0%,to{transform:translate(0);opacity:.4}50%{transform:translate(8px);opacity:.8}}.swipe-hint-arrow{animation:swipeHint 1.6s ease-in-out infinite}.recipe-modal-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,90,54,.75) rgba(244,236,219,.9)}.recipe-modal-scroll::-webkit-scrollbar{width:10px}.recipe-modal-scroll::-webkit-scrollbar-track{background:#f4ecdbe6;border-left:1px solid rgba(31,27,24,.08)}.recipe-modal-scroll::-webkit-scrollbar-thumb{background:#ff5a36bf;border:2px solid rgba(244,236,219,.9);border-radius:999px}.recipe-modal-scroll::-webkit-scrollbar-thumb:hover{background:#ff5a36f2}.goal-ico path,.goal-ico circle,.goal-ico line,.goal-ico rect,.goal-ico ellipse,.goal-ico polyline,.goal-ico polygon{vector-effect:non-scaling-stroke}@keyframes goalScaleBob{0%,to{transform:translateY(0)}50%{transform:translateY(.5px)}}.goal-scale-body{transform-box:fill-box;transform-origin:50px 60px;animation:goalScaleBob 4s infinite ease-in-out}.goal-num{opacity:0;font-family:JetBrains Mono,monospace;font-weight:700}.goal-num.n1{animation:goalShowA 5s infinite ease-out}.goal-num.n2{animation:goalShowB 5s infinite ease-out}.goal-num.n3{animation:goalShowC 5s infinite ease-out}.goal-num.n4{animation:goalShowD 5s infinite ease-out}@keyframes goalShowA{0%,18%{opacity:1}22%,to{opacity:0}}@keyframes goalShowB{0%,22%{opacity:0}26%,43%{opacity:1}47%,to{opacity:0}}@keyframes goalShowC{0%,47%{opacity:0}51%,68%{opacity:1}72%,to{opacity:0}}@keyframes goalShowD{0%,72%{opacity:0}76%,93%{opacity:1}97%,to{opacity:0}}@keyframes goalArrowBlink{0%,30%,60%{transform:translateY(0);opacity:.5}10%,40%,70%{transform:translateY(2px);opacity:1}}.goal-dn-arrow{transform-box:fill-box;transform-origin:center;animation:goalArrowBlink 1.6s infinite ease-out}@keyframes goalDbLift{0%,to{transform:translateY(3px) rotate(-2deg)}45%,60%{transform:translateY(-4px) rotate(1.5deg)}}.goal-db{transform-box:fill-box;transform-origin:50px 50px;animation:goalDbLift 2.2s infinite ease-in-out}@keyframes goalMotionLine{0%{transform:translate(0);opacity:0}30%{opacity:.85}to{transform:translate(-12px);opacity:0}}.goal-motion{transform-box:fill-box;transform-origin:center;animation:goalMotionLine 2.2s infinite ease-out}.goal-motion.b{animation-delay:.22s}@keyframes goalBoltZap{0%,55%{transform:scale(0) rotate(-12deg);opacity:0}65%{transform:scale(1.15) rotate(0);opacity:1}82%{transform:scale(1) rotate(0);opacity:1}93%{transform:scale(.5) rotate(10deg);opacity:0}to{transform:scale(0) rotate(-12deg);opacity:0}}.goal-bolt{transform-box:fill-box;transform-origin:center;animation:goalBoltZap 2.2s infinite cubic-bezier(.34,1.56,.64,1)}@keyframes goalBowlIdle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(.5deg)}}.goal-bowl{transform-box:fill-box;transform-origin:50px 70px;animation:goalBowlIdle 5s infinite ease-in-out}@keyframes goalSteamRise{0%{transform:translateY(4px) scale(.9);opacity:0}20%{opacity:.7}80%{opacity:.5}to{transform:translateY(-12px) scale(1.1);opacity:0}}.goal-steam{transform-box:fill-box;transform-origin:center;animation:goalSteamRise 2.6s infinite ease-out}.goal-steam.b{animation-delay:.6s}.goal-steam.c{animation-delay:1.2s}@keyframes goalLeafWiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.goal-leafy{transform-box:fill-box;transform-origin:50px 60px;animation:goalLeafWiggle 4s infinite ease-in-out}@keyframes goalGemFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.goal-gem{transform-box:fill-box;transform-origin:50px 56px;animation:goalGemFloat 3.2s infinite ease-in-out}@keyframes goalFacetShine{0%,60%{opacity:0;transform:translate(-6px)}70%{opacity:1;transform:translate(0)}88%{opacity:1}to{opacity:0;transform:translate(6px)}}.goal-facet-shine{transform-box:fill-box;transform-origin:center;animation:goalFacetShine 3.2s infinite ease-out}@keyframes goalSparkle{0%,to{transform:scale(.3);opacity:0}50%{transform:scale(1);opacity:1}}.goal-sparkle{transform-box:fill-box;transform-origin:center;animation:goalSparkle 2.4s infinite ease-in-out}.goal-sparkle.b{animation-delay:.6s}.goal-sparkle.c{animation-delay:1.2s}.goal-sparkle.d{animation-delay:1.8s}@media print{@page{margin:1cm;size:A4}body{background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}header,footer,button,.no-print,.print\:hidden{display:none!important}.meal-card{break-inside:avoid;border:1px solid #ddd!important;box-shadow:none!important;margin-bottom:1rem;page-break-inside:avoid}h1,h2,h3,h4,h5,h6{color:#000!important}.grid{display:block!important}.grid>*{margin-bottom:20px}}
