.friend-letter-section.svelte-1qlarcy{display:flex;justify-content:center;padding:var(--spacing-xxl) 0 calc(var(--spacing-xxl) * 1.5);perspective:1000px}.envelope-container.svelte-1qlarcy{position:relative;width:min(540px,100%);min-height:480px}.envelope.svelte-1qlarcy{position:absolute;top:0;left:50%;transform:translate(-50%);width:100%;max-width:460px;height:280px;z-index:1;opacity:0;animation:svelte-1qlarcy-envelope-appear .5s var(--ease-gentle) .2s forwards}@keyframes svelte-1qlarcy-envelope-appear{to{opacity:1}}.envelope-body.svelte-1qlarcy{position:absolute;bottom:0;left:0;right:0;height:200px;background:linear-gradient(135deg,var(--color-pink-l15) 0%,var(--color-pink-l10) 100%);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 4px 16px #e8a4b433,inset 0 -2px 8px #fafafa4d}.envelope-flap.svelte-1qlarcy{position:absolute;top:0;left:0;right:0;height:160px;background:linear-gradient(180deg,var(--color-pink-l12) 0%,var(--color-pink-l8) 100%);clip-path:polygon(0 0,50% 60%,100% 0);transform-origin:top center;box-shadow:0 2px 12px #e8a4b44d;animation:svelte-1qlarcy-flap-open .6s var(--ease-out) .4s forwards}@keyframes svelte-1qlarcy-flap-open{0%{transform:rotateX(0)}to{transform:rotateX(-120deg)}}.letter-paper.svelte-1qlarcy{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;margin:0 auto;padding:var(--spacing-xxl) calc(var(--spacing-xl) * 1.5) var(--spacing-xl);background:repeating-linear-gradient(transparent,transparent 31px,var(--muted-alpha-08) 31px,var(--muted-alpha-08) 32px),linear-gradient(to bottom,var(--color-white) 0%,var(--color-white) 100%);border-radius:var(--radius-lg);box-shadow:0 8px 32px #2c3e501f,0 2px 8px #e8a4b414;text-decoration:none;color:var(--color-text);z-index:2;transform:translateY(60px);opacity:0;animation:svelte-1qlarcy-letter-slide-out .8s var(--ease-out) .6s forwards;transition:transform .4s var(--ease-gentle),box-shadow .4s var(--ease-gentle)}.letter-paper.svelte-1qlarcy:hover{transform:translateY(-6px);box-shadow:0 12px 48px #2c3e5029,0 4px 16px #e8a4b433}.letter-paper.svelte-1qlarcy:hover .seal-avatar:where(.svelte-1qlarcy){transform:rotate(5deg) scale(1.05)}.letter-paper.svelte-1qlarcy:hover .action-icon:where(.svelte-1qlarcy) svg{transform:translate(4px)}@keyframes svelte-1qlarcy-letter-slide-out{to{transform:translateY(0);opacity:1}}.wax-seal.svelte-1qlarcy{position:relative;width:100px;height:100px;margin-top:-50px;margin-bottom:var(--spacing-md);opacity:0;transform:rotate(-10deg) scale(.8);animation:svelte-1qlarcy-seal-appear .5s var(--ease-out) 1s forwards}@keyframes svelte-1qlarcy-seal-appear{to{opacity:1;transform:rotate(0) scale(1)}}.seal-glow.svelte-1qlarcy{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:radial-gradient(circle,rgba(232,164,180,.4) 0%,transparent 70%);filter:blur(12px);animation:svelte-1qlarcy-seal-glow-pulse 3s ease-in-out infinite}@keyframes svelte-1qlarcy-seal-glow-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.9;transform:scale(1.1)}}.seal-avatar.svelte-1qlarcy{position:relative;width:100px;height:100px;border-radius:50%;border:4px solid var(--color-pink-l5);box-shadow:0 0 0 3px #fafafa80,0 4px 16px #e8a4b466,inset 0 2px 8px #2c3e501a;object-fit:cover;transition:transform .4s var(--ease-gentle)}.seal-decoration.svelte-1qlarcy{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px dashed var(--color-pink-d5);opacity:.3}.letter-content.svelte-1qlarcy{width:100%;text-align:left}.letter-content.svelte-1qlarcy>*{opacity:0;transform:translateY(10px)}.letter-content.svelte-1qlarcy .letter-greeting:where(.svelte-1qlarcy){animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.2s forwards}.letter-content.svelte-1qlarcy .letter-name:where(.svelte-1qlarcy){animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.3s forwards}.letter-content.svelte-1qlarcy .letter-desc:where(.svelte-1qlarcy){animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.4s forwards}.letter-content.svelte-1qlarcy .letter-message:where(.svelte-1qlarcy){animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.5s forwards}.letter-content.svelte-1qlarcy .letter-meta:where(.svelte-1qlarcy){animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.6s forwards}@keyframes svelte-1qlarcy-line-fade{to{opacity:1;transform:translateY(0)}}.letter-greeting.svelte-1qlarcy{font-size:var(--font-size-sm);color:var(--color-text-light);font-style:italic;margin:0 0 var(--spacing-xs)}.letter-name.svelte-1qlarcy{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-pink);margin:0 0 var(--spacing-sm);letter-spacing:.02em}.letter-desc.svelte-1qlarcy{font-size:var(--font-size-base);color:var(--color-text-light);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-lg)}.letter-message.svelte-1qlarcy{position:relative;padding:var(--spacing-md) var(--spacing-lg);background:#e8a4b40a;border-left:3px solid var(--color-pink-l10);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 var(--spacing-lg);font-size:var(--font-size-base);font-style:italic;font-family:KaiTi,楷体,cursive,serif;color:var(--color-pink-d10);line-height:var(--line-height-relaxed);letter-spacing:.03em}.letter-message.svelte-1qlarcy .quote-mark-left:where(.svelte-1qlarcy),.letter-message.svelte-1qlarcy .quote-mark-right:where(.svelte-1qlarcy){font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);font-family:Georgia,serif;opacity:.4;color:var(--color-pink)}.letter-message.svelte-1qlarcy .quote-mark-left:where(.svelte-1qlarcy){margin-right:4px}.letter-message.svelte-1qlarcy .quote-mark-right:where(.svelte-1qlarcy){margin-left:4px}.letter-meta.svelte-1qlarcy{display:flex;justify-content:flex-end;padding-right:var(--spacing-sm)}.letter-date.svelte-1qlarcy{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.letter-date.svelte-1qlarcy:before{content:"— "}.letter-action.svelte-1qlarcy{margin-top:var(--spacing-lg);opacity:0;animation:svelte-1qlarcy-line-fade .4s var(--ease-gentle) 1.7s forwards}.action-text.svelte-1qlarcy{display:inline-flex;align-items:center;gap:6px;padding:var(--spacing-sm) var(--spacing-lg);background:linear-gradient(135deg,var(--color-pink),var(--color-pink-l8));color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:0 2px 8px #e8a4b44d;transition:box-shadow var(--transition-fast) var(--ease-gentle),transform var(--transition-fast) var(--ease-gentle)}.action-text.svelte-1qlarcy svg{transition:transform var(--transition-fast) var(--ease-gentle)}.letter-paper.svelte-1qlarcy:hover .action-text:where(.svelte-1qlarcy){box-shadow:0 4px 16px #e8a4b466;transform:translateY(-2px)}@media(max-width:640px){.envelope-container.svelte-1qlarcy{margin:0 var(--spacing-md)}.letter-paper.svelte-1qlarcy{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg)}.wax-seal.svelte-1qlarcy{width:80px;height:80px;margin-top:-40px}.seal-avatar.svelte-1qlarcy{width:80px;height:80px}.letter-name.svelte-1qlarcy{font-size:var(--font-size-xl)}.letter-message.svelte-1qlarcy{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}}.friend-card.svelte-iilggk{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-white);border-radius:var(--radius-md);text-decoration:none;color:var(--color-text);transform:rotate(var(--rotation));transition:transform .3s var(--ease-gentle),box-shadow .3s var(--ease-gentle);opacity:0;animation:svelte-iilggk-card-enter .5s var(--ease-gentle) forwards;animation-delay:calc(var(--i, 0) * 80ms + .4s)}.friend-card.svelte-iilggk.pink{box-shadow:var(--shadow-pink)}.friend-card.svelte-iilggk.blue{box-shadow:var(--shadow-blue)}.friend-card.svelte-iilggk:hover{transform:rotate(0) translateY(-6px) scale(1.04);z-index:2}.friend-card.svelte-iilggk:hover.pink{box-shadow:var(--shadow-pink-offset-hover)}.friend-card.svelte-iilggk:hover.blue{box-shadow:var(--shadow-blue-offset-hover)}.friend-card.svelte-iilggk:hover .friend-avatar:where(.svelte-iilggk){transform:scale(1.1)}.friend-card.svelte-iilggk:active{transform:rotate(0) translateY(-2px) scale(1.01)}@keyframes svelte-iilggk-card-enter{0%{opacity:0;transform:rotate(var(--rotation)) translateY(20px)}to{opacity:1;transform:rotate(var(--rotation))}}.friend-avatar-wrap.svelte-iilggk{flex-shrink:0}.friend-avatar.svelte-iilggk{width:48px;height:48px;border-radius:50%;object-fit:cover;transition:transform var(--transition-fast) var(--ease-gentle)}.friend-avatar-fallback.svelte-iilggk{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-pink),var(--color-blue));color:var(--color-on-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.friend-info.svelte-iilggk{display:flex;flex-direction:column;gap:2px;min-width:0}.friend-name.svelte-iilggk{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-desc.svelte-iilggk{font-size:var(--font-size-xs);color:var(--color-text-light);line-height:var(--line-height-base);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.apply-section.svelte-z0xw61{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xxl) 0 var(--spacing-xl);opacity:0;animation:svelte-z0xw61-fade-up .5s var(--ease-gentle) .8s forwards}@keyframes svelte-z0xw61-fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.apply-hint.svelte-z0xw61{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.apply-btn.svelte-z0xw61{display:inline-flex;align-items:center;gap:8px;padding:10px 28px;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-pink);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:box-shadow var(--transition-base) var(--ease-gentle),border-color var(--transition-base) var(--ease-gentle),transform var(--transition-fast) var(--ease-gentle),color var(--transition-fast) var(--ease-gentle)}.apply-btn.svelte-z0xw61 svg{color:var(--color-pink);transition:transform var(--transition-fast) var(--ease-gentle)}.apply-btn.svelte-z0xw61:hover{box-shadow:var(--shadow-pink-offset-hover);border-color:var(--color-pink);color:var(--color-pink)}.apply-btn.svelte-z0xw61:hover svg{transform:translateY(-2px)}.apply-btn.svelte-z0xw61:active{transform:scale(.97)}.modal-overlay.svelte-z0xw61{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:svelte-z0xw61-overlay-in .3s var(--ease-gentle) forwards}@keyframes svelte-z0xw61-overlay-in{0%{opacity:0}to{opacity:1}}.modal-card.svelte-z0xw61{position:relative;width:90%;max-width:440px;max-height:90vh;overflow-y:auto;background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-pink),0 20px 60px #2c3e501a;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);animation:svelte-z0xw61-card-in .3s var(--ease-gentle) forwards}@keyframes svelte-z0xw61-card-in{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-close.svelte-z0xw61{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:50%;transition:background var(--transition-fast) var(--ease-gentle),color var(--transition-fast) var(--ease-gentle)}.modal-close.svelte-z0xw61:hover{background:var(--color-bg);color:var(--color-text)}.modal-title.svelte-z0xw61{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.modal-subtitle.svelte-z0xw61{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--spacing-xs) 0 var(--spacing-lg)}.apply-form.svelte-z0xw61{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group.svelte-z0xw61{display:flex;flex-direction:column;gap:6px}.form-group.svelte-z0xw61 label:where(.svelte-z0xw61){font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-group.svelte-z0xw61 label:where(.svelte-z0xw61) .required:where(.svelte-z0xw61){color:var(--color-pink)}.form-group.svelte-z0xw61 input:where(.svelte-z0xw61),.form-group.svelte-z0xw61 textarea:where(.svelte-z0xw61){width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-text);background:var(--color-white);transition:border-color var(--transition-fast) var(--ease-gentle),box-shadow var(--transition-fast) var(--ease-gentle);outline:none;box-sizing:border-box}.form-group.svelte-z0xw61 input:where(.svelte-z0xw61)::placeholder,.form-group.svelte-z0xw61 textarea:where(.svelte-z0xw61)::placeholder{color:var(--color-text-muted)}.form-group.svelte-z0xw61 input:where(.svelte-z0xw61):focus,.form-group.svelte-z0xw61 textarea:where(.svelte-z0xw61):focus{border-color:var(--color-pink);box-shadow:0 0 0 3px #e8a4b41a}.form-group.svelte-z0xw61 textarea:where(.svelte-z0xw61){resize:vertical;min-height:60px}.submit-btn.svelte-z0xw61{width:100%;padding:12px 0;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-pink),var(--color-pink-l8));color:var(--color-white);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:opacity var(--transition-fast) var(--ease-gentle),transform var(--transition-fast) var(--ease-gentle)}.submit-btn.svelte-z0xw61:hover{opacity:.9}.submit-btn.svelte-z0xw61:active{transform:scale(.98)}.submit-btn.svelte-z0xw61:disabled{opacity:.6;cursor:not-allowed}.form-result.svelte-z0xw61{font-size:var(--font-size-sm);text-align:center;margin:0;min-height:1.4em}.form-result.svelte-z0xw61.success{color:var(--color-success)}.form-result.svelte-z0xw61.error{color:var(--color-error)}.links-page.svelte-12kc40u{max-width:800px;margin:0 auto;padding:0 var(--spacing-lg);min-height:100vh}.links-header.svelte-12kc40u{padding-top:80px;text-align:center;opacity:0;animation:svelte-12kc40u-header-enter .7s var(--ease-gentle) .1s forwards}@keyframes svelte-12kc40u-header-enter{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.links-greeting.svelte-12kc40u{font-size:var(--font-size-lg);color:var(--color-text-light);font-style:italic;margin:0;line-height:var(--line-height-relaxed)}.links-divider.svelte-12kc40u{width:60px;height:2px;background:linear-gradient(90deg,var(--color-pink),var(--color-blue));margin:var(--spacing-lg) auto 0;border-radius:1px}.friends-section.svelte-12kc40u{padding-top:var(--spacing-xl)}.friends-title.svelte-12kc40u{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-align:center;margin:0 0 var(--spacing-xl);letter-spacing:.15em}.friends-grid.svelte-12kc40u{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-lg);padding:0 var(--spacing-md)}@media(max-width:640px){.links-page.svelte-12kc40u{padding:0 var(--spacing-sm)}.links-header.svelte-12kc40u{padding-top:70px}.friends-grid.svelte-12kc40u{gap:var(--spacing-md);padding:0}}
