:root{--color-yellow: #f7f780;--color-dark: #27272a;--color-off-white: #f7f7f3;--color-black: #000000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-off-white);color:var(--color-dark)}#root{min-height:100vh;width:100%}button{font-family:inherit;cursor:pointer;border:none;outline:none}button:focus-visible{outline:2px solid var(--color-yellow);outline-offset:2px}img{max-width:100%;height:auto}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--color-dark);padding:60px 24px;position:relative;overflow:hidden}.hero-content{max-width:1200px;width:100%;text-align:center;z-index:1;position:relative}.hero-title{font-size:clamp(48px,8vw,96px);font-weight:800;line-height:1.1;margin:0 0 24px;letter-spacing:-2px}.hero-highlight{color:var(--color-dark);position:relative;display:inline-block}.hero-highlight:after{content:"";position:absolute;bottom:10px;left:0;right:0;height:24px;background:var(--color-yellow);z-index:-1}.hero-subtitle{font-size:clamp(18px,2vw,24px);line-height:1.6;color:#666;margin:0 0 30px;font-weight:400}.hero-animation{margin:0 auto 20px;display:flex;justify-content:center;align-items:center;filter:none;background:transparent;border-radius:0;padding:0;min-height:auto;position:relative}.hero-cta{background:var(--color-dark);color:var(--color-yellow);border:2px solid var(--color-dark);border-radius:0;padding:20px 48px;font-size:18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:none;margin-bottom:80px;margin-top:20px;position:relative;z-index:20}.hero-cta:hover{background:var(--color-dark);box-shadow:8px 8px 0 var(--color-yellow);transform:translateY(-2px)}.hero-cta svg{transition:transform .3s ease}.hero-cta:hover svg{transform:translate(4px)}.scroll-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#999;z-index:10}.scroll-indicator svg{display:block}@media(max-width:768px){.hero-section{padding:40px 20px}.hero-title{margin-bottom:16px}.hero-subtitle{font-size:16px;margin-bottom:40px}.hero-animation{margin:40px auto}.hero-cta{padding:16px 36px;font-size:16px;margin-bottom:60px}.scroll-indicator{bottom:24px}}.camera-capture{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000;z-index:1000;display:flex;align-items:center;justify-content:center}.camera-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.close-button{position:absolute;top:20px;right:20px;z-index:10;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#fff}.close-button:hover{background:#ffffff4d;transform:scale(1.1)}.webcam-wrapper{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.webcam{width:100%;height:100%;object-fit:cover}.camera-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#fff}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:var(--color-yellow);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.camera-controls{padding:40px 20px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);display:flex;justify-content:center;align-items:center}.capture-button{background:transparent;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff;font-size:16px;transition:all .3s ease}.capture-button:disabled{opacity:.5;cursor:not-allowed}.capture-ring{width:80px;height:80px;border:4px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.capture-button:hover:not(:disabled) .capture-ring{transform:scale(1.1);border-color:var(--color-yellow)}.capture-circle{width:60px;height:60px;background:#fff;border-radius:50%;transition:all .3s ease}.capture-button:hover:not(:disabled) .capture-circle{background:var(--color-yellow)}.capture-button:active:not(:disabled) .capture-ring{transform:scale(.95)}.preview-container{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;background:#fff;gap:32px}.camera-capture .loading-animation{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;display:flex;align-items:center;justify-content:center}.camera-capture .loading-content{text-align:center;padding:40px}.camera-capture .lottie-wrapper{margin-bottom:24px;display:flex;justify-content:center;background:#fff;border-radius:12px;padding:20px}@media(max-width:768px){.preview-container{padding:40px 20px;gap:24px;min-height:100vh}.preview-buttons{max-width:100%;padding:0 20px}.preview-image{max-height:60vh}.generate-button{padding:14px 36px;font-size:16px;box-shadow:4px 4px 0 var(--color-dark)}.generate-button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--color-dark)}.generate-button:active{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--color-dark)}.retry-button{padding:12px 32px;font-size:15px}}.image-upload{width:100%;background:transparent;border:none;padding:30px 40px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:24px;transition:all .3s ease}.image-upload:hover{background:linear-gradient(135deg,#f7f7801a,#f7f7800d)}.image-upload:hover .upload-icon-wrapper{transform:translateY(-4px);box-shadow:8px 8px 0 var(--color-dark)}.image-upload h3{font-size:24px;font-weight:700;color:var(--color-dark);margin:0}.image-upload p{font-size:16px;color:#666;margin:0;line-height:1.5;text-align:center}.preview-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;gap:32px;background:#fff;z-index:1000}.preview-buttons{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:400px}.preview-image{max-width:90%;max-height:70vh;width:auto;object-fit:contain;border-radius:12px;box-shadow:0 8px 24px #00000026}.generate-button{background:var(--color-yellow);color:var(--color-dark);border:3px solid var(--color-dark);padding:16px 48px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:6px 6px 0 var(--color-dark);width:100%}.generate-button:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--color-dark)}.generate-button:active{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--color-dark)}.retry-button{background:transparent;color:var(--color-dark);border:2px solid var(--color-dark);padding:14px 40px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%}.retry-button:hover{background:var(--color-dark);color:#fff}.retry-button:active{transform:scale(.98)}.loading-animation{width:100%;padding:60px 40px;background:#fff;display:flex;align-items:center;justify-content:center}.loading-content{text-align:center}.loading-content p{color:#666;font-size:16px;margin:0;line-height:1.5}@media(max-width:768px){.image-upload{padding:30px 40px}.upload-icon-wrapper{width:100px;height:100px}.upload-icon-wrapper svg{width:48px;height:48px}.preview-container{padding:40px 20px;gap:24px}.preview-buttons{max-width:100%;padding:0 20px}.preview-image{max-height:60vh}.generate-button{padding:14px 36px;font-size:16px;box-shadow:4px 4px 0 var(--color-dark)}.generate-button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--color-dark)}.generate-button:active{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--color-dark)}.retry-button{padding:12px 32px;font-size:15px}.loading-animation{padding:40px 20px}}.upload-section{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-off-white);padding:80px 24px;position:relative}.upload-container{max-width:1200px;width:100%}.upload-header{text-align:center;margin-bottom:20px}@media(min-width:500px){.upload-header-desktop{margin-bottom:40px}}.upload-header h2{font-size:clamp(36px,5vw,64px);font-weight:800;color:var(--color-dark);margin:0 0 16px;letter-spacing:-1px}.upload-header p{font-size:clamp(16px,2vw,20px);color:#666;margin:0;line-height:1.6}.upload-options{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}@media(min-width:500px){.upload-options-desktop{gap:40px}}.upload-option-card{background:transparent;border-radius:0;overflow:visible;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1);height:100%}.upload-camera-button{width:100%;background:transparent;border:none;padding:0 40px 30px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:24px;transition:all .3s ease}@media(min-width:500px){.upload-camera-button-desktop{padding:30px 40px}}.upload-camera-button:hover{background:linear-gradient(135deg,#f7f7801a,#f7f7800d)}.upload-icon-wrapper{width:120px;height:120px;border-radius:0;background:var(--color-yellow);display:flex;align-items:center;justify-content:center;transition:all .3s ease}.upload-camera-button:hover .upload-icon-wrapper{transform:translateY(-4px);box-shadow:8px 8px 0 var(--color-dark)}.upload-icon-wrapper svg{color:var(--color-dark)}.upload-camera-button h3{font-size:24px;font-weight:700;color:var(--color-dark);margin:0}.upload-camera-button p{font-size:16px;color:#666;margin:0;line-height:1.5;text-align:center}.upload-divider{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--color-dark);border-radius:50%;position:relative}.upload-divider span{color:var(--color-yellow);font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:2px}.upload-error{background:linear-gradient(135deg,#fff5f5,#ffe5e5);border:2px solid #fc8181;border-radius:24px;padding:48px;text-align:center;max-width:600px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px}.upload-error svg{color:#fc8181}.upload-error p{color:#c53030;font-size:18px;margin:0;font-weight:600}.upload-error button{background:var(--color-dark);color:var(--color-yellow);border:none;border-radius:50px;padding:16px 40px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;margin-top:8px}.upload-error button:hover{background:#2d2c2a;transform:translateY(-2px);box-shadow:0 8px 16px #1d1c1b33}.upload-preview{max-width:800px;margin:0 auto;text-align:center}.upload-preview h3{font-size:32px;font-weight:700;color:var(--color-dark);margin:0 0 32px}.upload-preview-image{background:#fff;border-radius:24px;padding:16px;box-shadow:0 8px 32px #1d1c1b1f;margin-bottom:32px;overflow:hidden}.upload-preview-image img{width:100%;height:auto;border-radius:16px;display:block}.upload-retry-button{background:transparent;color:var(--color-dark);border:2px solid var(--color-dark);border-radius:50px;padding:16px 32px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:12px}.upload-retry-button:hover{background:var(--color-dark);color:var(--color-yellow);transform:translateY(-2px);box-shadow:0 8px 16px #1d1c1b33}.upload-retry-button svg{transition:transform .3s ease}.upload-retry-button:hover svg{transform:rotate(180deg)}@media(max-width:968px){.upload-options{grid-template-columns:1fr;gap:8px}.upload-divider{width:60px;height:60px;margin:0 auto}.upload-divider span{font-size:16px}}@media(max-width:768px){.upload-section{padding:60px 20px}.upload-icon-wrapper{width:100px;height:100px}.upload-icon-wrapper svg{width:48px;height:48px}.upload-error{padding:32px 24px}}.recipe-steps-section{background:var(--color-dark);color:var(--color-off-white);padding:80px 24px;min-height:100vh}.recipe-steps-header{max-width:1200px;margin:0 auto 80px;text-align:center}.recipe-steps-header h2{font-size:clamp(36px,5vw,64px);font-weight:800;margin:0 0 16px;letter-spacing:-1px;color:var(--color-off-white)}.recipe-count{font-size:20px;color:var(--color-yellow);font-weight:600;margin:0 0 40px}.recipe-animation-container{display:flex;justify-content:center;align-items:center;margin:0 auto}.recipe-animation-circle{width:300px;height:300px;border-radius:50%;background:#fff;display:flex;justify-content:center;align-items:center;overflow:hidden;box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.recipe-animation-circle:hover{transform:scale(1.05);box-shadow:0 12px 48px #f7f78066}.recipe-card-wrapper{max-width:1200px;margin:0 auto 120px}.recipe-card-wrapper:last-child{margin-bottom:0}.recipe-card-full{background:transparent;border-radius:0;overflow:visible;border:none;padding:60px 0;box-shadow:none;border-bottom:1px solid rgba(247,247,243,.1)}.recipe-card-header{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start;margin-bottom:48px}.recipe-number{font-size:80px;font-weight:800;color:var(--color-yellow);line-height:1;opacity:.3}.recipe-title-section h3{font-size:clamp(32px,4vw,48px);font-weight:800;color:var(--color-off-white);margin:0 0 16px;letter-spacing:-1px}.recipe-description{font-size:18px;color:#f7f7f3b3;line-height:1.6;margin:0}.recipe-card-image{width:100%;height:400px;border-radius:0;overflow:hidden;margin-bottom:48px;background:transparent}.recipe-card-image img{width:100%;height:100%;object-fit:cover}.recipe-meta-row{display:flex;gap:48px;padding:32px 0;border-top:1px solid rgba(247,247,243,.1);border-bottom:1px solid rgba(247,247,243,.1);margin-bottom:48px;flex-wrap:wrap}.recipe-meta-item{display:flex;align-items:center;gap:16px}.recipe-meta-item svg{color:var(--color-yellow);flex-shrink:0}.recipe-meta-item>div{display:flex;flex-direction:column;gap:4px}.meta-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#f7f7f380;font-weight:700}.meta-value{font-size:16px;color:var(--color-off-white);font-weight:600}.recipe-section{margin-bottom:48px}.recipe-section:last-child{margin-bottom:0}.recipe-section h4{font-size:28px;font-weight:700;color:var(--color-yellow);margin:0 0 32px;letter-spacing:-.5px}.ingredients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.ingredient-item{display:flex;align-items:center;gap:16px;padding:16px 0;background:transparent;border-radius:0;font-size:16px;line-height:1.5;transition:all .3s ease;border-bottom:1px solid rgba(247,247,243,.1)}.ingredient-item:hover{background:transparent;transform:translate(4px);border-bottom-color:var(--color-yellow)}.ingredient-bullet{width:8px;height:8px;background:var(--color-yellow);border-radius:50%;flex-shrink:0}.instructions-list{display:flex;flex-direction:column;gap:32px}.instruction-item{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start}.instruction-number{width:48px;height:48px;background:var(--color-yellow);color:var(--color-dark);border-radius:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0;box-shadow:none}.instruction-content{font-size:18px;line-height:1.8;color:#f7f7f3e6;padding-top:8px}@media(max-width:968px){.recipe-back-button{position:static;margin-bottom:32px}.recipe-steps-header{text-align:left}.recipe-card-full{padding:40px 32px}.recipe-card-header{gap:24px}.recipe-number{font-size:60px}.recipe-card-image{height:300px}.recipe-meta-row{gap:32px}.ingredients-grid{grid-template-columns:1fr}.instruction-item{gap:20px}.instruction-number{width:40px;height:40px;font-size:18px}}@media(max-width:768px){.recipe-steps-section{padding:60px 20px}.recipe-steps-header{margin-bottom:60px}.recipe-card-wrapper{margin-bottom:80px}.recipe-card-full{padding:32px 24px}.recipe-card-header{grid-template-columns:1fr;gap:16px}.recipe-number{font-size:48px}.recipe-card-image{height:250px;margin-bottom:32px}.recipe-meta-row{gap:24px;padding:24px 0;margin-bottom:32px}.recipe-section{margin-bottom:40px}.recipe-section h4{font-size:24px;margin-bottom:24px}.instruction-content{font-size:16px}}.loading-animation{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .3s ease-in}.loading-content{text-align:center;padding:40px;max-width:400px;background:#fff;border-radius:12px}.lottie-wrapper{margin-bottom:24px;display:flex;justify-content:center;background:#fff;border-radius:12px;padding:20px}.loading-content h3{color:var(--color-dark);font-size:24px;margin:0 0 12px;font-weight:700}.loading-content p{color:#666;font-size:16px;margin:0 0 32px;line-height:1.5}.loading-dots{display:flex;justify-content:center;gap:12px}.loading-dots span{width:12px;height:12px;background:var(--color-yellow);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}*{box-sizing:border-box;margin:0;padding:0}.app-scroll-container{width:100%;scroll-behavior:smooth;overflow-x:hidden}.circle-image{border-radius:10%;object-fit:cover;overflow:hidden;display:block}@media(min-width:769px){.app-scroll-container{scroll-snap-type:y proximity}.hero-section,.upload-section,.recipe-steps-section{scroll-snap-align:start}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}::selection{background:var(--color-yellow);color:var(--color-dark)}::-moz-selection{background:var(--color-yellow);color:var(--color-dark)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--color-dark)}::-webkit-scrollbar-thumb{background:var(--color-yellow);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#ff9}*:focus-visible{outline:2px solid var(--color-yellow);outline-offset:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.app-scroll-container{scroll-behavior:auto}}
