:root{--accent:#cea7f0;--accent-ink:#24132f;--page:#180e25}body{background:var(--page);overflow-x:hidden}::selection{background:#9d6eb6;color:white}header{padding-top:24px;padding-bottom:24px;gap:20px;flex-wrap:wrap}header .tag{margin-left:auto}header a{border-bottom:1px solid #c7a4dc60;padding:4px 0;text-decoration:none}main{max-width:1200px}.hero{gap:54px;padding:42px 0 66px;min-height:600px}.intro{padding:30px 0}.intro .eyebrow{border-left:2px solid var(--accent);padding-left:18px;letter-spacing:.17em}h1{font-size:clamp(64px,7.5vw,108px);line-height:1.06;overflow-wrap:anywhere;letter-spacing:-.055em}h1 em{color:var(--accent)}.intro>p:last-child{font-size:17px;line-height:1.9;max-width:425px}.flowers{height:490px;align-self:center;border:1px solid #c5a1db35;border-radius:220px 220px 18px 18px;box-shadow:0 20px 80px #08030f70,0 0 70px #ad6bc012;transform:rotate(2deg);background:#1c1127}.flowers img{mask-image:linear-gradient(#000 78%,transparent);object-position:center 53%;transition:transform 1.2s ease}.flowers:hover img{transform:scale(1.035)}.flowers figcaption{bottom:23px;font-size:18px;color:#f0def9}.reading-layout{gap:44px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);padding-top:12px}.letter{border-radius:12px;padding:38px 42px;background:linear-gradient(145deg,#352340ed,#23162ef5);box-shadow:0 25px 80px #08030f70}.letter:before{top:-8px;left:14px;right:14px;border-radius:10px 10px 0 0;background:#493057}.letter-top{padding-bottom:25px}.heart{width:45px;height:45px;display:grid;place-items:center;border:1px solid #b78ac54d;border-radius:50%;flex-shrink:0}.preview{padding:34px 0 8px}.preview>p:first-child{font-size:26px;line-height:1.6}.preview button{box-shadow:0 8px 25px #09041250;background:var(--accent);color:var(--accent-ink);font-weight:600;min-height:54px;padding-inline:32px}.body{line-height:1.95;padding-top:27px}.body blockquote{margin:34px 0;padding:18px 0 18px 24px;font-size:25px;line-height:1.6;background:linear-gradient(90deg,#ba87dd0c,transparent);border-left-color:var(--accent)}.body h2{font-size:31px}.signature{padding-top:10px;font-size:34px}.body p,.body h2,.body blockquote,.footnote,.song h2,.song p{overflow-wrap:anywhere}.body [dir=rtl]{text-align:right;letter-spacing:0;font-style:normal}.song{border:1px solid #a783bd40;border-radius:16px;padding:30px;background:linear-gradient(150deg,#3c245135,#291c3030);position:sticky;top:30px}.song .eyebrow{font-size:11px;letter-spacing:.13em}.song h2{font-size:34px;line-height:1.25}.song-player{margin-top:25px}.music-note{background:linear-gradient(145deg,#593668,#2e1b40);border-radius:50%;width:58px;height:58px}.song.is-playing .music-note{box-shadow:0 0 0 7px #c9a4ee0a,0 0 0 14px #c9a4ee05}.song.is-playing{border-color:#bc92d777}audio{border-radius:30px;margin-top:10px}.choose-song{border-radius:9px;margin-top:8px}.footnote{margin-top:25px;line-height:1.9}footer{border-top:1px solid #c7a4dc20;max-width:1136px;margin:auto;padding:27px 24px 35px}.intro,.flowers,.reading-layout{animation:arrive .8s ease both}.flowers{animation-delay:.1s}.reading-layout{animation-delay:.2s}@keyframes arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@media(max-width:900px){.hero{gap:30px}.song{padding:23px}.reading-layout{gap:25px}.letter{padding:30px}}@media(max-width:750px){header{padding:22px;gap:12px}header .tag{max-width:160px;font-size:10px}main{padding-inline:22px}.hero{gap:18px;padding:8px 0 42px;min-height:0}.intro{padding:30px 0 0}.intro .eyebrow{border-left:0;padding:0;font-size:11px}h1{font-size:clamp(52px,13vw,76px);margin:22px 0}.intro>p:last-child{font-size:16px}.flowers{height:345px;max-width:300px;width:90%;border-radius:160px 160px 14px 14px;margin-top:10px}.flowers figcaption{font-size:17px}.reading-layout{grid-template-columns:1fr;gap:30px;padding-top:0}.letter{padding:26px 24px}.letter-top span:first-child{font-size:21px}.preview>p:first-child{font-size:23px}.body h2{font-size:27px}.body blockquote{font-size:22px}.song{position:static;padding:28px;max-width:none}.song h2{font-size:33px}.song .eyebrow{font-size:12px}footer{font-size:11px}}@media(prefers-reduced-motion:reduce){.intro,.flowers,.reading-layout{animation:none}.flowers img{transition:none}}
