@font-face{font-family:Vazirmatn;src:url('assets/vazirmatn.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;--bg:#100c1a;--text:#f4eaf2;--muted:#b8a5bd;--rose:#eeabc9}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Vazirmatn,Tahoma,sans-serif;line-height:1.9;min-height:100vh;min-height:100svh;overflow-x:hidden;background-image:radial-gradient(ellipse at 50% 30%,#48253a55,transparent 53%),radial-gradient(ellipse at 90% 85%,#39234555,transparent 45%)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #ffd2e3;outline-offset:6px}button:disabled{cursor:default}.experience{max-width:1120px;margin:auto;padding:0 38px;min-height:100svh;display:flex;flex-direction:column}.masthead{display:flex;align-items:center;gap:12px;padding:27px 0;border-bottom:1px solid #ffffff0c;font-size:12px;color:var(--muted)}.small-heart{font-size:23px;color:var(--rose)}.edition{margin-right:auto;font:10px/1.5 Georgia,serif;letter-spacing:3px;color:#be91b0}.stage{display:grid;flex:1;align-items:center;min-height:680px;padding:35px 0 45px}.opening{text-align:center;animation:enter 1s ease both}.heart-scene{position:relative;width:290px;height:250px;margin:0 auto 21px;display:grid;place-items:center}.heart{width:146px;filter:drop-shadow(0 0 26px #e779ab55);animation:heartbeat 3.8s ease-in-out infinite;z-index:1}.orbit{position:absolute;width:220px;height:220px;border:1px solid #d69ac91a;border-radius:50%;transform:rotate(-25deg) scaleY(.82)}.orbit-two{width:270px;height:270px;transform:rotate(25deg) scaleY(.78);border-color:#d69ac90c}.heart-scene:before{content:'';position:absolute;inset:30px;border-radius:50%;background:radial-gradient(#f491c32a,transparent 65%);filter:blur(18px)}.heart-caption{position:absolute;bottom:0;font-size:10px;letter-spacing:.4px;color:#ab8ea7}.eyebrow{font-size:12px;color:var(--rose);margin:10px 0 15px}h1{font-size:clamp(29px,4vw,43px);font-weight:400;line-height:1.65;margin:0 0 30px;letter-spacing:-1px}.primary{padding:15px 25px;min-height:58px;min-width:240px;border:1px solid #ffd1e533;color:#2a1526;border-radius:14px;background:linear-gradient(115deg,#f6b8d1,#d9a5d8);box-shadow:0 8px 45px #dd80b522;transition:transform .25s,box-shadow .25s;display:inline-flex;align-items:center;justify-content:center;gap:23px;font-size:15px}.primary:hover{transform:translateY(-3px);box-shadow:0 12px 45px #dd80b53a}.primary:active{transform:scale(.97)}.hint{font-size:11px;color:var(--muted);margin:18px 0 0}.opening.leaving{animation:leave .55s ease both}.opening.leaving .heart{animation:heart-open .55s ease both}.message-screen{width:min(100%,730px);margin:auto;animation:enter .8s ease both}.message-screen[hidden]{display:none}.letter-header{display:flex;align-items:center;gap:15px;margin-bottom:18px}.letter-header .eyebrow{margin:0;outline:none}.letter-heart{font-size:34px;color:var(--rose)}.letter-number{margin-right:auto;color:#9a7b97;font:11px Georgia,serif;letter-spacing:2px}.letter{position:relative;padding:40px 45px 32px;border:1px solid #d9a3cc22;border-radius:22px;background:linear-gradient(135deg,#ffffff04,#cd87b603);box-shadow:0 24px 90px #0000001a}.quote-mark{position:absolute;left:24px;top:12px;font:95px Georgia,serif;color:#db95c121;line-height:1}.message{position:relative;font-size:clamp(20px,2.6vw,28px);line-height:2.15;margin:0;color:#f0e2ee;text-align:right;min-height:220px}.message .phrase{opacity:0;transition:opacity .8s ease}.message .phrase.visible{opacity:1}.signature{opacity:0;transform:translateY(9px);transition:opacity 1s,transform 1s;margin-top:24px}.signature.visible{opacity:1;transform:none}.signature-line{display:block;width:52px;height:1px;background:#c48aae66;margin:0 0 14px}.signature p{margin:0;color:var(--rose);font-size:15px}.replay{display:flex;align-items:center;gap:18px;margin:24px auto 0;padding:10px 18px;min-height:48px;background:none;border:1px solid #d6a6c326;border-radius:12px;color:var(--muted);font-size:12px;opacity:0;visibility:hidden;transition:opacity .8s,color .2s,border-color .2s}.replay.visible{opacity:1;visibility:visible}.replay:hover{color:var(--text);border-color:#d6a6c366}footer{display:flex;justify-content:space-between;align-items:center;padding:23px 0 25px;border-top:1px solid #ffffff0b;font-size:10px;color:#a38ca6}.footer-heart{color:#c486ad;font-size:18px}.ambience{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.ambience i{position:absolute;color:#cc8db525;font-style:normal;font-size:20px;animation:float 14s ease-in-out infinite}.ambience i:nth-child(1){left:12%;top:28%}.ambience i:nth-child(2){right:15%;top:62%;font-size:14px;animation-delay:-5s}.ambience i:nth-child(3){left:23%;top:77%;font-size:12px;animation-delay:-8s}.ambience i:nth-child(4){right:9%;top:19%;font-size:12px;animation-delay:-3s}.ambience i:nth-child(5){left:8%;top:52%;font-size:10px;animation-delay:-11s}.ambience i:nth-child(n+6){width:3px;height:3px;background:#edb4d255;border-radius:50%;box-shadow:0 0 10px #edb4d244;left:30%;top:15%}.ambience i:nth-child(7){left:82%;top:43%;animation-delay:-6s}.ambience i:nth-child(8){left:18%;top:67%;animation-delay:-9s}.noscript-note{text-align:center;font-size:12px;color:var(--muted)}
@keyframes heartbeat{0%,100%{transform:scale(1)}50%{transform:scale(1.065);filter:drop-shadow(0 0 35px #e779ab77)}}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes leave{to{opacity:0;transform:translateY(-12px)}}@keyframes heart-open{to{transform:scale(1.25);filter:drop-shadow(0 0 55px #e779abcc)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-8deg);opacity:.45}50%{transform:translateY(-20px) rotate(8deg);opacity:.9}}
@media(max-width:600px){.experience{padding:0 23px}.masthead{padding:19px 0;font-size:10px;gap:9px}.edition{font-size:9px;letter-spacing:2px}.stage{min-height:610px;padding:25px 0 35px}.heart-scene{width:250px;height:230px;margin-bottom:20px}.heart{width:132px}.orbit{width:195px;height:195px}.orbit-two{width:240px;height:240px}h1{margin-bottom:27px}.letter{padding:30px 25px 27px;border-radius:18px}.message{min-height:unset;font-size:21px;line-height:2.05}.letter-header{gap:10px}.letter-header .eyebrow{font-size:11px}.signature p{font-size:13px}footer{font-size:9px;padding-bottom:max(20px,env(safe-area-inset-bottom));gap:12px}.hint{font-size:10px}.quote-mark{left:12px;top:8px;font-size:75px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
