:root{--bg: #2a2a5c;--bg-light: #35357a;--green: #2d8b4e;--green-dark: #247040;--yellow: #f0c828;--yellow-dark: #d4b020;--white: #ffffff;--white-muted: rgba(255, 255, 255, .7);--red: #e74c3c;--orange: #f39c12;--green-dot: #2ecc71;--border: rgba(255, 255, 255, .15);--font-heading: "Exo 2", sans-serif;--font-body: "Inter", sans-serif;--radius: 12px;--radius-sm: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%}body{min-height:100%;font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--white);background:var(--bg);background:linear-gradient(180deg,var(--bg) 0%,#1e1e4a 100%);-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.header{padding:16px 20px 0;flex-shrink:0}.header__logo{display:flex;align-items:center;gap:12px;margin-bottom:16px}.header__icon{width:40px;height:40px;flex-shrink:0}.header__title{font-family:var(--font-heading);font-weight:800;font-size:20px;color:var(--yellow);line-height:1.2}.header__tagline{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--white-muted);font-weight:500}.progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress__bar{height:100%;background:var(--yellow);border-radius:2px;transition:width .4s ease}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}.indicator-dots{display:flex;justify-content:center;gap:8px;margin-top:24px}.dot{width:10px;height:10px;border-radius:50%}.dot--red{background:var(--red)}.dot--orange{background:var(--orange)}.dot--green{background:var(--green-dot)}.complete-icon{width:80px;height:80px;margin:0 auto 20px}.complete-icon svg{width:100%;height:100%}@media(min-width:481px){.app{padding:0 16px}.header__title{font-size:24px}}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--white)}input[type=text],input[type=email],select{width:100%;height:52px;padding:0 16px;font-family:var(--font-body);font-size:16px;color:var(--white);background:#ffffff14;border:1.5px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}input::placeholder{color:#ffffff59}input:focus,select:focus{border-color:var(--yellow)}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}select option{background:var(--bg);color:var(--white)}.form-error{display:block;font-size:13px;color:var(--red);margin-top:6px;min-height:0}.form-error:empty{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 28px;font-family:var(--font-body);font-size:16px;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,transform .1s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn--primary{background:var(--yellow);color:#1a1a3e}.btn--primary:active{background:var(--yellow-dark)}.btn--secondary{background:#ffffff1a;color:var(--white);border:1.5px solid var(--border)}.btn--secondary:active{background:#ffffff26}.btn--full{width:100%}.btn--text{background:none;border:none;color:var(--yellow);font-size:14px;font-weight:500;cursor:pointer;padding:8px 0;font-family:var(--font-body)}.btn:disabled{opacity:.5;cursor:not-allowed}.card-select{display:flex;flex-direction:column;gap:10px}.card-select__option{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;font-family:var(--font-body);font-size:15px;color:var(--white);text-align:left;background:#ffffff0f;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s,background .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.card-select__option:active{background:#ffffff1a}.card-select__option.selected{border-color:var(--yellow);background:#f0c8281a}.card-select__icon{font-size:20px;flex-shrink:0}.card-select--small .card-select__option{min-height:48px;justify-content:center;text-align:center}.chip-select{display:flex;flex-wrap:wrap;gap:8px}.chip{height:40px;padding:0 16px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--white);background:#ffffff0f;border:1.5px solid var(--border);border-radius:20px;cursor:pointer;transition:border-color .2s,background .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.chip:active{background:#ffffff1a}.chip.selected{border-color:var(--yellow);background:#f0c8281f;color:var(--yellow)}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-option{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 16px;background:#ffffff0f;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s,background .2s;font-size:15px}.radio-option:has(input:checked){border-color:var(--yellow);background:#f0c8281a}.radio-option input[type=radio]{width:20px;height:20px;accent-color:var(--yellow);flex-shrink:0}.upload-area{width:100%;aspect-ratio:1;max-height:320px;border:2px dashed var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.upload-area:active{border-color:var(--yellow)}.upload-area__placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;text-align:center;color:var(--white-muted);font-size:14px}.upload-area__icon{width:48px;height:48px}.upload-area__preview{width:100%;height:100%;object-fit:cover}.cartoon-preview{width:100%;max-width:300px;margin:16px auto;border-radius:var(--radius);overflow:hidden;border:3px solid var(--green)}.cartoon-preview img{width:100%;display:block}.step{display:none;flex-direction:column;flex:1;padding:20px 20px 0;animation:fadeIn .3s ease}.step--active{display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.step__card{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:20px}.step__card--centered{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.step__title{font-family:var(--font-heading);font-weight:800;font-size:22px;color:var(--yellow);margin-bottom:6px}.step__subtitle{font-size:14px;color:var(--white-muted);margin-bottom:24px}.step__nav{position:sticky;bottom:0;padding:16px 0;padding-bottom:max(16px,env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 60%,transparent);flex-shrink:0}.step__nav--split{display:flex;gap:12px}.step__nav--split .btn:first-child{flex:0 0 auto;min-width:80px}.step__nav--split .btn:last-child{flex:1}.step__nav--stacked{display:flex;flex-direction:column;gap:10px}.loader{margin:0 auto 24px;width:80px;height:100px;position:relative}.loader__beaker{width:60px;height:80px;margin:0 auto;border:3px solid var(--white-muted);border-top:none;border-radius:0 0 12px 12px;position:relative;overflow:hidden}.loader__beaker:before{content:"";position:absolute;top:-8px;left:-8px;right:-8px;height:3px;background:var(--white-muted);border-radius:2px}.loader__liquid{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,var(--green),var(--green-dot));animation:fillUp 2s ease-in-out infinite alternate}@keyframes fillUp{0%{height:30%}to{height:65%}}.loader__bubbles{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:8px}.loader__bubbles span{width:8px;height:8px;border-radius:50%;background:#ffffff80;animation:bubble 1.2s ease-in-out infinite}.loader__bubbles span:nth-child(2){animation-delay:.3s;width:6px;height:6px}.loader__bubbles span:nth-child(3){animation-delay:.6s;width:5px;height:5px}@keyframes bubble{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-20px);opacity:1}}@media(min-width:481px){.step{padding:24px 24px 0}.step__title{font-size:26px}}
