:root{--bg-deep:#06060f;--bg-mid:#0c0b1d;--text-primary:#e8e0f0;--text-secondary:#9b8fb8;--text-dim:#5a4f72;--accent:#7b68ee;--accent-glow:#a78bfa;--accent-warm:#c4b5fd}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}@keyframes sway{0%,to{transform:translate(0)translateY(0)rotate(0)}25%{transform:translate(4px)translateY(-2px)rotate(.3deg)}50%{transform:translate(-2px)translateY(3px)rotate(-.2deg)}75%{transform:translate(3px)translateY(-1px)rotate(.1deg)}}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes center-question-in{0%{opacity:0;filter:blur(8px);transform:translateY(40px)scale(.92)}60%{filter:blur()}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes memory-float-in{0%{opacity:0;filter:blur(4px);transform:translate(-30px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes image-reveal{0%{opacity:0;filter:blur(20px)brightness(2);transform:scale(.85)}to{opacity:1;filter:blur()brightness();transform:scale(1)}}@keyframes orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{opacity:.5}50%{opacity:1}}@keyframes title-glow{0%,to{text-shadow:0 0 20px #7b68ee4d}50%{text-shadow:0 0 40px #7b68ee99,0 0 80px #7b68ee33}}@keyframes start-btn-in{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes shimmer-bg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.dream-scape{z-index:0;position:fixed;inset:0;overflow:hidden}.dream-scape canvas{width:100%;height:100%}.dream-scape .vignette{pointer-events:none;background:radial-gradient(#0000 40%,#06060fb3 100%);position:absolute;inset:0}.choice-area{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.choice-grid{flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px;padding:0 20px;display:flex}.choice-bubble{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;-webkit-backdrop-filter:blur(16px);background:#14102d38;border:1px solid #7b68ee38;border-radius:50px;padding:12px 26px;font-family:inherit;font-size:clamp(18px,3vw,24px);transition:all .5s cubic-bezier(.22,1,.36,1);box-shadow:inset 0 0 18px #7b68ee14,0 4px 18px #0a061e59}.choice-bubble:hover{color:var(--text-primary);background:#1e163c66;border-color:#ffb4dc66;transform:translateY(-2px);box-shadow:inset 0 0 22px #ffb4dc1f,0 0 32px #7b68ee40}.choice-bubble:active{transform:scale(.95)}.or-separator{color:var(--text-dim);letter-spacing:6px;opacity:.4;font-size:11px}.free-input-row{width:100%;max-width:460px;padding:0 24px;display:block;position:relative}.free-input-row input{box-sizing:border-box;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;color:var(--text-primary);text-align:center;caret-color:var(--accent-glow);background:#14102d38;border:1px solid #7b68ee38;border-radius:20px;outline:none;padding:12px 96px 12px 20px;font-family:inherit;font-size:clamp(18px,3vw,24px);transition:border-color .4s;display:block}.free-input-row input::placeholder{color:var(--text-dim);opacity:.4}.free-input-row input:focus{border-color:#7b68ee40;box-shadow:0 4px 24px #7b68ee14}.free-input-row .send-btn{color:var(--accent-warm);cursor:pointer;letter-spacing:2px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;opacity:.8;background:#14102d59;border:1px solid #7b68ee26;border-radius:50px;padding:8px 18px;font-family:inherit;font-size:clamp(18px,3vw,24px);transition:all .5s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;right:32px;transform:translateY(-50%)}.free-input-row .send-btn:hover{opacity:1;background:#7b68ee1f;border-color:#7b68ee4d}.text-input-area{justify-content:center;width:100%;display:flex}.text-input-inner{width:100%;max-width:460px;padding:0 24px;display:block;position:relative}.text-input-inner textarea{box-sizing:border-box;width:100%;color:var(--text-primary);resize:none;min-height:56px;max-height:120px;caret-color:var(--accent-glow);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#14102d4d;border:1px solid #7b68ee1f;border-radius:20px;outline:none;padding:16px 22px;font-family:inherit;font-size:clamp(18px,3vw,24px);line-height:1.6;transition:all .4s;display:block}.text-input-inner textarea::placeholder{color:var(--text-dim);opacity:.4}.text-input-inner textarea:focus{border-color:#7b68ee40;box-shadow:0 4px 30px #7b68ee14}.send-btn{color:var(--accent-warm);cursor:pointer;letter-spacing:2px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;opacity:.8;background:#14102d59;border:1px solid #7b68ee26;border-radius:50px;padding:10px 20px;font-family:inherit;font-size:clamp(18px,3vw,24px);transition:all .5s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;right:32px;transform:translateY(-50%)}.send-btn:hover{opacity:1;background:#7b68ee1f;border-color:#7b68ee4d;box-shadow:0 0 24px #7b68ee1f}.aspect-selector{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#14102d66;border:1px solid #7b68ee33;border-radius:22px;align-items:center;gap:18px;padding:12px 22px 12px 18px;animation:1.4s .4s both fade-in;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 24px #7b68ee14,0 6px 30px #0a061e73}.aspect-preview{background:#7b68ee0f;border:1px solid #ffb4dc59;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:width .55s cubic-bezier(.22,1,.36,1),height .55s cubic-bezier(.22,1,.36,1),border-color .4s;display:flex;position:relative;box-shadow:inset 0 0 14px #ffb4dc1f,0 0 18px #7b68ee2e}.aspect-preview-label{letter-spacing:2px;color:var(--accent-warm);opacity:.85;text-shadow:0 0 6px #ffb4dc80;font-size:9px;font-weight:400}.aspect-preview-glow{filter:blur(8px);opacity:.5;pointer-events:none;z-index:-1;background:radial-gradient(#7b68ee66,#ffb4dc1f 55%,#0000 75%);border-radius:10px;animation:4s ease-in-out infinite aspect-glow;position:absolute;inset:-6px}@keyframes aspect-glow{0%,to{opacity:.4}50%{opacity:.75}}.aspect-controls{flex-direction:column;gap:8px;min-width:200px;display:flex}.aspect-tabs{background:#0a061e66;border:1px solid #7b68ee1f;border-radius:999px;gap:4px;padding:3px;display:flex}.aspect-tab{color:var(--text-dim);letter-spacing:4px;cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:999px;flex:1;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .4s cubic-bezier(.22,1,.36,1)}.aspect-tab:hover{opacity:.9;color:var(--text-primary)}.aspect-tab.active{color:var(--text-primary);opacity:1;background:linear-gradient(135deg,#7b68ee59,#ffb4dc40);box-shadow:inset 0 0 12px #ffb4dc2e,0 0 16px #7b68ee4d}.aspect-slider-row{align-items:center;height:18px;padding:0 4px;display:flex;position:relative}.aspect-slider{appearance:none;background:linear-gradient(to right, var(--accent-warm) 0%, var(--accent-glow) var(--progress,0%), #7b68ee2e var(--progress,0%), #7b68ee2e 100%);cursor:pointer;z-index:2;border-radius:999px;outline:none;width:100%;height:2px;position:relative}.aspect-slider::-webkit-slider-thumb{appearance:none;background:radial-gradient(circle at 30% 30%, #fff, var(--accent-glow) 50%, #7b68ee99);cursor:pointer;border:1px solid #fff6;border-radius:50%;width:14px;height:14px;transition:transform .3s,box-shadow .3s;box-shadow:0 0 12px #ffb4dcb3,0 0 22px #7b68ee80}.aspect-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 18px #ffb4dce6,0 0 30px #7b68eeb3}.aspect-slider::-moz-range-thumb{background:radial-gradient(circle at 30% 30%, #fff, var(--accent-glow) 50%, #7b68ee99);cursor:pointer;border:1px solid #fff6;border-radius:50%;width:14px;height:14px;box-shadow:0 0 12px #ffb4dcb3,0 0 22px #7b68ee80}.aspect-slider-ticks{pointer-events:none;z-index:1;justify-content:space-between;display:flex;position:absolute;top:50%;left:4px;right:4px;transform:translateY(-50%)}.aspect-tick{background:#ffffff40;border-radius:50%;width:4px;height:4px;transition:all .4s}.aspect-tick.active{background:var(--accent-warm);box-shadow:0 0 8px #ffb4dc99}@media (width<=520px){.aspect-selector{border-radius:18px;gap:12px;padding:8px 14px 8px 12px}.aspect-controls{gap:6px;min-width:150px}.aspect-tab{letter-spacing:3px;padding:5px 8px;font-size:11px}}.result-area{flex-direction:column;align-items:center;gap:20px;animation:1s cubic-bezier(.22,1,.36,1) both float-in;display:flex}.result-image-wrapper{border-radius:16px;justify-content:center;align-items:center;max-width:min(90vw,720px);max-height:70vh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 40px #7b68ee4d,0 0 80px #7b68ee1a}.result-image-wrapper img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:70vh;animation:1.5s cubic-bezier(.22,1,.36,1) .3s both image-reveal;display:block}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.result-btn{background:var(--bubble-bg);border:1px solid var(--bubble-border);color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:50px;padding:12px 28px;font-family:inherit;font-size:14px;transition:all .3s}.result-btn:hover{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 16px #7b68ee4d}.result-btn.primary{background:var(--accent);border-color:var(--accent-glow);color:#fff}.result-btn.primary:hover{background:var(--accent-glow);box-shadow:0 0 24px #7b68ee80}.prompt-preview{width:90vw;max-width:520px;color:var(--text-dim);word-break:break-word;text-align:left;background:#0f0c1e99;border:1px solid #6450a033;border-radius:12px;padding:14px 18px;font-size:12px;line-height:1.6}.prompt-preview-label{color:var(--text-secondary);letter-spacing:1px;margin-bottom:6px;font-size:11px}.center-stage{z-index:1;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.idle-title{text-align:center;animation:1.5s cubic-bezier(.22,1,.36,1) both center-question-in}.idle-title h1{letter-spacing:6px;color:var(--text-primary);font-size:clamp(28px,5vw,42px);font-weight:300;animation:4s ease-in-out infinite title-glow}.idle-title h1 .accent{color:var(--accent-glow);font-weight:400}.idle-subtitle{color:var(--text-dim);letter-spacing:2px;margin-top:12px;font-size:14px}.start-btn{color:var(--accent-warm);cursor:pointer;letter-spacing:2px;background:0 0;border:1px solid #7b68ee66;border-radius:60px;margin-top:40px;padding:16px 48px;font-family:inherit;font-size:15px;transition:all .5s cubic-bezier(.22,1,.36,1);animation:1s cubic-bezier(.22,1,.36,1) .6s both start-btn-in}.start-btn:hover{border-color:var(--accent);background:#7b68ee1f;transform:translateY(-3px);box-shadow:0 0 40px #7b68ee33}.question-text{text-align:center;letter-spacing:1px;color:var(--text-primary);z-index:2;max-width:640px;padding:0 24px;font-size:clamp(24px,4.5vw,36px);font-weight:300;line-height:1.6;animation:1.2s cubic-bezier(.22,1,.36,1) both center-question-in;position:relative}.input-zone{z-index:2;justify-content:center;width:100%;max-width:700px;margin-top:48px;animation:.8s .5s both fade-in;display:flex;position:relative}.floating-memories{z-index:10;pointer-events:none;position:absolute;inset:0;overflow:hidden}.floating-mem{white-space:nowrap;filter:blur(.3px);pointer-events:auto;cursor:pointer;background:linear-gradient(135deg, var(--accent-glow), #c084fc, #f0abfc, var(--accent-warm));-webkit-text-fill-color:transparent;animation:sway var(--sway-dur,7s) ease-in-out infinite, shimmer-bg 6s ease infinite;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;font-size:clamp(24px,4.5vw,36px);font-weight:300;transition:all 2s cubic-bezier(.22,1,.36,1);position:absolute}.floating-mem:hover{filter:blur()brightness(1.3);z-index:11;transition:transform .3s,filter .3s;transform:scale(1.05)}.floating-mem:nth-child(2n){animation-direction:reverse}.floating-mem:nth-child(3n){opacity:.35;font-size:clamp(18px,3vw,28px)}.floating-mem.gathered{animation:1.5s cubic-bezier(.22,1,.36,1) both gather-in}.gathering-orb{z-index:1;pointer-events:none;width:120px;height:120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gathering-orb .orb-ring{border:1.5px solid #0000;border-top-color:var(--accent);border-right-color:#a78bfa4d;border-radius:50%;animation:2s linear infinite orbit-spin;position:absolute;inset:0}.gathering-orb .orb-ring:nth-child(2){border-top-color:#a78bfa80;border-bottom-color:var(--accent);animation-duration:2.8s;animation-direction:reverse;inset:14px}.gathering-orb .orb-ring:nth-child(3){border-left-color:var(--accent-glow);border-bottom-color:#7b68ee4d;animation-duration:3.5s;inset:28px}.gathering-orb .orb-core{background:radial-gradient(circle,#a78bfa4d,#0000);border-radius:50%;animation:3s ease-in-out infinite pulse-glow;position:absolute;inset:38px}.generating-text{letter-spacing:1px;background:linear-gradient(135deg, var(--accent-glow), #c084fc, #f0abfc, var(--accent-warm));-webkit-text-fill-color:transparent;z-index:2;pointer-events:none;white-space:nowrap;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;font-size:clamp(24px,4.5vw,36px);font-weight:300;animation:3s ease-in-out infinite breathe,6s infinite shimmer-bg;position:absolute;top:calc(50% + 80px);left:50%;transform:translate(-50%)}@keyframes gather-in{0%{opacity:.6;transform:scale(.8)}to{opacity:.2;transform:scale(1.1)}}
