@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700;800&family=ZCOOL+KuaiLe&display=swap";:root{--bg-0:#fff8ee;--bg-1:#ffe9d7;--text:#3a2f2f;--muted:#7f6a66;--card-bg:#ffffffbd;--card-line:#ffffffe0;--soft-line:#a87a6747;--brand:#e96f59;--brand-deep:#d8503f;--shadow-lg:0 20px 48px #9a58462e;--shadow-md:0 10px 26px #9a584624}*,:before,:after{box-sizing:border-box}html,body,#app{width:100%;min-height:100%}body{color:var(--text);background:radial-gradient(circle at 8% 12%, #ffd8c0 0, #ffd8c000 35%), radial-gradient(circle at 90% 5%, #ffeed9 0, #ffeed900 30%), linear-gradient(140deg, var(--bg-0), var(--bg-1));margin:0;font-family:Outfit,Noto Sans SC,Microsoft YaHei,sans-serif;overflow-x:hidden}.page{width:100%;min-height:100vh;padding:64px 14px 26px;position:relative;overflow-x:clip}.content-shell{z-index:1;flex-direction:column;gap:18px;width:min(1080px,100%);min-height:calc(100vh - 90px);margin:0 auto;display:flex;position:relative}.bg-glow{filter:blur(18px);pointer-events:none;border-radius:999px;position:absolute}.bg-glow-a{background:#ffba9299;width:340px;height:340px;top:-100px;right:-90px}.bg-glow-b{background:#f97b9638;width:300px;height:300px;bottom:40px;left:-100px}.hero-card{background:var(--card-bg);border:1px solid var(--card-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-lg);border-radius:28px;padding:24px 26px 30px}.hero-profile{align-items:center;gap:12px;display:inline-flex}.hero-avatar{object-fit:cover;border:2px solid #fffffff2;border-radius:50%;width:54px;height:54px;box-shadow:0 8px 16px #9d5c4f42}.hero-name{color:#352826;margin:0;font-weight:800}.hero-sub{color:var(--muted);margin:2px 0 0;font-size:.84rem}.hero-top{color:var(--brand);letter-spacing:.13em;text-transform:uppercase;margin:10px 0 0;font-size:.76rem;font-weight:700}h1{color:#2f2222;margin:10px 0 12px;font-family:ZCOOL KuaiLe,Outfit,sans-serif;font-size:clamp(2rem,5vw,3.7rem);line-height:1.06}.hero-desc{color:var(--muted);max-width:700px;margin:0;line-height:1.72}.hero-badges{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.hero-badges span{color:#8a5047;background:#fffffff0;border:1px solid #fadfc5e6;border-radius:999px;align-items:center;padding:8px 12px;font-size:.9rem;display:inline-flex}.wish-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px;display:grid}.wish-card{border:1px solid var(--card-line);box-shadow:var(--shadow-md);background:#ffffffb8;border-radius:20px;align-self:start;transition:transform .2s,box-shadow .2s;overflow:hidden}.wish-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px #9a58462e}.wish-toggle{text-align:center;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:1fr auto;grid-template-areas:"title title""summary arrow";align-items:center;gap:8px 12px;min-height:96px;padding:18px 16px 14px;transition:background .2s;display:grid}.wish-title{text-align:center;letter-spacing:.02em;color:#342524;grid-area:title;justify-self:center;font-size:clamp(1.08rem,1.8vw,1.34rem);font-weight:800;line-height:1.3}.wish-summary{text-align:center;max-width:24ch;color:var(--muted);grid-area:summary;justify-self:center;font-size:.9rem;line-height:1.5}.wish-arrow{color:#86473f;background:#ffffffe6;border:1px solid #ecaa9199;border-radius:50%;grid-area:arrow;justify-self:end;place-items:center;width:34px;height:34px;transition:transform .24s;display:inline-grid}.wish-card:hover .wish-toggle,.wish-card.open .wish-toggle{background:linear-gradient(#ffffff8a,#fff3ec9e)}.wish-arrow svg{width:18px;height:18px}.wish-arrow path{stroke:currentColor;stroke-width:2.2px}.wish-card.open .wish-arrow{transform:rotate(180deg)}.wish-content{overflow:hidden}.wish-content-inner{border-top:1px solid #e4c6bab3}.wish-markdown{color:#5a4745;letter-spacing:.01em;text-wrap:pretty;padding:14px 16px 16px;font-size:.94rem;line-height:1.74}.wish-markdown>:first-child{margin-top:0}.wish-markdown>:last-child{margin-bottom:0}.wish-markdown h1,.wish-markdown h2,.wish-markdown h3,.wish-markdown h4,.wish-markdown h5,.wish-markdown h6{color:#382927;margin:.8em 0 .48em;line-height:1.35}.wish-markdown h1{font-size:1.16rem}.wish-markdown h2{font-size:1.08rem}.wish-markdown h3,.wish-markdown h4,.wish-markdown h5,.wish-markdown h6{font-size:1rem}.wish-markdown p,.wish-markdown ul,.wish-markdown ol,.wish-markdown blockquote,.wish-markdown pre{margin:.58em 0}.wish-markdown ul,.wish-markdown ol{padding-left:1.35em}.wish-markdown li+li{margin-top:.22em}.wish-markdown a{color:#7e3f98;text-underline-offset:2px;word-break:break-word;font-weight:700;text-decoration-color:#7e3f9880}.wish-markdown a:hover{text-decoration-color:#7e3f98f2}.wish-markdown strong{color:#332422;font-weight:800}.wish-markdown blockquote{background:#ffffff80;border-left:3px solid #ecaa91db;border-radius:10px;margin-left:0;padding:.5em .8em}.wish-markdown code{background:#ffffffe0;border:1px solid #ecaa9175;border-radius:6px;padding:.12em .38em;font-size:.9em}.wish-markdown pre{background:linear-gradient(#ffffffd6,#f4dbce47);border:1px solid #ae735e42;border-radius:12px;padding:11px 12px;overflow:auto}.wish-markdown pre code{background:0 0;border:0;padding:0}.wish-markdown hr{border:0;border-top:1px solid #c8917d94;margin:1em 0}.wish-markdown img{cursor:zoom-in;border:1px solid #ecaa916b;border-radius:12px;width:100%;max-width:100%;height:auto;margin:.7em auto;display:block;box-shadow:0 10px 22px #7d4e4029}.wish-markdown table{border-collapse:collapse;border-radius:10px;width:100%;margin:.65em 0;overflow:hidden}.wish-markdown th,.wish-markdown td{border:1px solid #ae735e38;padding:.45em .55em}.wish-markdown th{color:#4f3a36;text-align:left;background:#fff7f0cc}.site-footer{border-top:1px solid var(--soft-line);text-align:center;margin-top:auto;padding-top:18px}.footer-line{color:#7a6968;margin:3px 0;font-size:.82rem;line-height:1.5}.birthday-modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#25111080;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.image-preview-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e0c0cc2;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.image-preview-modal{max-width:min(1000px,100vw - 36px);max-height:calc(100vh - 36px);margin:0;position:relative}.image-preview-modal img{border-radius:12px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 36px);display:block;box-shadow:0 20px 46px #0000006b}.image-preview-close{color:#fff;cursor:pointer;background:#161110b8;border:0;border-radius:999px;width:34px;height:34px;font-size:1.45rem;line-height:1;position:absolute;top:10px;right:10px}.birthday-modal{box-sizing:border-box;text-align:center;background:radial-gradient(circle at 14% 16%,#ffffffd9,#fff6 40%,#fff3 60%),linear-gradient(145deg,#fff8e9 10%,#ffeacf 56%,#ffd8bd);border:1px solid #fffffff2;border-radius:24px;width:min(420px,100vw - 28px);margin:0 auto;padding:30px 22px 24px;overflow:hidden;box-shadow:0 24px 60px #5a1b1459}.modal-label{color:#ca613f;text-transform:uppercase;letter-spacing:.14em;margin:0;font-size:.75rem;font-weight:700}h3{color:#2f1d1c;margin:12px 0 10px;font-family:ZCOOL KuaiLe,Outfit,sans-serif;font-size:clamp(2rem,7vw,3.1rem)}.modal-text{color:#684640;max-width:420px;margin:0 auto;line-height:1.68}.modal-btn{color:#fff8f2;background:linear-gradient(135deg, var(--brand), var(--brand-deep));cursor:pointer;border:0;border-radius:999px;margin-top:20px;padding:11px 22px;font-size:.95rem;font-weight:700;box-shadow:0 10px 20px #cd584066}.floating-deco span{left:calc(var(--i) * 10%);width:8px;height:8px;animation:3.2s ease-in infinite float-up;animation-delay:calc(var(--i) * -.24s);background:#ffa754d9;border-radius:999px;position:absolute;top:100%}.floating-deco span:nth-child(3n){background:#f86a7eb8;width:10px;height:10px}.floating-deco span:nth-child(4n){background:#fffffff2;width:6px;height:6px}.fade-pop-enter-active,.fade-pop-leave-active{transition:opacity .28s}.fade-pop-enter-active .birthday-modal,.fade-pop-leave-active .birthday-modal,.fade-pop-enter-active .image-preview-modal,.fade-pop-leave-active .image-preview-modal{transition:transform .32s,opacity .32s}.fade-pop-enter-from,.fade-pop-leave-to{opacity:0}.fade-pop-enter-from .birthday-modal,.fade-pop-leave-to .birthday-modal,.fade-pop-enter-from .image-preview-modal,.fade-pop-leave-to .image-preview-modal{opacity:0;transform:translateY(10px)scale(.96)}.accordion-enter-active,.accordion-leave-active{transition:height .28s,opacity .2s}@keyframes float-up{0%{opacity:0;transform:translateY(26px)scale(.8)}25%{opacity:1}to{opacity:0;transform:translateY(-130px)scale(1.15)}}@media (width<=900px){.page{padding:44px 14px 30px}.content-shell{gap:14px}.hero-card{border-radius:24px;padding:22px 18px 24px}.wish-grid{grid-template-columns:1fr;gap:12px}.wish-toggle{min-height:98px}.wish-arrow{width:36px;height:36px}.wish-arrow svg{width:20px;height:20px}.modal-btn{width:100%;min-height:44px}.footer-line{font-size:.8rem}}@media (width<=520px){.page{padding:34px 12px 24px}.hero-card{border-radius:20px;padding:18px 14px 20px}.hero-avatar{width:48px;height:48px}.hero-name{font-size:1.75rem}.hero-sub{font-size:.8rem}.hero-badges{gap:8px}.hero-badges span{padding:7px 10px;font-size:.84rem}.wish-card{border-radius:16px}.wish-toggle{grid-template-columns:1fr;grid-template-areas:"title""summary";gap:6px;min-height:92px;padding:14px 46px 12px 12px;position:relative}.wish-title{font-size:1.06rem}.wish-summary{width:100%;max-width:none}.wish-arrow{width:32px;height:32px;position:absolute;top:12px;right:12px}.wish-markdown{padding:10px 12px 12px;font-size:.88rem}.birthday-modal{border-radius:20px;width:min(360px,100vw - 24px);padding:26px 16px 22px}.modal-text{font-size:.92rem}.footer-line{font-size:.76rem}}
