*{box-sizing:border-box}body{margin:0;font-family:Kalam,cursive;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;color:#333}h1,h2,h3,h4,h5,h6{line-height:1.2}img{max-width:100%;height:auto}button{font-family:inherit}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#8b4513;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#5d4037}.header{position:absolute;top:3%;right:3%;z-index:1000;pointer-events:auto}.hamburger-menu{position:relative}.hamburger-button{display:flex;flex-direction:column;justify-content:space-between;width:40px;height:32px;padding:6px;background:#c4a574;border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 10px #00000026;transition:background .2s,box-shadow .2s}.hamburger-button:hover{background:#d4b584;box-shadow:0 4px 15px #0003}.hamburger-line{display:block;width:100%;height:3px;background:#5d4037;border-radius:2px}@media(max-width:768px){.header{top:1.5%}.hamburger-button{width:36px;height:28px;padding:5px}}.recipe-card{background:#fffffff2;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #0000001a;cursor:pointer;position:relative}.recipe-card-edit-btn{position:absolute;top:8px;left:8px;width:32px;height:32px;background:#8b4513e6;border:2px solid white;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;z-index:10;transition:all .2s;box-shadow:0 2px 8px #0000004d}.recipe-card-edit-btn:hover{background:sienna;transform:scale(1.1)}.recipe-card-delete-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;background:#c0392be6;border:2px solid white;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff;z-index:10;transition:all .2s;box-shadow:0 2px 8px #0000004d}.recipe-card-delete-btn:hover{background:#e74c3c;transform:scale(1.1)}.recipe-card-image-container{position:relative;width:100%;height:200px;overflow:hidden}.recipe-card-image{width:100%;height:100%;object-fit:cover}.recipe-card-category{position:absolute;top:10px;right:10px;background:#8b4513e6;color:#fff;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;z-index:2;will-change:auto}.recipe-card-content{padding:1rem}.recipe-card-title{margin:0 0 .5rem;font-size:1.1rem;color:#333;font-weight:600;line-height:1.3}.recipe-card-meta{display:flex;gap:1rem;font-size:.8rem;color:#666}@media(max-width:480px){.recipe-card-image-container{height:150px}.recipe-card-title{font-size:1rem}}.search-overlay-backdrop{position:fixed;inset:0;background:#0000004d;display:flex;justify-content:center;align-items:flex-start;padding-top:183px;z-index:200;animation:backdropFade .2s ease-out}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.search-overlay-modal{position:relative;background:#fffffff2;border-radius:16px;box-shadow:0 8px 40px #00000040;width:90%;max-width:900px;max-height:calc(100vh - 120px);overflow:visible;padding:2rem;animation:slideDown .25s ease-out}.search-overlay-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:#8b45131a;border-radius:50%;font-size:1.5rem;color:#8b4513;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.search-overlay-close:hover{background:#8b4513;color:#fff;transform:scale(1.1)}.search-filters{display:flex;gap:2rem;flex-wrap:nowrap;justify-content:center;margin-bottom:1.5rem}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:280px;flex:1;max-width:400px}.filter-group label{font-weight:600;color:#5d4037;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.filter-select{font-size:1rem}.search-results{margin-top:1.5rem;border-top:1px solid rgba(139,69,19,.15);padding-top:1.5rem;max-height:calc(100vh - 320px);overflow-y:auto}.search-results-empty{text-align:center;padding:2rem;color:#666}.search-results-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.search-results-empty h3{margin:0 0 .5rem;color:#5d4037}.search-results-empty p{margin:0}.search-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}@media(max-width:768px){.search-overlay-backdrop{padding-top:20px;padding-bottom:20px;align-items:flex-start;height:100vh;height:100dvh}.search-overlay-modal{width:95%;padding:1.5rem;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);display:flex;flex-direction:column}.search-results{flex:1;min-height:0;max-height:none}.search-filters{flex-direction:column;gap:1rem}.filter-group{min-width:100%;max-width:100%}.search-results-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:#fff;border-radius:16px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 10px 40px #0000004d}.modal-top-buttons{position:absolute;top:15px;right:15px;display:flex;gap:8px;z-index:10}.modal-edit-btn{height:40px;padding:0 16px;border:none;background:#ffffffe6;border-radius:20px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:background .2s ease,transform .2s ease;color:#8b4513;font-weight:500}.modal-edit-btn:hover{background:#fff;transform:scale(1.05)}.modal-close{width:40px;height:40px;border:none;background:#ffffffe6;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;color:#333}.modal-close:hover{background:#fff;transform:scale(1.1)}.modal-header{position:relative;height:300px;overflow:hidden}.modal-image{width:100%;height:100%;object-fit:cover}.modal-header-overlay{position:absolute;bottom:0;left:0;right:0;padding:2rem;background:linear-gradient(transparent,#000c)}.modal-category{background:#8b4513e6;color:#fff;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.modal-title{color:#fff;margin:.75rem 0 0;font-size:2rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.modal-body{padding:1.5rem 2rem 2rem}.modal-meta{display:flex;justify-content:center;gap:2rem;padding:.5rem 0;border-bottom:1px solid #eee;margin-bottom:1rem;flex-wrap:wrap}.meta-item{display:flex;flex-direction:column;align-items:center;gap:.1rem}.meta-icon{font-size:1.25rem}.meta-label{font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.meta-value{font-weight:600;color:#5d4037}.modal-sections{display:grid;gap:1.5rem}.modal-section h3{color:#5d4037;margin:0 0 1rem;font-size:1.5rem}.ingredients-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.3rem}.ingredients-list li{padding:.25rem .5rem;background:#f9f5f0;border-radius:6px;border-left:3px solid #8B4513;line-height:1.2}.instructions-list{padding-left:1.5rem;margin:0}.instructions-list li{padding:.3rem 0;line-height:1.5}.instructions-list li:last-child{border-bottom:none}.instructions-content{line-height:1.4}.instructions-content p{margin:0 0 .25em}.instructions-content p:last-child{margin-bottom:0}.instructions-content h3{margin:.5em 0 .25em;font-size:1em;font-weight:600;color:#8b4513}.instructions-content h3:first-child{margin-top:0}.instructions-content ul,.instructions-content ol{padding-left:1.5rem;margin:.25em 0}.instructions-content li{padding:.1rem 0;line-height:1.4}.instructions-content strong{font-weight:600}.instructions-content em{font-style:italic}.notes-section{background:#fff8dc;padding:1rem;border-radius:8px;border-left:4px solid #DAA520}.notes-section h3{border-bottom-color:#daa520}.recipe-notes{margin:0;font-style:italic;color:#666;line-height:1.6}.notes-content{line-height:1.4;color:#666}.notes-content p{margin:0 0 .25em}.notes-content p:last-child{margin-bottom:0}.notes-content h3{margin:.5em 0 .25em;font-size:1em;font-weight:600;color:#8b6914}.notes-content h3:first-child{margin-top:0}.notes-content ul,.notes-content ol{padding-left:1.5rem;margin:.25em 0}.notes-content li{padding:.1rem 0;line-height:1.4}@media(max-width:768px){.modal-overlay{padding:20px;height:100vh;height:100dvh;align-items:flex-start;overflow:hidden}.modal-content{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px)}.modal-header{height:200px}.modal-title{font-size:1.5rem}.modal-body{padding:1rem}.modal-meta{gap:1rem}.ingredients-list{grid-template-columns:1fr}}.tiptap-editor{border:1px solid #ccc;border-radius:4px;background:#fff;overflow:hidden}.tiptap-menu-bar{display:flex;gap:4px;padding:8px;border-bottom:1px solid #eee;background:#f9f9f9;flex-wrap:wrap}.tiptap-menu-bar button{padding:4px 10px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-weight:600;font-size:14px;color:#333;min-width:32px;transition:all .15s ease}.tiptap-menu-bar button:hover{background:#f0f0f0;border-color:#bbb}.tiptap-menu-bar button.is-active{background:#4a90a4;color:#fff;border-color:#4a90a4}.menu-divider{width:1px;background:#ddd;margin:0 4px}.tiptap-editor-content{min-height:200px;padding:12px;outline:none}.tiptap-editor-content p{margin:0 0 .25em}.tiptap-editor-content p:last-child{margin-bottom:0}.tiptap-editor-content h3{margin:.5em 0 .25em;font-size:1.1em;font-weight:600}.tiptap-editor-content h3:first-child{margin-top:0}.tiptap-editor-content ul,.tiptap-editor-content ol{margin:.25em 0;padding-left:1.5em}.tiptap-editor-content li{margin-bottom:.1em;line-height:1.4}.tiptap-editor-content strong{font-weight:600}.tiptap-editor-content em{font-style:italic}.tiptap-editor-content.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#aaa;pointer-events:none;height:0}.tiptap-editor:focus-within{border-color:#4a90a4;box-shadow:0 0 0 2px #4a90a433}.admin-overlay{position:fixed;inset:0;background:#000000b3;z-index:1000;overflow-y:auto;padding:2rem}.admin-page{background:#faf6f1;border-radius:16px;max-width:1400px;margin:0 auto;box-shadow:0 20px 60px #0000004d;overflow:hidden}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:linear-gradient(135deg,#8b4513,sienna);color:#fff}.admin-header h1{margin:0;font-size:1.75rem;font-weight:600}.admin-header-actions{display:flex;gap:1rem;align-items:center}.edit-mode-badge{background:#ffffff40;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-clear{padding:.5rem 1rem;background:#fff3;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s}.btn-clear:hover{background:#ffffff4d}.btn-close{width:40px;height:40px;background:#fff3;border:none;color:#fff;font-size:1.75rem;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s;line-height:1}.btn-close:hover{background:#ffffff4d}.admin-content{padding:2rem}.admin-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014}.admin-section h2{margin:0 0 .5rem;font-size:1.25rem;color:#5d4037}.section-hint{color:#888;font-size:.9rem;margin:0 0 1rem}.ai-import-section{background:linear-gradient(135deg,#f8f4ff,#fff);border:1px solid #e8e0f0}.raw-text-input{width:100%;padding:1rem;border:2px dashed #ccc;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;background:#fff;transition:border-color .2s}.raw-text-input:focus{outline:none;border-color:#8b4513}.ai-actions{display:flex;align-items:center;gap:1rem;margin-top:1rem}.btn-parse{padding:.75rem 1.5rem;background:linear-gradient(135deg,#8b4513,sienna);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-parse:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #8b45134d}.btn-parse:disabled{opacity:.6;cursor:not-allowed}.api-warning{color:#b45309;font-size:.85rem}.parse-error{margin-top:1rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:6px;font-size:.9rem}.admin-columns{display:flex;gap:0;align-items:stretch}.admin-columns>.admin-section{min-width:0;overflow:hidden}.form-section{min-width:280px;flex-shrink:0}.output-section{min-width:280px}.column-divider{flex:0 0 12px;display:flex;align-items:center;justify-content:center;cursor:col-resize;background:transparent;transition:background .2s;margin:0 -2px;z-index:10}.column-divider:hover{background:#8b45131a}.divider-handle{width:4px;height:60px;background:#ccc;border-radius:2px;transition:background .2s,height .2s}.column-divider:hover .divider-handle{background:#8b4513;height:80px}@media(max-width:1000px){.admin-columns{flex-direction:column}.form-section{min-width:0;flex:none!important}.output-section{flex:none!important}.column-divider{display:none}}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:600;color:#5d4037;margin-bottom:.375rem;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .875rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;background:#fafafa;box-sizing:border-box;max-width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#8b4513;box-shadow:0 0 0 3px #8b45131a;background:#fff}.form-group textarea{resize:vertical;min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.field-hint{margin:.375rem 0 0;font-size:.8rem;color:#888}.field-hint code{background:#f0f0f0;padding:.125rem .375rem;border-radius:4px;font-size:.75rem}.image-dropzone{border:2px dashed #ccc;border-radius:12px;padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#fafafa;margin-bottom:1rem;min-height:200px;display:flex;align-items:center;justify-content:center}.image-dropzone:hover{border-color:#8b4513;background:#fff}.dropzone-placeholder{color:#888}.dropzone-placeholder span{font-size:3rem;display:block;margin-bottom:.5rem}.dropzone-placeholder p{margin:0;font-size:.9rem}.dropzone-hint{font-size:.75rem;color:#aaa;margin-top:.5rem}.image-dropzone.uploading{pointer-events:none;position:relative}.upload-overlay{position:absolute;inset:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:1rem;color:#8b4513;font-weight:500;z-index:10}.image-preview{max-width:100%;max-height:300px;border-radius:8px;object-fit:contain;display:block;min-height:100px;background:#f0f0f0}.image-prompt-group{margin-bottom:.75rem}.image-prompt-group textarea{min-height:60px;font-size:.9rem;resize:vertical}.image-actions{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.btn-generate-image{padding:.625rem 1.25rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;white-space:nowrap}.btn-generate-image:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.btn-generate-image:disabled{opacity:.6;cursor:not-allowed}.image-actions-hint{color:#888;font-size:.85rem}.image-error{margin-bottom:1rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:6px;font-size:.9rem}.json-output-container{position:relative;max-width:100%;overflow:hidden}.json-output{background:#1e1e1e;color:#9cdcfe;padding:1rem;border-radius:8px;overflow-x:auto;font-size:.8rem;line-height:1.5;max-height:400px;overflow-y:auto;margin:0;word-wrap:break-word;white-space:pre-wrap}.btn-copy{padding:.5rem 1rem;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:background .2s}.btn-copy:hover{background:#43a047}.json-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-save{padding:.5rem 1.25rem;background:linear-gradient(135deg,#8b4513,sienna);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #8b45134d}.btn-save:hover:not(:disabled){background:linear-gradient(135deg,sienna,#8b4513);transform:translateY(-1px);box-shadow:0 4px 8px #8b451366}.btn-save:disabled{opacity:.6;cursor:not-allowed}.save-message{margin-top:1rem;padding:.75rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500}.save-message.success{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.save-message.error{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.json-output::-webkit-scrollbar{width:8px;height:8px}.json-output::-webkit-scrollbar-track{background:#2d2d2d;border-radius:4px}.json-output::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.json-output::-webkit-scrollbar-thumb:hover{background:#666}@media(max-width:768px){.admin-overlay{padding:0}.admin-page{border-radius:0;min-height:100vh}.admin-header{padding:1rem 1.5rem}.admin-header h1{font-size:1.25rem}.admin-content,.admin-section{padding:1rem}.ai-actions{flex-direction:column;align-items:stretch}.api-warning{text-align:center}}.success-toast-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.success-toast{background:#fff;border-radius:16px;padding:2rem 2.5rem;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease-out}.toast-close-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:#f0f0f0;border-radius:50%;font-size:1.25rem;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.toast-close-btn:hover{background:#e0e0e0;color:#333}.toast-icon{font-size:3rem;margin-bottom:1rem;animation:bounce .5s ease-out .2s both}@keyframes bounce{0%{transform:scale(.5)}50%{transform:scale(1.2)}to{transform:scale(1)}}.toast-title{margin:0 0 .5rem;font-size:1.5rem;color:#2d5016;font-weight:600}.toast-subtitle{margin:0 0 1.5rem;color:#666;font-size:1rem}.toast-actions{display:flex;gap:1rem;justify-content:center}.toast-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.toast-btn-primary{background:linear-gradient(135deg,#8b4513,sienna);color:#fff}.toast-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b45134d}.toast-btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.toast-btn-secondary:hover{background:#eee;border-color:#ccc}@media(max-width:480px){.success-toast{padding:1.5rem}.toast-actions{flex-direction:column}.toast-btn{width:100%}}.bullet-textarea-container{position:relative;border:1px solid #ddd;border-radius:8px;background:#fff;min-height:180px;cursor:text;transition:border-color .2s,box-shadow .2s}.bullet-textarea-container:hover{border-color:#bbb}.bullet-textarea-container.focused{border-color:#8b4513;box-shadow:0 0 0 3px #8b45131a}.bullet-editable-list{list-style-type:disc;margin:0;padding:.75rem .75rem .75rem 2rem;font-family:inherit;font-size:1rem;line-height:1.6;color:#333;min-height:160px;outline:none}.bullet-editable-list li{padding:.1rem 0}.bullet-editable-list:empty:before,.bullet-editable-list:has(li:only-child:empty):before{content:attr(data-placeholder);color:#999;pointer-events:none}.bullet-editable-list li:empty:before{content:"​"}.bullet-sublist{list-style-type:circle;margin:.25rem 0 .25rem 1.5rem;padding:0}.bullet-sublist li{padding:.1rem 0;color:#555}.bullet-sublist li:empty:before{content:"​"}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.toast-content{display:flex;flex-direction:column;align-items:center;gap:12px;background:#333;color:#fff;padding:16px 24px;border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:280px;max-width:400px}.toast-info .toast-content{background:#2c3e50}.toast-success .toast-content{background:#27ae60}.toast-error .toast-content{background:#c0392b}.toast-confirm .toast-content{background:#8b4513}.toast-message{font-size:1rem;text-align:center;line-height:1.4}.toast-actions{display:flex;gap:10px;margin-top:4px}.toast-btn{padding:8px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s}.toast-btn-confirm{background:#c0392b;color:#fff}.toast-btn-confirm:hover{background:#e74c3c}.toast-btn-cancel{background:#fff3;color:#fff}.toast-btn-cancel:hover{background:#ffffff4d}.toast-close{position:absolute;top:8px;right:12px;background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:1rem;padding:4px}.toast-close:hover{color:#fff}.app{min-height:100vh;background-color:#f5e6d3}.background-container{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:0;pointer-events:none}.background-wrapper{position:relative}.background-image{display:block;width:auto;height:100vh}@media(max-aspect-ratio:3/4){.background-image{width:100vw;height:auto}}@media(max-aspect-ratio:3/4)and (max-width:768px){.background-wrapper{transform:translateY(-12%)}}.app:before{content:"";position:fixed;inset:0;background:#f5e6d31a;pointer-events:none;z-index:0}.app-container{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:1rem 5rem 2rem;min-height:100vh;cursor:pointer}.loading,.error{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:1rem}.loading-spinner{width:50px;height:50px;border:4px solid rgba(139,69,19,.2);border-top-color:#8b4513;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading p,.error p{background:#ffffffe6;padding:1rem 2rem;border-radius:8px;color:#5d4037;font-size:1.1rem}.error p{color:#c0392b}.mascot-container{position:absolute;bottom:0%;left:5%;pointer-events:none}.mascot-image{width:20%;height:auto;filter:drop-shadow(2px 4px 6px rgba(0,0,0,.3));transition:transform .2s,filter .2s;animation:mascot-rock 3s ease-in-out infinite;transform-origin:bottom center}.mascot-click-target{position:fixed;bottom:0;left:calc(50vw - 33.75vh);width:15vh;height:20vh;z-index:100;cursor:pointer}.mascot-click-target:hover~.background-container .mascot-image,.mascot-click-target:hover+.background-container .mascot-image{transform:scale(1.1);filter:drop-shadow(2px 4px 10px rgba(139,69,19,.5))}@keyframes mascot-rock{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@media(max-width:768px){.app-container{padding:.5rem 1rem 1rem}}.app-footer{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:#d4c4a8;z-index:100;box-shadow:0 -2px 10px #0000001a}.footer-content{display:flex;justify-content:space-between;align-items:center;width:calc(75vh + 1.5vmin);max-width:calc(100vw - 1rem);box-sizing:border-box;padding:.4rem 0}@media(max-aspect-ratio:3/4){.footer-content{width:calc(100vw - 1rem);padding:.4rem 0}}.footer-icon{display:flex;align-items:center;justify-content:center;height:36px;transition:transform .2s}.footer-icon:hover{transform:scale(1.1)}.footer-icon img{height:100%;width:auto;object-fit:contain}.footer-copyright{font-size:.85rem;color:#8b7355;font-weight:500}.footer-copyright a{color:#5d4037;text-decoration:none;transition:color .2s}.footer-copyright a:hover{color:#8b4513;text-decoration:underline}@media(max-width:768px){.app-footer{padding:.5rem 1rem}.footer-copyright{font-size:.75rem}}
