:root{--bg-primary: #0a0a2e;--bg-secondary: #141452;--surface: rgba(255, 255, 255, .06);--surface-glass: rgba(255, 255, 255, .09);--border-glass: rgba(255, 255, 255, .18);--gold: #FFD700;--warm: #FFA94D;--pink: #FF6B9D;--purple: #A855F7;--cyan: #22D3EE;--blue: #6366F1;--text-primary: #F8FAFC;--text-secondary: #CBD5E1;--text-muted: #94A3B8;--gradient-button: linear-gradient(135deg, #FFA94D 0%, #FF6B9D 50%, #A855F7 100%);--gradient-title: linear-gradient(120deg, #FFD700 0%, #FF6B9D 45%, #22D3EE 100%);--font-primary: "Zen Maru Gothic", "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--font-display: "M PLUS Rounded 1c", "Zen Maru Gothic", sans-serif;--touch-min: 56px;--radius-md: 18px;--radius-lg: 26px;--radius-xl: 34px;--shadow-pop: 0 10px 30px rgba(0, 0, 0, .35);--shadow-glow-pink: 0 0 32px rgba(255, 107, 157, .45)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;max-width:100%;overflow:hidden;overflow-x:clip;overscroll-behavior:none;overscroll-behavior-x:none}html{position:fixed;top:0;right:0;bottom:0;left:0}body{font-family:var(--font-primary);background:radial-gradient(120% 100% at 50% 0%,#1b1b5e 0%,var(--bg-primary) 55%,#05051a 100%);color:var(--text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:pan-y}textarea,input{-webkit-user-select:text;user-select:text}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}#app{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;overflow:hidden;overflow-x:clip;perspective:1200px}#webgl-bg,#particles-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#particles-canvas{display:none}.aurora-layer{position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:1;pointer-events:none;overflow:hidden;opacity:.55}.aurora{position:absolute;width:65vmax;height:65vmax;border-radius:50%;mix-blend-mode:screen;filter:blur(45px) saturate(1.3);will-change:transform;animation:auroraDrift 26s ease-in-out infinite alternate}.aurora-1{background:radial-gradient(circle at 30% 30%,rgba(168,85,247,.55),transparent 60%);top:-10%;left:-15%}.aurora-2{background:radial-gradient(circle at 60% 40%,rgba(34,211,238,.4),transparent 60%);bottom:-20%;right:-20%;animation-delay:-8s;animation-duration:32s}.aurora-3{background:radial-gradient(circle at 50% 60%,rgba(255,107,157,.4),transparent 60%);top:30%;left:20%;animation-delay:-16s;animation-duration:38s}@keyframes auroraDrift{0%{transform:translateZ(0) scale(1) rotate(0)}50%{transform:translate3d(8%,-6%,0) scale(1.15) rotate(12deg)}to{transform:translate3d(-6%,8%,0) scale(.95) rotate(-10deg)}}.screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;overflow-x:clip;opacity:0;visibility:hidden;transform:scale(1.04) translateY(12px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1),visibility 0s linear .55s;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen.active{opacity:1;visibility:visible;transform:scale(1) translateY(0);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1)}.screen.exit{opacity:0;transform:scale(.96) translateY(-16px)}.screen-scroll{display:block;overflow-x:clip;overflow-y:auto;overscroll-behavior-x:none;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.safe-bottom-spacer{height:calc(48px + env(safe-area-inset-bottom))}.welcome-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(14px,3vh,26px);padding:24px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left));width:100%;max-width:min(520px,100%);min-width:0}.hero-stage{position:relative;width:clamp(200px,58vw,300px);aspect-ratio:1;transform-style:preserve-3d;animation:heroFloat 5.5s ease-in-out infinite}@keyframes heroFloat{0%,to{transform:translateY(0) rotateX(4deg) rotateY(-4deg)}50%{transform:translateY(-16px) rotateX(-4deg) rotateY(5deg)}}.gochan-hero{position:absolute;top:8%;right:8%;bottom:8%;left:8%;width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 24px 34px rgba(0,0,0,.5)) drop-shadow(0 0 26px rgba(255,215,0,.35));transform:translateZ(60px);z-index:3}.hero-glow{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.3) 0%,rgba(255,107,157,.18) 40%,transparent 70%);animation:glowPulse 3.2s ease-in-out infinite;z-index:1}@keyframes glowPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.12);opacity:1}}.hero-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid transparent;z-index:2}.hero-ring-1{border-top-color:#ffd700bf;border-right-color:#ff6b9d73;animation:ringSpin 9s linear infinite;transform:rotateX(66deg)}.hero-ring-2{top:-9%;right:-9%;bottom:-9%;left:-9%;border-bottom-color:#22d3eea6;border-left-color:#a855f773;animation:ringSpinRev 13s linear infinite;transform:rotateX(72deg)}@keyframes ringSpin{to{transform:rotateX(66deg) rotate(360deg)}}@keyframes ringSpinRev{to{transform:rotateX(72deg) rotate(-360deg)}}.hero-orbit{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;animation:orbitSpin 16s linear infinite;z-index:4;pointer-events:none}@keyframes orbitSpin{to{transform:rotate(360deg)}}.orbit-star{position:absolute;font-size:clamp(18px,5vw,26px);filter:drop-shadow(0 0 8px rgba(255,215,0,.8))}.orbit-star-1{top:-4%;left:48%}.orbit-star-2{bottom:6%;left:2%}.orbit-star-3{top:40%;right:-4%}.welcome-title{font-family:var(--font-display);font-weight:800;line-height:1.18;display:flex;flex-direction:column}.title-line{font-size:clamp(2rem,9.5vw,3.4rem);background:var(--gradient-title);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShimmer 5s ease-in-out infinite,titleRise .9s cubic-bezier(.22,1,.36,1) both;text-shadow:0 0 42px rgba(255,107,157,.35)}.title-line-2{animation-delay:0s,.14s}@keyframes titleShimmer{0%,to{background-position:0% center}50%{background-position:100% center}}@keyframes titleRise{0%{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.welcome-subtitle{font-size:clamp(.95rem,4vw,1.15rem);color:var(--text-secondary);line-height:1.75;animation:titleRise .9s .3s cubic-bezier(.22,1,.36,1) both}.step-dots{display:flex;gap:10px;margin-top:4px}.step-dot{width:10px;height:10px;border-radius:50%;background:#ffffff40;transition:all .3s}.step-dot.active{background:var(--gold);box-shadow:0 0 12px var(--gold);transform:scale(1.25)}.btn-primary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--touch-min);padding:16px 34px;border-radius:999px;background:var(--gradient-button);background-size:180% auto;color:#fff;font-family:var(--font-display);font-size:1.15rem;font-weight:800;letter-spacing:.04em;box-shadow:0 8px #a03c788c,0 18px 38px #ff6b9d66,inset 0 2px 2px #ffffff80;overflow:hidden;transform:translateZ(0);transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .16s,background-position .5s;animation:btnBreath 3s ease-in-out infinite}@keyframes btnBreath{0%,to{box-shadow:0 8px #a03c788c,0 18px 38px #ff6b9d59,inset 0 2px 2px #ffffff80}50%{box-shadow:0 8px #a03c788c,0 20px 52px #ff6b9d99,inset 0 2px 2px #ffffff80}}.btn-primary:active{transform:translateY(6px) scale(.97);box-shadow:0 2px #a03c788c,0 8px 18px #ff6b9d59,inset 0 2px 2px #ffffff80;animation:none}.btn-primary:disabled{filter:grayscale(.7) brightness(.65);animation:none;box-shadow:0 6px #1e1e3c99;pointer-events:none}.btn-xl{width:min(100%,380px);min-height:66px;font-size:clamp(1.15rem,5vw,1.35rem)}.btn-icon{font-size:1.35em}.btn-shine{position:absolute;top:0;left:-80%;width:60%;height:100%;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);transform:skew(-20deg);animation:btnShine 3.4s ease-in-out infinite;pointer-events:none}@keyframes btnShine{0%,55%{left:-80%}85%,to{left:130%}}.btn-secondary,.btn-outline{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--touch-min);padding:14px 28px;border-radius:999px;font-family:var(--font-display);font-size:1.05rem;font-weight:700;width:min(100%,380px);transition:transform .16s cubic-bezier(.34,1.56,.64,1),background .2s}.btn-secondary{background:var(--surface-glass);border:2px solid var(--border-glass);color:var(--text-primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-pop)}.btn-outline{background:transparent;border:2px dashed rgba(255,255,255,.35);color:var(--text-secondary)}.btn-secondary:active,.btn-outline:active{transform:scale(.95)}.ripple{position:absolute;border-radius:50%;background:#ffffff80;transform:scale(0);animation:rippleGrow .55s ease-out forwards;pointer-events:none}@keyframes rippleGrow{to{transform:scale(3.2);opacity:0}}.input-container{width:100%;max-width:min(560px,100%);min-width:0;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 20px max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:18px;overflow-x:hidden}.input-header{display:flex;align-items:center;gap:12px;padding:6px 0;min-width:0}.gochan-mini-wrap{flex-shrink:0;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.22),transparent 70%);display:grid;place-items:center}.gochan-mini{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45))}.tilt-float{animation:miniFloat 3.6s ease-in-out infinite}@keyframes miniFloat{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}.speech-bubble{position:relative;flex:1;min-width:0;background:#fffffff2;color:#4c2a85;border-radius:var(--radius-lg);padding:12px 16px;font-weight:700;font-size:clamp(.88rem,3.8vw,.98rem);line-height:1.5;box-shadow:var(--shadow-pop);animation:bubblePop .6s cubic-bezier(.34,1.56,.64,1) both}.speech-bubble:before{content:"";position:absolute;left:-9px;top:50%;transform:translateY(-50%);border:10px solid transparent;border-right-color:#fffffff2;border-left:0}@keyframes bubblePop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.glass-card{position:relative;width:100%;max-width:100%;min-width:0;background:var(--surface-glass);border:1.5px solid var(--border-glass);border-radius:var(--radius-xl);padding:22px 20px 20px;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:var(--shadow-pop),inset 0 1px #ffffff38;transform-style:preserve-3d;will-change:transform;transition:transform .25s ease-out}.card-step-badge{position:absolute;top:-14px;left:18px;width:34px;height:34px;border-radius:50%;background:var(--gradient-button);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:#fff;box-shadow:0 4px 12px #ff6b9d8c;transform:translateZ(30px)}.input-label{display:block;font-size:1.02rem;font-weight:700;margin-bottom:12px;color:var(--text-primary)}.textarea-wrapper{position:relative}textarea#dream-text{width:100%;border:2px solid rgba(255,255,255,.16);border-radius:var(--radius-md);background:#0a0a2e80;color:var(--text-primary);font-family:var(--font-primary);font-size:1.05rem;line-height:1.7;padding:14px 14px 34px;resize:none;outline:none;transition:border-color .25s,box-shadow .25s}textarea#dream-text:focus{border-color:var(--pink);box-shadow:0 0 0 4px #ff6b9d2e,var(--shadow-glow-pink)}textarea#dream-text::placeholder{color:var(--text-muted)}.char-count{position:absolute;right:12px;bottom:10px;font-size:.8rem;color:var(--text-muted);transition:color .2s}.char-count.warning{color:var(--warm)}.char-count.limit{color:var(--pink);font-weight:700}.dream-tags{margin-top:14px}.tag-label{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.dream-tags-list{display:flex;flex-wrap:wrap;gap:8px}.dream-tag{position:relative;overflow:hidden;min-height:44px;padding:8px 16px;border-radius:999px;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.2);color:var(--text-primary);font-size:.92rem;font-weight:700;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background .2s,border-color .2s}.dream-tag:active{transform:scale(.9);background:#ff6b9d4d;border-color:var(--pink)}.category-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;min-width:0}.category-chip{position:relative;overflow:hidden;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:84px;border-radius:var(--radius-lg);background:#ffffff12;border:2px solid rgba(255,255,255,.14);color:var(--text-secondary);font-weight:700;transform-style:preserve-3d;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .25s,border-color .25s,box-shadow .25s}.category-chip-icon{font-size:1.7rem;transition:transform .25s}.category-chip-label{font-size:.88rem}.category-chip:active{transform:scale(.92)}.category-chip.active{background:linear-gradient(145deg,#ff6b9d4d,#a855f74d);border-color:var(--pink);color:#fff;box-shadow:0 0 22px #ff6b9d73,inset 0 1px #ffffff4d;transform:translateZ(14px) scale(1.04)}.category-chip.active .category-chip-icon{transform:scale(1.25);animation:chipBounce .5s cubic-bezier(.34,1.56,.64,1)}@keyframes chipBounce{0%{transform:scale(.7)}60%{transform:scale(1.4)}to{transform:scale(1.25)}}.name-input-wrapper{display:flex;align-items:center;gap:10px;border:2px solid rgba(255,255,255,.16);border-radius:999px;background:#0a0a2e80;padding:4px 18px;transition:border-color .25s,box-shadow .25s}.name-input-wrapper:focus-within{border-color:var(--cyan);box-shadow:0 0 0 4px #22d3ee29,0 0 26px #22d3ee4d}.name-input-icon{font-size:1.2rem}input#user-name{flex:1;min-height:48px;border:none;background:transparent;color:var(--text-primary);font-family:var(--font-primary);font-size:1.05rem;outline:none}input#user-name::placeholder{color:var(--text-muted)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:30px;padding:24px;text-align:center;position:relative;width:100%;max-width:480px}.loading-gochan-wrapper{display:flex;flex-direction:column;align-items:center;gap:16px}.gochan-speech-bubble{background:#fffffff2;color:#4c2a85;border-radius:var(--radius-lg);padding:12px 20px;font-weight:700;line-height:1.5;box-shadow:var(--shadow-pop);position:relative;min-width:200px}.gochan-speech-bubble:after{content:"";position:absolute;bottom:-9px;left:50%;transform:translate(-50%);border:10px solid transparent;border-top-color:#fffffff2;border-bottom:0}#loading-bubble-text{transition:opacity .3s}.loading-gochan-stage{position:relative;width:clamp(150px,42vw,210px);aspect-ratio:1;display:grid;place-items:center}.loading-ring{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:50%;border:3px dashed rgba(255,215,0,.5);animation:ringSpinFlat 6s linear infinite}@keyframes ringSpinFlat{to{transform:rotate(360deg)}}.loading-gochan{width:82%;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(0,0,0,.5)) drop-shadow(0 0 20px rgba(255,107,157,.4));animation:paintWiggle 1.1s ease-in-out infinite}@keyframes paintWiggle{0%,to{transform:rotate(-4deg) translateY(0)}25%{transform:rotate(3deg) translateY(-6px)}75%{transform:rotate(-2deg) translateY(-3px)}}.loading-title{font-family:var(--font-display);font-size:clamp(1.3rem,6vw,1.7rem);font-weight:800;line-height:1.5}.loading-bar-container{display:flex;align-items:center;gap:14px;width:100%;margin-top:14px}.loading-bar{flex:1;height:18px;border-radius:999px;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.18);overflow:hidden}.loading-bar-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--warm),var(--pink),var(--purple),var(--cyan));background-size:280% auto;animation:barFlow 1.6s linear infinite;box-shadow:0 0 16px #ff6b9db3;transition:width .18s ease-out}@keyframes barFlow{to{background-position:-280% center}}.loading-percentage{font-family:var(--font-display);font-weight:800;font-size:1.1rem;min-width:54px;text-align:right;color:var(--gold)}.loading-tip{color:var(--text-secondary);font-size:.95rem;margin-top:10px;transition:opacity .2s}.magic-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}#confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none}.result-container{width:100%;max-width:min(560px,100%);min-width:0;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 20px max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;gap:20px;overflow-x:hidden}.result-title{font-family:var(--font-display);font-size:clamp(1.4rem,6.5vw,1.9rem);font-weight:800;text-align:center;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;width:100%;max-width:100%;animation:titleRise .7s cubic-bezier(.22,1,.36,1) both}.result-title-text{background:var(--gradient-title);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShimmer 5s ease-in-out infinite}.result-sparkle{animation:sparkleSpin 2.4s ease-in-out infinite;display:inline-block}@keyframes sparkleSpin{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(24deg) scale(1.35)}}.result-card{position:relative;width:min(100%,380px);border-radius:var(--radius-xl);padding:10px;background:linear-gradient(145deg,#ffd70080,#ff6b9d80,#a855f780,#22d3ee80);background-size:320% auto;animation:cardBorderFlow 7s linear infinite,cardEnter .85s cubic-bezier(.34,1.56,.64,1) backwards;box-shadow:0 26px 60px #0000008c,0 0 44px #ff6b9d4d;transform-style:preserve-3d;will-change:transform;overflow:hidden}@keyframes cardBorderFlow{to{background-position:-320% center}}@keyframes cardEnter{0%{opacity:0;transform:translateY(46px) rotateX(18deg) scale(.9)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}.result-image-wrapper{border-radius:calc(var(--radius-xl) - 8px);overflow:hidden;background:#0a0a2e;transform:translateZ(24px)}#dream-canvas{display:block;width:100%;height:auto}.result-card-shine{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 48%,transparent 62%);background-size:260% auto;animation:cardShine 4.2s ease-in-out infinite;pointer-events:none;border-radius:var(--radius-xl)}@keyframes cardShine{0%,45%{background-position:130% center}85%,to{background-position:-130% center}}.result-actions{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:22px}.modal.hidden{display:none}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#05051abf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-content{position:relative;width:min(100%,380px);background:linear-gradient(160deg,#1d1d5c,#141452);border:1.5px solid var(--border-glass);border-radius:var(--radius-xl);padding:30px 24px 24px;text-align:center;box-shadow:var(--shadow-pop);animation:modalPop .45s cubic-bezier(.34,1.56,.64,1) both}@keyframes modalPop{0%{opacity:0;transform:scale(.8) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;background:#ffffff1a;color:var(--text-secondary);font-size:1.1rem;display:grid;place-items:center;transition:transform .15s,background .2s}.modal-close:active{transform:scale(.88);background:#fff3}.modal-title{font-family:var(--font-display);font-size:1.25rem;font-weight:800;margin-bottom:8px}.modal-subtitle{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:18px}.qr-container{display:grid;place-items:center;background:#fff;border-radius:var(--radius-md);padding:14px;width:fit-content;margin:0 auto;box-shadow:0 0 30px #fff3}.modal-hint{color:var(--text-muted);font-size:.8rem;margin-top:14px}.toast{position:fixed;bottom:calc(34px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%) translateY(24px);z-index:30;background:#fffffff5;color:#4c2a85;font-weight:700;font-size:.95rem;padding:14px 26px;border-radius:999px;box-shadow:var(--shadow-pop);opacity:0;transition:opacity .35s,transform .35s cubic-bezier(.34,1.56,.64,1);max-width:calc(100% - 32px);text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(min-width:700px){.category-chips{grid-template-columns:repeat(5,minmax(0,1fr))}.result-card{width:min(100%,420px)}}@media(max-width:699px){.hero-stage{width:clamp(180px,52vw,260px)}.gochan-mini-wrap{width:72px;height:72px}.gochan-mini{width:62px;height:62px}.category-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.category-chip:last-child:nth-child(odd){grid-column:1 / -1;width:calc(50% - 5px);justify-self:center}.glass-card{padding:20px 16px 18px}.btn-xl,.btn-secondary,.btn-outline{width:100%;max-width:100%}.loading-container{padding:20px max(16px,env(safe-area-inset-left)) 20px max(16px,env(safe-area-inset-right))}.gochan-speech-bubble{min-width:0;max-width:100%}}@media(max-width:360px){.input-header{flex-direction:column;align-items:center;text-align:center}.speech-bubble:before{display:none}}.comet-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;overflow:hidden}.comet{position:absolute;top:var(--y, 20%);left:var(--x, 10%);width:var(--len, 150px);height:3px;border-radius:999px;background:linear-gradient(90deg,#fff0,#c7e0ffd9 55%,#fff);filter:drop-shadow(0 0 6px rgba(255,255,255,.9)) drop-shadow(0 0 16px rgba(130,180,255,.65));transform:rotate(var(--angle, 30deg)) translate(0);opacity:0;animation:cometFly var(--dur, 1.1s) cubic-bezier(.25,.1,.25,1) forwards}.comet:after{content:"";position:absolute;right:-4px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#fff;box-shadow:0 0 14px 5px #ffffffbf,0 0 30px 10px #96beff59}@keyframes cometFly{0%{opacity:0;transform:rotate(var(--angle, 30deg)) translate(0)}10%{opacity:1}70%{opacity:1}to{opacity:0;transform:rotate(var(--angle, 30deg)) translate(var(--dist, 70vmax))}}#warp-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.95) 0%,rgba(190,170,255,.4) 40%,transparent 72%)}#warp-flash.flash{animation:warpFlash .75s ease-out forwards}@keyframes warpFlash{0%{opacity:0}16%{opacity:1}to{opacity:0}}.screen-enter-fx .input-container{perspective:1100px;transform-style:preserve-3d}.screen-enter-fx .input-header,.screen-enter-fx .glass-card,.screen-enter-fx .btn-generate-dream{animation:starArrive .85s cubic-bezier(.22,1,.36,1) both}.screen-enter-fx .input-header{animation-delay:.1s}.screen-enter-fx .glass-card[data-step="1"]{animation-delay:.26s}.screen-enter-fx .glass-card[data-step="2"]{animation-delay:.44s}.screen-enter-fx .glass-card[data-step="3"]{animation-delay:.62s}.screen-enter-fx .btn-generate-dream{animation-delay:.8s}@keyframes starArrive{0%{opacity:0;transform:translate3d(110px,130px,-620px) rotateX(26deg) rotate(7deg) scale(.5);filter:blur(8px) brightness(2.4)}55%{opacity:1;filter:blur(0px) brightness(1.5)}to{opacity:1;transform:translateZ(0) rotateX(0) rotate(0) scale(1);filter:blur(0px) brightness(1)}}.result-card-stage{position:relative;width:min(100%,380px);max-width:100%;display:grid;place-items:center;perspective:1000px}@media(max-width:699px){.result-card-stage{width:min(74vw,34vh,340px)}}.result-card-stage .result-card{width:100%}.result-rays{position:absolute;left:50%;top:50%;width:130%;max-width:none;aspect-ratio:1;z-index:-1;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,rgba(255,215,0,.2) 0deg 7deg,rgba(255,107,157,.1) 7deg 14deg,transparent 14deg 26deg);-webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.85) 20%,transparent 66%);mask-image:radial-gradient(circle,rgba(0,0,0,.85) 20%,transparent 66%);animation:raysSpin 26s linear infinite,raysFade 1.4s ease-out both;filter:blur(.5px)}@keyframes raysSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes raysFade{0%{opacity:0}to{opacity:1}}.stardust{position:fixed;z-index:40;pointer-events:none;transform:translate(-50%,-50%) scale(.4);animation:stardustPop .7s ease-out forwards}@keyframes stardustPop{0%{opacity:1;transform:translate(-50%,-50%) scale(.4) rotate(0)}to{opacity:0;transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, -30px))) scale(1.2) rotate(100deg)}}@media(min-width:700px){.result-card-stage{width:min(100%,420px)}}.card-flipper{position:relative;width:100%;transform-style:preserve-3d;will-change:transform;touch-action:pan-y;cursor:grab;animation:cardEnter .85s cubic-bezier(.34,1.56,.64,1) backwards}.card-flipper:active{cursor:grabbing}.card-flipper.idle-sway{animation:idleSway 7s ease-in-out infinite}@keyframes idleSway{0%,to{transform:rotateY(calc(var(--flip, 0) * 1deg + 0deg)) rotateX(.7deg) rotate(-.25deg)}50%{transform:rotateY(calc(var(--flip, 0) * 1deg + 2.6deg)) rotateX(-.9deg) rotate(.25deg)}}.card-face{animation:cardBorderFlow 7s linear infinite;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:flat}.card-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:grid}.card-back-design{position:relative;width:100%;height:100%;border-radius:calc(var(--radius-xl) - 8px);overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(255,215,0,.2),transparent 55%),radial-gradient(circle at 20% 85%,rgba(255,107,157,.18),transparent 45%),radial-gradient(circle at 82% 78%,rgba(34,211,238,.15),transparent 45%),linear-gradient(160deg,#201b66,#2c1a66 45%,#141452);display:grid;place-items:center}.card-back-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.18) 1.2px,transparent 1.4px),radial-gradient(rgba(255,215,0,.15) 1px,transparent 1.2px);background-size:28px 28px,46px 46px;background-position:0 0,14px 23px}.card-back-ring{position:absolute;width:62%;aspect-ratio:1;border-radius:50%;border:2px dashed rgba(255,215,0,.45);box-shadow:0 0 26px #ffd70033,inset 0 0 26px #ffd7001f}.card-back-logo{display:flex;flex-direction:column;align-items:center;gap:6px;z-index:1}.card-back-star{font-size:clamp(38px,12vw,52px);filter:drop-shadow(0 0 14px rgba(255,215,0,.85))}.card-back-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.25rem,6vw,1.6rem);letter-spacing:.18em;background:var(--gradient-title);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShimmer 5s ease-in-out infinite}.card-back-sub{font-size:.72rem;letter-spacing:.34em;color:var(--text-muted)}.card-back-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:2;border-radius:calc(var(--radius-xl) - 8px)}.holo-foil{position:absolute;left:-60%;top:-60%;width:220%;height:220%;z-index:3;pointer-events:none;background:linear-gradient(115deg,#ff3c8c52,#ffd70042 25%,#50ffbe42,#3caaff52 75%,#be50ff4d);mix-blend-mode:overlay;opacity:.6;will-change:transform;transform:translateZ(0)}.holo-glare{position:absolute;left:-50%;top:-50%;width:200%;height:200%;z-index:3;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.5) 0%,rgba(255,255,255,.12) 16%,transparent 38%);mix-blend-mode:screen;opacity:.85;will-change:transform;transform:translateZ(0)}.swipe-hint{font-size:.85rem;color:var(--text-secondary);text-align:center;animation:hintPulse 2.6s ease-in-out infinite;transition:opacity .6s}.swipe-hint.done{opacity:0}@keyframes hintPulse{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.tag-label-hint{font-size:.72rem;color:var(--text-muted);margin-left:6px;letter-spacing:.02em}.dream-tag:active{transform:scale(.92);background:linear-gradient(135deg,#ffa94d61,#ff6b9d73 50%,#a855f761);border-color:#fff9;box-shadow:0 0 18px #ff6b9d8c,inset 0 1px #ffffff59;color:#fff}.dream-tag{-webkit-touch-callout:none}.dream-preview{position:fixed;z-index:45;max-width:min(80vw,340px);padding:13px 20px;border-radius:20px;border:2px solid transparent;background:linear-gradient(150deg,#fffffffa,#ffeef7f7) padding-box,var(--gradient-button) border-box;color:#4c2a85;font-family:var(--font-primary);font-weight:700;font-size:.98rem;line-height:1.55;text-align:center;box-shadow:0 16px 40px #00000073,0 0 26px #ff6b9d66;pointer-events:none;opacity:0;transform:translate(-50%,10px) scale(.72);transform-origin:50% 100%;transition:opacity .16s ease,transform .24s cubic-bezier(.34,1.56,.64,1)}.dream-preview.show{opacity:1;transform:translate(-50%) scale(1)}.dream-preview:after{content:"";position:absolute;bottom:-8px;left:calc(50% + var(--arrow-x, 0px));transform:translate(-50%);border:9px solid transparent;border-top-color:#fff5fcfa;border-bottom:0;filter:drop-shadow(0 3px 3px rgba(0,0,0,.15))}.dream-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);background-size:240% auto;background-position:130% center;mix-blend-mode:soft-light;pointer-events:none}.dream-preview.show:before{animation:previewGleam .9s ease-out .12s both}@keyframes previewGleam{0%{background-position:130% center}to{background-position:-110% center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
