*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:#0f0f0f;color:#e8e6e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}@keyframes fadeInPage{0%{opacity:0}to{opacity:1}}#root{animation:fadeInPage .4s ease-out}.layout{display:flex;height:100vh;overflow:hidden}.controls-panel{width:400px;min-width:400px;height:100vh;overflow-y:auto;padding:40px 32px 0 36px;border-right:1px solid rgba(255,255,255,.04);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.controls-panel::-webkit-scrollbar{width:4px}.controls-panel::-webkit-scrollbar-track{background:transparent}.controls-panel::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.panel-header{margin-bottom:36px}.panel-title-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px}.panel-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#555}.my-habitats-button{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#555;background:none;border:none;cursor:pointer;font-family:inherit;transition:color .2s ease;padding:2px 0}.my-habitats-button:hover{color:#888}.preset-tabs{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.06)}.preset-tab{flex:1;padding:8px 0 10px;font-size:11px;letter-spacing:.04em;font-family:inherit;background:transparent;border:none;border-bottom:1.5px solid transparent;color:#555;cursor:pointer;transition:color .2s ease,border-color .2s ease;text-align:center;margin-bottom:-1px}.preset-tab:hover{color:#888}.preset-tab.active{color:#bbb;border-bottom-color:#ffffff4d}.section-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#555;margin-bottom:20px;margin-top:32px}.section-label:first-of-type{margin-top:0}.slider-group{margin-bottom:18px}.slider-group.readonly{margin-bottom:10px}.slider-labels{display:flex;justify-content:space-between;font-size:11px;color:#8a8a8a;margin-bottom:8px}.slider-track{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1px;background:#ffffff1f;outline:none;border-radius:0;cursor:pointer}.slider-track::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#8a8a8a;cursor:pointer;transition:background .15s ease}.slider-track::-webkit-slider-thumb:hover{background:#aaa}.slider-track::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#8a8a8a;cursor:pointer;border:none;transition:background .15s ease}.slider-track::-moz-range-thumb:hover{background:#aaa}.slider-track:focus-visible{outline:1px solid rgba(255,255,255,.2);outline-offset:4px}.slider-track-readonly{width:100%;height:1px;background:#ffffff14;position:relative;margin-top:4px}.slider-fill{height:100%;background:#fff3}.slider-dot{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:#777;transform:translate(-50%,-50%)}.toggles-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.toggle-pill{font-size:11px;padding:5px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.08);background:transparent;color:#666;cursor:pointer;transition:all .15s ease;font-family:inherit;line-height:1.4;-webkit-user-select:none;user-select:none}.toggle-pill:hover{border-color:#ffffff26;color:#888}.toggle-pill.active{background:#ffffff0f;border-color:#ffffff1f;color:#aaa}.toggle-pill.readonly{cursor:default;pointer-events:none}.toggle-pill:focus-visible{outline:1px solid rgba(255,255,255,.2);outline-offset:2px}.generate-button-wrapper{position:sticky;bottom:0;z-index:10;padding:20px 0 24px;margin-top:16px;background:linear-gradient(to bottom,#0f0f0f00,#0f0f0f 30%);pointer-events:none}.generate-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-family:inherit;color:#666;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;transition:all .3s cubic-bezier(.23,1,.32,1);pointer-events:all;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.generate-button-icon{font-size:10px;transition:transform .3s cubic-bezier(.23,1,.32,1)}.generate-button:hover:not(:disabled){border-color:#ffffff2e;color:#bbb;background:#ffffff0f;box-shadow:0 0 20px #ffffff08}.generate-button:hover:not(:disabled) .generate-button-icon{transform:translate(2px)}.generate-button:active:not(:disabled){transform:scale(.98)}.generate-button.dirty{color:#e8e6e0;border-color:#fff3;background:#ffffff0f;box-shadow:0 0 24px #ffffff0a,inset 0 1px #ffffff0d}.generate-button.dirty:hover:not(:disabled){border-color:#ffffff4d;background:#ffffff17;box-shadow:0 0 30px #ffffff0f}.generate-button.gated{color:#888;border-color:#ffffff1f;background:#ffffff0a;letter-spacing:.08em}.generate-button.gated:hover{color:#bbb;border-color:#fff3;background:#ffffff0f}@keyframes pulseGenerate{0%,to{opacity:.4}50%{opacity:.7}}.generate-button:disabled{cursor:default;opacity:1;color:#555;animation:pulseGenerate 2s ease-in-out infinite}.portrait-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:64px;position:relative;overflow-y:auto}.portrait-container{max-width:580px;width:100%;position:relative}.portrait-container.image-container{max-width:720px;aspect-ratio:16 / 9}.habitat-image{width:100%;height:100%;object-fit:cover;border-radius:4px;transition:opacity .3s ease}.habitat-image.fading{position:absolute;top:0;left:0;opacity:.4}.habitat-image.generating{opacity:.5}.generating-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:4px}.generating-overlay span{font-family:Georgia,Times New Roman,serif;font-size:clamp(14px,2vw,18px);color:#e8e6e0;opacity:.6;font-style:italic;animation:pulse 1.5s ease-in-out infinite}.portrait-placeholder{font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,2.5vw,26px);line-height:1.8;color:#e8e6e0;opacity:.3;font-style:italic}.portrait-error{font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2vw,20px);line-height:1.8;color:#e8e6e0;opacity:.3;font-style:italic}@keyframes pulse{0%,to{opacity:.9}50%{opacity:.15}}.streaming-cursor{display:inline-block;width:2px;height:.85em;background:#e8e6e0;margin-left:3px;vertical-align:text-bottom;animation:pulse 1.2s ease-in-out infinite}.action-buttons{position:absolute;bottom:-44px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;animation:fadeInPage .3s ease-out}.action-button{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-family:inherit;color:#666;background:none;border:none;cursor:pointer;padding:6px 12px;transition:color .2s ease}.action-button:hover{color:#aaa}.action-button:disabled{cursor:default;opacity:.5}.action-button.subtle{color:#555;font-size:9px}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#0f0f0fbf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeInPage .3s ease-out}.modal-content{width:340px;max-width:90%;padding:40px 32px;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}.modal-close{position:absolute;top:8px;right:8px;background:none;border:none;color:#555;font-size:18px;cursor:pointer;padding:4px 8px;font-family:inherit;transition:color .2s ease;line-height:1}.modal-close:hover{color:#aaa}.modal-title{font-family:Georgia,Times New Roman,serif;font-size:20px;font-style:italic;color:#e8e6e0;opacity:.8;margin-bottom:8px}.modal-email-input{width:100%;padding:12px 16px;font-size:13px;font-family:inherit;color:#e8e6e0;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:6px;outline:none;transition:border-color .2s ease}.modal-email-input::placeholder{color:#555}.modal-email-input:focus{border-color:#ffffff40}.modal-button{width:100%;padding:12px 0;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-family:inherit;border-radius:6px;cursor:pointer;transition:all .2s ease}.modal-button.primary{color:#555;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.modal-button.primary.enabled{color:#e8e6e0;background:#ffffff0f;border-color:#fff3}.modal-button.primary.enabled:hover{background:#ffffff17;border-color:#ffffff4d}.modal-button.secondary{color:#555;background:transparent;border:1px solid rgba(255,255,255,.06)}.modal-button.secondary.enabled{color:#999;border-color:#ffffff1f}.modal-button.secondary.enabled:hover{color:#bbb;border-color:#fff3}.modal-button:disabled{cursor:default;opacity:.5}.modal-link-button{font-size:11px;color:#666;background:none;border:none;cursor:pointer;font-family:inherit;padding:8px 0;transition:color .2s ease;letter-spacing:.04em}.modal-link-button:hover{color:#aaa}.modal-link-button:disabled{cursor:default;opacity:.5}.modal-share-result{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.modal-share-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#666}.modal-share-url{font-size:12px;color:#aaa;word-break:break-all;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:4px;width:100%}.share-page{min-height:100vh;display:flex;flex-direction:column}.share-page.loading{align-items:center;justify-content:center}.share-image-section{width:100%;max-height:65vh;overflow:hidden;position:relative}.share-hero-image{width:100%;height:100%;object-fit:cover;display:block}.share-details{max-width:600px;margin:0 auto;padding:40px 32px 80px;width:100%}.share-header{display:flex;align-items:baseline;gap:16px;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.share-brand{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#555}.share-preset{font-size:12px;color:#777;font-style:italic;font-family:Georgia,Times New Roman,serif}.share-sliders,.share-toggles{margin-bottom:28px}.share-toggle-section{margin-bottom:16px}.share-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-family:inherit;color:#e8e6e0;background:#ffffff0f;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .3s cubic-bezier(.23,1,.32,1);text-decoration:none;margin-top:16px}.share-cta:hover{background:#ffffff17;border-color:#ffffff4d;box-shadow:0 0 30px #ffffff0f}.share-cta-icon{font-size:11px;transition:transform .3s cubic-bezier(.23,1,.32,1)}.share-cta:hover .share-cta-icon{transform:translate(3px)}.my-habitats-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f0f0fd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:100;display:flex;align-items:center;justify-content:center;animation:fadeInPage .3s ease-out}.my-habitats-panel{width:640px;max-width:90%;max-height:80vh;overflow-y:auto;padding:32px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.my-habitats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.my-habitats-empty{font-family:Georgia,Times New Roman,serif;font-style:italic;color:#555;font-size:14px;text-align:center;padding:40px 0}.my-habitats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.my-habitat-card{display:block;text-decoration:none;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.06);transition:border-color .2s ease,transform .2s ease}.my-habitat-card:hover{border-color:#ffffff26;transform:translateY(-2px)}.my-habitat-thumb{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block}.my-habitat-info{padding:10px 12px;display:flex;justify-content:space-between;align-items:center}.my-habitat-preset{font-size:11px;color:#999;letter-spacing:.04em}.my-habitat-date{font-size:10px;color:#555}@media(max-width:768px){.layout{flex-direction:column;height:auto;min-height:100vh}.controls-panel{width:100%;min-width:unset;height:auto;max-height:none;border-right:none;border-bottom:1px solid rgba(255,255,255,.04);padding:32px 24px}.portrait-panel{min-height:50vh;padding:40px 24px;align-items:flex-start}.preset-tab{font-size:10px;padding:7px 0 9px}.generate-button-wrapper{position:sticky;bottom:0;padding:16px 0 20px;background:linear-gradient(to bottom,#0f0f0f00,#0f0f0f 30%)}.action-buttons{position:relative;bottom:auto;margin-top:16px}.modal-content{padding:32px 24px}.share-image-section{max-height:50vh}.share-details{padding:28px 20px 60px}.my-habitats-grid{grid-template-columns:1fr}.my-habitats-panel{padding:24px}}
