*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:gold;--color-primary-dark:#e6c200;--color-primary-light:#fff3b0;--color-accent:#ff8c00;--color-accent-warm:#ff6b35;--color-bg:#fffdf7;--color-bg-warm:#fff8e7;--color-surface:#fff;--color-text:#2d2a26;--color-text-secondary:#6b6560;--color-text-muted:#9e9890;--color-border:#e8e0d4;--color-success:#4caf50;--color-error:#e53935;--color-warning:#ff9800;--font-display:"Outfit", sans-serif;--font-body:"Outfit", sans-serif;--font-romantic:"Playfair Display", Georgia, serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:50%;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 8px 24px #00000014;--shadow-lg:0 16px 40px #0000001f;--shadow-glow:0 0 20px #ffd70066;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2}.container{width:100%;max-width:480px;padding:0 var(--space-lg);margin:0 auto}.container--wide{max-width:720px}.text-center{text-align:center}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:14px var(--space-xl);transition:all var(--transition-base);text-align:center;letter-spacing:.5px;border-radius:100px;font-size:1rem;font-weight:700;line-height:1.4;display:inline-flex}.btn--primary{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#1a1a1a;border:none;box-shadow:0 4px 15px #ff8c004d,inset 0 -2px #0000001a}.btn--primary:hover{transform:translateY(-3px);box-shadow:0 8px 25px #ff8c0066,inset 0 -2px #0000001a}.btn--primary:active{transform:translateY(1px);box-shadow:0 2px 10px #ff8c004d}.btn--secondary{color:var(--color-text);background:#ffffffe6;border:2px solid #0000;box-shadow:0 4px 15px #0000000d}.btn--secondary:hover{background:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.btn--small{padding:var(--space-sm) var(--space-md);font-size:.875rem}.btn--full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{gap:var(--space-xs);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.form-label{color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.form-input,.form-textarea{padding:14px var(--space-md);transition:all var(--transition-base);width:100%;color:var(--color-text);background:#fffc;border:2px solid #ffd7004d;border-radius:16px;font-size:1rem;box-shadow:inset 0 2px 5px #00000005}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary);background:#fff;outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #ffd70033,inset 0 2px 5px #00000003}.form-input.error,.form-textarea.error{border-color:var(--color-error)}.form-error{color:var(--color-error);margin-top:var(--space-xs);font-size:.8rem}.form-textarea{resize:vertical;min-height:120px}.char-counter{color:var(--color-text-muted);text-align:right;font-size:.75rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md)}.stepper{justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl);display:flex}.stepper__dot{border-radius:var(--radius-full);background:var(--color-border);width:10px;height:10px;transition:all var(--transition-base)}.stepper__dot--active{background:var(--color-primary);box-shadow:var(--shadow-glow);transform:scale(1.3)}.stepper__dot--done{background:var(--color-primary-dark)}.stepper__line{background:var(--color-border);width:40px;height:2px;transition:background var(--transition-base)}.stepper__line--done{background:var(--color-primary)}.theme-grid{gap:var(--space-md);padding-bottom:var(--space-sm);padding-right:var(--space-xl);scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;display:flex;overflow-x:auto}.theme-grid::-webkit-scrollbar{display:none}.theme-card{scroll-snap-align:start;min-width:140px;padding:var(--space-md);cursor:pointer;text-align:center;-webkit-backdrop-filter:blur(8px);background:#fff9;border:2px solid #fffc;border-radius:20px;flex:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275);position:relative;box-shadow:0 4px 15px #0000000d}.theme-card:hover{border-color:var(--color-primary);background:#ffffffe6;transform:translateY(-6px);box-shadow:0 10px 25px #0000001a}.theme-card--selected{border-color:var(--color-primary);background:#ffd70026;border-width:3px;transform:translateY(-4px)scale(1.02);box-shadow:0 8px 25px #ffd70059}.theme-card--selected:after{content:"✓";color:var(--color-primary-dark);background:#ffd7004d;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;font-weight:800;line-height:1;display:flex;position:absolute;bottom:8px;right:10px}.theme-card__emoji{margin-bottom:var(--space-xs);font-size:2.5rem;transition:transform .3s}.theme-card:hover .theme-card__emoji{transform:scale(1.1)rotate(5deg)}.theme-card__name{color:var(--color-text);font-size:1rem;font-weight:700}.theme-card__desc{color:var(--color-text-secondary);margin-top:var(--space-xs);font-size:.8rem;line-height:1.3}.watermark{bottom:var(--space-md);right:var(--space-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);opacity:.6;z-index:1000;background:#00000080;font-size:.7rem;font-weight:500;text-decoration:none;transition:opacity .2s;position:fixed}.watermark:hover{opacity:1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-fade-in-up{animation:.6s forwards fadeInUp}.animate-fade-in{animation:.4s forwards fadeIn}.stagger>*{opacity:0;animation:.5s forwards fadeInUp}.stagger>:first-child{animation-delay:.1s}.stagger>:nth-child(2){animation-delay:.2s}.stagger>:nth-child(3){animation-delay:.3s}.stagger>:nth-child(4){animation-delay:.4s}.stagger>:nth-child(5){animation-delay:.5s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (min-width:768px){.container{max-width:540px}.container--wide{max-width:800px}}
