:root{--pink-50: #fff6fb;--pink-100: #ffe6f2;--pink-200: #ffc7df;--pink-400: #ff73ad;--pink-600: #e5387d;--berry: #8f1d52;--cream: #fffafc;--mint: #bfeeda;--lemon: #ffe89c;--ink: #42152d;--shadow: 0 20px 60px rgba(143, 29, 82, .18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;color:var(--ink);font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at 14% 18%,rgba(255,232,156,.55),transparent 24rem),radial-gradient(circle at 82% 8%,rgba(191,238,218,.65),transparent 20rem),linear-gradient(135deg,#fff8fc,#ffe6f2 48%,#ffd3e7);overflow-x:hidden}button,input{font:inherit}button{border:0;cursor:pointer}.sparkles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,115,173,.58) 0 2px,transparent 3px),radial-gradient(circle,rgba(255,232,156,.8) 0 2px,transparent 3px),radial-gradient(circle,rgba(143,29,82,.22) 0 1px,transparent 2px);background-position:5% 16%,78% 28%,42% 72%;background-size:140px 140px,190px 190px,110px 110px;opacity:.6}.app{position:relative;min-height:100vh}.screen{display:none;min-height:100vh;padding:32px 18px}.screen--active{display:grid;place-items:center}.gate-screen{background:#030303}.gate-screen.screen--active~.screen,.gate-screen.screen--active~.memories-screen{background:transparent}.gate-panel{width:min(90vw,430px);text-align:center}.gate-panel h1{color:#fff;font-family:Poppins,system-ui,sans-serif;font-size:clamp(2.7rem,12vw,4.7rem);font-weight:800}.gate-form{display:grid;gap:12px;margin-top:28px}.gate-input{width:100%;min-height:58px;border:1px solid rgba(255,255,255,.28);border-radius:8px;color:#fff;font-size:1.2rem;font-weight:700;text-align:center;background:#ffffff14;outline:none}.gate-input:focus{border-color:#fff}.gate-button{min-height:56px;border-radius:8px;color:#000;font-weight:800;background:#fff}.gate-error{min-height:1.5rem;margin:16px 0 0;color:#fff;font-weight:700}.panel{width:min(92vw,520px);border:2px solid rgba(255,255,255,.8);border-radius:28px;padding:clamp(28px,6vw,48px);text-align:center;background:#fffafcdb;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-panel:before,.question-panel:before{content:"♡";display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border-radius:999px;color:var(--pink-600);font-size:2rem;background:var(--pink-100)}.tiny-label{margin:0 0 10px;color:var(--pink-600);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}h1,h2{margin:0;color:var(--berry);line-height:1.05}h1{font-family:Pacifico,cursive;font-size:clamp(3.1rem,13vw,5rem);font-weight:400}h2{font-size:clamp(2.35rem,8vw,4.35rem);font-weight:800}.soft-copy{max-width:34rem;margin:18px auto 0;color:#42152dbd}.password-form{display:grid;grid-template-columns:minmax(90px,130px) 1fr;gap:12px;margin-top:28px}.day-input{width:100%;min-height:58px;border:2px solid var(--pink-200);border-radius:18px;color:var(--berry);font-size:1.45rem;font-weight:800;text-align:center;background:#fff;outline:none}.day-input:focus{border-color:var(--pink-600);box-shadow:0 0 0 4px #e5387d24}.primary-button,.yes-button{min-height:58px;border-radius:18px;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--pink-600),var(--pink-400));box-shadow:0 12px 28px #e5387d47;transition:transform .16s ease,box-shadow .16s ease}.primary-button:hover,.yes-button:hover{transform:translateY(-2px);box-shadow:0 16px 34px #e5387d57}.error-message,.wrong-answer{min-height:1.5rem;margin:16px 0 0;color:var(--pink-600);font-weight:700}.answer-zone{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:160px;margin-top:32px;padding:20px}.yes-button,.no-button{align-self:center;justify-self:center;width:min(100%,190px)}.no-button{position:absolute;right:20px;bottom:42px;min-height:54px;border-radius:18px;color:var(--berry);font-weight:800;background:var(--lemon);box-shadow:0 12px 24px #8f1d5224;transition:left .17s ease,top .17s ease,right .17s ease,bottom .17s ease,transform .14s ease}.no-button:hover{transform:rotate(-3deg)}.memories-screen.screen--active{display:block}.memories-screen{padding:clamp(28px,5vw,54px) 18px 42px}.memories-header,.love-note{width:min(100%,980px);margin:0 auto;text-align:center}.memories-header h2{margin-bottom:18px}.memories-header p:not(.tiny-label),.love-note p:not(.script-text){max-width:760px;margin:0 auto;color:#42152dc2;font-size:clamp(1rem,2.5vw,1.18rem);line-height:1.7}.photo-carousel{position:relative;width:min(92vw,520px);margin:36px auto;padding:14px;border:2px solid rgba(255,255,255,.78);border-radius:30px;background:#fffafce0;box-shadow:0 18px 46px #8f1d522e}.photo-carousel img{display:block;width:100%;aspect-ratio:4 / 5.2;border-radius:22px;object-fit:cover;background:var(--pink-100);transition:opacity .24s ease,transform .24s ease}.photo-carousel img.is-changing{opacity:0;transform:scale(.985)}.carousel-button{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:46px;height:46px;border-radius:999px;color:var(--berry);font-size:2.3rem;line-height:1;background:#ffffffe6;box-shadow:0 10px 26px #8f1d522e;transform:translateY(-50%)}.carousel-button--prev{left:-18px}.carousel-button--next{right:-18px}.photo-dots{display:flex;justify-content:center;gap:7px;margin-top:14px}.photo-dot{width:7px;height:7px;border-radius:999px;background:#8f1d523d}.photo-dot.is-active{width:22px;background:var(--pink-600)}.love-note{padding:28px 18px 0}.script-text{margin:0 0 10px;color:var(--pink-600);font-family:Pacifico,cursive;font-size:clamp(2.4rem,8vw,4.25rem);line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:560px){.panel{border-radius:24px}.password-form{grid-template-columns:1fr}.answer-zone{min-height:190px;padding:8px}.yes-button{justify-self:start;width:150px}.no-button{width:120px;right:8px}.photo-carousel{width:min(88vw,420px);padding:10px;border-radius:24px}.photo-carousel img{border-radius:18px}.carousel-button{width:40px;height:40px;font-size:2rem}.carousel-button--prev{left:-10px}.carousel-button--next{right:-10px}}
