@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--primary: #7DD3FC;--primary-hover: #38BDF8;--primary-light: #BAE6FD;--primary-focus: #BAE6FD;--primary-contrast: #0C4A6E;--primary-rgb: 125, 211, 252;--primary-deep-rgb: 56, 189, 248;--crystal-highlight: #F0FBFF;--crystal-light: #BAE6FD;--crystal-gradient: linear-gradient(135deg, var(--crystal-highlight) 0%, var(--crystal-light) 28%, var(--primary) 62%, var(--primary-hover) 100%);--crystal-sheen: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, .58) 48%, rgba(255, 255, 255, .08) 58%, transparent 78%);--primary-glow: rgba(var(--primary-rgb), .4);--secondary: #10B981;--secondary-glow: rgba(16, 185, 129, .4);--bg-dark: #0a0e1a;--bg-gradient: radial-gradient(ellipse at 18% 18%, rgba(56, 189, 248, .07) 0%, transparent 38%), radial-gradient(ellipse at 82% 70%, rgba(125, 211, 252, .045) 0%, transparent 42%), linear-gradient(135deg, #0a0e1a 0%, #111827 50%, #0f172a 100%);--surface-glass: rgba(255, 255, 255, .05);--surface-glass-hover: rgba(255, 255, 255, .08);--border-glass: rgba(255, 255, 255, .1);--border-glass-hover: rgba(255, 255, 255, .15);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--shadow-glass: 0 8px 32px rgba(0, 0, 0, .4), 0 0 80px rgba(var(--primary-rgb), .1);--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.6}[data-theme=lingling]{--person-highlight: #ECFDF5;--person-light: #A7F3D0;--person-primary: #34D399;--person-deep: #059669;--person-contrast: #064E3B;--person-rgb: 52, 211, 153;--person-deep-rgb: 5, 150, 105;--person-gradient: linear-gradient(135deg, var(--person-highlight) 0%, var(--person-light) 28%, var(--person-primary) 62%, var(--person-deep) 100%);--person-glow: rgba(var(--person-rgb), .4)}[data-theme=lianlian]{--person-highlight: #FFF1F7;--person-light: #FBCFE8;--person-primary: #F9A8D4;--person-deep: #F472B6;--person-contrast: #831843;--person-rgb: 249, 168, 212;--person-deep-rgb: 244, 114, 182;--person-gradient: linear-gradient(135deg, var(--person-highlight) 0%, var(--person-light) 28%, var(--person-primary) 62%, var(--person-deep) 100%);--person-glow: rgba(var(--person-rgb), .4)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-gradient);color:var(--text-primary);min-height:100vh;overflow-x:hidden}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.stars-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.star{position:absolute;width:2px;height:2px;background:#f0fbff;border-radius:50%;opacity:.34;box-shadow:0 0 5px 1px #bae6fd73,0 0 13px #7dd3fc38;animation:twinkle 3.8s ease-in-out infinite,star-drift 12s ease-in-out infinite}.star:before,.star:after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(transparent,rgba(240,251,255,.9),transparent);border-radius:50%;transform:translate(-50%,-50%)}.star:before{width:1px;height:9px}.star:after{width:9px;height:1px}.star:nth-child(5n){width:3px;height:3px;animation-duration:5.2s,16s}.star:nth-child(7n){box-shadow:0 0 7px 2px #f0fbff94,0 0 18px #7dd3fc52;animation-duration:4.6s,14s}@keyframes twinkle{0%,to{opacity:.22}50%{opacity:.72}}@keyframes star-drift{0%,to{transform:translateZ(0)}50%{transform:translate3d(3px,-5px,0)}}@keyframes crystal-sweep{0%,68%{background-position:150% 0;opacity:0}75%{opacity:.72}to{background-position:-150% 0;opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.star,.app-icon:before,.hero-brand:before,.submit-btn:before,.emotion-pill.active:after,.edit-save-btn:before,.unlock-btn.confirm:before{animation:none}}.app-container{position:relative;z-index:1;width:100%;max-width:100%;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:0 16px}@media (min-width: 480px){.app-container{padding:0 24px}}@media (min-width: 768px) and (max-width: 1024px){.app-container{max-width:680px;padding:0 32px}}@media (min-width: 1025px){.app-container{max-width:720px;padding:0 40px}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0}@media (min-width: 481px){.app-header{padding:24px 0}}.header-brand{display:flex;align-items:center;gap:8px}@media (min-width: 481px){.header-brand{gap:10px}}.app-icon{width:36px;height:36px;background:var(--crystal-gradient);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--primary-contrast);box-shadow:inset 0 1px 1px #ffffffe6,inset 0 -3px 7px rgba(var(--primary-deep-rgb),.18),0 0 20px var(--primary-glow);position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.8)}@media (min-width: 481px){.app-icon{width:40px;height:40px;border-radius:12px;font-size:14px;box-shadow:inset 0 1px 1px #ffffffe6,inset 0 -3px 7px rgba(var(--primary-deep-rgb),.18),0 0 24px var(--primary-glow)}}.app-name{font-size:14px;font-weight:700;color:#bae6fd;letter-spacing:-.02em;text-shadow:0 0 14px rgba(125,211,252,.2)}@media (min-width: 481px){.app-name{font-size:16px}}.header-spacer{width:36px}@media (min-width: 481px){.header-spacer{width:40px}}.main-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}@media (min-width: 481px){.main-content{padding:40px 0}}.hero-card{background:var(--surface-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-glass);border-radius:var(--radius-xl);padding:32px 24px;text-align:center;box-shadow:var(--shadow-glass)}@media (min-width: 481px){.hero-card{padding:40px 32px}}.hero-brand{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--crystal-gradient);border-radius:18px;margin-bottom:20px;font-size:22px;font-weight:800;color:var(--primary-contrast);box-shadow:inset 0 2px 2px #ffffffe6,inset 0 -5px 10px rgba(var(--primary-deep-rgb),.2),0 0 40px var(--primary-glow);position:relative;border:1px solid rgba(240,251,255,.85)}@media (min-width: 481px){.hero-brand{width:64px;height:64px;border-radius:20px;margin-bottom:24px;font-size:24px}}.hero-brand:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.65),rgba(var(--primary-rgb),.12),transparent 72%);opacity:.55;z-index:-1}.app-icon:before,.hero-brand:before,.submit-btn:before,.edit-save-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--crystal-sheen);background-size:250% 100%;background-position:150% 0;pointer-events:none;animation:crystal-sweep 8s ease-in-out infinite}.app-icon:before,.hero-brand:before{animation-duration:9s}.hero-title{font-size:24px;font-weight:800;color:#bae6fd;letter-spacing:-.03em;margin-bottom:10px;text-shadow:0 0 22px rgba(125,211,252,.2)}@media (min-width: 481px){.hero-title{font-size:26px;margin-bottom:12px}}.hero-subtitle{font-size:14px;color:#bae6fdd1;line-height:1.6;margin-bottom:32px}@media (min-width: 481px){.hero-subtitle{font-size:15px;margin-bottom:40px}}.person-cards{display:flex;gap:12px;margin-bottom:28px}@media (min-width: 481px){.person-cards{gap:16px;margin-bottom:32px}}.person-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;background:var(--surface-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s var(--ease-out)}.person-card[data-theme]{border-color:rgba(var(--person-rgb),.24);box-shadow:inset 0 1px #ffffff0d,0 0 22px rgba(var(--person-rgb),.055)}@media (min-width: 481px){.person-card{gap:12px;padding:24px 16px}}.person-card:hover{background:var(--surface-glass-hover);border-color:rgba(var(--person-rgb),.56);box-shadow:inset 0 1px #ffffff1f,0 0 28px rgba(var(--person-rgb),.12);transform:translateY(-2px)}.person-card:active{transform:scale(.98)}.person-avatar{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;position:relative}@media (min-width: 481px){.person-avatar{width:72px;height:72px;font-size:28px}}[data-theme] .person-avatar{background:var(--person-gradient);color:var(--person-contrast);box-shadow:inset 0 2px 2px #ffffffd9,inset 0 -5px 10px rgba(var(--person-deep-rgb),.22),0 0 30px var(--person-glow);border:1px solid rgba(255,255,255,.8)}.person-card[data-theme] .person-name,.timeline-item[data-theme] .timeline-author{color:var(--person-light);text-shadow:0 0 12px rgba(var(--person-rgb),.24)}.person-avatar-unified{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;position:relative;border:1px solid rgba(255,255,255,.5);flex-shrink:0}.person-avatar-unified.avatar-32{width:32px;height:32px;font-size:12px}.person-avatar-unified.avatar-40{width:40px;height:40px;font-size:16px}.person-avatar-unified.avatar-48{width:48px;height:48px;font-size:18px}.person-avatar-unified.avatar-52{width:52px;height:52px;font-size:20px}.person-avatar-unified.avatar-56{width:56px;height:56px;font-size:20px}.person-avatar-unified.avatar-60{width:60px;height:60px;font-size:24px}.person-avatar-unified.avatar-72{width:72px;height:72px;font-size:28px}.person-avatar-unified[data-theme=lingling]{background:linear-gradient(135deg,#ecfdf5,#a7f3d0 28%,#34d399 62%,#059669);color:#064e3b;box-shadow:inset 0 2px 2px #ffffffd9,inset 0 -5px 10px #05966938,0 0 30px #34d39966}.person-avatar-unified[data-theme=lianlian]{background:linear-gradient(135deg,#fff1f7,#fbcfe8 28%,#f9a8d4 62%,#f472b6);color:#831843;box-shadow:inset 0 2px 2px #ffffffd9,inset 0 -5px 10px #f472b638,0 0 30px #f9a8d466}.person-avatar-unified[data-has-custom-avatar=true]{background:transparent;box-shadow:none;overflow:hidden}.person-avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-uploader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.avatar-uploader-modal{background:linear-gradient(135deg,#1e283cfa,#0f1928fa);border-radius:20px;padding:24px;width:100%;max-width:360px;border:1px solid rgba(255,255,255,.15);box-shadow:0 20px 60px #00000080}@media (min-width: 481px){.avatar-uploader-modal{padding:28px;max-width:400px}}.avatar-uploader-title{text-align:center;font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 20px}.avatar-uploader-preview{display:flex;justify-content:center;margin-bottom:24px}.avatar-preview-image{width:120px;height:120px;border-radius:50%;overflow:hidden;border:3px solid rgba(255,255,255,.2);box-shadow:0 0 30px #ffffff1a}.avatar-preview-image img{width:100%;height:100%;object-fit:cover}.avatar-preview-placeholder{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#ecfdf5,#a7f3d0 28%,#34d399 62%,#059669);display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:700;color:#064e3b;border:3px solid rgba(255,255,255,.75);box-shadow:inset 0 2px 2px #ffffffd9,inset 0 -5px 10px #05966938,0 0 30px #34d39966}.avatar-uploader-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:16px}.avatar-uploader-input{display:none}.avatar-uploader-btn{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .15s;min-width:80px}.avatar-uploader-btn-select{background:linear-gradient(135deg,#bae6fd,#7dd3fc);color:#0c4a6e}.avatar-uploader-btn-select:hover{background:linear-gradient(135deg,#7dd3fc,#38bdf8)}.avatar-uploader-btn-confirm{background:linear-gradient(135deg,#a7f3d0,#34d399);color:#064e3b}.avatar-uploader-btn-confirm:hover{background:linear-gradient(135deg,#34d399,#10b981)}.avatar-uploader-btn-cancel{background:#ffffff1a;color:var(--text-primary)}.avatar-uploader-btn-cancel:hover{background:#fff3}.avatar-uploader-uploading{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.avatar-uploader-progress{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.avatar-uploader-progress-bar{height:100%;background:linear-gradient(90deg,#34d399,#10b981);border-radius:4px;transition:width .2s}.avatar-uploader-progress-text{font-size:16px;font-weight:700;color:var(--text-primary)}.avatar-uploader-progress-label{font-size:13px;color:var(--text-muted)}.avatar-uploader-hint{text-align:center;font-size:12px;color:var(--text-muted);margin-top:12px;line-height:1.5}.person-avatar:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid rgba(255,255,255,.2)}.person-name{font-size:14px;font-weight:600;color:var(--text-primary)}@media (min-width: 481px){.person-name{font-size:15px}}.hint-text{font-size:12px;color:var(--text-muted)}@media (min-width: 481px){.hint-text{font-size:13px}}.loading-container{display:flex;align-items:center;justify-content:center;min-height:100vh}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-glass);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.timeline-page-header{display:flex;align-items:center;gap:10px;padding:14px 0 12px}@media (min-width: 481px){.timeline-page-header{gap:12px;padding:20px 0 16px}}.back-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-glass);border:1px solid var(--border-glass);border-radius:10px;color:var(--text-primary);font-size:16px;transition:all .2s var(--ease-out)}@media (min-width: 481px){.back-btn{width:40px;height:40px;border-radius:12px;font-size:18px}}.back-btn:hover{background:var(--surface-glass-hover);border-color:var(--primary-focus);box-shadow:0 0 16px rgba(var(--primary-rgb),.16)}.timeline-page-title{font-size:16px;font-weight:700;color:#bae6fd;text-shadow:0 0 14px rgba(125,211,252,.2)}@media (min-width: 481px){.timeline-page-title{font-size:18px}}.main-card{background:var(--surface-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(var(--primary-rgb),.24);border-radius:20px;padding:16px;margin-bottom:16px;box-shadow:inset 0 1px #ffffff12,0 0 24px rgba(var(--primary-rgb),.055)}@media (min-width: 481px){.main-card{border-radius:24px;padding:20px;margin-bottom:20px}}@media (min-width: 768px){.main-card{border-radius:28px;padding:24px;margin-bottom:24px}}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}@media (min-width: 481px){.card-header{gap:14px;margin-bottom:16px}}.card-avatar{flex-shrink:0}.card-header-text{flex:1;min-width:0}.card-header-title{font-size:15px;font-weight:700;color:var(--person-light);color:var(--text-primary);margin-bottom:2px}@media (min-width: 481px){.card-header-title{font-size:16px}}@media (min-width: 768px){.card-header-title{font-size:17px}}.card-header-subtitle{font-size:12px;color:var(--text-muted)}.input-wrapper{position:relative;margin-bottom:14px}@media (min-width: 481px){.input-wrapper{margin-bottom:16px}}.input-field{width:100%;padding:12px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:14px;color:var(--text-primary);font-size:14px;line-height:1.6;resize:none;min-height:90px;transition:all .2s var(--ease-out)}@media (min-width: 481px){.input-field{padding:14px;min-height:100px;border-radius:16px}}.input-field::placeholder{color:var(--text-muted)}.input-field:focus{outline:none;border-color:var(--person-light);background:linear-gradient(135deg,#ffffff12,rgba(var(--person-rgb),.035));box-shadow:inset 0 1px 8px rgba(var(--person-rgb),.06),0 0 0 3px rgba(var(--person-rgb),.08),0 0 18px rgba(var(--person-rgb),.12)}.emotion-section{margin-bottom:14px}@media (min-width: 481px){.emotion-section{margin-bottom:16px}}.emotion-label{font-size:12px;color:var(--text-muted);margin-bottom:8px;display:block}@media (min-width: 481px){.emotion-label{margin-bottom:10px}}.emotion-list{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px}@media (min-width: 481px){.emotion-list{gap:10px;padding-bottom:8px}}.emotion-list::-webkit-scrollbar{display:none}.emotion-pill{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:var(--radius-full);font-size:12px;color:var(--text-secondary);transition:all .2s var(--ease-out);white-space:nowrap;flex-shrink:0;min-height:36px}@media (min-width: 481px){.emotion-pill{gap:4px;padding:8px 14px;font-size:13px;min-height:40px}}.emotion-pill:hover{border-color:var(--person-deep);color:var(--text-primary)}.emotion-pill.active{position:relative;overflow:hidden;background:radial-gradient(ellipse at 18% 0%,rgba(255,255,255,.3),transparent 58%),linear-gradient(135deg,#ffffff38,rgba(var(--person-rgb),.18) 28%,rgba(var(--person-rgb),.2) 62%,rgba(var(--person-deep-rgb),.16));border-color:#ffffff9e;color:var(--person-light);box-shadow:inset 0 1px 1px #ffffff6b,inset 0 -2px 6px rgba(var(--person-deep-rgb),.16),0 0 16px rgba(var(--person-rgb),.18)}.emotion-pill.active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--crystal-sheen);background-size:250% 100%;background-position:150% 0;pointer-events:none;animation:crystal-sweep 8s ease-in-out infinite}.emotion-pill .emoji{font-size:12px}@media (min-width: 481px){.emotion-pill .emoji{font-size:13px}}.attachment-row{display:flex;gap:10px;margin-bottom:14px}@media (min-width: 481px){.attachment-row{gap:14px;margin-bottom:16px}}@media (min-width: 768px){.attachment-row{gap:16px}}.attachment-btn{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 8px;background:#ffffff0d;border-radius:12px;font-size:12px;color:var(--text-secondary);transition:all .2s var(--ease-out);min-height:48px;touch-action:manipulation}@media (min-width: 481px){.attachment-btn{gap:8px;padding:14px 16px;border-radius:14px;font-size:13px;min-height:52px}}@media (min-width: 768px){.attachment-btn{padding:12px 20px;font-size:14px}}.attachment-btn:hover{background:#ffffff14;color:var(--text-primary)}.location-button:disabled{opacity:.65;cursor:wait}.selected-location,.timeline-location{display:flex;align-items:flex-start;gap:7px;color:var(--person-light);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.selected-location{margin:-2px 0 14px;padding:10px 12px;background:linear-gradient(135deg,#ffffff14,rgba(var(--person-rgb),.045),rgba(var(--person-deep-rgb),.025));border:1px solid rgba(var(--person-rgb),.32);border-radius:12px;box-shadow:inset 0 1px #ffffff1f,0 0 18px rgba(var(--person-rgb),.06)}.selected-location-text{flex:1;min-width:0}.selected-location-icon{flex-shrink:0}.remove-location-btn{flex-shrink:0;width:22px;height:22px;margin:-3px -4px 0 0;color:var(--text-muted);font-size:18px;line-height:1}.remove-location-btn:hover{color:#fca5a5}.location-error{margin:-4px 0 12px;color:#fca5a5;font-size:12px}.submit-row{display:flex;gap:10px}@media (min-width: 481px){.submit-row{gap:12px}}.submit-btn{flex:1;position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:radial-gradient(ellipse at 18% 0%,rgba(255,255,255,.65),transparent 52%),var(--person-gradient);color:var(--person-contrast);border-radius:var(--radius-full);font-size:14px;font-weight:600;transition:all .2s var(--ease-out);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 1px #fffffff2,inset 0 -4px 8px rgba(var(--person-deep-rgb),.22),0 4px 20px rgba(var(--person-rgb),.28),0 0 30px rgba(var(--person-rgb),.18);min-height:52px;touch-action:manipulation}@media (min-width: 481px){.submit-btn{gap:8px;padding:14px 28px;font-size:15px;min-height:56px}}@media (min-width: 768px){.submit-btn{padding:16px 32px}}.submit-btn:hover{background:radial-gradient(ellipse at 18% 0%,rgba(255,255,255,.76),transparent 52%),var(--person-gradient);transform:translateY(-1px);box-shadow:inset 0 1px 1px #fffffffa,inset 0 -4px 8px rgba(var(--person-deep-rgb),.2),0 8px 30px rgba(var(--person-rgb),.34),0 0 36px rgba(var(--person-rgb),.24)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.cancel-edit-btn{padding:12px 16px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;font-weight:500;transition:all .2s var(--ease-out)}@media (min-width: 481px){.cancel-edit-btn{padding:14px 20px;font-size:14px}}.cancel-edit-btn:hover{background:#ffffff14;color:var(--text-primary)}.timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:flex;gap:10px;position:relative;padding-left:40px}@media (min-width: 481px){.timeline-item{gap:12px;padding-left:44px}}@media (min-width: 768px){.timeline-item{padding-left:48px}}.timeline-item:before{content:"";position:absolute;left:13px;top:16px;bottom:0;width:2px;background:linear-gradient(to bottom,var(--border-glass) 0%,transparent 100%)}@media (min-width: 481px){.timeline-item:before{left:18px;top:48px}}@media (min-width: 768px){.timeline-item:before{left:20px}}.timeline-item:last-child:before{display:none}.timeline-avatar{position:absolute;left:0;top:0;z-index:1}@media (min-width: 481px){.timeline-avatar{left:0;top:0;border-width:4px}}.timeline-content{flex:1;min-width:0;padding-bottom:16px}@media (min-width: 481px){.timeline-content{padding-bottom:20px}}.timeline-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.timeline-author{font-size:13px;font-weight:600;color:var(--text-primary)}@media (min-width: 481px){.timeline-author{font-size:14px}}.timeline-time{font-size:11px;color:var(--text-muted)}@media (min-width: 481px){.timeline-time{font-size:12px}}.timeline-emotion{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:rgba(var(--person-rgb),.15);border-radius:20px;font-size:12px;color:var(--person-light);margin-top:8px}.post-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .2s}@media (min-width: 481px){.post-actions{top:8px;right:8px}}.timeline-card:hover .post-actions{opacity:1}.post-action-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border-radius:6px;font-size:11px;color:var(--text-muted);transition:all .15s var(--ease-out)}@media (min-width: 481px){.post-action-btn{width:24px;height:24px;font-size:12px}}.post-action-btn:hover{background:#ffffff26;color:var(--text-primary)}.post-action-btn.delete:hover{background:#ef444433;color:#ef4444}.edit-form{display:flex;flex-direction:column;gap:12px}.edit-textarea{width:100%;padding:12px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:12px;color:var(--text-primary);font-size:14px;line-height:1.6;resize:none;font-family:inherit}.edit-textarea:focus{outline:none;border-color:var(--person-light);background:linear-gradient(135deg,#ffffff12,rgba(var(--person-rgb),.035));box-shadow:inset 0 1px 8px rgba(var(--person-rgb),.06),0 0 0 3px rgba(var(--person-rgb),.08),0 0 18px rgba(var(--person-rgb),.12)}.edit-actions{display:flex;gap:8px;justify-content:flex-end}.edit-cancel-btn{padding:8px 16px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:8px;color:var(--text-secondary);font-size:13px;transition:all .15s var(--ease-out)}.edit-cancel-btn:hover{background:#ffffff14;color:var(--text-primary)}.edit-save-btn{padding:8px 16px;position:relative;overflow:hidden;isolation:isolate;background:var(--person-gradient);border-radius:8px;color:var(--person-contrast);border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 1px #ffffffd1,inset 0 -3px 6px rgba(var(--person-deep-rgb),.18),0 0 18px rgba(var(--person-rgb),.16);font-size:13px;font-weight:500;transition:all .15s var(--ease-out)}.edit-save-btn:hover{background:var(--person-gradient);box-shadow:inset 0 1px 1px #fffffff2,inset 0 -3px 6px rgba(var(--person-deep-rgb),.16),0 0 22px rgba(var(--person-rgb),.26)}.delete-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.delete-confirm-dialog{background:var(--surface-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:20px;width:100%;max-width:280px;text-align:center}@media (min-width: 481px){.delete-confirm-dialog{padding:24px;max-width:300px}}.delete-confirm-dialog p{color:var(--text-primary);font-size:14px;margin-bottom:16px}@media (min-width: 481px){.delete-confirm-dialog p{font-size:15px;margin-bottom:20px}}.delete-confirm-actions{display:flex;gap:8px;justify-content:center}@media (min-width: 481px){.delete-confirm-actions{gap:10px}}.delete-cancel-btn{padding:7px 16px;background:#ffffff0d;border:1px solid var(--border-glass);border-radius:8px;color:var(--text-secondary);font-size:12px;transition:all .15s var(--ease-out)}@media (min-width: 481px){.delete-cancel-btn{padding:8px 20px;font-size:13px}}.delete-cancel-btn:hover{background:#ffffff14}.delete-confirm-btn{padding:7px 16px;background:#ef4444;border-radius:8px;color:#fff;font-size:12px;font-weight:500;transition:all .15s var(--ease-out)}@media (min-width: 481px){.delete-confirm-btn{padding:8px 20px;font-size:13px}}.delete-confirm-btn:hover{background:#dc2626}.timeline-card{background:var(--surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:16px;padding:14px;position:relative}.timeline-item[data-theme] .timeline-card{border-color:rgba(var(--person-rgb),.24);box-shadow:inset 0 1px #ffffff0f,0 0 20px rgba(var(--person-rgb),.055)}@media (min-width: 481px){.timeline-card{border-radius:20px;padding:16px}}@media (min-width: 768px){.timeline-card{border-radius:24px;padding:18px}}.timeline-text{font-size:14px;line-height:1.65;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.timeline-location{margin-top:8px;color:var(--text-muted)}@media (min-width: 481px){.timeline-text{font-size:15px;line-height:1.7}.timeline-location{font-size:13px}}.timeline-media-grid{display:grid;gap:6px;margin-top:12px;border-radius:12px;overflow:hidden;max-width:100%}@media (min-width: 481px){.timeline-media-grid{gap:8px;margin-top:14px;border-radius:14px}}@media (min-width: 768px){.timeline-media-grid{gap:10px;margin-top:16px;border-radius:16px}}.timeline-media-grid.single{grid-template-columns:1fr}.timeline-media-grid.single .timeline-media-item{aspect-ratio:auto;max-height:420px}@media (min-width: 481px){.timeline-media-grid.single .timeline-media-item{max-height:480px;max-width:420px}}.timeline-media-grid.single img,.timeline-media-grid.single video{object-fit:contain}.timeline-media-grid.double{grid-template-columns:repeat(2,1fr)}.timeline-media-grid.double .timeline-media-item{aspect-ratio:1}.timeline-media-grid.triple{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.timeline-media-grid.triple .timeline-media-item:first-child{grid-row:1 / 3;aspect-ratio:1}.timeline-media-grid.triple .timeline-media-item:nth-child(2),.timeline-media-grid.triple .timeline-media-item:nth-child(3){aspect-ratio:1}.timeline-media-grid.multiple:has(.timeline-media-item:nth-child(4)):not(:has(.timeline-media-item:nth-child(5))){grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.timeline-media-grid.multiple:has(.timeline-media-item:nth-child(4)):not(:has(.timeline-media-item:nth-child(5))) .timeline-media-item{aspect-ratio:1}.timeline-media-grid.multiple:has(.timeline-media-item:nth-child(5)){grid-template-columns:repeat(3,1fr)}.timeline-media-grid.multiple:has(.timeline-media-item:nth-child(5)) .timeline-media-item{aspect-ratio:1}.timeline-media-item{position:relative;background:#ffffff0d;cursor:pointer;overflow:hidden;border-radius:8px}@media (min-width: 481px){.timeline-media-item{border-radius:10px}}.timeline-media-item img,.timeline-media-item video{width:100%;height:100%;object-fit:cover}.media-img-lazy{opacity:0;transition:opacity .4s ease-in-out}.media-img-lazy-loaded,.media-img-lazy[src]{opacity:1}.timeline-media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.timeline-media-item:hover .timeline-media-overlay{opacity:1}.play-icon{width:44px;height:44px;background:#ffffffe6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-primary)}.media-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}@media (min-width: 481px){.media-modal{padding:24px}}.media-modal img,.media-modal video{max-width:100%;max-height:100%;max-height:calc(100vh - 100px);object-fit:contain;border-radius:12px}@media (min-width: 481px){.media-modal img,.media-modal video{border-radius:16px}}.media-modal-close{position:absolute;top:20px;right:20px;width:44px;height:44px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;cursor:pointer;transition:background .15s}.media-modal-close:hover{background:#fff3}.empty-state{text-align:center;padding:48px 24px}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-state-desc{font-size:14px;color:var(--text-muted)}.media-preview-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}@media (min-width: 481px){.media-preview-list{gap:12px;margin-top:14px}}.media-preview-item{position:relative;width:80px;height:80px;border-radius:12px;overflow:hidden;background:#ffffff0d;flex-shrink:0}@media (min-width: 481px){.media-preview-item{width:90px;height:90px;border-radius:14px}}.media-preview-item img,.media-preview-item video{width:100%;height:100%;object-fit:cover}.media-preview-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;background:#0009;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;cursor:pointer;opacity:1;transition:opacity .15s,background .15s;z-index:10}@media (min-width: 481px){.media-preview-remove{opacity:0}.media-preview-item:hover .media-preview-remove{opacity:1}}.media-preview-remove:hover{background:#ef4444cc}.media-preview-item.uploading{background:#7dd3fc1a}.media-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center}.upload-progress{position:relative;width:36px;height:36px}.progress-ring{width:36px;height:36px;transform:rotate(-90deg)}.progress-ring-bg{stroke:#fff3}.progress-ring-fill{stroke:var(--primary);stroke-linecap:round;transition:stroke-dasharray .2s ease}.progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff}.attachment-btn.disabled{opacity:.4;pointer-events:none}.unlock-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1ae6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeIn .3s ease-out}.unlock-modal{background:linear-gradient(180deg,#1e2332f2,#141928fa);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:28px 24px 24px;width:100%;max-width:260px;text-align:center;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}@media (min-width: 481px){.unlock-modal{border-radius:28px;padding:32px 28px 28px;max-width:280px}}.unlock-avatar{margin:0 auto 14px}@media (min-width: 481px){.unlock-avatar{margin-bottom:16px}}.unlock-name{font-size:16px;font-weight:600;color:var(--person-light);margin-bottom:4px;letter-spacing:-.01em;text-shadow:0 0 12px rgba(var(--person-rgb),.2)}@media (min-width: 481px){.unlock-name{font-size:18px}}.unlock-desc{font-size:11px;color:var(--text-muted);margin-bottom:16px}@media (min-width: 481px){.unlock-desc{font-size:12px;margin-bottom:20px}}.unlock-input-wrapper{position:relative;background:#ffffff08;border:1.5px solid rgba(255,255,255,.1);border-radius:14px;padding:3px;transition:all .3s ease}@media (min-width: 481px){.unlock-input-wrapper{border-radius:16px;padding:4px}}.unlock-input-wrapper.focused{border-color:var(--person-light);background:rgba(var(--person-rgb),.05);box-shadow:0 0 0 2px rgba(var(--person-rgb),.08),0 0 18px rgba(var(--person-rgb),.1)}.unlock-input-wrapper.error{border-color:#ef444480}.unlock-input{width:100%;padding:12px 14px;background:transparent;border:none;color:var(--text-primary);font-size:16px;text-align:center;letter-spacing:3px;font-weight:500}@media (min-width: 481px){.unlock-input{padding:14px 16px;font-size:18px;letter-spacing:4px}}.unlock-input::placeholder{color:#fff3;letter-spacing:6px}@media (min-width: 481px){.unlock-input::placeholder{letter-spacing:8px}}.unlock-input:focus{outline:none}.unlock-error{font-size:11px;color:#ef4444;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:4px}@media (min-width: 481px){.unlock-error{font-size:12px;margin-top:12px}}.unlock-actions{display:flex;gap:8px;margin-top:16px;justify-content:center}@media (min-width: 481px){.unlock-actions{gap:10px;margin-top:20px}}.unlock-btn{padding:8px 20px;border-radius:10px;font-size:12px;font-weight:500;transition:all .2s ease}@media (min-width: 481px){.unlock-btn{padding:10px 24px;border-radius:12px;font-size:13px}}.unlock-btn.cancel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary)}.unlock-btn.cancel:hover{background:#ffffff14;color:var(--text-primary)}.unlock-btn.confirm{position:relative;overflow:hidden;isolation:isolate;background:var(--person-gradient);border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 1px #ffffffe6,inset 0 -3px 6px rgba(var(--person-deep-rgb),.18),0 0 18px rgba(var(--person-rgb),.2);color:var(--person-contrast)}.unlock-btn.confirm:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--crystal-sheen);background-size:250% 100%;background-position:150% 0;pointer-events:none;animation:crystal-sweep 8s ease-in-out infinite}.unlock-btn.confirm:hover{transform:translateY(-1px);box-shadow:0 6px 24px #0006}.app-footer{padding:24px 0 16px;margin-top:auto}.footer-content{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-muted);font-size:11px}.footer-top{display:flex;align-items:center;gap:6px}.footer-brand{font-weight:600;letter-spacing:-.01em}.footer-divider{opacity:.5}.footer-text{opacity:.7}.footer-link{color:var(--text-muted);opacity:.7;transition:opacity .2s}.footer-link:hover{opacity:1;color:var(--primary-hover)}.toast-stack{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(420px,calc(100vw - 32px))}.toast{pointer-events:auto;cursor:pointer;padding:11px 18px;border-radius:12px;font-size:14px;line-height:1.5;text-align:center;color:var(--text-primary);background:#141826eb;border:1px solid var(--border-glass);box-shadow:var(--shadow-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:toast-in .24s ease-out}.toast-error{border-color:#f8717180;box-shadow:var(--shadow-card),0 0 0 1px #f8717126}.toast-success{border-color:#34d39980}.toast-info{border-color:rgba(var(--primary-rgb),.5)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.logout-btn{background:var(--surface-glass);border:1px solid var(--border-glass);border-radius:10px;color:var(--text-secondary);font-size:13px;padding:6px 14px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.logout-btn:hover{background:var(--surface-glass-hover);border-color:var(--border-glass-hover);color:var(--text-primary)}.timeline-page-title{flex:1;min-width:0;text-align:center;margin:0}.reaction-selector{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}.reaction-bubble{display:inline-flex;align-items:center;justify-content:center;animation:reaction-pop .22s var(--ease-out)}.reaction-bubble-lingling{background:#34d39933}.reaction-bubble-lianlian{background:#f9a8d433}.reaction-emoji{display:inline-block;font-size:16px;line-height:1}.reaction-trigger-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:transparent;border:1.5px dashed var(--border-glass-hover);color:var(--text-secondary);font-size:14px;line-height:1;cursor:pointer;transition:all .15s var(--ease-out)}.reaction-trigger-btn:hover{background:var(--surface-glass-hover);transform:scale(1.08)}.reaction-trigger-btn.has-reaction{border-style:solid;border-color:rgba(var(--primary-rgb),.6)}.reaction-trigger-btn.is-saving{opacity:.5}.reaction-trigger-placeholder{font-size:13px;opacity:.55}@keyframes reaction-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.emoji-picker-overlay{position:fixed;z-index:9999;display:flex;flex-direction:column;background:#fffffffa;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(0,0,0,.06);border-radius:12px;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a;overflow:hidden;animation:reaction-pop .16s var(--ease-out)}.emoji-picker-quick-bar{display:flex;align-items:center;gap:4px;min-height:36px;padding:6px 8px;background:#fffffff2;border-bottom:1px solid rgba(0,0,0,.05)}.emoji-quick-btn{display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border:none;border-radius:8px;background:transparent;color:#4b5563;font-size:16px;line-height:1;cursor:pointer;transition:all .12s var(--ease-out)}.emoji-quick-btn:hover{background:#0000000a;transform:scale(1.08)}.emoji-quick-toggle{font-size:10px;font-weight:600;color:#9ca3af;letter-spacing:.02em;min-width:24px;height:24px}.emoji-quick-toggle:hover{background:#0000000a;color:#6b7280}.emoji-quick-remove:hover{background:#ef444414;color:#ef4444}.emoji-picker-divider{width:1px;height:18px;margin:0 2px;background:#0000000f}.emoji-picker-content{border-top:1px solid rgba(0,0,0,.05);min-height:0;overflow:visible;background:#fff;max-height:340px;overflow-y:auto}.emoji-picker-content>div{display:block;width:100%}.emoji-picker-content .emoji-picker-react{background:#fff!important;border:none!important;box-shadow:none!important}.emoji-picker-error{padding:18px 16px;font-size:12px;color:var(--text-muted);text-align:center}@media (prefers-reduced-motion: reduce){.reaction-bubble,.emoji-picker-overlay,.reaction-trigger-btn,.emoji-quick-btn{animation:none;transition:none}}.countdown{margin-bottom:16px}.countdown-section{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 40px}@media (max-width: 639px){.countdown-section{flex-wrap:nowrap;justify-content:flex-start;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.countdown-section::-webkit-scrollbar{display:none}.countdown-section .gift-panel{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always}}.countdown-dots{display:flex;justify-content:center;gap:4px;margin-top:10px}.countdown-dot{width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center}.countdown-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:#ffffff3d;transition:background .25s ease,transform .25s ease}.countdown-dot[data-active=true]:before{background:var(--person-primary);transform:scale(1.3)}@media (min-width: 640px){.countdown-dots{display:none}}.gift-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;--gift-body: 232px;--gift-unit: calc(var(--gift-body) / 597.75);--gift-band: 58px}@media (min-width: 640px){.gift-panel{--gift-body: 260px}}.gift-stage{position:relative;display:flex;justify-content:center;align-items:flex-start;width:100%;padding-top:var(--gift-band)}.gift-caption{display:flex;align-items:baseline;gap:7px;margin-top:12px;font-size:12px;letter-spacing:.4px;color:var(--person-primary)}.gift-caption-name{font-weight:700}.gift-caption-date{color:#ffffff6b}.gift-panel[data-theme=lianlian] .gift-tear{filter:sepia(1) saturate(4) hue-rotate(295deg)}.gift-box{position:relative;z-index:2;display:block;width:var(--gift-body);padding:0;background:none;-webkit-tap-highlight-color:transparent}.gift-box:focus-visible{outline:2px solid rgba(164,195,222,.7);outline-offset:6px;border-radius:18px}.gift-art{position:relative;display:block;width:var(--gift-body);height:calc(787 * var(--gift-unit));overflow:visible}.gift-art-layer{position:absolute;bottom:0;display:block;height:auto;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gift-art-layer[data-state=closed]{left:calc(-9 * var(--gift-unit));width:calc(616 * var(--gift-unit))}.gift-art-layer[data-state=peeling]{left:0;width:calc(724 * var(--gift-unit))}.gift-panel[data-state=closed] .gift-art-layer[data-state=closed],.gift-panel[data-state=peeling] .gift-art-layer[data-state=peeling]{opacity:1}.gift-tear{position:absolute;left:calc((var(--tear-x) - 9) * var(--gift-unit));top:calc((203 + var(--tear-y)) * var(--gift-unit));width:calc(120 * var(--gift-unit) * var(--tear-size));clip-path:var(--tear-clip);transform:rotate(var(--tear-angle)) scaleX(var(--tear-flip));pointer-events:none}.gift-tear img{display:block;width:100%;height:auto}.gift-tear--fresh{animation:gift-tear-open .85s var(--ease-out)}@keyframes gift-tear-open{0%{clip-path:var(--tear-from)}to{clip-path:var(--tear-clip)}}.gift-tear--fresh img{animation:gift-paper-curl .85s var(--ease-out)}@keyframes gift-paper-curl{0%{transform:translate(0) rotate(0);filter:drop-shadow(0 0 0 rgba(8,16,30,0))}35%{transform:translate(-1px,-4px) rotate(-3deg);filter:drop-shadow(0 3px 4px rgba(8,16,30,.42))}to{transform:translate(0) rotate(0);filter:drop-shadow(0 0 0 rgba(8,16,30,0))}}.gift-scrap{position:absolute;left:calc((var(--tear-x) - 9) * var(--gift-unit) + 22 * var(--gift-unit));top:calc((203 + var(--tear-y)) * var(--gift-unit) + 24 * var(--gift-unit));width:calc(32 * var(--gift-unit));pointer-events:none;filter:drop-shadow(0 2px 3px rgba(8,16,30,.45));animation:gift-scrap-fall 1.05s ease-in forwards}.gift-scrap svg{display:block;width:100%;height:auto}@keyframes gift-scrap-fall{0%{transform:translate(0) rotate(0) scale(.85);opacity:.95}60%{opacity:.9}to{transform:translate(7px,46px) rotate(-38deg) scale(.55);opacity:0}}.gift-scrap--small{left:calc((var(--tear-x) - 9) * var(--gift-unit) + 46 * var(--gift-unit));top:calc((203 + var(--tear-y)) * var(--gift-unit) + 34 * var(--gift-unit));width:calc(17 * var(--gift-unit));animation-duration:1.2s;animation-delay:.14s;animation-name:gift-scrap-fall-small}@keyframes gift-scrap-fall-small{0%{transform:translate(0) rotate(0) scale(.8);opacity:.9}60%{opacity:.85}to{transform:translate(-5px,34px) rotate(46deg) scale(.5);opacity:0}}.gift-note{position:absolute;z-index:1;left:50%;bottom:var(--note-bottom);min-width:78px;padding:8px 15px 9px;clip-path:polygon(1% 4%,26% 0%,52% 3%,78% 0%,99% 4%,100% 62%,93% 74%,97% 88%,82% 96%,66% 89%,50% 99%,34% 90%,18% 97%,4% 88%,8% 74%,0% 60%);background:#f7efd9;box-shadow:0 10px 24px #060c1873;color:#2f4a6d;text-align:center;opacity:0;transform:translate(-50%,20px) rotate(-4deg) scale(.9);pointer-events:none;transition:opacity .26s ease,transform .48s var(--ease-out)}.gift-note[data-open=true]{opacity:1;transform:translate(-50%) rotate(-2.2deg) scale(1)}.gift-panel[data-phase=tear] .gift-note[data-open=true]{transition-delay:.5s}.gift-note-text{font-size:15px;font-weight:700;line-height:1.4;letter-spacing:.5px;color:#2f4a6d}.gift-note-blessing{margin-top:3px;font-size:11px;line-height:1.4;color:#2f4a6db3}.gift-panel[data-state=closed]{--note-bottom: calc(554 * var(--gift-unit))}.gift-panel[data-state=peeling]{--note-bottom: calc(787 * var(--gift-unit) + 8px)}.gift-art{transform-origin:50% 100%;animation:gift-wobble 7.5s ease-in-out infinite}@keyframes gift-wobble{0%,84%{transform:rotate(0)}88%{transform:rotate(-2.6deg)}92%{transform:rotate(1.9deg)}96%{transform:rotate(-.8deg)}to{transform:rotate(0)}}.gift-panel[data-celebrate=true] .gift-art{animation:none}.gift-confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none}.gift-confetti-piece{position:absolute;width:17px;height:17px;margin-left:-8px;margin-top:-8px;opacity:0;animation:gift-confetti-fly 1.7s cubic-bezier(.22,.68,.35,1) var(--delay) forwards}@keyframes gift-confetti-fly{0%{opacity:0;transform:translate(0) rotate(0) scale(.3)}20%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(var(--scale))}}.gift-confetti--still .gift-confetti-piece{animation:none;opacity:1;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(var(--scale))}@media (prefers-reduced-motion: reduce){.gift-art,.gift-tear--fresh{animation:none}.gift-scrap{display:none}.gift-panel[data-phase=tear] .gift-note[data-open=true]{transition-delay:0s}.gift-confetti-piece{animation:none;opacity:1;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(var(--scale))}}
