:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg: linear-gradient(135deg, #ff9a9e, #fad0c4);--card-bg: #ffffff;--text: #222222;--accent: #ff4d6d;--shadow: rgba(0,0,0,.2)}@media(prefers-color-scheme:dark){:root{--bg: linear-gradient(135deg, #1a1a1a, #2b2b2b);--card-bg: #2c2c2c;--text: #f1f1f1;--accent: #ff7a95;--shadow: rgba(0,0,0,.6)}}*{margin:0;padding:0;font-family:Comic Sans MS,cursive;box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;overflow-y:auto}.container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:40px 15px}.card{text-align:center;background:var(--card-bg);color:var(--text);padding:50px;border-radius:20px;box-shadow:0 10px 30px var(--shadow);min-width:300px;max-width:95vw;position:relative;animation:fadeIn .6s ease}h1{margin-bottom:20px;color:var(--accent)}h2{color:var(--text)}button{padding:12px 24px;border:none;border-radius:12px;font-size:18px;cursor:pointer;margin:10px;transition:.2s}button:hover{transform:scale(1.1)}.yes{background:var(--accent);color:#fff}.no{background:#444;color:#fff}.buttons{position:relative;width:100%;height:240px;display:flex;justify-content:center;align-items:center;gap:20px;overflow:hidden}.letter{max-width:700px;width:100%;background:var(--card-bg);color:var(--text);padding:40px;border-radius:20px;box-shadow:0 10px 40px var(--shadow);line-height:1.8;font-size:18px;animation:fadeIn 1s ease;margin:auto;max-height:80vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.letter h1{text-align:center;margin-bottom:20px;color:var(--accent)}.letter h2{margin-top:25px;text-align:right;color:var(--accent)}.typed{margin-top:20px;font-size:26px;color:var(--accent);min-height:40px}.letter p:after{content:"|";margin-left:5px;animation:blink 1s infinite;color:var(--accent)}.revealBtn,.journeyBtn{font-size:20px;padding:14px 24px;border-radius:14px;background:var(--accent);color:#fff}@keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.card{padding:30px 20px}.letter{padding:25px 20px;font-size:16px}button{font-size:16px}}.hearts-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:999}.heart{position:absolute;top:-40px;will-change:transform,top,opacity;animation-name:fall;animation-timing-function:linear;animation-iteration-count:1}@keyframes fall{0%{top:-40px;filter:drop-shadow(0 6px 6px rgba(0,0,0,.12))}to{top:110vh;filter:drop-shadow(0 6px 6px rgba(0,0,0,.06))}}.journeyContainer{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:40px;gap:18px;text-align:center}.journeyContainer h1{color:#ff4d6d}.cardWrapper{perspective:1200px;width:min(92vw,420px);aspect-ratio:3 / 4}.memoryCard{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .7s ease;cursor:pointer}.memoryCard.flipped{transform:rotateY(180deg)}.front,.back{position:absolute;inset:0;border-radius:22px;overflow:hidden;backface-visibility:hidden;box-shadow:0 15px 45px #00000040}.front{background:#000}.bg{position:absolute;inset:-20%;background-size:cover;background-position:center;filter:blur(40px) brightness(.55)}.mainPhoto{position:absolute;top:50%;left:50%;max-width:100%;max-height:100%;transform:translate(-50%,-50%);object-fit:contain}.back{transform:rotateY(180deg);background:#fff;color:#ff4d6d;display:flex;justify-content:center;align-items:center;padding:22px;font-size:clamp(16px,2.2vw,22px);line-height:1.6}.nav{display:flex;align-items:center;gap:12px}.nav button{font-size:20px;padding:8px 14px;border-radius:10px}.counter{font-weight:700}.finishBtn{margin-top:10px;font-size:18px;padding:12px 22px;border-radius:14px;background:#ff4d6d;color:#fff}.celebration{position:fixed;inset:0;background:radial-gradient(circle,rgba(255,105,180,.45),transparent 70%);animation:glow 2.2s ease forwards;pointer-events:none;z-index:2000}.burst:before{content:"💖 💕 💘 ❤️ 💞 💓 💗";position:absolute;width:100%;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);font-size:40px;letter-spacing:25px;animation:explode 1.8s ease-out forwards}@keyframes explode{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}40%{opacity:1}to{opacity:0;transform:translate(-50%,-220%) scale(1.8)}}@keyframes glow{0%{opacity:0}20%{opacity:1}to{opacity:0}}
