@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=Karla:wght@400;500;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&display=swap";*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100%}#root{width:100%}:root{--bg-base:#fff6f0;--bg-surface:#ffe1e8;--text-primary:#2b2024;--text-muted:#8a7377;--accent-rose:#c4425c;--accent-rose-deep:#a32f48;--accent-gold:#e8a33d;--white:#fff;--space-xs:8px;--space-sm:12px;--space-md:20px;--space-lg:32px;--space-xl:48px;--ease-smooth:cubic-bezier(.22, 1, .36, 1);--shadow-soft:0 4px 16px #c4425c1f;--shadow-lifted:0 14px 36px #c4425c2e}*{box-sizing:border-box}body{color:var(--text-primary);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 50% -10%,#fffcf9 0%,#fff6f0 55%,#ffeee6 100%);min-height:100vh;margin:0;font-family:Karla,sans-serif}body:before{content:"";pointer-events:none;z-index:1;opacity:.3;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px;width:100%;height:100%;position:fixed;top:0;left:0}.app-shell{z-index:2;position:relative}h1,h2{margin:0;font-family:Fraunces,serif;font-weight:700;line-height:1.15}.app-shell{max-width:480px;min-height:100vh;padding:var(--space-lg) var(--space-md) var(--space-xl);flex-direction:column;margin:0 auto;display:flex;position:relative}.landing-continue-button,.cake-continue-button,.intro-start-button,.continue-button,.secret-code-submit{color:var(--white);background:linear-gradient(135deg, var(--accent-rose), var(--accent-rose-deep));cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .2s var(--ease-smooth), box-shadow .2s var(--ease-smooth);border:none;border-radius:999px;padding:15px 38px;font-family:Karla,sans-serif;font-size:16px;font-weight:700}.landing-continue-button:active,.cake-continue-button:active,.intro-start-button:active,.continue-button:active,.secret-code-submit:active{box-shadow:var(--shadow-soft);transform:scale(.96)}@media (hover:hover){.landing-continue-button:hover,.cake-continue-button:hover,.intro-start-button:hover,.continue-button:hover,.secret-code-submit:hover{box-shadow:var(--shadow-lifted);transform:translateY(-2px)}}.cake-continue-button{background:linear-gradient(135deg, var(--accent-gold), #d68f2a)}.progress-bar-wrapper{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.progress-bar-track{background:#c4425c1f;border-radius:999px;flex:1;height:7px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-rose), var(--accent-gold));border-radius:999px;height:100%}.progress-bar-label{color:var(--text-muted);text-align:right;min-width:34px;font-size:13px;font-weight:600}.landing-screen{justify-content:center;align-items:center;gap:var(--space-sm);text-align:center;flex-direction:column;flex:1;display:flex}.landing-emoji{filter:drop-shadow(0 6px 14px #c4425c33);font-size:60px}.landing-eyebrow{color:var(--accent-rose);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:14px;font-weight:700}.landing-heading{color:var(--accent-rose-deep);letter-spacing:-.5px;margin:2px 0 0;font-size:40px}.landing-subtext{color:var(--text-muted);max-width:280px;margin:6px 0 0;font-size:16px;line-height:1.5}.landing-continue-button{margin-top:var(--space-sm)}.cake-screen{justify-content:center;align-items:center;gap:var(--space-sm);text-align:center;flex-direction:column;flex:1;display:flex;position:relative}.cake-eyebrow{color:var(--text-muted);min-height:20px;margin:0;font-size:15px;font-weight:600}.cake-tap-zone{justify-content:center;align-items:center;width:100%;height:260px;display:flex;position:relative}.cake-illustration-wrapper{filter:drop-shadow(0 10px 18px #c4425c2e);cursor:default;width:220px;height:240px}.cake-illustration-wrapper[role=button]{cursor:pointer}.cake-skip-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:4px;font-size:13px;text-decoration:underline}.celebration-shower{pointer-events:none;z-index:40;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden;transform:none}.celebration-shape{position:absolute;top:0;left:50%}.cake-toast-wrapper{z-index:60;width:max-content;max-width:88vw;position:fixed;bottom:64px;left:50%;transform:translate(-50%)}.cake-toast{color:var(--white);background:linear-gradient(135deg, var(--accent-rose), var(--accent-rose-deep));box-shadow:var(--shadow-lifted);text-align:center;white-space:normal;border-radius:999px;padding:12px 22px;font-size:15px;font-weight:700;line-height:1.3}.intro-screen{text-align:center;justify-content:center;gap:var(--space-sm);flex-direction:column;flex:1;display:flex}.intro-eyebrow{color:var(--accent-rose);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:14px;font-weight:700}.intro-heading{letter-spacing:-.3px;margin:0;font-size:30px}.intro-subtext{color:var(--text-muted);margin:4px 0 0;font-size:15px;line-height:1.6}.intro-start-button{margin:var(--space-sm) auto 0}.level-screen{gap:var(--space-md);flex-direction:column;flex:1;display:flex}.level-tag{color:var(--accent-rose);letter-spacing:.03em;text-transform:uppercase;font-size:13px;font-weight:700}.level-question{letter-spacing:-.2px;margin:0;font-size:24px}.options-list{gap:var(--space-sm);margin-top:var(--space-xs);flex-direction:column;display:flex}.option-button{text-align:left;color:var(--text-primary);background:var(--white);cursor:pointer;transition:border-color .2s var(--ease-smooth), background .2s var(--ease-smooth), transform .15s var(--ease-smooth), box-shadow .2s var(--ease-smooth);border:1.5px solid #c4425c24;border-radius:14px;padding:17px 20px;font-family:Karla,sans-serif;font-size:15px;font-weight:500;box-shadow:0 2px 8px #c4425c0f}.option-button:active{border-color:var(--accent-gold);background:#e8a33d0f;transform:scale(.98)}@media (hover:hover){.option-button:hover{border-color:var(--accent-rose);box-shadow:0 4px 14px #c4425c1f}}.level-cleared{align-items:center;gap:var(--space-sm);text-align:center;margin-top:var(--space-xs);flex-direction:column;display:flex}.cleared-tag{color:var(--accent-gold);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px;font-weight:700}.level-photo{border:7px solid var(--white);width:100%;max-width:320px;box-shadow:var(--shadow-lifted);border-radius:8px;transform:rotate(-1.2deg)}.level-caption{color:var(--text-muted);max-width:280px;margin:0;font-family:Fraunces,serif;font-size:16px;font-style:italic;line-height:1.5}.continue-button{margin-top:var(--space-xs);padding:13px 34px}.wrong-popup-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:var(--space-md);z-index:50;background:#2b202480;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.wrong-popup-card{background:var(--white);align-items:center;gap:var(--space-sm);text-align:center;border-radius:20px;flex-direction:column;max-width:300px;padding:30px 26px;display:flex;box-shadow:0 20px 50px #2b202440}.puke-gif{object-fit:contain;width:120px;height:120px}.wrong-caption{color:var(--text-primary);margin:0;font-size:15px;font-weight:600;line-height:1.4}.wrong-dismiss-button{color:var(--accent-rose);cursor:pointer;transition:background .2s var(--ease-smooth);background:#c4425c0f;border:1.5px solid #c4425c4d;border-radius:999px;padding:10px 24px;font-size:14px;font-weight:700}.wrong-dismiss-button:active{background:#c4425c24}.ending-screen{gap:var(--space-lg);flex-direction:column;flex:1;display:flex}.ending-heading{text-align:center;color:var(--accent-rose-deep);letter-spacing:-.3px;font-size:27px}.wishes-section{gap:var(--space-sm);flex-direction:column;display:flex}.wishes-intro{color:var(--accent-rose);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px;font-weight:700}.wishes-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.wishes-list li{background:var(--white);border-left:3px solid var(--accent-gold);border-radius:10px;padding:14px 18px;font-family:Fraunces,serif;font-size:17px;line-height:1.4;box-shadow:0 3px 10px #c4425c14}.closing-message-section{background:linear-gradient(160deg, var(--bg-surface), #fff0f4);box-shadow:var(--shadow-soft);border-radius:18px;padding:26px 22px}.closing-message{white-space:pre-line;color:var(--text-primary);margin:0;font-family:Fraunces,serif;font-size:16px;font-style:italic;line-height:1.65}.secret-code-form{gap:var(--space-sm);flex-direction:column;display:flex}.secret-code-label{color:var(--text-muted);font-size:14px;line-height:1.4}.secret-code-input{background:var(--white);color:var(--text-primary);transition:border-color .2s var(--ease-smooth);border:1.5px solid #c4425c33;border-radius:12px;padding:15px 16px;font-size:15px}.secret-code-input:focus{border-color:var(--accent-gold);outline:none;box-shadow:0 0 0 3px #e8a33d26}.secret-code-confirmation{text-align:center;color:var(--accent-rose-deep);font-family:Fraunces,serif;font-size:18px;font-style:italic}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width>=600px){.landing-heading{font-size:46px}.intro-heading{font-size:36px}.level-question{font-size:28px}.cake-illustration-wrapper{width:260px;height:280px}}.wishes-scroll-page{background:linear-gradient(#f5e6c8 0%,#eddbb4 50%,#f5e6c8 100%);flex-direction:column;align-items:center;gap:140px;width:100%;min-height:100vh;padding:80px 24px 100px;display:flex}.wishes-scroll-intro{text-align:center;margin-bottom:20px}.wishes-scroll-eyebrow{color:var(--accent-rose-deep);text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px;font-family:Karla,sans-serif;font-size:13px;font-weight:700}.wishes-scroll-heading{color:#6b4a2e;margin:0 0 10px;font-family:Cormorant Garamond,serif;font-size:42px;font-style:italic;font-weight:600}.wishes-scroll-subtext{color:#8a6d4c;margin:0;font-family:Cormorant Garamond,serif;font-size:16px;font-style:italic}.wish-scroll-item{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:340px;display:flex;position:relative}.wish-scroll-ornament{color:var(--accent-gold);font-size:20px}.wish-scroll-text{color:#4a3320;margin:0;font-family:Cormorant Garamond,serif;font-size:28px;font-style:italic;font-weight:600;line-height:1.4}.wish-scroll-roman{letter-spacing:.15em;color:#a8875f;font-family:Cormorant Garamond,serif;font-size:13px}.wishes-scroll-outro{margin-top:20px}.all-cleared-screen{text-align:center;justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;flex:1;display:flex}.all-cleared-eyebrow{color:var(--accent-rose);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:14px;font-weight:700}.all-cleared-heading{margin:0;font-size:28px}.all-cleared-discovery{cursor:pointer;margin-top:var(--space-md);padding:var(--space-sm);background:0 0;border:none;flex-direction:column;align-items:center;gap:10px;display:flex}.all-cleared-discovery-text{color:var(--text-muted);font-family:Fraunces,serif;font-size:16px;font-style:italic}.envelope-screen{justify-content:center;align-items:center;gap:var(--space-lg);text-align:center;width:100%;padding:var(--space-md);flex-direction:column;flex:1;display:flex}.envelope-hint{color:var(--text-muted);margin:0;font-family:Fraunces,serif;font-size:16px;font-style:italic}.envelope-wrapper{aspect-ratio:3/2;width:100%;max-width:300px;margin:0 auto;position:relative}.envelope-body{box-shadow:var(--shadow-lifted);background:#f0dfb8;border-radius:10px;position:absolute;inset:0}.envelope-flap{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#eddbb4;border-radius:10px 10px 0 0;justify-content:center;align-items:flex-start;width:100%;height:100%;padding-top:14px;display:flex;position:absolute;top:0;left:0}.envelope-flap:active{cursor:grabbing}.envelope-flap-grip{background:var(--accent-rose);width:44px;height:6px;box-shadow:var(--shadow-soft);border-radius:999px}.letter-card{background:var(--white);width:100%;max-width:380px;max-height:82vh;box-shadow:var(--shadow-lifted);-webkit-overflow-scrolling:touch;border-radius:16px;padding:28px 22px;overflow-y:auto}.letter-text{color:var(--text-primary);white-space:pre-line;margin:0;font-family:Fraunces,serif;font-size:17px;font-style:italic;line-height:1.7}.letter-continue{margin-top:var(--space-md)}.closing-screen{text-align:center;justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-lg);flex-direction:column;flex:1;display:flex}.closing-line{color:var(--text-primary);max-width:280px;margin:0;font-family:Fraunces,serif;font-size:22px;font-style:italic;line-height:1.5}.closing-signature{flex-direction:column;gap:4px;display:flex}.closing-signoff{color:var(--text-muted);font-family:Fraunces,serif;font-size:15px;font-style:italic}.closing-name{color:var(--accent-rose-deep);letter-spacing:.02em;font-family:Fraunces,serif;font-size:24px;font-weight:700}.orbit-screen{text-align:center;justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-lg);flex-direction:column;flex:1;display:flex}.orbit-visual{filter:drop-shadow(0 8px 20px #e8a33d40)}.orbit-number{color:var(--accent-rose-deep);margin:0;font-family:Fraunces,serif;font-size:64px;font-weight:700;line-height:1}.orbit-message{color:var(--text-primary);max-width:280px;margin:0;font-family:Fraunces,serif;font-size:17px;font-style:italic;line-height:1.6}
