@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#eeeee9;background:#171917;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-width:320px}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid #dfba92;outline-offset:4px}button:active{transform:scale(.975)}.app{min-height:100vh;min-height:100dvh;position:relative;isolation:isolate;overflow:hidden;background:#171917}.ambient{position:absolute;z-index:-1;pointer-events:none;width:min(80vw,860px);height:min(80vw,860px);top:3%;right:-28%;border-radius:50%;background:radial-gradient(circle,#b18c6730,transparent 68%);filter:blur(35px);animation:drift 16s ease-in-out infinite alternate}.topbar{position:absolute;z-index:4;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:calc(20px + env(safe-area-inset-top)) clamp(22px,5vw,72px) 16px}.brand{font:600 16px Manrope,sans-serif;letter-spacing:-.04em}.brand-dot{color:#d5ad88}.music-button{border:1px solid #ffffff2d;border-radius:40px;background:#ffffff0b;color:#ddd;padding:9px 14px;min-height:44px;display:flex;align-items:center;gap:10px}.music-button span{font-size:12px;text-transform:uppercase;letter-spacing:.14em}.progress{position:absolute;z-index:4;top:calc(76px + env(safe-area-inset-top));left:clamp(22px,5vw,72px);right:clamp(22px,5vw,72px);height:1px;background:#ffffff29}.progress>div{height:100%;background:#d7b08d;transition:width .5s cubic-bezier(.22,1,.36,1)}.stage{min-height:100vh;min-height:100dvh}.screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:calc(115px + env(safe-area-inset-top)) clamp(22px,7vw,92px) calc(90px + env(safe-area-inset-bottom))}.screen-inner{width:100%;max-width:980px;margin:auto}.eyebrow,.overline,.hint,.card-number,.note-to,.footer-word{font-size:12px;text-transform:uppercase;letter-spacing:.17em;color:#b9ac9d}.eyebrow{margin:0 0 clamp(38px,9vh,88px);color:#d0ab88}.overline{margin:0 0 14px}.screen h1,.screen h2,.screen h3{font-family:Manrope,system-ui,sans-serif;letter-spacing:-.07em}.screen h1{font-size:clamp(78px,19vw,180px);line-height:.98;font-weight:500;margin:0}.screen h2{font-size:clamp(42px,9vw,88px);line-height:1.09;font-weight:500;max-width:850px;margin:0 0 30px;text-wrap:balance}.screen p{line-height:1.65}.opening .screen-inner{display:flex;flex-direction:column;align-items:flex-start}.opening-copy p{font-size:clamp(21px,5vw,38px);margin:22px 0 54px;letter-spacing:-.04em;color:#c8c5bd}.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}.reveal.shown{opacity:1;transform:none}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-height:58px;min-width:185px;padding:17px 21px;border:1px solid #d6b596;background:#d6b596;border-radius:4px;color:#20201d;font-weight:600;font-size:15px;transition:background .2s,transform .2s}.primary:hover{background:#e5c8ab}.primary span,.text-button span{font-size:20px;font-weight:400;line-height:0}.bottom-bar{position:absolute;z-index:3;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px clamp(22px,5vw,72px) calc(20px + env(safe-area-inset-bottom));font-size:13px;letter-spacing:.1em;color:#d0c5b7}.bottom-bar .muted,.footer-word{color:#807e79}.choices{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px}.choice{min-width:128px;min-height:56px;padding:14px 24px;border:1px solid #746f66;border-radius:4px;background:transparent;color:#f0ede7;font-size:16px;transition:background .2s,border-color .2s,transform .2s}.choice:hover,.choice[aria-pressed=true]{background:#d6b596;color:#171917;border-color:#d6b596}.response{min-height:100px;margin-top:24px}.response p{font-size:clamp(22px,5vw,34px);letter-spacing:-.04em;margin:0 0 20px;color:#d6b596}.text-button{min-height:48px;background:none;color:#eee;border:0;padding:6px 0;font-size:15px;border-bottom:1px solid #d6b596;display:inline-flex;align-items:center;gap:30px}.apology .eyebrow,.things .eyebrow,.apology h2{margin-bottom:36px}.apology-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:32px}.apology-card{padding:25px 24px 28px;background:#ffffff0b;border:1px solid #ffffff1d;border-radius:6px;min-height:240px;box-shadow:0 12px 35px #00000012}.card-number{color:#d6b596}.apology-card h3{font-size:clamp(19px,2vw,25px);letter-spacing:-.05em;font-weight:500;margin:28px 0 12px}.apology-card p{font-size:15px;color:#c6c5be;margin:0}.things h2{max-width:720px}.hint{margin:-10px 0 28px}.accordions{max-width:760px;margin:0 0 32px;border-top:1px solid #ffffff2c}.accordion{border-bottom:1px solid #ffffff2c}.accordion button{width:100%;min-height:70px;background:none;border:0;color:#f0eee8;text-align:left;padding:15px 3px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:clamp(17px,3vw,23px);letter-spacing:-.03em}.plus{font-size:28px;font-weight:300;color:#d6b596;transition:transform .3s}.plus.is-open{transform:rotate(45deg)}.accordion-content{overflow:hidden}.accordion-content p{padding:0 45px 22px 3px;margin:0;color:#c4c1b9;font-size:16px;max-width:620px}.memories p{color:#c6c5be;font-size:18px}.photo-strip{display:flex;gap:14px;overflow-x:auto;max-width:100%;padding:12px 0 24px;scroll-snap-type:x mandatory}.photo-card{margin:0;min-width:min(76vw,320px);scroll-snap-align:start}.photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:5px;display:block}.photo-card figcaption{font-size:12px;letter-spacing:.12em;color:#bbb;margin-top:10px}.small-line{display:block;height:1px;width:52px;background:#d6b596;margin-bottom:30px}.chance h2{max-width:750px}.ending .screen-inner{max-width:760px}.ending h2{margin-bottom:32px}.ending-lines{margin-bottom:38px}.ending-lines p{font-size:clamp(18px,3.4vw,25px);line-height:1.5;letter-spacing:-.035em;color:#d5d2ca;margin:0 0 16px}.ending-lines p:nth-child(2),.ending-lines p:nth-child(4){color:#eee}.ending-lines p:nth-child(3){margin-top:35px}.final-note{background:#e5dccb;color:#292823;max-width:650px;padding:clamp(26px,6vw,48px);border-radius:3px;box-shadow:0 25px 65px #0007}.final-note .note-to{color:#816f5a}.final-note p{font:clamp(19px,3.6vw,27px)/1.55 Georgia,serif;margin:28px 0 38px;letter-spacing:-.02em}.signature{font:italic 28px Brush Script MT,Segoe Script,cursive;color:#4d463f;display:block;text-align:right}@keyframes drift{to{transform:translate(-10%,15%)}}@media(max-width:700px){.screen{align-items:flex-start}.screen-inner{margin:auto 0}.apology-cards{grid-template-columns:1fr;gap:9px}.apology-card{min-height:auto;padding:18px 20px}.apology-card h3{margin:8px 0 5px;font-size:19px}.apology-card p{font-size:15px;line-height:1.5}.apology .screen-inner{margin:0}.apology .eyebrow{margin-bottom:18px}.apology h2{margin-bottom:24px}.apology .primary{margin-top:4px}.ending .screen-inner{margin:0}.ending h2{margin-bottom:22px}}@media(max-width:390px){.screen{padding-top:calc(105px + env(safe-area-inset-top));padding-bottom:calc(72px + env(safe-area-inset-bottom))}.screen h2{font-size:clamp(38px,10.5vw,46px)}.apology-card p{font-size:14px}.apology-card{padding:13px 17px}.apology-card h3{margin:4px 0}.apology-cards{margin-bottom:18px}.apology .eyebrow{margin-bottom:12px}.ending-lines p{font-size:18px;margin-bottom:11px}.ending-lines p:nth-child(3){margin-top:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
