@font-face{font-family:Dawning of a New Day;src:url(/fonts/DawningofaNewDay.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Little Days;src:url(/fonts/LittleDays.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Megalin;src:url(/fonts/Megalin.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Birthday Thanksgiving;src:url(/fonts/BirthdayThanksgiving.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Beauty Gadish;src:url(/fonts/BeautyGadish.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Betris and Daniel;src:url(/fonts/BetrisAndDaniel.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Betris and Daniel;src:url(/fonts/BetrisAndDanielItalic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}:root{--pink-50: #fff5fa;--pink-100: #ffe1ee;--pink-200: #ffc6df;--pink-300: #ff9ec7;--pink-400: #ff77b0;--pink-500: #ff5ba1;--pink-600: #e63f88;--rose-deep: #6b1d4a;--cream: #fff8f1;--gold: #f7c873;--paper-base: #f3e2c1;--paper-shade: #d8bb8a;--paper-stain: #b5895a;--paper-ink: #3a2a1a;--shadow-pink: 0 8px 30px rgba(255, 91, 161, .18);--shadow-pink-strong: 0 12px 40px rgba(255, 91, 161, .35);--shadow-paper: 0 14px 28px rgba(80, 40, 10, .25), 0 4px 8px rgba(80, 40, 10, .15);--font-cursive: "Parisienne", "Dancing Script", cursive;--font-script: "Dancing Script", cursive;--font-letter: "Betris and Daniel", "Dancing Script", cursive;--font-handwritten: "Little Days", "Dancing Script", cursive;--font-label: "Beauty Gadish", "Parisienne", cursive;--font-display: "Birthday Thanksgiving", "Parisienne", cursive;--font-body: "Quicksand", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:var(--font-body);color:var(--rose-deep)}body{background:radial-gradient(circle at 15% 10%,#ffd9ec 0%,transparent 45%),radial-gradient(circle at 85% 85%,#ffe0d4 0%,transparent 50%),radial-gradient(circle at 50% 50%,#fff0f7 0%,transparent 60%),linear-gradient(135deg,#fff5fa,#ffe1ee 60%,#ffd1e6);background-attachment:fixed;overflow-x:hidden}.app{position:relative;min-height:100vh;padding:64px 24px 96px;max-width:820px;margin:0 auto;z-index:1}.app__header{text-align:center;margin-bottom:40px}.app__title{font-family:var(--font-cursive);font-size:clamp(56px,9vw,96px);margin:0;color:var(--pink-600);line-height:1;text-shadow:0 2px 0 #fff,0 4px 18px rgba(255,91,161,.35)}.app__subtitle{font-family:var(--font-script);font-weight:600;font-size:clamp(28px,4vw,42px);margin:4px 0 0;color:var(--pink-500)}.app__tagline{margin:16px 0 0;font-family:var(--font-display);font-size:26px;letter-spacing:.01em;color:var(--rose-deep);opacity:.85}.app__main{display:flex;flex-direction:column;gap:28px}.app__footer{margin-top:64px;text-align:center;font-size:13px;opacity:.55;letter-spacing:.04em}.app__error{background:#ffffffbf;border:1.5px dashed var(--pink-400);color:var(--rose-deep);padding:14px 18px;border-radius:14px;font-size:14px}.diary{position:relative;background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid rgba(255,158,199,.55);border-radius:28px;padding:36px 32px 22px;box-shadow:var(--shadow-pink)}.diary__date{position:absolute;top:18px;right:26px;font-family:var(--font-handwritten);font-size:18px;color:var(--pink-500);opacity:.85;pointer-events:none}.diary__label{display:block;font-family:var(--font-label);font-size:44px;line-height:1.1;color:var(--pink-600);margin:0 0 12px}.diary__textarea{width:100%;border:none;outline:none;resize:vertical;min-height:192px;background:transparent;font-family:var(--font-handwritten);font-size:22px;line-height:32px;color:var(--rose-deep);padding:0 4px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(255,158,199,.4) 31px,rgba(255,158,199,.4) 32px);background-attachment:local}.diary__textarea::placeholder{color:#6b1d4a66;font-family:var(--font-handwritten);font-size:20px;line-height:32px}.diary__footer{display:flex;flex-direction:column;align-items:center;margin-top:12px;gap:6px}.diary__count{font-size:12px;opacity:.55;letter-spacing:.05em;align-self:flex-end}.diary__button{font-family:"Megalin",var(--font-display);font-weight:400;font-size:28px;letter-spacing:.01em;padding:14px 44px;background:linear-gradient(135deg,var(--pink-400),var(--pink-500) 60%,var(--pink-600));color:#fff;border:none;border-radius:999px;cursor:pointer;box-shadow:var(--shadow-pink-strong);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;position:relative;overflow:hidden}.diary__button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translate(-120%);animation:shimmer 3.5s infinite}.diary__button:hover:not(:disabled){transform:translateY(-2px) scale(1.02);filter:brightness(1.05)}.diary__button:disabled{opacity:.55;cursor:not-allowed}@keyframes shimmer{to{transform:translate(120%)}}.envelope-stage{display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px 0 8px;animation:envelopeRise .7s cubic-bezier(.22,1,.36,1) both}@keyframes envelopeRise{0%{opacity:0;transform:translateY(80px) scale(.6)}60%{opacity:1;transform:translateY(-10px) scale(1.04)}to{opacity:1;transform:translateY(0) scale(1)}}.envelope-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;background:none;cursor:pointer;display:block}.envelope-card__body{position:relative;width:240px;height:160px;background:linear-gradient(150deg,var(--pink-400) 0%,var(--pink-500) 60%,var(--pink-600) 100%);border-radius:8px;box-shadow:0 12px 30px #e63f8866,inset 0 0 0 2px #ffffff2e;animation:envelopeBob 2.6s ease-in-out infinite;transition:transform .15s ease,box-shadow .15s ease}@keyframes envelopeBob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-6px) rotate(1.5deg)}}.envelope-card:hover .envelope-card__body{transform:scale(1.05);box-shadow:0 16px 38px #e63f888c}.envelope-card__flap{position:absolute;top:0;left:0;right:0;height:88px;background:linear-gradient(165deg,var(--pink-500) 0%,var(--pink-600) 100%);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 3px 4px rgba(0,0,0,.15))}.envelope-card__seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;display:grid;place-items:center;font-size:24px;background:radial-gradient(circle at 30% 30%,#fff,#ffd4e6 65%,#ff9ec7);border-radius:50%;box-shadow:0 3px 8px #781e4666;z-index:2}.envelope-hint{margin:0;font-family:var(--font-display);font-size:22px;color:var(--pink-600);opacity:.85;animation:hintPulse 2s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.6}50%{opacity:1}}.letter-stage{display:flex;justify-content:center;padding:24px 0 8px;animation:letterIn .6s cubic-bezier(.22,1,.36,1) both}@keyframes letterIn{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.letter__paper{position:relative;width:100%;max-width:640px;aspect-ratio:1 / 1.45;background-image:url(/paper.png);background-size:100% 100%;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 18px 30px rgba(80,40,10,.28))}.letter__scroll{position:absolute;top:12%;right:11%;bottom:11%;left:11%;overflow-y:auto;padding-right:8px;color:var(--paper-ink);font-family:var(--font-letter);scrollbar-width:thin;scrollbar-color:var(--pink-400) transparent}.letter__scroll::-webkit-scrollbar{width:8px}.letter__scroll::-webkit-scrollbar-thumb{background:var(--pink-400);border-radius:999px}.letter__scroll::-webkit-scrollbar-track{background:transparent}@keyframes lineFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.poem__meta{text-align:center;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--pink-600);text-shadow:0 1px 0 rgba(255,240,220,.6);margin-bottom:22px;opacity:0;animation:lineFadeIn .5s ease-out .5s forwards}.poem__dot{margin:0 10px;color:var(--pink-400)}.poem__body{font-family:var(--font-letter);font-weight:400;font-size:30px;line-height:1.5;color:var(--paper-ink);text-align:center}.poem__stanza{margin:0 0 22px;display:flex;flex-direction:column;gap:4px;opacity:0;animation:lineFadeIn .6s ease-out forwards}.poem__stanza:nth-of-type(1){animation-delay:.6s}.poem__stanza:nth-of-type(2){animation-delay:.8s}.poem__stanza:nth-of-type(3){animation-delay:1s}.poem__stanza:nth-of-type(4){animation-delay:1.2s}.poem__stanza:nth-of-type(5){animation-delay:1.4s}.poem__stanza:nth-of-type(6){animation-delay:1.6s}.poem__stanza:nth-of-type(n+7){animation-delay:1.8s}.poem__line{display:block}.petals{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.petals__item{position:absolute;top:-8vh;display:inline-block;line-height:1;opacity:0;will-change:transform,opacity;animation:fall linear infinite;--sway: 0px;--spin: 360deg}.petals__item--flower{color:var(--pink-400);text-shadow:0 0 6px rgba(255,158,199,.7),0 0 14px rgba(255,91,161,.4)}.petals__item--star{color:var(--gold);text-shadow:0 0 6px rgba(255,224,138,.8),0 0 14px rgba(255,91,161,.5)}@keyframes fall{0%{transform:translate3d(0,-8vh,0) rotate(0);opacity:0}8%{opacity:.85}90%{opacity:.85}to{transform:translate3d(var(--sway),110vh,0) rotate(var(--spin));opacity:0}}.floats{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;overflow:hidden}.floats__item{position:absolute;top:0;left:0;pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;transition:filter .2s ease}.floats__item:active{cursor:grabbing}.floats__item:hover .floats__card{transform:scale(1.06);box-shadow:var(--shadow-pink-strong)}.floats__item:focus-visible{outline:none}.floats__item:focus-visible .floats__card{box-shadow:var(--shadow-pink-strong),0 0 0 3px var(--pink-400)}@media (max-width: 720px){.floats__item{display:none}}.floats__card{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;background:#ffffffeb;border:1.5px solid var(--pink-200);border-radius:999px;box-shadow:var(--shadow-pink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:240px;transition:transform .2s ease,box-shadow .2s ease}.floats__card:hover{transform:scale(1.06);box-shadow:var(--shadow-pink-strong)}.floats__cover{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 2px #fff,0 0 12px #ff5ba166}.floats__cover--placeholder{background:linear-gradient(135deg,var(--pink-300),var(--pink-500));color:#fff;display:grid;place-items:center;font-size:20px}.floats__text{min-width:0}.floats__title{font-weight:600;font-size:13px;color:var(--rose-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.floats__album{font-size:11px;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.floats__match{margin-left:auto;background:var(--pink-500);color:#fff;font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;flex-shrink:0}@media (max-width: 600px){.app{padding:40px 16px 80px}.letter__paper{padding:36px 26px 32px}.poem__body{font-size:24px}}
