:root{font-family:Outfit,system-ui,-apple-system,sans-serif;line-height:1.55;font-weight:400;color:#2d2d2d;background-color:#faf8f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#e91e8c;text-decoration:inherit}a:hover{color:#c2186c}body{margin:0;min-width:320px;min-height:100vh}h1{font-family:Playfair Display,serif;font-size:3.2em;line-height:1.15;margin:0;font-weight:600}button{border-radius:10px;border:none;padding:.7em 1.4em;font-size:1em;font-weight:500;font-family:"Outfit",inherit;background:#e91e8c;color:#fff;cursor:pointer;transition:all .25s ease}button:hover{background:#c2186c}button:focus,button:focus-visible{outline:2px solid #e91e8c;outline-offset:2px}.app-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;background:linear-gradient(180deg,#faf8f7,#fdf5f9)}.content-wrapper{width:100%;max-width:540px;display:flex;flex-direction:column;align-items:stretch;gap:1.75rem;margin:0 auto}.app-title{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:600;margin:0;color:#1a1a1a;letter-spacing:-.02em;text-align:center}.app-subtitle{font-family:Outfit,sans-serif;text-align:center;color:#e91e8c;font-size:.95rem;font-weight:500;margin:.2rem 0 0;letter-spacing:.02em}.upload-section{width:100%}.upload-section.drag-over .upload-button{border-color:#e91e8c;background:#e91e8c0f;box-shadow:0 0 0 2px #e91e8c26}.file-input{display:none}.upload-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:280px;border:2px dashed rgba(233,30,140,.35);border-radius:16px;background:#fff;cursor:pointer;transition:all .25s ease;padding:2rem;position:relative;overflow:hidden;box-sizing:border-box;box-shadow:0 2px 12px #0000000a}.upload-button:hover{border-color:#e91e8c99;background:#fdf5f9cc;box-shadow:0 4px 20px #e91e8c14}.upload-icon{color:#e91e8c;margin-bottom:.75rem;opacity:.9}.upload-text{font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:600;color:#2d2d2d;margin-bottom:.3rem}.upload-hint{font-family:Outfit,sans-serif;font-size:.85rem;color:#e91e8c;font-weight:500;opacity:.85}.image-preview{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.image-preview img{max-width:100%;max-height:240px;object-fit:contain;border-radius:12px;box-shadow:0 4px 20px #e91e8c1f}.change-image-text{margin-top:.75rem;color:#e91e8c;font-weight:600;font-size:.9rem;font-family:Outfit,sans-serif}.category-section{width:100%;display:flex;flex-direction:column;gap:.45rem}.prompt-label{font-family:Outfit,sans-serif;font-size:.8rem;font-weight:600;color:#e91e8c;letter-spacing:.04em;text-transform:uppercase}.category-select{width:100%;padding:.85rem 2.5rem .85rem 1.1rem;border:1px solid rgba(233,30,140,.25);border-radius:12px;background:#fff;color:#2d2d2d;font-size:.95rem;font-family:Outfit,sans-serif;font-weight:500;cursor:pointer;transition:all .25s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23e91e8c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.1rem center;box-sizing:border-box;box-shadow:0 2px 8px #00000008}.category-select:hover,.category-select:focus{outline:none;border-color:#e91e8c;box-shadow:0 0 0 3px #e91e8c1f}.category-select option{background:#fff;color:#2d2d2d}.prompt-section{width:100%;display:flex;flex-direction:column;gap:.45rem}.prompt-input{width:100%;padding:.85rem 1.1rem;border:1px solid rgba(233,30,140,.25);border-radius:12px;background:#fff;color:#2d2d2d;font-size:.95rem;font-family:Outfit,sans-serif;resize:vertical;transition:all .25s ease;box-sizing:border-box;box-shadow:0 2px 8px #00000008}.prompt-input:focus{outline:none;border-color:#e91e8c;box-shadow:0 0 0 3px #e91e8c1f}.prompt-input::placeholder{color:#b8b8b8}.generate-button{width:100%;padding:1.1rem 1.5rem;font-size:1rem;font-weight:600;font-family:Outfit,sans-serif;border:none;border-radius:12px;background:linear-gradient(135deg,#e91e8c,#c2186c);color:#fff;cursor:pointer;transition:all .25s ease;box-sizing:border-box;box-shadow:0 4px 16px #e91e8c59;letter-spacing:.02em}.generate-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #e91e8c66}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.response-anchor{width:100%}.response-box{width:100%;padding:2rem 1.75rem;border-radius:16px;font-size:1rem;line-height:1.65;text-align:center;box-sizing:border-box;font-family:Outfit,sans-serif}.response-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;color:#991b1b}.response-success{background:linear-gradient(160deg,#fff,#fdf5f9,#fce8f4);border:1px solid rgba(233,30,140,.2);color:#2d2d2d;box-shadow:0 4px 24px #e91e8c14}.response-markdown{text-align:center;max-width:100%}.response-markdown h2{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:600;margin:0 0 1.25rem;color:#e91e8c;letter-spacing:-.01em;line-height:1.3}.response-markdown h3{font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:700;margin:1.5rem 0 .5rem;color:#c2186c;letter-spacing:.03em;text-transform:uppercase}.response-markdown p{margin:0 0 .9rem;max-width:48ch;margin-left:auto;margin-right:auto;color:#3d3d3d;font-weight:400}.response-markdown ul,.response-markdown ol{margin:.5rem 0 1rem;padding-left:1.5rem;display:inline-block;text-align:left}.response-markdown li{margin:.35rem 0;color:#3d3d3d}.response-markdown strong{color:#1a1a1a;font-weight:600}@media(max-width:640px){.app-container{padding:1.5rem 1rem}.app-title{font-size:2rem}.upload-button{min-height:240px}.response-box{padding:1.5rem 1.25rem}.response-markdown h2{font-size:1.35rem}}
