@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;700&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_2ae47f08-module__h69qWW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_2ae47f08-module__h69qWW__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_eb58308d-module__w_p2Lq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_eb58308d-module__w_p2Lq__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--sky:#4facfe;--sky-dark:#3a8fe0;--sunset:#f96;--sunset-dark:#e8874f;--candy:#ff6b9d;--candy-dark:#e55a87;--leaf:#44d7b6;--leaf-dark:#36bfa0;--grape:#7e57c2;--grape-dark:#6a47a8;--cream:#fef9e7;--cream-warm:#fff8e1;--cloud:#f0f4f8;--ink:#2d3436;--ink-light:#636e72;--white:#fff;--font-display:"Fredoka","Noto Sans TC",sans-serif;--font-body:"Noto Sans TC","Fredoka",sans-serif;--fs-mega:clamp(36px,5vw,56px);--fs-title:clamp(28px,4vw,42px);--fs-subtitle:clamp(20px,3vw,28px);--fs-body:clamp(16px,2vw,20px);--fs-small:clamp(14px,1.5vw,16px);--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:40px;--sp-2xl:64px;--r-sm:12px;--r-md:20px;--r-lg:28px;--r-xl:40px;--r-pill:999px;--r-circle:50%;--shadow-toy:0 6px 0 #0000001f;--shadow-toy-hover:0 3px 0 #0000001f;--shadow-card:0 8px 32px #00000014;--shadow-glow:0 0 40px #4facfe4d;--ease-bounce:cubic-bezier(.34,1.56,.64,1);--ease-smooth:cubic-bezier(.4,0,.2,1);--t-fast:.2s;--t-normal:.35s;--t-slow:.6s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;font-size:16px}body{font-family:var(--font-body);color:var(--ink);min-height:100dvh;position:relative;overflow:hidden auto}.bg-scene{z-index:0;background:linear-gradient(170deg,#fef9e7 0%,#e3f2fd 40%,#f3e5f5 70%,#fff3e0 100%);position:fixed;inset:0;overflow:hidden}.bg-scene:before{content:"";background:radial-gradient(600px 400px at 20% 80%,#4facfe1f,#0000),radial-gradient(500px 350px at 80% 20%,#ff6b9d1a,#0000),radial-gradient(400px 300px,#44d7b614,#0000);position:absolute;inset:0}.bg-bubble{border-radius:var(--r-circle);opacity:.15;animation:linear infinite float-up;position:absolute}@keyframes float-up{0%{opacity:0;transform:translateY(100vh)rotate(0)scale(.5)}10%{opacity:.15}90%{opacity:.15}to{opacity:0;transform:translateY(-100px)rotate(360deg)scale(1)}}.bg-cloud{border-radius:var(--r-pill);opacity:.4;background:#fff;animation:linear infinite drift-cloud;position:absolute}@keyframes drift-cloud{0%{transform:translate(-200px)}to{transform:translate(calc(100vw + 200px))}}.app{z-index:1;min-height:100dvh;padding:var(--sp-lg);padding-bottom:calc(var(--sp-2xl) + 40px);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.app:has(.step:nth-child(2).active){padding-top:var(--sp-xl);justify-content:flex-start}.progress-bar{gap:var(--sp-md);margin-bottom:var(--sp-xl);align-items:center;display:flex}.progress-dot{border-radius:var(--r-circle);background:var(--cloud);width:18px;height:18px;transition:all var(--t-normal)var(--ease-bounce);border:3px solid #00000014;position:relative}.progress-dot.active{background:var(--sky);border-color:var(--sky-dark);transform:scale(1.3);box-shadow:0 0 12px #4facfe66}.progress-dot.done{background:var(--leaf);border-color:var(--leaf-dark)}.progress-dot.done:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;inset:0}.progress-line{border-radius:var(--r-pill);background:var(--cloud);width:40px;height:4px;transition:background var(--t-normal)}.progress-line.done{background:var(--leaf)}.step-container{width:100%;max-width:900px;position:relative}.step{animation:step-enter var(--t-slow)var(--ease-bounce);flex-direction:column;align-items:center;display:none}.step.active{display:flex}@keyframes step-enter{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.step-title{font-family:var(--font-display);font-size:var(--fs-title);text-align:center;margin-bottom:var(--sp-sm);color:var(--ink);font-weight:700;line-height:1.3}.step-subtitle{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);text-align:center;margin-bottom:var(--sp-xl)}.carousel-wrapper{justify-content:center;align-items:center;gap:var(--sp-md);width:100%;margin-bottom:var(--sp-xl);display:flex;position:relative}.carousel-track{gap:var(--sp-lg);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:var(--sp-lg)var(--sp-sm);scroll-behavior:smooth;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.character-card{scroll-snap-align:center;background:var(--white);border-radius:var(--r-lg);width:200px;padding:var(--sp-lg)var(--sp-md);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);box-shadow:var(--shadow-card);text-align:center;-webkit-user-select:none;user-select:none;border:4px solid #0000;flex-direction:column;flex:none;align-items:center;display:flex;position:relative;overflow:hidden}.character-card:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff80,#0000);position:absolute;inset:0}.character-card:hover{box-shadow:var(--shadow-card),var(--shadow-glow);transform:translateY(-8px)scale(1.03)}.character-card:active{transform:translateY(-2px)scale(.98)}.character-card.selected{border-color:var(--sky);box-shadow:var(--shadow-card),0 0 30px #4facfe59;transform:translateY(-12px)scale(1.05)}.character-card.selected .char-badge{opacity:1;transform:scale(1)rotate(-5deg)}.char-badge{background:var(--leaf);color:#fff;border-radius:var(--r-circle);opacity:0;width:32px;height:32px;transition:all var(--t-normal)var(--ease-bounce);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;top:10px;right:10px;transform:scale(.5)rotate(20deg);box-shadow:0 2px 8px #44d7b666}.char-image-wrap{border-radius:var(--r-circle);width:140px;height:140px;margin-bottom:var(--sp-md);background:linear-gradient(135deg,#f0f0f0,#e8e8e8);position:relative;overflow:hidden}.char-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform var(--t-normal)var(--ease-bounce)}.character-card:hover .char-image-wrap img,.character-card.selected .char-image-wrap img{transform:scale(1.1)}.character-card.selected .char-image-wrap img{animation:char-wave .6s var(--ease-bounce)}@keyframes char-wave{0%{transform:scale(1.1)rotate(0)}25%{transform:scale(1.15)rotate(-5deg)}50%{transform:scale(1.1)rotate(5deg)}75%{transform:scale(1.15)rotate(-3deg)}to{transform:scale(1.1)rotate(0)}}.char-emoji{margin-bottom:var(--sp-sm);font-size:36px;line-height:1}.char-name{font-family:var(--font-display);font-size:var(--fs-subtitle);margin-bottom:var(--sp-xs);color:var(--ink);font-weight:700}.char-desc{font-size:var(--fs-small);color:var(--ink-light);line-height:1.4}.carousel-arrow{border-radius:var(--r-circle);background:var(--white);border:3px solid var(--cloud);cursor:pointer;width:48px;height:48px;color:var(--ink);transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:22px;display:flex}.carousel-arrow:hover{background:var(--sky);color:#fff;border-color:var(--sky-dark);transform:scale(1.1)}.carousel-arrow:active{box-shadow:var(--shadow-toy-hover);transform:scale(.95)translateY(3px)}.identity-layout{gap:var(--sp-xl);grid-template-columns:1fr 1fr;align-items:start;width:100%;max-width:800px;display:grid}.identity-preview{align-items:center;gap:var(--sp-md);flex-direction:column;display:flex}.preview-avatar{border-radius:var(--r-xl);background:var(--white);width:200px;height:200px;box-shadow:var(--shadow-card);border:5px solid var(--white);animation:3s ease-in-out infinite gentle-float;overflow:hidden}@keyframes gentle-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.preview-avatar img{object-fit:cover;width:100%;height:100%}.preview-name-display{font-family:var(--font-display);font-size:var(--fs-subtitle);color:var(--ink);min-height:34px;font-weight:700}.identity-controls{gap:var(--sp-xl);flex-direction:column;display:flex}.section-label{font-family:var(--font-display);font-size:var(--fs-body);margin-bottom:var(--sp-md);align-items:center;gap:var(--sp-sm);font-weight:600;display:flex}.voice-grid{gap:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid}.voice-btn{background:var(--white);border:4px solid var(--cloud);border-radius:var(--r-md);padding:var(--sp-md)var(--sp-sm);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);align-items:center;gap:var(--sp-sm);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.voice-btn:hover{border-color:var(--sunset);transform:translateY(-4px)scale(1.05)}.voice-btn:active{box-shadow:var(--shadow-toy-hover);transform:translateY(2px)scale(.97)}.voice-btn.selected{border-color:var(--sunset);background:var(--cream-warm);box-shadow:var(--shadow-toy),0 0 20px #ff996640}.voice-icon{font-size:36px;line-height:1}.voice-label{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink);font-weight:600}.voice-desc{color:var(--ink-light);font-size:12px}.voice-btn.playing .voice-icon{animation:voice-bounce .4s var(--ease-bounce)infinite alternate}@keyframes voice-bounce{0%{transform:scale(1)}to{transform:scale(1.2)rotate(-5deg)}}.name-input-group{gap:var(--sp-sm);align-items:stretch;display:flex}.name-input{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-md)var(--sp-lg);border:4px solid var(--cloud);border-radius:var(--r-md);background:var(--white);color:var(--ink);transition:all var(--t-fast);outline:none;flex:1;font-weight:500;box-shadow:inset 0 3px 6px #0000000a}.name-input::placeholder{color:#b2bec3}.name-input:focus{border-color:var(--sky);box-shadow:inset 0 3px 6px #0000000a,0 0 16px #4facfe33}.dice-btn,.mic-btn{border-radius:var(--r-md);border:4px solid var(--cloud);background:var(--white);cursor:pointer;width:56px;height:56px;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:24px;display:flex}.dice-btn:hover{background:var(--candy);border-color:var(--candy-dark);color:#fff;transform:scale(1.1)}.dice-btn:active{box-shadow:var(--shadow-toy-hover);transform:scale(.95)translateY(3px)rotate(180deg)}.mic-btn:hover{background:var(--grape);border-color:var(--grape-dark);color:#fff;transform:scale(1.1)}.mic-btn:active{box-shadow:var(--shadow-toy-hover);transform:scale(.95)translateY(3px)}.personality-section{margin-top:var(--sp-md)}.tag-group{margin-bottom:var(--sp-md)}.tag-group-label{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink-light);margin-bottom:var(--sp-sm);font-weight:600}.tag-options{gap:var(--sp-sm);flex-wrap:wrap;display:flex}.tag-btn{font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-sm)var(--sp-md);border:3px solid var(--cloud);border-radius:var(--r-pill);background:var(--white);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;align-items:center;gap:var(--sp-xs);font-weight:600;display:flex}.tag-btn:hover{border-color:var(--sky);transform:translateY(-2px)scale(1.05)}.tag-btn:active{box-shadow:var(--shadow-toy-hover);transform:translateY(1px)scale(.97)}.tag-btn.selected{background:var(--sky);border-color:var(--sky-dark);color:#fff;box-shadow:var(--shadow-toy),0 0 12px #4facfe4d}.section-hint{font-size:var(--fs-small);color:var(--ink-light);margin-bottom:var(--sp-md);margin-top:-4px;line-height:1.4}.preview-creature-badge{font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-xs)var(--sp-md);background:var(--white);border:3px solid var(--cloud);border-radius:var(--r-pill);color:var(--ink);box-shadow:var(--shadow-toy);font-weight:600;animation:.3s both fade-up}.creature-grid{gap:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid}.creature-card{background:var(--white);border:4px solid var(--cloud);border-radius:var(--r-lg);padding:var(--sp-lg)var(--sp-md);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);text-align:center;align-items:center;gap:var(--sp-sm);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.creature-card:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#fff9,#0000);position:absolute;inset:0}.creature-card:hover{border-color:var(--card-color,var(--sky));box-shadow:var(--shadow-card),0 0 20px color-mix(in srgb,var(--card-color,var(--sky))30%,transparent);transform:translateY(-6px)scale(1.04)}.creature-card:active{transform:translateY(2px)scale(.97)}.creature-card.selected{border-color:var(--card-color,var(--sky));background:color-mix(in srgb,var(--card-color,var(--sky))8%,white);box-shadow:var(--shadow-card),0 0 24px color-mix(in srgb,var(--card-color,var(--sky))35%,transparent);transform:translateY(-4px)scale(1.02)}.creature-card.selected:after{content:"✓";border-radius:var(--r-circle);background:var(--card-color,var(--leaf));color:#fff;width:24px;height:24px;animation:step-enter .3s var(--ease-bounce);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;top:8px;right:8px}.creature-emoji{font-size:42px;line-height:1}.creature-label{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink);font-weight:700}.creature-desc{color:var(--ink-light);font-size:12px;line-height:1.4}.personality-grid{gap:var(--sp-md);flex-direction:column;display:flex}.personality-card{background:var(--white);border:4px solid var(--cloud);border-radius:var(--r-lg);padding:var(--sp-md)var(--sp-lg);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);gap:var(--sp-sm);box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;text-align:left;flex-direction:column;display:flex;position:relative}.personality-card:hover{border-color:var(--card-color,var(--sky));box-shadow:var(--shadow-card),0 0 16px color-mix(in srgb,var(--card-color,var(--sky))25%,transparent);transform:translateY(-4px)scale(1.02)}.personality-card:active{transform:translateY(2px)scale(.98)}.personality-card.selected{border-color:var(--card-color,var(--sky));background:color-mix(in srgb,var(--card-color,var(--sky))6%,white);box-shadow:var(--shadow-card),0 0 20px color-mix(in srgb,var(--card-color,var(--sky))30%,transparent)}.personality-card.selected:after{content:"✓";border-radius:var(--r-circle);background:var(--card-color,var(--leaf));color:#fff;width:24px;height:24px;animation:step-enter .3s var(--ease-bounce);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;top:10px;right:10px}.personality-header{align-items:center;gap:var(--sp-sm);display:flex}.personality-emoji{font-size:28px;line-height:1}.personality-label{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink);font-weight:700}.personality-quote{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink-light);background:var(--cream);padding:var(--sp-sm)var(--sp-md);border-radius:var(--r-md);border-left:4px solid var(--card-color,var(--cloud));font-style:italic;line-height:1.4}.personality-emoji-set{color:var(--ink-light);letter-spacing:2px;font-size:13px}.passphrase-row{gap:var(--sp-md);flex-direction:column;display:flex}.passphrase-prompt{align-items:center;gap:var(--sp-sm);font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap;font-weight:600;display:flex}.passphrase-input{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-sm)var(--sp-md);border:4px solid var(--sunset);border-radius:var(--r-md);background:var(--cream-warm);color:var(--ink);text-align:center;width:120px;transition:all var(--t-fast);outline:none;font-weight:700;box-shadow:inset 0 2px 4px #0000000a}.passphrase-input:focus{border-color:var(--candy);box-shadow:inset 0 2px 4px #0000000a,0 0 16px #ff6b6b33}.passphrase-input::placeholder{color:#c8a888;font-weight:500}.passphrase-mode-select{align-items:center;gap:var(--sp-sm);font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap;font-weight:600;display:flex}.passphrase-arrow{color:var(--sunset);font-size:20px;animation:1s ease-in-out infinite arrow-bounce}@keyframes arrow-bounce{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.passphrase-dropdown{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-sm)var(--sp-md);border:4px solid var(--cloud);border-radius:var(--r-md);background:var(--white);color:var(--ink);cursor:pointer;transition:all var(--t-fast);box-shadow:var(--shadow-toy);appearance:auto;outline:none;font-weight:600}.passphrase-dropdown:focus{border-color:var(--sky);box-shadow:var(--shadow-toy),0 0 12px #4facfe33}.passphrase-preview{background:var(--cream);border:3px dashed var(--cloud);border-radius:var(--r-md);padding:var(--sp-md);font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink-light);margin-top:var(--sp-sm);line-height:1.5}.launch-badges{gap:var(--sp-sm);flex-wrap:wrap;justify-content:center;animation:.5s .6s both fade-up;display:flex}.launch-badge{font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-xs)var(--sp-md);background:var(--white);border:3px solid color-mix(in srgb,var(--badge-color,var(--sky))50%,transparent);border-radius:var(--r-pill);color:var(--ink);box-shadow:var(--shadow-toy);transition:all var(--t-fast)var(--ease-bounce);font-weight:600}.launch-badge:hover{transform:translateY(-2px)scale(1.05)}.create-status{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-md)var(--sp-lg);border-radius:var(--r-md);font-weight:600;animation:.4s both fade-up}.create-success{background:color-mix(in srgb,var(--leaf)10%,white);color:var(--leaf-dark);border:3px solid var(--leaf)}.create-error{background:color-mix(in srgb,var(--candy)10%,white);color:var(--candy-dark);border:3px solid var(--candy)}.launch-scene{align-items:center;gap:var(--sp-xl);flex-direction:column;display:flex;position:relative}.spotlight-wrapper{justify-content:center;align-items:center;width:280px;height:280px;display:flex;position:relative}.spotlight-ring{border-radius:var(--r-circle);border:6px solid #0000;animation:4s linear infinite spotlight-spin;position:absolute;inset:0}.spotlight-ring:before{content:"";border-radius:var(--r-circle);background:conic-gradient(from 0deg,var(--sky),var(--candy),var(--sunset),var(--leaf),var(--grape),var(--sky));position:absolute;inset:-6px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 6px))}@keyframes spotlight-spin{to{transform:rotate(360deg)}}.spotlight-glow{border-radius:var(--r-circle);background:radial-gradient(circle,#4facfe26 0%,#0000 70%);animation:2s ease-in-out infinite glow-pulse;position:absolute;inset:-30px}@keyframes glow-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.launch-avatar{border-radius:var(--r-circle);background:var(--white);border:6px solid var(--white);width:220px;height:220px;box-shadow:var(--shadow-card);z-index:2;animation:launch-entrance .8s var(--ease-bounce)both;overflow:hidden}.launch-avatar img{object-fit:cover;width:100%;height:100%}@keyframes launch-entrance{0%{opacity:0;transform:scale(0)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(0)}}.launch-name{font-family:var(--font-display);font-size:var(--fs-mega);color:var(--ink);animation:launch-name-pop .6s var(--ease-bounce).3s both;font-weight:700}@keyframes launch-name-pop{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.launch-greeting{font-family:var(--font-display);font-size:var(--fs-subtitle);color:var(--ink-light);text-align:center;animation:.5s .5s both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.btn-primary{font-family:var(--font-display);font-size:var(--fs-subtitle);padding:var(--sp-md)var(--sp-2xl);border-radius:var(--r-pill);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);align-items:center;gap:var(--sp-sm);-webkit-user-select:none;user-select:none;border:none;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff40,#0000);position:absolute;inset:0}.btn-next{background:var(--sky);color:#fff;box-shadow:0 6px 0 var(--sky-dark),var(--shadow-card)}.btn-next:hover{box-shadow:0 9px 0 var(--sky-dark),var(--shadow-card);transform:translateY(-3px)}.btn-next:active{box-shadow:0 2px 0 var(--sky-dark);transform:translateY(3px)}.btn-launch{background:linear-gradient(135deg,var(--leaf),#2ed8a3);color:#fff;font-size:var(--fs-title);padding:var(--sp-lg)var(--sp-2xl);box-shadow:0 8px 0 var(--leaf-dark),var(--shadow-card);animation:2s ease-in-out infinite btn-breathe,.5s .7s both fade-up}@keyframes btn-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.btn-launch:hover{box-shadow:0 12px 0 var(--leaf-dark),var(--shadow-card);transform:translateY(-4px)scale(1.05)}.btn-launch:active{box-shadow:0 2px 0 var(--leaf-dark);transform:translateY(4px)scale(.98)}.btn-back{border:3px solid var(--cloud);color:var(--ink-light);font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-sm)var(--sp-lg);border-radius:var(--r-pill);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);background:0 0;font-weight:600}.btn-back:hover{border-color:var(--ink-light);color:var(--ink);transform:translate(-4px)}.step-nav{align-items:center;gap:var(--sp-md);margin-top:var(--sp-xl);display:flex}.confetti-container{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.confetti-piece{border-radius:2px;width:12px;height:12px;animation:linear forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)rotateX(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)rotateX(360deg)}}.sparkle{background:var(--sunset);border-radius:var(--r-circle);pointer-events:none;width:8px;height:8px;animation:sparkle-pop .6s var(--ease-bounce)forwards;position:absolute}@keyframes sparkle-pop{0%{opacity:1;transform:scale(0)translate(0)}to{transform:scale(1)translate(var(--tx),var(--ty));opacity:0}}.gear-icon{border-radius:var(--r-circle);cursor:pointer;width:36px;height:36px;color:var(--ink-light);opacity:.4;transition:all var(--t-fast);z-index:50;-webkit-user-select:none;user-select:none;background:#0000000f;border:none;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;bottom:16px;right:16px}.gear-icon:hover{opacity:.7}.gear-icon.pressing{opacity:1;background:#4facfe26;animation:1s linear infinite gear-spin}@keyframes gear-spin{to{transform:rotate(360deg)}}.gear-progress{border-radius:var(--r-circle);border:3px solid #0000;border-top-color:var(--sky);pointer-events:none;animation:3s linear forwards gear-progress-spin;position:absolute;inset:-3px}@keyframes gear-progress-spin{0%{border-top-color:var(--sky);transform:rotate(0)}33%{border-right-color:var(--sky)}66%{border-bottom-color:var(--sky)}to{border-color:var(--sky);transform:rotate(1080deg)}}.parent-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--sp-lg);animation:overlay-in var(--t-normal)var(--ease-smooth);background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.parent-overlay.visible{display:flex}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.parent-panel{background:var(--white);border-radius:var(--r-lg);padding:var(--sp-xl);width:100%;max-width:600px;max-height:80vh;animation:panel-up var(--t-normal)var(--ease-bounce);overflow-y:auto;box-shadow:0 20px 60px #0003}@keyframes panel-up{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.parent-panel h2{font-family:var(--font-display);font-size:var(--fs-subtitle);margin-bottom:var(--sp-lg);align-items:center;gap:var(--sp-sm);font-weight:700;display:flex}.parent-panel label{font-family:var(--font-body);font-size:var(--fs-small);color:var(--ink-light);margin-bottom:var(--sp-xs);margin-top:var(--sp-md);font-weight:500;display:block}.parent-panel input,.parent-panel textarea,.parent-panel select{width:100%;font-family:var(--font-body);padding:var(--sp-sm)var(--sp-md);border:2px solid var(--cloud);border-radius:var(--r-sm);background:var(--cream);color:var(--ink);transition:border-color var(--t-fast);outline:none;font-size:14px}.parent-panel textarea{resize:vertical;min-height:120px}.parent-panel input:focus,.parent-panel textarea:focus,.parent-panel select:focus{border-color:var(--sky)}.parent-panel-actions{gap:var(--sp-md);margin-top:var(--sp-lg);justify-content:flex-end;display:flex}.btn-parent{font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-sm)var(--sp-lg);border-radius:var(--r-pill);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);border:none;font-weight:600}.btn-parent-save{background:var(--sky);color:#fff}.btn-parent-save:hover{background:var(--sky-dark);transform:scale(1.05)}.btn-parent-close{background:var(--cloud);color:var(--ink)}.btn-parent-close:hover{background:#dfe6e9;transform:scale(1.05)}.btn-parent-reset{background:var(--candy);color:#fff}.btn-parent-reset:hover{background:var(--candy-dark);transform:scale(1.05)}.config-json{display:none}@media (max-width:768px){.identity-layout{gap:var(--sp-lg);grid-template-columns:1fr}.identity-preview{gap:var(--sp-lg);flex-direction:row}.preview-avatar{width:120px;height:120px}.character-card{width:170px}.char-image-wrap{width:110px;height:110px}.creature-grid{grid-template-columns:1fr}.passphrase-prompt,.passphrase-dropdown{font-size:var(--fs-small)}.spotlight-wrapper{width:220px;height:220px}.launch-avatar{width:170px;height:170px}.launch-badges{flex-direction:column;align-items:center}}@media (max-width:480px){.app{padding:var(--sp-md)}.character-card{width:150px;padding:var(--sp-md)var(--sp-sm)}.char-image-wrap{width:90px;height:90px}.carousel-arrow{width:36px;height:36px;font-size:16px}.identity-preview{flex-direction:column;align-items:center}.btn-primary{padding:var(--sp-md)var(--sp-xl)}.passphrase-input{width:80px}.passphrase-mode-select{font-size:var(--fs-small)}}.auth-page{z-index:1;min-height:100dvh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex;position:relative}.auth-card{background:var(--white);border-radius:var(--r-lg);padding:var(--sp-xl)var(--sp-2xl);width:100%;max-width:440px;box-shadow:var(--shadow-card),0 0 60px #4facfe1a;animation:panel-up var(--t-normal)var(--ease-bounce);text-align:center}.auth-mascot{margin-bottom:var(--sp-md);font-size:64px;line-height:1;animation:3s ease-in-out infinite gentle-float}.auth-mascot img{filter:drop-shadow(0 0 20px #4facfe80);border-radius:16px;transition:transform .3s,filter .3s;animation:2s ease-in-out infinite auth-logo-glow,3s ease-in-out infinite gentle-float}.auth-mascot img:hover{filter:drop-shadow(0 0 30px #4facfecc);transform:scale(1.1)rotate(5deg)}@keyframes auth-logo-glow{0%,to{filter:drop-shadow(0 0 15px #4facfe66)drop-shadow(0 0 30px #a855f733)}50%{filter:drop-shadow(0 0 25px #4facfeb3)drop-shadow(0 0 50px #a855f766)}}.auth-title{font-family:var(--font-display);font-size:var(--fs-title);color:var(--ink);margin-bottom:var(--sp-xs);font-weight:700}.auth-subtitle{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);margin-bottom:var(--sp-xl)}.auth-form{gap:var(--sp-md);flex-direction:column;display:flex}.auth-field{text-align:left}.auth-field label{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink);margin-bottom:var(--sp-xs);font-weight:600;display:block}.auth-field input{width:100%;font-family:var(--font-body);font-size:var(--fs-body);padding:var(--sp-md)var(--sp-lg);border:4px solid var(--cloud);border-radius:var(--r-md);background:var(--cream);color:var(--ink);transition:all var(--t-fast);outline:none;box-shadow:inset 0 3px 6px #0000000a}.auth-field input::placeholder{color:#b2bec3}.auth-field input:focus{border-color:var(--sky);box-shadow:inset 0 3px 6px #0000000a,0 0 16px #4facfe33}.btn-auth{background:linear-gradient(135deg,var(--sky),#6ec1fe);color:#fff;font-size:var(--fs-subtitle);padding:var(--sp-md)var(--sp-xl);box-shadow:0 6px 0 var(--sky-dark),var(--shadow-card);margin-top:var(--sp-md);justify-content:center;width:100%}.btn-auth:hover{box-shadow:0 9px 0 var(--sky-dark),var(--shadow-card);transform:translateY(-3px)}.btn-auth:active{box-shadow:0 2px 0 var(--sky-dark);transform:translateY(3px)}.btn-auth:disabled{opacity:.7;cursor:not-allowed;transform:none}.auth-error{border:2px solid var(--candy);border-radius:var(--r-sm);padding:var(--sp-sm)var(--sp-md);font-size:var(--fs-small);color:var(--candy-dark);text-align:left;background:#fff0f0}.auth-switch{margin-top:var(--sp-lg);font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink-light)}.auth-link{color:var(--sky);transition:color var(--t-fast);font-weight:600;text-decoration:none}.auth-link:hover{color:var(--sky-dark);text-decoration:underline}.auth-spinner{animation:1s linear infinite spin-emoji;display:inline-block}@keyframes spin-emoji{to{transform:rotate(360deg)}}.logout-btn{z-index:50;font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-sm)var(--sp-md);border:3px solid var(--cloud);border-radius:var(--r-pill);background:var(--white);color:var(--ink-light);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);opacity:.7;font-weight:600;position:fixed;top:16px;right:16px}.logout-btn:hover{opacity:1;border-color:var(--candy);color:var(--candy-dark);transform:scale(1.05)}.settings-btn{z-index:50;font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-sm)var(--sp-md);border:3px solid var(--cloud);border-radius:var(--r-pill);background:var(--white);color:var(--ink-light);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);opacity:.7;font-weight:600;text-decoration:none;position:fixed;top:16px;right:100px}.settings-btn:hover{opacity:1;border-color:var(--sky);color:var(--sky-dark);transform:scale(1.05)}.settings-back-btn{z-index:50;font-family:var(--font-display);font-size:var(--fs-small);padding:var(--sp-sm)var(--sp-md);border:3px solid var(--cloud);border-radius:var(--r-pill);background:var(--white);color:var(--ink-light);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);opacity:.7;font-weight:600;text-decoration:none;position:fixed;top:16px;left:16px}.settings-back-btn:hover{opacity:1;border-color:var(--sky);color:var(--sky-dark);transform:scale(1.05)}.settings-card{max-width:480px}.settings-section{margin-top:var(--sp-lg);text-align:left}.settings-section-title{font-family:var(--font-display);font-size:var(--fs-subtitle);color:var(--ink);margin-bottom:var(--sp-md);text-align:center;font-weight:700}.auth-forgot{text-align:right;margin-top:calc(-1*var(--sp-sm))}.auth-success{border:2px solid var(--leaf);border-radius:var(--r-sm);padding:var(--sp-sm)var(--sp-md);font-size:var(--fs-small);color:var(--leaf-dark);text-align:left;background:#f0fff4}.tools-hint{font-size:var(--fs-small);color:var(--ink-light);margin-bottom:var(--sp-md)}.tools-grid{gap:var(--sp-md);grid-template-columns:repeat(2,1fr);display:grid}.tool-btn{background:var(--white);border:4px solid var(--cloud);border-radius:var(--r-md);padding:var(--sp-md);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);align-items:center;gap:var(--sp-xs);text-align:center;box-shadow:var(--shadow-toy);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:relative}.tool-btn:hover{border-color:var(--leaf);transform:translateY(-4px)scale(1.03)}.tool-btn:active{box-shadow:var(--shadow-toy-hover);transform:translateY(2px)scale(.97)}.tool-btn.selected{border-color:var(--leaf);box-shadow:var(--shadow-toy),0 0 16px #44d7b633;background:linear-gradient(135deg,#e8fff5,#f0fff9)}.tool-check{font-size:18px;line-height:1}.tool-emoji{font-size:32px;line-height:1}.tool-label{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink);font-weight:600}.tool-desc{color:var(--ink-light);font-size:12px;line-height:1.3}.create-status{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-md)var(--sp-xl);border-radius:var(--r-md);animation:fade-up .4s var(--ease-bounce);font-weight:600}.create-success{color:var(--leaf-dark);border:3px solid var(--leaf);background:linear-gradient(135deg,#e8fff5,#f0fff9)}.create-error{color:var(--candy-dark);border:3px solid var(--candy);background:#fff0f0}.btn-launch.creating{background:linear-gradient(135deg,var(--ink-light),#888);cursor:wait;animation:none}.creating-text{align-items:center;gap:var(--sp-sm);display:flex}.creating-spinner{animation:1s linear infinite spin-emoji;display:inline-block}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hidden{display:none!important}.home-container{justify-content:center;align-items:center;gap:var(--sp-2xl);min-height:100vh;padding:var(--sp-xl)var(--sp-lg);text-align:center;flex-direction:column;display:flex}.home-hero{align-items:center;gap:var(--sp-lg);animation:fade-up .8s var(--ease-bounce);flex-direction:column;display:flex}.home-mascot-group{width:140px;height:140px;margin-bottom:var(--sp-md);justify-content:center;align-items:center;display:flex;position:relative}.home-mascot-main{filter:drop-shadow(0 8px 16px #0000001a);font-size:88px;line-height:1;animation:3s ease-in-out infinite gentle-float}.home-logo{filter:drop-shadow(0 8px 16px #00000026);border-radius:20px;animation:3s ease-in-out infinite gentle-float}.home-mascot-orbit{font-size:32px;animation:8s linear infinite orbit-spin;position:absolute}.home-mascot-1{animation-delay:0s}.home-mascot-2{animation-delay:-2.6s}.home-mascot-3{animation-delay:-5.3s}@keyframes orbit-spin{0%{transform:rotate(0)translate(70px)rotate(0)}to{transform:rotate(360deg)translate(70px)rotate(-360deg)}}.home-title{font-family:var(--font-display);color:var(--ink);margin-bottom:var(--sp-xs);background:linear-gradient(135deg,var(--sky),var(--candy),var(--sunset));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:700;line-height:1.2}.home-subtitle{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);max-width:400px;line-height:1.6}.home-user-badge{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm)var(--sp-lg);background:var(--white);border:3px solid var(--cloud);border-radius:var(--r-pill);box-shadow:var(--shadow-toy);font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink-light);font-weight:500;display:inline-flex}.home-user-icon{font-size:18px;line-height:1}.home-user-email{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.home-actions{gap:var(--sp-lg);width:100%;max-width:480px;animation:fade-up .8s var(--ease-bounce).2s both;flex-direction:column;display:flex}.home-btn{align-items:center;gap:var(--sp-lg);padding:var(--sp-lg)var(--sp-xl);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);box-shadow:var(--shadow-card);text-align:left;-webkit-user-select:none;user-select:none;border:4px solid #0000;display:flex;position:relative;overflow:hidden}.home-btn:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff80,#0000);position:absolute;inset:0}.home-btn-primary{background:linear-gradient(135deg,var(--leaf),#2ed8a3);color:#fff}.home-btn-primary:hover{box-shadow:var(--shadow-card),0 0 30px #44d7b666;transform:translateY(-6px)scale(1.02)}.home-btn-primary:active{transform:translateY(-2px)scale(.98)}.home-btn-secondary{background:var(--white);border-color:var(--cloud);color:var(--ink)}.home-btn-secondary:hover{border-color:var(--sky);box-shadow:var(--shadow-card),0 0 24px #4facfe4d;transform:translateY(-6px)scale(1.02)}.home-btn-secondary:active{transform:translateY(-2px)scale(.98)}.home-btn-icon{flex-shrink:0;font-size:48px;line-height:1}.home-btn-text{gap:var(--sp-xs);flex-direction:column;flex:1;display:flex}.home-btn-title{font-family:var(--font-display);font-size:var(--fs-subtitle);font-weight:700;line-height:1.2}.home-btn-desc{font-family:var(--font-display);font-size:var(--fs-small);opacity:.85;font-weight:500;line-height:1.3}.home-features{gap:var(--sp-md);animation:fade-up .8s var(--ease-bounce).4s both;flex-wrap:wrap;justify-content:center;display:flex}.home-feature-card{align-items:center;gap:var(--sp-xs);padding:var(--sp-md)var(--sp-lg);background:var(--white);border:3px solid var(--cloud);border-radius:var(--r-md);box-shadow:var(--shadow-toy);transition:all var(--t-fast)var(--ease-bounce);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.home-feature-card:hover{border-color:var(--grape);transform:translateY(-4px)scale(1.05)}.home-feature-emoji{font-size:28px;line-height:1}.home-feature-text{font-family:var(--font-display);font-size:var(--fs-small);color:var(--ink);white-space:nowrap;font-weight:600}.characters-container{padding:var(--sp-xl)var(--sp-lg);padding-bottom:calc(var(--sp-2xl) + 40px);width:100%;max-width:1100px;margin:0 auto}.characters-header{text-align:center;margin-bottom:var(--sp-2xl);animation:fade-up .6s var(--ease-bounce)}.characters-title-group{align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md);display:inline-flex}.characters-icon{font-size:56px;line-height:1;animation:3s ease-in-out infinite gentle-float}.characters-title{font-family:var(--font-display);font-size:var(--fs-title);color:var(--ink);font-weight:700;line-height:1}.characters-subtitle{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);line-height:1.5}.characters-grid{gap:var(--sp-lg);margin-bottom:var(--sp-2xl);animation:fade-up .6s var(--ease-bounce).2s both;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.character-item{align-items:center;gap:var(--sp-md);padding:var(--sp-xl)var(--sp-lg);background:var(--white);border:4px solid var(--cloud);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t-normal)var(--ease-bounce);box-shadow:var(--shadow-card);text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.character-item:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#fff9,#0000);position:absolute;inset:0}.character-item:hover{border-color:var(--sky);box-shadow:var(--shadow-card),0 0 30px #4facfe59;transform:translateY(-8px)scale(1.04)}.character-item:active{transform:translateY(-2px)scale(.98)}.character-item-emoji{transition:transform var(--t-normal)var(--ease-bounce);font-size:64px;line-height:1}.character-item:hover .character-item-emoji{transform:scale(1.15)rotate(-5deg)}.character-item-name{font-family:var(--font-display);font-size:var(--fs-subtitle);color:var(--ink);font-weight:700;line-height:1.2}.character-item-meta{gap:var(--sp-xs);flex-wrap:wrap;justify-content:center;display:flex}.character-item-badge{font-family:var(--font-display);padding:var(--sp-xs)var(--sp-sm);background:var(--cream);border:2px solid var(--cloud);border-radius:var(--r-pill);color:var(--ink-light);white-space:nowrap;font-size:12px;font-weight:600}.character-item-action{font-family:var(--font-display);font-size:var(--fs-small);color:var(--sky);margin-top:var(--sp-xs);opacity:0;transition:opacity var(--t-fast);font-weight:600}.character-item:hover .character-item-action{opacity:1}.characters-empty{align-items:center;gap:var(--sp-lg);padding:var(--sp-2xl)var(--sp-xl);background:var(--white);border:4px dashed var(--cloud);border-radius:var(--r-xl);text-align:center;margin-bottom:var(--sp-2xl);animation:fade-up .6s var(--ease-bounce).2s both;flex-direction:column;display:flex}.characters-empty-icon{font-size:72px;line-height:1;animation:3s ease-in-out infinite gentle-float}.characters-empty-title{font-family:var(--font-display);font-size:var(--fs-subtitle);color:var(--ink);font-weight:700;line-height:1.3}.characters-empty-desc{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);max-width:400px;line-height:1.6}.btn-create-first{background:linear-gradient(135deg,var(--leaf),#2ed8a3);color:#fff;font-size:var(--fs-body);padding:var(--sp-md)var(--sp-xl);box-shadow:0 6px 0 var(--leaf-dark),var(--shadow-card)}.btn-create-first:hover{box-shadow:0 9px 0 var(--leaf-dark),var(--shadow-card);transform:translateY(-3px)}.btn-create-first:active{box-shadow:0 2px 0 var(--leaf-dark);transform:translateY(3px)}.characters-pending-section{margin-bottom:var(--sp-2xl);animation:fade-up .6s var(--ease-bounce).4s both}.characters-section-title{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-lg);font-weight:600;display:flex}.characters-pending-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.character-pending-item{align-items:center;gap:var(--sp-sm);padding:var(--sp-lg)var(--sp-md);background:var(--white);border:3px solid var(--cloud);border-radius:var(--r-md);opacity:.65;text-align:center;flex-direction:column;display:flex;position:relative;overflow:hidden}.character-pending-item:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#0000,#0000 10px,#00000005 10px 20px);position:absolute;inset:0}.character-pending-emoji{filter:grayscale(.5);font-size:48px;line-height:1}.character-pending-name{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);font-weight:600}.character-pending-status{font-family:var(--font-display);padding:var(--sp-xs)var(--sp-md);background:var(--cream-warm);border:2px solid var(--sunset);border-radius:var(--r-pill);color:var(--sunset-dark);font-size:12px;font-weight:600}.characters-nav{gap:var(--sp-md);animation:fade-up .6s var(--ease-bounce).6s both;flex-wrap:wrap;justify-content:center;display:flex}.characters-nav-btn{font-family:var(--font-display);font-size:var(--fs-body);padding:var(--sp-md)var(--sp-xl);border-radius:var(--r-pill);cursor:pointer;transition:all var(--t-fast)var(--ease-bounce);box-shadow:var(--shadow-toy);align-items:center;gap:var(--sp-sm);-webkit-user-select:none;user-select:none;border:4px solid #0000;font-weight:600;display:inline-flex}.characters-nav-primary{background:var(--sky);border-color:var(--sky-dark);color:#fff}.characters-nav-primary:hover{box-shadow:0 6px 0 var(--sky-dark),var(--shadow-card);transform:translateY(-3px)scale(1.05)}.characters-nav-primary:active{box-shadow:0 2px 0 var(--sky-dark);transform:translateY(2px)scale(.98)}.characters-nav-secondary{background:var(--white);border-color:var(--cloud);color:var(--ink-light)}.characters-nav-secondary:hover{border-color:var(--ink-light);color:var(--ink);transform:translateY(-3px)scale(1.05)}.characters-nav-secondary:active{transform:translateY(2px)scale(.98)}.loading-spinner{align-items:center;gap:var(--sp-md);padding:var(--sp-2xl);flex-direction:column;display:flex}.spinner-icon{font-size:56px;line-height:1;animation:2s linear infinite spin-emoji}.spinner-text{font-family:var(--font-display);font-size:var(--fs-body);color:var(--ink-light);font-weight:600}@media (max-width:768px){.home-mascot-group{width:110px;height:110px}.home-mascot-main{font-size:64px}.home-mascot-orbit{font-size:24px}@keyframes orbit-spin{0%{transform:rotate(0)translate(55px)rotate(0)}to{transform:rotate(360deg)translate(55px)rotate(-360deg)}}.home-actions{max-width:100%}.home-btn{gap:var(--sp-md)}.home-btn-icon{font-size:40px}.characters-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.characters-nav{flex-direction:column;width:100%;max-width:340px;margin:0 auto}.characters-nav-btn{justify-content:center;width:100%}}@media (max-width:480px){.home-btn{padding:var(--sp-lg)var(--sp-lg)}.home-btn-icon{font-size:36px}.home-features{width:100%}.home-feature-card{flex:1;min-width:90px}.characters-grid{grid-template-columns:1fr}.characters-pending-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
.pwa-install-overlay{z-index:9999;pointer-events:none;padding:16px;animation:.5s cubic-bezier(.16,1,.3,1) forwards pwa-slide-up;position:fixed;bottom:0;left:0;right:0}@keyframes pwa-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pwa-install-card{pointer-events:auto;-webkit-backdrop-filter:blur(20px)saturate(180%);background:#141414d9;border:1px solid #7cc83e40;border-radius:20px;align-items:center;gap:16px;max-width:420px;margin:0 auto;padding:20px;display:flex;box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0d,0 -2px 12px #7cc83e26}.pwa-install-icon{object-fit:cover;border-radius:10px;flex-shrink:0;width:40px;height:40px;box-shadow:0 2px 8px #0000004d}.pwa-install-content{flex:1;min-width:0}.pwa-install-title{color:#fff;margin:0 0 4px;font-size:15px;font-weight:700;line-height:1.3}.pwa-install-desc{color:#fff9;margin:0;font-size:12px;line-height:1.4}.pwa-install-actions{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.pwa-install-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:700;transition:all .2s}.pwa-install-btn--primary{color:#fff;background:linear-gradient(135deg,#7cc83e 0%,#5ba828 100%);box-shadow:0 2px 8px #7cc83e66}.pwa-install-btn--primary:hover{transform:scale(1.05);box-shadow:0 4px 16px #7cc83e80}.pwa-install-btn--primary:active{transform:scale(.98)}.pwa-install-btn--dismiss{color:#ffffff80;background:0 0;padding:6px 12px;font-size:12px;font-weight:500}.pwa-install-btn--dismiss:hover{color:#fffc}.pwa-ios-instructions{pointer-events:auto;-webkit-backdrop-filter:blur(20px)saturate(180%);background:#141414eb;border:1px solid #7cc83e40;border-radius:20px;max-width:420px;margin:0 auto;padding:24px;box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0d}.pwa-ios-title{color:#fff;text-align:center;margin:0 0 16px;font-size:16px;font-weight:700}.pwa-ios-steps{flex-direction:column;gap:12px;margin:0 0 16px;padding:0;list-style:none;display:flex}.pwa-ios-step{color:#ffffffd9;align-items:center;gap:12px;font-size:14px;display:flex}.pwa-ios-step-num{color:#fff;background:linear-gradient(135deg,#7cc83e 0%,#5ba828 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.pwa-ios-close{cursor:pointer;color:#ffffffb3;background:#ffffff1a;border:none;border-radius:12px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:all .2s;display:block}.pwa-ios-close:hover{color:#fff;background:#ffffff26}.pwa-android-instructions{pointer-events:auto;-webkit-backdrop-filter:blur(20px)saturate(180%);background:#141414eb;border:1px solid #7cc83e40;border-radius:20px;max-width:420px;margin:0 auto;padding:24px;box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0d}.pwa-android-title{color:#fff;text-align:center;margin:0 0 16px;font-size:16px;font-weight:700}.pwa-android-steps{flex-direction:column;gap:12px;margin:0 0 16px;padding:0;list-style:none;display:flex}.pwa-android-step{color:#ffffffd9;align-items:center;gap:12px;font-size:14px;display:flex}.pwa-android-step-num{color:#fff;background:linear-gradient(135deg,#7cc83e 0%,#5ba828 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.pwa-android-close{cursor:pointer;color:#ffffffb3;background:#ffffff1a;border:none;border-radius:12px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:all .2s;display:block}.pwa-android-close:hover{color:#fff;background:#ffffff26}
