.page-enter-active{transition:opacity .4s var(--ease-out-expo),transform .4s var(--ease-out-expo)}.page-leave-active{transition:opacity .2s ease,transform .2s ease}.page-enter-from{opacity:0;transform:translateY(16px)}.page-leave-to{opacity:0;transform:translateY(-8px)}:root{--cream: #fff8f3;--cream-deep: #fdeee3;--peach: #ffb7b2;--rose: #ff9aa2;--rose-deep: #f47c8f;--rose-soft: #ffd6d6;--green: #7d8471;--gold: #e8b87d;--text-main: #5a4a42;--text-soft: #9a8a82;--text-light: #c4b5ad;--white: #ffffff;--shadow-soft: 0 4px 20px rgba(244, 124, 143, .12);--shadow-card: 0 6px 24px rgba(90, 74, 66, .1);--shadow-hover: 0 12px 40px rgba(244, 124, 143, .2);--r-sm: 8px;--r-md: 16px;--r-lg: 24px;--r-full: 999px;--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 40px;--sp-2xl: 64px;--font-hand: "霞鹜文楷", "Ma Shan Zheng", "Comic Sans MS", cursive, sans-serif;--font-body: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;--max-width: 960px;--max-width-wide: 1100px;--max-width-xwide: 1280px;--nav-height: 64px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-spring: cubic-bezier(.22, 1.2, .36, 1);--dur-fast: .2s;--dur-normal: .3s;--dur-slow: .5s;--dur-slower: .8s}@media (min-width: 1441px){:root{--max-width: 1080px;--max-width-wide: 1240px;--sp-xl: 48px;--sp-2xl: 72px}}@media (min-width: 1921px){:root{--max-width: 1200px;--max-width-wide: 1400px;--sp-xl: 56px;--sp-2xl: 80px}}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;overscroll-behavior-x:none}body{font-family:var(--font-body);background-color:var(--cream);background-image:radial-gradient(circle at 15% 20%,rgba(255,154,162,.08) 0%,transparent 40%),radial-gradient(circle at 85% 80%,rgba(255,183,178,.1) 0%,transparent 40%);background-attachment:fixed;color:var(--text-main);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch}a{color:var(--rose-deep);text-decoration:none;transition:color var(--dur-normal) var(--ease-out-expo)}a:hover{color:var(--rose)}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none;-webkit-tap-highlight-color:transparent}input,textarea,select{font-family:inherit;font-size:16px;color:var(--text-main);border-radius:var(--r-md)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--sp-lg);overflow-wrap:break-word;word-wrap:break-word}.container-wide{max-width:var(--max-width-wide);margin:0 auto;padding:0 var(--sp-lg);overflow-wrap:break-word;word-wrap:break-word}.handwriting{font-family:var(--font-hand)}.text-center{text-align:center}.section-title{font-family:var(--font-hand);font-size:2rem;color:var(--rose-deep);text-align:center;margin-bottom:var(--sp-lg);margin-left:auto;margin-right:auto;display:block;width:fit-content;max-width:100%}.section-title:after{content:"";display:block;width:60px;height:3px;background:linear-gradient(90deg,var(--peach),var(--rose));border-radius:var(--r-full);margin:var(--sp-sm) auto 0;border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-sm);padding:10px 24px;border-radius:var(--r-full);font-size:.95rem;font-weight:500;transition:all var(--dur-normal) var(--ease-out-expo);white-space:nowrap;min-height:40px;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn-primary{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:var(--white);box-shadow:var(--shadow-soft)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);color:var(--white)}.btn-primary:active{transform:translateY(0) scale(.97);box-shadow:var(--shadow-soft)}.btn-ghost{background:var(--white);color:var(--rose-deep);border:1.5px solid var(--rose-soft)}.btn-ghost:hover{background:var(--rose-soft);transform:translateY(-1px)}.btn-ghost:active{transform:scale(.97)}.btn-danger{background:#fff0f0;color:#e0506e;border:1px solid #ffcfd6}.btn-danger:hover{background:#ffe0e0}.btn-danger:active{transform:scale(.97)}.btn-sm{padding:6px 14px;font-size:.85rem;min-height:32px}.card{background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--sp-lg);transition:box-shadow var(--dur-normal) var(--ease-out-expo),transform var(--dur-normal) var(--ease-out-expo)}.form-group{margin-bottom:var(--sp-md)}.form-label{display:block;font-size:.9rem;color:var(--text-soft);margin-bottom:var(--sp-xs)}.form-input,.form-textarea,.form-select{width:100%;padding:10px 14px;border:1.5px solid var(--cream-deep);border-radius:var(--r-md);background:var(--cream);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);font-size:16px}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px #ff9aa226}.form-textarea{resize:vertical;min-height:100px}.badge{display:inline-block;padding:2px 10px;border-radius:var(--r-full);font-size:.75rem;font-weight:500}.badge-public{background:#e3f5e8;color:var(--green)}.badge-private{background:#ffe8ec;color:var(--rose-deep)}.empty-state{text-align:center;padding:var(--sp-2xl) var(--sp-lg);color:var(--text-light)}.empty-state .emoji{font-size:3rem;margin-bottom:var(--sp-md)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rose-soft);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--rose)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-out-expo),transform .7s var(--ease-out-expo)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal.reveal-left{transform:translate(-28px)}.reveal.reveal-left.revealed{transform:translate(0)}.reveal.reveal-right{transform:translate(28px)}.reveal.reveal-right.revealed{transform:translate(0)}.reveal.reveal-scale{transform:scale(.92)}.reveal.reveal-scale.revealed{transform:scale(1)}.reveal.delay-1{transition-delay:.08s}.reveal.delay-2{transition-delay:.16s}.reveal.delay-3{transition-delay:.24s}.reveal.delay-4{transition-delay:.32s}.reveal.delay-5{transition-delay:.4s}.reveal.delay-6{transition-delay:.48s}.reveal.delay-7{transition-delay:.56s}.reveal.delay-8{transition-delay:.64s}@keyframes float-up{0%{opacity:0;transform:translateY(0) scale(.5) rotate(0)}15%{opacity:.7;transform:translateY(-20px) scale(1) rotate(5deg)}85%{opacity:.4}to{opacity:0;transform:translateY(-120px) scale(.3) rotate(-10deg)}}@keyframes heartbeat-glow{0%,to{transform:scale(1);filter:drop-shadow(0 0 0 transparent)}15%{transform:scale(1.25);filter:drop-shadow(0 0 8px rgba(255,154,162,.5))}30%{transform:scale(1)}45%{transform:scale(1.15);filter:drop-shadow(0 0 6px rgba(255,154,162,.4))}}@keyframes pulse-ring{0%{box-shadow:0 0 #ff9aa266}70%{box-shadow:0 0 0 12px #ff9aa200}to{box-shadow:0 0 #ff9aa200}}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.img-fade{opacity:0;transition:opacity .5s ease}.img-fade.loaded{opacity:1}::selection{background:var(--rose-soft);color:var(--rose-deep)}@supports (padding: max(0px)){body{padding-top:max(0px,env(safe-area-inset-top));padding-bottom:max(0px,env(safe-area-inset-bottom));padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}@media (max-width: 1024px){:root{--sp-xl: 36px;--sp-2xl: 52px}.container,.container-wide{padding:0 var(--sp-md)}}@media (max-width: 768px){:root{--sp-xl: 32px;--sp-2xl: 48px}.container,.container-wide{padding:0 var(--sp-md)}.section-title{font-size:1.6rem}}@media (max-width: 640px){:root{--sp-lg: 18px;--sp-xl: 28px;--sp-2xl: 40px}.container,.container-wide{padding:0 var(--sp-md)}.section-title{font-size:1.4rem}.card{padding:var(--sp-md);border-radius:var(--r-md)}.btn{min-height:44px;padding:10px 20px}.form-input,.form-textarea,.form-select{font-size:16px;padding:12px 14px}::-webkit-scrollbar{width:3px}}@media (max-width: 480px){:root{--sp-md: 14px;--sp-lg: 16px}.section-title{font-size:1.3rem}.card{padding:var(--sp-md)}.btn{padding:10px 16px;font-size:.9rem}}@media (max-width: 380px){:root{--sp-md: 12px;--sp-lg: 14px}.section-title{font-size:1.2rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
