:root{color:#3f342c;background:#fffaf0;font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--cream: #fffaf0;--cream-deep: #f7edda;--pink: #f8d8d8;--pink-strong: #e88996;--beige: #eadcc8;--honey: #f6d77c;--sage: #b8c8a7;--ink: #3f342c;--muted: #7b6b5f;--line: rgba(128, 91, 71, .16);--glass-bg: rgba(255, 253, 247, .56);--glass-strong: rgba(255, 253, 247, .72);--glass-border: rgba(255, 255, 255, .72);--edge-light: rgba(255, 255, 255, .92);--shadow: 0 8px 18px rgba(116, 82, 55, .1), 0 28px 72px rgba(116, 82, 55, .2);--shadow-lifted: 0 10px 22px rgba(116, 82, 55, .12), 0 38px 90px rgba(116, 82, 55, .26);--card-radius: 18px}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.8) 0 18%,transparent 38%),radial-gradient(circle at 82% 8%,rgba(255,246,220,.62) 0 16%,transparent 36%),linear-gradient(180deg,#fff8ec,#f5e8d8 58%,#f1dfcf);background-attachment:fixed}body:before{content:none}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{position:relative;z-index:1;width:min(1180px,calc(100% - 32px));min-height:100vh;margin:0 auto;padding:18px 0 48px}.ambient-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.ambient-glow{position:absolute;border-radius:999px;filter:blur(48px);will-change:transform,opacity}.ambient-glow-cream{top:8%;left:6%;width:280px;height:220px;background:#fffff67a}.ambient-glow-pink{top:24%;right:10%;width:240px;height:210px;background:#f8d8d857}.ambient-glow-honey{right:24%;bottom:8%;width:300px;height:230px;background:#f6d77c2e}.ambient-decor{position:absolute;color:#e889963d;will-change:transform,opacity}.ambient-decor-heart{top:16%;left:13%}.ambient-decor-star{top:20%;right:18%;color:#f6d77c47}.ambient-decor-sparkle{right:31%;bottom:18%;color:#b8c8a73d}.route-transition{will-change:opacity,filter}.site-header{position:sticky;top:12px;z-index:10;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--glass-border);border-radius:var(--card-radius);background:#fffdf7d6;box-shadow:0 8px 18px #6247311a,0 22px 58px #6247312e,inset 0 1px 0 var(--edge-light);-webkit-backdrop-filter:blur(22px) saturate(1.24);backdrop-filter:blur(22px) saturate(1.24)}.site-header:before{content:none}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--card-radius);color:#9b4f59;background:linear-gradient(135deg,#f8d8d8,#f6d77c);box-shadow:inset 0 1px #ffffffd6,0 10px 20px #e8899633}.brand-copy{display:grid;gap:2px}.brand-title{font-size:1rem;font-weight:800}.brand-subtitle{color:var(--muted);font-size:.78rem}.site-nav{display:flex;gap:6px;align-items:center}.nav-link{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:var(--card-radius);color:#6f5d50;font-size:.9rem;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;white-space:nowrap}.nav-link:hover{transform:translateY(-1px);background:#ffffff9e}.nav-link.is-active{border-color:#e8899647;color:#8d4a54;background:#f8d8d88a;box-shadow:inset 0 1px #ffffffb8}.page-shell{padding-top:36px}.page-flow{display:grid;gap:28px}.home-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:22px;align-items:stretch}.hero-copy,.hero-note,.page-header,.stat-card,.memory-card,.place-card,.wish-card,.capsule-card{position:relative;border:1px solid var(--glass-border);border-radius:var(--card-radius);background:#fffdf7c2;box-shadow:0 10px 24px #7452371f,0 34px 90px #7452373b,0 14px #a5705214,0 2px #ffffffbd,inset 0 1px 0 var(--edge-light),inset 0 -1px #7452370f;-webkit-backdrop-filter:blur(24px) saturate(1.18);backdrop-filter:blur(24px) saturate(1.18);filter:drop-shadow(0 22px 24px rgba(116,82,55,.15));isolation:isolate;clip-path:none}.hero-copy:after,.hero-note:after,.page-header:after,.stat-card:after,.memory-card:after,.place-card:after,.wish-card:after,.capsule-card:after,.wishlist-column:after,.capsule-column:after{position:absolute;top:1px;right:1px;bottom:1px;left:1px;pointer-events:none;border-radius:calc(var(--card-radius) - 1px);content:"";background:linear-gradient(135deg,rgba(255,255,255,.44),transparent 38%);opacity:.9}.hero-copy{min-height:320px;padding:56px;background:linear-gradient(135deg,#ffffffd1,#fffaf09e),linear-gradient(120deg,#f8d8d861,#f6d77c38)}.hero-copy:before{content:none}.hero-copy>*{position:relative;z-index:1}.stat-card>*,.memory-card>*,.place-card>*,.wish-card>*,.capsule-card>*,.wishlist-column>*,.capsule-column>*{position:relative;z-index:1}.eyebrow{margin:0 0 10px;color:#9b5961;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.hero-copy h1,.page-header h1{margin:0;color:var(--ink);font-size:5.2rem;line-height:.98;letter-spacing:0}.hero-line{width:fit-content;margin:24px 0 16px;padding:9px 12px;border-radius:var(--card-radius);color:#7c454d;background:#f8d8d8c7;font-weight:800}.hero-description{max-width:680px;margin:0;color:#66574d;font-size:1.12rem;line-height:1.9}.hero-note{display:grid;align-content:space-between;gap:18px;min-height:320px;padding:26px;background:linear-gradient(180deg,#ffffffbd,#fffaf0a8),linear-gradient(145deg,#b8c8a72e,#eadcc852)}.hero-note p{margin:0;color:#5f5248;font-size:1.02rem;line-height:1.9}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.stat-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;min-height:116px;height:100%;padding:20px}.stat-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:var(--card-radius);color:#72424a;box-shadow:inset 0 1px #ffffffbd,0 10px 22px #7452371f}.tone-rose .stat-icon{background:#f8d8d8}.tone-honey .stat-icon{background:#f6d77c}.tone-sage .stat-icon{background:#dbe7cf}.stat-label,.capsule-date{margin:0;color:var(--muted);font-size:.86rem}.stat-value{display:block;margin:5px 0;color:var(--ink);font-size:2.35rem;line-height:1.05}.stat-hint{color:#806d61;font-size:.9rem;line-height:1.5}.page-header{padding:34px;overflow:hidden;background:linear-gradient(135deg,#ffffffd1,#fffaf0b3),#fffdf7db;box-shadow:0 10px 22px #74523724,0 36px 92px #74523747,0 14px #a5705217,inset 0 1px #ffffffeb,inset 0 -1px #74523714;-webkit-backdrop-filter:blur(30px) saturate(1.22);backdrop-filter:blur(30px) saturate(1.22);filter:drop-shadow(0 28px 30px rgba(116,82,55,.17));clip-path:none}.page-header.has-photo-slot{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.48fr);gap:22px;align-items:stretch}.page-header-copy{position:relative;z-index:1}.page-header h1{font-size:3.3rem}.page-header-description{max-width:760px;margin:14px 0 0;color:var(--muted);line-height:1.8}.page-header-action{margin-top:20px}.photo-upload-surface{position:relative;z-index:1;display:grid;min-height:210px;place-items:center;overflow:hidden;border:1px dashed rgba(141,74,84,.24);border-radius:var(--card-radius);background:linear-gradient(135deg,#f8d8d880,#f6d77c57),linear-gradient(180deg,#ffffff9e,#fffaf0b8);background-position:center;background-size:cover;box-shadow:0 10px 20px #7452371f,0 26px 54px #7452372e,inset 0 1px #ffffffc7,inset 0 -18px 45px #3f342c14;clip-path:none}.photo-upload-surface:before{position:absolute;right:22px;bottom:22px;width:96px;height:74px;content:"";background:#ffffff57;border-radius:var(--card-radius);box-shadow:inset 0 1px #ffffffb8,0 18px 45px #7452371a}.photo-upload-surface.has-image{border-style:solid}.photo-upload-surface.has-image:before,.photo-upload-surface.has-image:after{content:none}.photo-upload-surface.is-compact{min-height:168px}.photo-upload-surface input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-control{position:relative;z-index:3;display:inline-flex;gap:8px;align-items:center;min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.76);border-radius:var(--card-radius);color:#754853;background:#fffdf7bd;box-shadow:0 8px 18px #74523729,0 20px 38px #74523730,inset 0 1px #ffffffe0;-webkit-backdrop-filter:blur(16px) saturate(1.18);backdrop-filter:blur(16px) saturate(1.18);font-weight:800;cursor:pointer}.upload-replace-hotspot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;cursor:pointer}.shape-mask{position:absolute;z-index:2;display:grid;place-items:center;color:#ffffff94;filter:drop-shadow(0 10px 18px rgba(116,82,55,.12))}.mask-heart{top:22px;left:24px;width:82px;height:72px;background:#f8d8d857;border-radius:var(--card-radius)}.mask-star{right:44px;top:28px}.mask-sparkle{left:34px;bottom:28px}.card-grid{display:grid;gap:16px;align-items:stretch}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.memory-card,.wish-card,.capsule-card{height:100%;padding:22px}.wish-card{display:grid;grid-template-rows:auto 1fr;min-height:138px;align-content:start;background:#fffdf7d6;box-shadow:0 8px 18px #7452371f,0 22px 52px #7452372e,0 8px #a5705212,inset 0 1px #ffffffe6}.wish-card:before,.capsule-card:before{position:absolute;top:14px;left:0;width:6px;height:48px;content:"";background:#e889968a;border-radius:var(--card-radius)}.capsule-card:before{background:#f6d77c8a}.memory-card{position:relative;overflow:hidden;min-height:224px;padding-right:132px}.memory-card:before{position:absolute;inset:0 auto 0 0;width:7px;height:auto;content:"";background:var(--accent-color, var(--pink));border-radius:var(--card-radius);opacity:.82}.heart-upload-shell{position:absolute;top:16px;right:20px;z-index:3;width:92px;height:72px;filter:drop-shadow(0 8px 14px rgba(116,82,55,.16)) drop-shadow(0 18px 28px rgba(116,82,55,.16))}.heart-photo-upload{display:grid;width:100%;height:100%;place-items:center;gap:2px;color:#8b4b54;background:linear-gradient(145deg,#f8d8d8e6,#fffdf7b8),#fffdf7cc;background-position:center;background-size:cover;border-radius:var(--card-radius);cursor:pointer}.heart-photo-upload.has-image{background-color:#fff}.heart-upload-shell input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.accent-rose{--accent-color: #e88996}.accent-honey{--accent-color: #f6d77c}.accent-sage{--accent-color: #b8c8a7}.accent-cream{--accent-color: #d8b68d}.card-topline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.soft-badge,.status-pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 9px;border-radius:var(--card-radius);color:#74464d;background:#f8d8d894;font-size:.84rem;font-weight:700;box-shadow:inset 0 1px #ffffffb8}.soft-badge.muted{color:#725d4a;background:#f6d77c52}.memory-card h2,.place-card h2,.wish-card h2,.capsule-card h2{margin:0;color:var(--ink);font-size:1.25rem;line-height:1.35}.memory-card p,.place-card p,.wish-card p,.capsule-card p{color:#6d5d51;line-height:1.78}.wish-card p{margin-bottom:0}.card-footnote{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:#806e61;font-size:.9rem}.places-list,.capsule-list,.column-list{display:grid;gap:16px}.column-list{grid-auto-rows:minmax(138px,auto)}.place-card{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);overflow:hidden;background:#fffdf7d1}.photo-placeholder{display:grid;min-height:260px;place-items:center;align-content:center;gap:10px;color:#3f342cb8;font-weight:800;box-shadow:inset -1px 0 #ffffff6b;border-radius:var(--card-radius) 0 0 var(--card-radius)}.photo-placeholder span{font-size:1.4rem}.place-rose{background:radial-gradient(circle at 28% 20%,rgba(255,255,255,.58),transparent 34%),linear-gradient(135deg,#f8d8d8e6,#fffaf05c)}.place-honey{background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.56),transparent 35%),linear-gradient(135deg,#f6d77cd1,#fffaf061)}.place-beige{background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.58),transparent 36%),linear-gradient(135deg,#eadcc8f2,#fffaf061)}.place-sage{background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.56),transparent 35%),linear-gradient(135deg,#b8c8a7d1,#fffaf061)}.place-sun{background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.56),transparent 34%),linear-gradient(135deg,#ffe295db,#f8d8d85c)}.place-content{padding:24px}.place-heading{display:flex;gap:10px;align-items:center}.place-pin{display:grid;width:32px;height:32px;place-items:center;border-radius:var(--card-radius);color:#8b4b54;background:#f8d8d8}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;margin-top:4px;padding:0 12px;border:1px solid rgba(232,137,150,.2);border-radius:var(--card-radius);color:#804d55;background:#f8d8d859;font-weight:800}.rotate-icon{transform:rotate(180deg)}.sub-place-list{display:grid;gap:10px;margin-top:16px}.sub-place{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:var(--card-radius);background:#ffffff57;box-shadow:inset 0 1px #ffffffad;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sub-photo{display:grid;width:58px;height:58px;place-items:center;border-radius:var(--card-radius);color:#3f342c9e}.sub-place h3{margin:0;font-size:1rem}.sub-place p{margin:4px 0 0;font-size:.92rem}.wish-header{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;min-height:34px}.wishlist-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.wishlist-column,.capsule-column{position:relative;display:grid;align-content:start;gap:14px;min-height:220px;height:100%;padding:16px;border:1px solid var(--glass-border);border-radius:var(--card-radius);background:#fffdf7bd;box-shadow:var(--shadow),0 3px #ffffff85,inset 0 1px 0 var(--edge-light);-webkit-backdrop-filter:blur(22px) saturate(1.18);backdrop-filter:blur(22px) saturate(1.18);filter:drop-shadow(0 18px 20px rgba(116,82,55,.13))}.column-heading{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}.column-heading h2{margin:0;font-size:1.08rem}.column-heading span{display:grid;min-width:30px;height:30px;place-items:center;border-radius:var(--card-radius);color:#754853;background:#f8d8d880;font-size:.86rem;font-weight:800;box-shadow:inset 0 1px #ffffffb8}.status-pill{flex:0 0 auto;font-size:.8rem}.status-want{color:#774b54;background:#f8d8d89e}.status-plan{color:#765c1d;background:#f6d77c7a}.status-done{color:#4f6847;background:#b8c8a780}.capsule-card{display:grid;grid-template-columns:auto 1fr;gap:16px;min-height:156px;height:auto;align-content:start;align-items:start;background:#fffdf7d1;box-shadow:0 8px 18px #7452371f,0 22px 52px #7452372e,0 8px #a5705212,inset 0 1px #ffffffe6}.capsule-card.is-open{background:#fffdf7e0}.capsule-card.is-sealing{animation:capsule-seal-in .9s ease-out both}.capsule-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:var(--card-radius);color:#7e4a52;background:#f8d8d89e}.capsule-content{margin-bottom:0}.capsule-locked{width:fit-content;margin-bottom:0;padding:10px 12px;border-radius:var(--card-radius);color:#786858;background:#eadcc875;font-weight:700}.capsule-action-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.icon-action-button,.icon-only-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.74);color:#794853;background:#fffdf7a8;box-shadow:0 6px 14px #7452371c,inset 0 1px #ffffffe0;-webkit-backdrop-filter:blur(14px) saturate(1.12);backdrop-filter:blur(14px) saturate(1.12)}.icon-action-button{gap:6px;min-height:34px;padding:0 10px;border-radius:var(--card-radius);font-size:.82rem;font-weight:800}.icon-only-button{width:38px;height:38px;border-radius:var(--card-radius)}.icon-action-button.danger,.soft-action-button.danger{color:#9f2f3a;background:#ffeeeec2}.soft-action-button.danger.strong{color:#fffaf7;background:linear-gradient(145deg,#cb3a48f0,#9c2030e6),#fffdf7b8;box-shadow:0 10px 20px #821e2a33,0 24px 46px #9c20303d,inset 0 1px #ffffff8a}.add-capsule-button{display:grid;width:58px;height:52px;place-items:center;border:1px solid rgba(255,255,255,.72);color:#fffaf7;background:linear-gradient(145deg,#e88996eb,#c45b6fd6),#fffdf7b8;box-shadow:0 8px 16px #74523729,0 22px 38px #c45b6f3d,inset 0 1px #ffffffb8,inset 0 -8px 18px #722b3d29;border-radius:var(--card-radius)}.capsule-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;grid-auto-rows:1fr}.capsule-column{grid-template-rows:auto 1fr;min-height:100%}.capsule-list{align-content:start;grid-auto-rows:minmax(156px,auto)}.soft-add-button,.soft-action-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.74);border-radius:var(--card-radius);color:#794853;background:#fffdf7b8;box-shadow:0 8px 18px #74523721,0 18px 34px #74523724,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(16px) saturate(1.14);backdrop-filter:blur(16px) saturate(1.14);font-weight:800}.soft-add-button{background:linear-gradient(135deg,#f8d8d8bd,#fffdf7c7),#fffdf7b8}.soft-action-button.primary{color:#fffaf7;background:linear-gradient(145deg,#e88996eb,#c45b6fd1),#fffdf7b8;box-shadow:0 8px 18px #74523724,0 22px 42px #c45b6f33,inset 0 1px #ffffffb8}.hidden-trip-trigger{display:inline-flex;align-items:center;min-height:38px;padding:0;border:0;border-bottom:1px dashed rgba(141,74,84,.34);border-radius:0;color:#8a5961;background:transparent;font-weight:800}.soft-editor-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:18px;border:1px solid var(--glass-border);border-radius:var(--card-radius);background:#fffdf7c7;box-shadow:0 10px 24px #7452371f,0 30px 78px #74523733,0 10px #a5705212,inset 0 1px 0 var(--edge-light);-webkit-backdrop-filter:blur(24px) saturate(1.16);backdrop-filter:blur(24px) saturate(1.16)}.soft-editor-card:after,.wish-interaction-panel:after{position:absolute;top:1px;right:1px;bottom:1px;left:1px;pointer-events:none;border-radius:calc(var(--card-radius) - 1px);content:"";background:linear-gradient(135deg,rgba(255,255,255,.42),transparent 42%)}.soft-field{position:relative;z-index:1;display:grid;gap:7px;color:#735d51;font-size:.88rem;font-weight:800}.soft-field input,.soft-field textarea,.soft-field select,.sub-place-editor input,.sub-place-editor textarea{width:100%;border:1px solid rgba(128,91,71,.16);border-radius:var(--card-radius);color:var(--ink);background:#ffffff94;box-shadow:inset 0 1px #fffc,0 8px 18px #74523714;font:inherit}.soft-field input,.soft-field select,.sub-place-editor input{min-height:40px;padding:0 12px}.soft-field textarea,.sub-place-editor textarea{min-height:96px;padding:10px 12px;resize:vertical}.soft-field input:focus,.soft-field textarea:focus,.soft-field select:focus,.sub-place-editor input:focus,.sub-place-editor textarea:focus{border-color:#e889967a;outline:3px solid rgba(248,216,216,.4)}.soft-action-row{position:relative;z-index:1;display:flex;flex-wrap:wrap;grid-column:1 / -1;gap:10px;align-items:center}.wish-card[role=button],.capsule-card[role=button]{cursor:pointer}.wish-card:focus-visible,.capsule-card:focus-visible{outline:3px solid rgba(248,216,216,.56);outline-offset:3px}.wish-card.is-active{border-color:#e889965c;background:#fffdf7e6}.wish-interaction-panel{position:relative;display:grid;gap:12px;margin-top:16px;padding:14px;border:1px solid rgba(255,255,255,.72);border-radius:var(--card-radius);background:linear-gradient(135deg,#ffffffa3,#fffaf085),#f8d8d82e;box-shadow:0 8px 18px #7452371c,0 20px 48px #74523721,inset 0 1px #ffffffd1;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12)}.photo-placeholder{position:relative;overflow:hidden;background-position:center;background-size:cover;cursor:pointer}.photo-placeholder:after,.sub-photo:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(180deg,#ffffff0f,#3f342c24);opacity:0}.photo-placeholder.has-image:after,.sub-photo.has-image:after{content:none}.photo-placeholder input,.sub-photo input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-placeholder small{color:#3f342c94;font-size:.82rem}.sub-place{cursor:pointer}.sub-place.is-editing{border-color:#e8899657;background:#fffdf780;box-shadow:0 8px 18px #7452371a,inset 0 1px #ffffffbd}.sub-photo{position:relative;overflow:hidden;background-position:center;background-size:cover;box-shadow:inset 0 1px #ffffffad,0 8px 16px #7452371a;cursor:pointer}.sub-place-copy{min-width:0}.sub-place-editor{display:grid;gap:8px}.sub-place-editor textarea{min-height:82px;line-height:1.6}.add-sub-place-button{width:fit-content}.capsule-reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:22px;background:#5640302e;-webkit-backdrop-filter:blur(14px) saturate(1.06);backdrop-filter:blur(14px) saturate(1.06)}.image-crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;display:grid;place-items:center;padding:22px;background:#56403038;-webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08)}.image-crop-card{display:grid;width:min(620px,100%);gap:16px;padding:24px;border:1px solid rgba(255,255,255,.78);border-radius:var(--card-radius);background:linear-gradient(180deg,#ffffffeb,#fffaf0d1),#fffdf7e6;box-shadow:0 12px 26px #74523729,0 38px 92px #74523742,inset 0 1px #fffffff0;-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}.image-crop-stage{position:relative;width:100%;max-height:min(58vh,560px);overflow:hidden;border:1px solid rgba(128,91,71,.16);border-radius:var(--card-radius);background:#fffdf7b8;box-shadow:inset 0 1px #ffffffc7,0 10px 22px #7452371f;touch-action:none}.image-crop-stage img{display:block;width:100%;max-height:min(58vh,560px);object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-crop-frame{position:absolute;z-index:2;border:2px solid rgba(255,255,255,.96);border-radius:calc(var(--card-radius) - 4px);box-shadow:0 0 0 999px #3f342c6b,0 8px 24px #3f342c38,inset 0 0 0 1px #8d4a5452}.crop-edge{position:absolute;border:0;border-radius:999px;background:#fffdf7f2;box-shadow:0 3px 10px #3f342c33,inset 0 1px #ffffffeb}.crop-edge-top,.crop-edge-bottom{left:50%;width:78px;height:10px;transform:translate(-50%);cursor:ns-resize}.crop-edge-top{top:-6px}.crop-edge-bottom{bottom:-6px}.crop-edge-left,.crop-edge-right{top:50%;width:10px;height:78px;transform:translateY(-50%);cursor:ew-resize}.crop-edge-left{left:-6px}.crop-edge-right{right:-6px}.capsule-reveal-stage{display:grid;justify-items:center;width:min(520px,100%)}.capsule-form-card,.delete-confirm-card{position:relative;display:grid;width:min(540px,100%);gap:14px;padding:24px;border:1px solid rgba(255,255,255,.76);border-radius:var(--card-radius);color:var(--ink);background:linear-gradient(180deg,#ffffffe6,#fffaf0cc),#fffdf7db;box-shadow:0 12px 26px #74523729,0 38px 92px #74523742,inset 0 1px #fffffff0;-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-heading h2,.delete-confirm-card h2{margin:0;color:var(--ink);font-size:1.36rem}.capsule-form-card .eyebrow,.delete-confirm-card .eyebrow{margin-bottom:5px}.form-error{margin:0;color:#9f2f3a;font-size:.9rem;font-weight:800}.delete-confirm-card{justify-items:start}.delete-confirm-card p:not(.eyebrow){margin:0;color:#6d5d51;line-height:1.75}.delete-confirm-icon{display:grid;width:50px;height:50px;place-items:center;border-radius:var(--card-radius);color:#9f2f3a;background:#ffe2e2d1;box-shadow:0 8px 18px #9c203024,inset 0 1px #fffc}.capsule-shell{position:relative;z-index:2;width:154px;height:72px;margin-bottom:-12px;overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:999px;background:linear-gradient(90deg,#f8d8d8f0,#fffdf7e6 52%,#f6d77c94),#fffdf7d6;box-shadow:0 12px 26px #74523729,0 28px 64px #74523738,inset 0 1px #ffffffeb}.capsule-shell:before,.capsule-shell:after{position:absolute;top:0;bottom:0;width:50%;content:"";background:#fffdf747}.capsule-shell:before{left:0;transform:translate(-10%);animation:capsule-left-open .72s ease-out .26s both}.capsule-shell:after{right:0;transform:translate(10%);animation:capsule-right-open .72s ease-out .26s both}.capsule-shell span{position:absolute;top:13px;right:60px;bottom:13px;left:60px;z-index:1;border-radius:var(--card-radius);background:#e889966b;box-shadow:0 0 24px #fffdf7b3}.unfolded-letter{position:relative;z-index:1;width:100%;padding:28px;border:1px solid rgba(255,255,255,.76);border-radius:var(--card-radius);color:var(--ink);background:linear-gradient(180deg,#ffffffe0,#fffaf0c7),#fffdf7db;box-shadow:0 12px 26px #74523729,0 38px 92px #74523742,inset 0 1px #fffffff0;-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}.unfolded-letter h2{margin:6px 0 12px;font-size:1.38rem}.unfolded-letter p{line-height:1.8}.locked-letter-preview{display:grid;gap:14px;margin:14px 0 18px}.locked-letter-preview p{margin:0;color:#725f53}.capsule-countdown{display:inline-flex;align-items:baseline;width:fit-content;gap:8px;padding:12px 16px;border:1px solid rgba(255,255,255,.74);border-radius:var(--card-radius);color:#7c454d;background:linear-gradient(135deg,#f8d8d894,#fffdf7b8),#fffdf7b8;box-shadow:0 8px 18px #7452371f,0 20px 40px #74523721,inset 0 1px #ffffffe0;font-weight:800}.capsule-countdown>span:first-child{color:var(--ink);font-size:2.2rem;line-height:1}.capsule-countdown>span:last-child{font-size:.95rem}@keyframes capsule-seal-in{0%{opacity:0;transform:translateY(-22px) scale(.78) rotateX(38deg);filter:blur(10px)}55%{opacity:1;transform:translateY(4px) scale(1.03) rotateX(0);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1) rotateX(0);filter:blur(0)}}@keyframes capsule-left-open{0%{transform:translate(0)}to{transform:translate(-58%)}}@keyframes capsule-right-open{0%{transform:translate(0)}to{transform:translate(58%)}}.capsules-page{gap:12px}.capsule-fixed-panel{position:sticky;top:88px;z-index:19;display:grid;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.76);border-radius:24px;background:linear-gradient(135deg,#fcdfe2e6,#fff8eed1),#fffdf7e0;box-shadow:0 10px 22px #6f4b391c,0 26px 48px #d2858f1f,inset 0 1px #ffffffeb;-webkit-backdrop-filter:blur(18px) saturate(1.14);backdrop-filter:blur(18px) saturate(1.14)}.capsule-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.capsule-page-pill{display:inline-flex;min-width:0;align-items:center;gap:10px;padding:8px 12px;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:#824a55;background:#fffdf7a3;box-shadow:inset 0 1px #ffffffdb}.capsule-page-pill div{display:grid;min-width:0;gap:1px}.capsule-page-pill strong{color:var(--album-brown);font-size:.98rem;line-height:1.1}.capsule-page-pill span{color:var(--album-muted);font-size:.72rem;font-weight:800}.capsule-inline-add{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border:1px solid rgba(255,255,255,.74);border-radius:999px;color:#884c58;background:#fffdf7ad;box-shadow:0 8px 16px #7452371a,inset 0 1px #ffffffe6}.capsule-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;border-radius:18px;background:#fffdf77a}.capsule-tabs button{display:inline-flex;min-width:0;min-height:34px;align-items:center;justify-content:center;gap:4px;padding:0 6px;border:1px solid transparent;border-radius:15px;color:#81685e;background:transparent;font-size:.82rem;font-weight:900;white-space:nowrap}.capsule-tabs button.is-active{border-color:#d38e954d;color:#914d5c;background:#f5cfd2b8;box-shadow:inset 0 1px #ffffffd1,0 8px 16px #d2858f1f}.capsule-tabs button span{color:inherit;opacity:.74}.capsule-page-status{display:grid;gap:6px;min-height:0}.capsule-page-status:empty{display:none}.capsule-page-status p{margin:0;color:var(--album-muted);font-size:.82rem;font-weight:700}.capsule-list-panel{min-height:360px}.dense-capsule-list{gap:10px}.dense-capsule-list .capsule-card,.capsule-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;min-height:84px;align-items:center;padding:11px 12px;border:1px solid rgba(255,255,255,.74);border-radius:22px;background:linear-gradient(135deg,#ffffffd6,#fff8eea8),#fffdf7d1;box-shadow:0 7px 16px #6f4b3914,0 16px 34px #6f4b3917,inset 0 1px #ffffffeb}.capsule-card.is-draft{background:linear-gradient(135deg,#fffbf2e6,#f8d8d86b),#fffdf7d1}.capsule-icon{width:42px;height:42px;border-radius:16px}.capsule-list-copy{display:grid;min-width:0;gap:3px}.capsule-card-topline{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px}.capsule-card-topline .capsule-date{overflow:hidden;margin:0;color:var(--album-muted);font-size:.72rem;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.capsule-card-topline span{flex:0 0 auto;padding:3px 7px;border-radius:999px;color:#8b4f5a;background:#f5cfd294;font-size:.68rem;font-weight:900;line-height:1}.capsule-card h2{overflow:hidden;color:var(--album-brown);font-size:1.02rem;line-height:1.22;text-overflow:ellipsis;white-space:nowrap}.capsule-content,.capsule-locked{display:-webkit-box;overflow:hidden;width:auto;margin:0;padding:0;color:#756258;background:transparent;font-size:.8rem;font-weight:700;line-height:1.34;-webkit-box-orient:vertical;-webkit-line-clamp:1}.capsule-empty-state{display:grid;min-height:160px;place-items:center;padding:22px;border:1px dashed rgba(151,101,93,.24);border-radius:24px;color:var(--album-muted);background:#fffdf77a;text-align:center}.capsule-empty-state p{margin:0;font-weight:800}.capsule-reveal-overlay{z-index:100;align-items:center;justify-items:center;padding:max(14px,env(safe-area-inset-top,0px)) 14px max(14px,env(safe-area-inset-bottom,0px))}.capsule-reveal-stage{width:min(390px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:8px 0;scrollbar-width:none}.capsule-reveal-stage::-webkit-scrollbar{display:none}.capsule-form-card,.delete-confirm-card{width:min(390px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:20px;border-radius:24px}.capsule-form-card{gap:12px}.capsule-form-overlay{align-items:start;padding-top:calc(96px + env(safe-area-inset-top,0px));padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.capsule-form-overlay .capsule-form-card{max-height:calc(100dvh - 176px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.capsule-drawer-backdrop{z-index:90}.capsule-letter-drawer{max-height:min(84vh,700px)}.capsule-letter-drawer .drawer-cover-field{min-height:82px}.capsule-content-field textarea{min-height:136px;line-height:1.58}.capsule-form-card .soft-field small{color:var(--album-muted);font-size:.72rem;font-weight:700}.capsule-form-actions{display:grid;grid-template-columns:1fr 1fr}.capsule-shell{width:118px;height:54px;margin-bottom:-8px}.unfolded-letter{width:100%;max-height:calc(100dvh - 96px);overflow-y:auto;padding:22px;border-radius:24px}.unfolded-letter .photo-upload-surface.is-compact{min-height:150px;margin:10px 0;border-radius:20px}.unfolded-letter p{margin:0}.letter-action-row{margin-top:16px}@media (max-width: 390px){.capsule-fixed-panel{top:82px}.capsule-tabs button{font-size:.78rem}.capsule-form-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.capsule-shell:before,.capsule-shell:after{animation:none}}@media (max-width: 920px){.site-header{grid-template-columns:auto 1fr}.site-nav{grid-column:1 / -1;overflow-x:auto;padding-bottom:2px}.home-hero,.place-card,.page-header.has-photo-slot,.soft-editor-card,.wishlist-board,.capsule-board{grid-template-columns:1fr}.hero-copy h1{font-size:4rem}.page-header h1{font-size:2.7rem}.hero-copy,.hero-note{min-height:auto}.stats-grid,.two-columns,.three-columns{grid-template-columns:1fr}.photo-placeholder{min-height:210px;border-radius:var(--card-radius) var(--card-radius) 0 0}.photo-upload-surface{min-height:190px}.soft-action-row{grid-column:auto}}@media (max-width: 560px){.ambient-glow{filter:blur(34px)}.ambient-glow-cream{width:190px;height:160px}.ambient-glow-pink{width:170px;height:150px}.ambient-glow-honey{width:210px;height:160px}.ambient-decor{opacity:.7;transform:scale(.86)}.app-shell{width:min(100% - 20px,1180px);padding-top:10px;padding-bottom:32px}.site-header{top:8px;gap:10px;padding:10px}.brand-mark{width:34px;height:34px}.brand-title{font-size:.95rem}.brand-subtitle{display:none}.site-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;width:100%;overflow:visible}.nav-link{display:grid;min-height:50px;justify-items:center;align-content:center;gap:3px;padding:6px 3px;font-size:.72rem;white-space:normal;text-align:center;line-height:1.15}.nav-link svg{width:17px;height:17px}.page-shell{padding-top:18px}.page-flow{gap:18px}.home-hero{gap:14px}.hero-copy{padding:26px 20px;clip-path:none}.hero-copy h1{font-size:2.65rem;line-height:1.02}.page-header h1{font-size:2rem;line-height:1.08}.stat-value{font-size:1.78rem}.hero-line{width:100%;font-size:.94rem}.hero-description,.hero-note p,.page-header-description{font-size:.96rem;line-height:1.72}.stat-card,.memory-card,.place-content,.wish-card,.capsule-card,.page-header,.hero-note,.soft-editor-card{padding:16px}.stat-card{grid-template-columns:38px 1fr;gap:12px;min-height:104px}.stat-icon{width:38px;height:38px}.page-header{clip-path:none}.photo-upload-surface{min-height:150px}.photo-upload-surface.is-compact{min-height:138px}.upload-control{min-height:38px;padding:0 12px;font-size:.88rem}.shape-mask{transform:scale(.82)}.mask-heart{top:12px;left:12px}.mask-star{right:22px;top:18px}.mask-sparkle{left:18px;bottom:16px}.card-topline{gap:6px;margin-bottom:14px}.soft-badge,.status-pill{max-width:100%;min-height:28px;font-size:.78rem}.memory-card{min-height:auto;padding-right:104px}.heart-upload-shell{top:12px;right:14px;width:68px;height:62px}.memory-card h2,.place-card h2,.wish-card h2,.capsule-card h2{font-size:1.12rem}.photo-placeholder{min-height:168px}.photo-placeholder span{font-size:1.18rem}.place-content{padding:16px}.sub-place{grid-template-columns:48px 1fr}.sub-place.is-editing{grid-template-columns:1fr}.sub-photo{width:48px;height:48px}.sub-place.is-editing .sub-photo{width:100%;height:120px}.wishlist-column,.capsule-column{min-height:auto;padding:12px;gap:12px}.column-list,.capsule-list{gap:12px;grid-auto-rows:auto}.capsule-card{grid-template-columns:1fr;min-height:auto;height:auto}.capsule-icon{width:42px;height:42px}.card-footnote,.wish-header{display:grid;justify-content:start;min-height:auto}.soft-add-button,.soft-action-button{min-height:40px;padding:0 12px}.hidden-trip-trigger{width:100%;justify-content:flex-start;text-align:left;line-height:1.5}.wish-interaction-panel{padding:12px}.capsule-reveal-overlay{padding:14px}.capsule-shell{width:132px;height:62px}.unfolded-letter{padding:22px 18px}}:root{--album-cream: #fff9ee;--album-cream-deep: #f4dfcd;--album-petal: #f5cfd2;--album-petal-deep: #d98895;--album-brown: #38211c;--album-muted: #8b7469;--album-rosewood: #9b6268;--album-line: rgba(151, 101, 93, .22);--album-card: rgba(255, 252, 247, .8);--album-shadow: 0 14px 30px rgba(111, 75, 57, .12), 0 34px 72px rgba(111, 75, 57, .16);--card-radius: 26px}body{color:var(--album-brown);background:radial-gradient(circle at 16% 6%,rgba(255,255,255,.9) 0 14%,transparent 30%),radial-gradient(circle at 88% 12%,rgba(255,236,200,.68) 0 16%,transparent 36%),radial-gradient(circle at 68% 42%,rgba(245,207,210,.34) 0 18%,transparent 42%),linear-gradient(180deg,#fffaf3,#f8e7d7 58%,#ecd2bf)}.app-shell{width:min(100%,430px);min-height:100vh;padding:26px 16px calc(118px + env(safe-area-inset-bottom,0px))}.site-header{position:sticky;top:10px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 4px 18px;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.brand-cluster{display:inline-flex;min-width:0;align-items:center;gap:14px}.brand-mark{width:56px;height:56px;flex:0 0 auto;border-radius:999px;color:#9a4f5f;background:radial-gradient(circle at 36% 25%,rgba(255,255,255,.48),transparent 34%),linear-gradient(135deg,#f7ccd0,#f9dca3);box-shadow:0 12px 26px #d7918b47,inset 0 1px #ffffffc7}.brand-title{display:block;overflow:hidden;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.42rem;font-weight:700;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.brand-subtitle{display:none}.header-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:12px}.header-icon-button{display:grid;width:38px;height:38px;place-items:center;padding:0;border:0;color:#96766b;background:transparent}.header-icon-button:focus-visible,.nav-link:focus-visible{outline:3px solid rgba(245,207,210,.72);outline-offset:3px}.page-shell{padding-top:12px}.page-flow{gap:22px}.home-dashboard{align-content:start}.album-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:28px;background:linear-gradient(135deg,#ffffffe0,#fff8eead),radial-gradient(circle at 88% 12%,rgba(250,221,171,.42),transparent 34%),radial-gradient(circle at 18% 78%,rgba(247,207,212,.38),transparent 34%);box-shadow:var(--album-shadow),inset 0 1px #fffffff0;isolation:isolate}.album-card:after{position:absolute;top:1px;right:1px;bottom:1px;left:1px;z-index:-1;border-radius:27px;content:"";background:linear-gradient(140deg,rgba(255,255,255,.56),transparent 38%),linear-gradient(320deg,rgba(248,218,178,.24),transparent 52%)}.home-cover-card{display:grid;min-height:340px;padding:30px 24px 24px}.cover-copy{position:relative;z-index:2;max-width:210px}.eyebrow{margin:0 0 10px;color:var(--album-rosewood);font-size:.86rem;font-weight:900;letter-spacing:0;line-height:1.1}.cover-copy h1{margin:0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:clamp(3.2rem,14vw,4.2rem);font-weight:800;line-height:1.04;letter-spacing:0}.cover-line{width:190px;margin:118px 0 0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.45rem;line-height:1.62}.polaroid-stack{position:absolute;top:112px;right:16px;z-index:3;width:150px;height:190px}.polaroid-card{position:absolute;width:132px;height:166px;padding:9px 9px 28px;border-radius:9px;background:#fffffff5;box-shadow:0 12px 22px #563a2d24,0 28px 44px #563a2d24}.polaroid-back{right:2px;top:0;transform:rotate(9deg)}.polaroid-mid{right:12px;top:6px;transform:rotate(-7deg)}.polaroid-front{right:0;top:16px;transform:rotate(6deg)}.polaroid-photo,.polaroid-card .photo-upload-surface{width:100%;min-height:0;height:100%;border:0;border-radius:5px;background:linear-gradient(135deg,#f5cfd2eb,#faddabb3),#f7eadc;background-position:center;background-size:cover;box-shadow:inset 0 0 0 1px #43292214}.polaroid-card .photo-upload-surface:before,.polaroid-card .photo-upload-surface:after,.polaroid-card .shape-mask{content:none;display:none}.polaroid-card .upload-control{min-height:30px;padding:0 8px;border-radius:999px;font-size:.72rem}.dream-list-panel{align-self:end;width:min(100%,235px);margin-top:34px;border:1px solid rgba(185,116,120,.28);border-radius:20px;background:#fffaf6ad;box-shadow:inset 0 1px #ffffffd1}.dream-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:18px 18px 14px 14px;color:#b27479;background:linear-gradient(90deg,#f5cfd2c2,#fff4eca3),#ffffff7a}.dream-list-heading p,.dream-list-heading strong{display:block;margin:0;font-size:1.06rem;font-weight:900;line-height:1.18}.dream-list-panel ul{display:grid;gap:8px;margin:0;padding:14px 18px 18px 30px;color:var(--album-brown);font-size:1.05rem;line-height:1.35}.moment-calendar{position:absolute;right:20px;bottom:42px;z-index:2;width:142px}.moment-calendar h2{margin:0 0 12px;color:var(--album-rosewood);font-size:1.15rem;font-weight:900;letter-spacing:0;text-align:center}.moment-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:8px;border-radius:18px;background:#fffdf8b8;box-shadow:inset 0 1px #ffffffe0}.moment-days article{display:grid;min-width:0;min-height:62px;place-items:center;align-content:center;border-radius:13px;color:var(--album-brown)}.moment-days article.is-next{border:1px solid rgba(205,126,130,.28);background:#f5cfd2a8}.moment-days span,.moment-days small{overflow:hidden;max-width:100%;color:var(--album-muted);font-size:.62rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.moment-days strong{font-size:1.3rem;line-height:1.05}.home-status-row{display:grid;gap:4px;min-height:0;color:var(--album-muted);font-size:.82rem}.milestones-card{padding:28px 24px 30px}.milestones-card>.eyebrow{margin-bottom:22px;font-size:1.05rem}.milestones-layout{display:grid;grid-template-columns:.86fr 1.14fr;gap:20px;align-items:center}.ring-column{display:grid;gap:22px;justify-items:center}.milestone-ring{position:relative;display:grid;width:132px;aspect-ratio:1;place-items:center;border-radius:999px;background:conic-gradient(var(--ring-accent) 0 74%,rgba(245,207,210,.54) 74% 100%);box-shadow:inset 0 1px #ffffffd6,0 12px 22px #6f4b391a}.milestone-ring:before{position:absolute;top:13px;right:13px;bottom:13px;left:13px;border-radius:999px;content:"";background:radial-gradient(circle at 45% 18%,rgba(255,255,255,.76),transparent 38%),#fffaf4f5}.ring-rose{--ring-accent: #ad6470}.ring-honey{--ring-accent: #ecc360;background:conic-gradient(var(--ring-accent) 0 72%,rgba(250,225,161,.58) 72% 100%)}.ring-content{position:relative;z-index:1;display:grid;justify-items:center;color:var(--album-brown)}.ring-content span{font-size:1rem;font-weight:800}.ring-content strong{font-size:2.35rem;line-height:1}.ring-content small{color:var(--album-muted);font-size:.76rem;white-space:nowrap}.next-countdown{display:grid;justify-items:center;text-align:center}.next-countdown h2{margin:0 0 18px;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.32rem;line-height:1.22}.soft-clock{position:relative;width:120px;aspect-ratio:1;margin-bottom:14px;border:8px solid rgba(197,215,181,.78);border-radius:999px;background:radial-gradient(circle at 48% 38%,#ffffffeb,#fff8f1e0),#fffaf3;box-shadow:0 12px 28px #6f4b391f,inset 0 0 0 1px #97655d1a}.clock-hand{position:absolute;left:50%;top:50%;height:6px;border-radius:999px;transform-origin:left center}.clock-hand-hour{width:36px;background:#4a2d27;transform:rotate(216deg)}.clock-hand-minute{width:42px;background:#ad6470;transform:rotate(322deg)}.clock-heart{position:absolute;left:50%;top:50%;color:#a75967;font-size:1.45rem;line-height:1;transform:translate(-50%,-40%)}.tick{position:absolute;width:5px;height:15px;border-radius:999px;background:#4a2d27}.tick-12{left:50%;top:10px;transform:translate(-50%)}.tick-3{top:50%;right:10px;height:5px;width:15px;transform:translateY(-50%)}.tick-6{left:50%;bottom:10px;transform:translate(-50%)}.tick-9{top:50%;left:10px;height:5px;width:15px;transform:translateY(-50%)}.countdown-number{color:var(--album-brown);font-size:clamp(3.1rem,14vw,4.4rem);line-height:1}.next-countdown p{margin:12px 0 0;color:var(--album-muted);font-size:.88rem;line-height:1.45}.countdown-caption span{display:block}.bottom-tab-bar{position:fixed;left:50%;right:auto;bottom:0;z-index:40;display:grid;width:min(100%,430px);grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;align-items:end;padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px));border:1px solid rgba(255,255,255,.78);border-radius:22px 22px 0 0;background:#fffcf7eb;box-shadow:0 -10px 28px #6f4b391f,inset 0 1px #fffffff5;-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18);transform:translate(-50%)}.bottom-tab-bar .nav-link{display:grid;min-width:0;min-height:60px;place-items:center;align-content:center;gap:4px;padding:6px 2px;border:1px solid transparent;border-radius:22px;color:#806a60;font-size:.76rem;font-weight:700;line-height:1.12;text-align:center;white-space:normal}.bottom-tab-bar .nav-link span{overflow:hidden;max-width:100%;text-overflow:ellipsis}.bottom-tab-bar .nav-link.is-active{border-color:#d7909657;color:#954f5e;background:#f5cfd2b8;box-shadow:inset 0 1px #ffffffd6,0 10px 22px #d2858f29}@media (min-width: 431px){.bottom-tab-bar{bottom:16px;border-radius:24px}}@media (max-width: 390px){.app-shell{padding-right:12px;padding-left:12px}.brand-mark{width:50px;height:50px}.brand-title{font-size:1.25rem}.home-cover-card{min-height:330px;padding:28px 20px 26px}.polaroid-stack{top:112px;right:8px;width:138px;transform:scale(.94);transform-origin:top right}.cover-line{width:170px;margin-top:112px;font-size:1.32rem}.dream-list-panel{width:220px}.moment-calendar{right:14px;width:132px}.milestones-layout{grid-template-columns:1fr}.ring-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.milestone-ring{width:128px}}.anniversaries-page{gap:14px}.anniversaries-page.is-drawer-open{position:relative;z-index:70}body:has(.anniversaries-page.is-drawer-open) .site-header,body:has(.anniversaries-page.is-drawer-open) .bottom-tab-bar{z-index:0}.anniversary-compact-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:4px 2px 8px}.anniversary-compact-head:before{position:absolute;right:50px;bottom:-6px;z-index:-1;color:#9b626814;content:"SPECIAL DAYS";font-family:Georgia,Times New Roman,serif;font-size:2.35rem;font-weight:900;line-height:1;white-space:nowrap}.anniversary-compact-head .eyebrow{margin-bottom:4px;font-size:.74rem}.anniversary-compact-head h1{margin:0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.78rem;line-height:1}.anniversary-add-button{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid rgba(191,122,128,.2);border-radius:999px;color:#9b6268;background:linear-gradient(135deg,#f8d8d8c7,#fff9eeb8),#fffcf7b3;box-shadow:0 10px 22px #97595c24,inset 0 1px #ffffffdb}.anniversary-status{margin:0;color:var(--album-muted);font-size:.84rem;font-weight:700}.anniversary-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.anniversaries-page .anniversary-photo-card{position:relative;display:block;overflow:hidden;aspect-ratio:1 / 1.08;min-height:0;height:auto;padding:0;border:1px solid rgba(255,255,255,.78);border-radius:22px;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.58),transparent 32%),linear-gradient(145deg,#f5cfd2d6,#faddaba8),#fffcf7c7;background-position:center;background-size:cover;box-shadow:0 10px 22px #6f4b391f,0 22px 44px #6f4b3921;cursor:pointer}.anniversaries-page .anniversary-photo-card:before,.anniversaries-page .anniversary-photo-card:after{content:none}.anniversary-photo-card:focus-visible{outline:3px solid rgba(245,207,210,.72);outline-offset:3px}.anniversary-card-shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,#301f1b14,#301f1b1f 38%,#301f1b94),linear-gradient(135deg,#fff4e861,#c4727b2e)}.anniversary-photo-card.has-image .anniversary-card-shade{background:none}.anniversary-photo-card:not(.has-image) .anniversary-card-shade{background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.54),transparent 30%),linear-gradient(180deg,#fffcf714,#623a3438)}.anniversary-empty-photo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;color:#734c495c}.anniversary-card-content{position:absolute;top:10px;right:10px;bottom:10px;left:10px;z-index:2;display:grid;min-width:0;align-content:space-between;gap:8px}.anniversary-date-pill{display:inline-flex;width:fit-content;max-width:100%;align-items:center;gap:5px;min-height:28px;padding:0 9px;border:1px solid rgba(255,255,255,.34);border-radius:999px;color:#fff9f4;background:#4c302b52;box-shadow:inset 0 1px #ffffff42;font-size:.74rem;font-weight:900;line-height:1;text-shadow:0 1px 8px rgba(48,31,27,.34);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.anniversary-photo-card:not(.has-image) .anniversary-date-pill{color:#8d5961;background:#fffcf794;text-shadow:none}.anniversary-card-title{display:grid;gap:5px;min-width:0;color:#fffaf4;text-shadow:0 2px 12px rgba(48,31,27,.34)}.anniversary-photo-card:not(.has-image) .anniversary-card-title{color:var(--album-brown);text-shadow:none}.anniversaries-page .anniversary-card-title h2{overflow:hidden;margin:0;color:currentColor;font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.18rem;font-weight:800;line-height:1.16;text-overflow:ellipsis;white-space:nowrap}.anniversary-card-title span{display:inline-flex;align-items:center;gap:4px;min-width:0;color:currentColor;font-size:.76rem;font-weight:800;opacity:.92}.anniversary-expanded-panel{display:grid;gap:6px;padding:8px;border:1px solid rgba(255,255,255,.22);border-radius:14px;color:#fffaf4;background:#39242057;box-shadow:inset 0 1px #ffffff2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.anniversary-photo-card:not(.has-image) .anniversary-expanded-panel{color:var(--album-brown);background:#fffcf78a}.anniversary-expanded-panel p{display:-webkit-box;overflow:hidden;margin:0;color:currentColor;font-size:.75rem;font-weight:700;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:1}.anniversary-expanded-panel small{overflow:hidden;color:currentColor;font-size:.66rem;font-weight:700;line-height:1.2;opacity:.82;text-overflow:ellipsis;white-space:nowrap}.anniversary-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.anniversary-mini-action{display:inline-flex;min-width:0;min-height:28px;align-items:center;justify-content:center;gap:3px;padding:0 5px;border:1px solid rgba(255,255,255,.24);border-radius:999px;color:inherit;background:#fffcf72e;font-size:.68rem;font-weight:900;line-height:1;cursor:pointer;white-space:nowrap}.anniversary-mini-action svg{display:none}.anniversary-mini-action.danger{color:#ffdfe0}.anniversary-photo-card:not(.has-image) .anniversary-mini-action.danger{color:#9f2f3a}.anniversary-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.anniversary-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;align-items:end;justify-items:center;padding:18px 16px calc(16px + env(safe-area-inset-bottom,0px));background:#482c263d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.anniversary-editor-drawer{width:min(100%,430px);max-height:min(78vh,680px);grid-template-columns:1fr;overflow-y:auto;overscroll-behavior:contain;border-radius:28px}.drawer-heading{position:relative;z-index:1;display:grid;gap:4px}.drawer-heading .eyebrow{margin:0}.drawer-heading h2{margin:0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.45rem;line-height:1.1}.drawer-actions{position:sticky;bottom:-18px;margin:4px -2px -2px;padding:10px 0 0;background:linear-gradient(180deg,#fffdf700,#fffdf7eb 32%)}.shared-mobile-drawer{display:grid;gap:10px;max-height:min(82vh,690px);padding:12px 16px 16px;border:1px solid rgba(255,255,255,.76);background:radial-gradient(circle at 18% 8%,rgba(248,216,216,.72),transparent 28%),linear-gradient(160deg,#fffdf7f5,#fff0e0f0);box-shadow:0 -18px 48px #482c2633,inset 0 1px #fffffff0}.drawer-cover-field{position:relative;display:grid;min-height:88px;place-items:center;overflow:hidden;border:1px dashed rgba(191,122,128,.34);border-radius:22px;color:#9b6268;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.72),transparent 26%),linear-gradient(145deg,#f5cfd29e,#faddab6b);background-position:center;background-size:cover;cursor:pointer}.drawer-cover-field.has-image:before{position:absolute;top:0;right:0;bottom:0;left:0;content:none}.drawer-cover-field input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.drawer-cover-field span{position:relative;z-index:1;display:inline-flex;min-height:36px;align-items:center;gap:6px;padding:0 12px;border-radius:999px;color:#8f5360;background:#fffcf7c7;box-shadow:inset 0 1px #ffffffd1;font-size:.84rem;font-weight:900}.drawer-two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shared-mobile-drawer .soft-field{gap:5px;font-size:.8rem}.shared-mobile-drawer .soft-field input,.shared-mobile-drawer .soft-field select{min-height:34px;padding:0 10px;border-radius:16px}.shared-mobile-drawer .soft-field textarea{min-height:62px;padding:8px 10px;border-radius:16px}.drawer-field-wide,.drawer-helper{grid-column:1 / -1}.drawer-helper{margin:-2px 0 0;color:var(--album-muted);font-size:.78rem;font-weight:800;line-height:1.35}.is-muted-field input{color:#5d4a3eb8;font-size:.82rem}@media (max-width: 380px){.anniversary-photo-grid{gap:10px}.anniversary-card-content{top:8px;right:8px;bottom:8px;left:8px}.anniversaries-page .anniversary-card-title h2{font-size:1.05rem}.anniversary-date-pill{min-height:25px;padding:0 7px;font-size:.68rem}.anniversary-expanded-panel{padding:7px}.anniversary-mini-action{min-height:26px;padding:0 4px;font-size:.64rem}}.places-dashboard{gap:16px}.places-compact-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:4px 2px 6px}.places-compact-head:before{position:absolute;right:52px;bottom:-4px;z-index:-1;color:#9b626814;content:"OUR MAP";font-family:Georgia,Times New Roman,serif;font-size:2.45rem;font-weight:900;line-height:1;white-space:nowrap}.places-compact-head .eyebrow{margin-bottom:4px;font-size:.74rem}.places-compact-head h1{margin:0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.78rem;line-height:1}.journey-summary-card{display:grid;gap:14px;padding:16px}.journey-map{overflow:hidden;min-height:170px;border:1px solid rgba(151,101,93,.14);border-radius:22px;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.78),transparent 30%),radial-gradient(circle at 72% 30%,rgba(245,207,210,.36),transparent 30%),linear-gradient(145deg,#fffaf4d1,#f7e1d094)}.journey-map svg{display:block;width:100%;height:170px}.journey-map-bg{fill:none;stroke:#d6ba9a73;stroke-dasharray:4 7;stroke-linecap:round;stroke-width:1.4}.journey-map-line{fill:none;stroke:#a66168a3;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.journey-map-dot-halo{fill:#fffcf7c7;stroke:#a6616833;stroke-width:1}.journey-map-dot{fill:#a85d68}.journey-map text{fill:#795f56;font-size:5px;font-weight:800;text-anchor:middle}.journey-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.journey-stat-grid article{display:grid;min-width:0;min-height:66px;place-items:center;align-content:center;gap:3px;border:1px solid rgba(151,101,93,.12);border-radius:18px;background:#fffcf78a;box-shadow:inset 0 1px #ffffffb3}.journey-stat-grid strong{color:var(--album-brown);font-size:1.55rem;line-height:1}.journey-stat-grid span{color:var(--album-muted);font-size:.76rem;font-weight:800}.section-mini-heading,.future-panel-head{display:flex;align-items:end;justify-content:space-between;gap:14px}.section-mini-heading .eyebrow,.future-panel-head .eyebrow{margin-bottom:5px;font-size:.72rem}.section-mini-heading h2,.future-panel-head h2{margin:0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.36rem;line-height:1.1}.places-carousel-section{position:relative;display:grid;gap:12px}.places-carousel-section:before,.places-carousel-section:after{position:absolute;top:74px;bottom:30px;z-index:5;width:18px;pointer-events:none;content:""}.places-carousel-section:before{left:-16px;background:linear-gradient(90deg,#fae8d8eb,#fae8d800)}.places-carousel-section:after{right:-16px;background:linear-gradient(270deg,#fae8d8eb,#fae8d800)}.places-carousel{display:flex;gap:14px;overflow-x:auto;overflow-y:visible;margin:0 -16px;padding:0 9% 8px;scroll-padding-inline:9%;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}.places-carousel::-webkit-scrollbar{display:none}.journey-place-card{position:relative;display:block;overflow:hidden;width:min(82%,352px);min-width:min(82%,352px);min-height:336px;height:auto;padding:0;border:1px solid rgba(255,255,255,.78);border-radius:26px;background-position:center;background-size:cover;box-shadow:var(--album-shadow),inset 0 1px #ffffffdb;scroll-snap-align:center;cursor:pointer}.journey-place-card[data-carousel-clone=true]{scroll-snap-align:center}.places-carousel-dots{display:flex;justify-content:center;gap:6px;min-height:12px}.places-carousel-dots span{width:6px;height:6px;border-radius:999px;background:#9b626838;transition:width .16s ease,background-color .16s ease}.places-carousel-dots span.is-active{width:18px;background:#9b6268ad}.journey-place-card:before,.journey-place-card:after{content:none}.journey-place-card.is-open{min-height:455px}.journey-place-shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,#34201b14,#34201b2e 42%,#34201bad),linear-gradient(135deg,#fff4e66b,#a661683d)}.journey-place-card.has-image .journey-place-shade{background:none}.journey-place-card:not(.has-image) .journey-place-shade{background:radial-gradient(circle at 70% 22%,rgba(255,255,255,.62),transparent 30%),linear-gradient(160deg,#f5cfd2c7,#faddab9e)}.journey-place-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;color:#734c4957}.journey-place-content{position:relative;z-index:2;display:grid;min-height:336px;align-content:space-between;gap:14px;padding:16px;color:#fffaf4;text-shadow:0 2px 16px rgba(45,29,24,.34)}.journey-place-card:not(.has-image) .journey-place-content{color:var(--album-brown);text-shadow:none}.journey-place-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.journey-place-topline span{display:inline-flex;min-width:0;align-items:center;gap:5px;min-height:28px;padding:0 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#40272242;font-size:.72rem;font-weight:900;line-height:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.journey-place-card:not(.has-image) .journey-place-topline span{color:#8d5961;background:#fffcf78f}.journey-place-copy{display:grid;gap:8px}.journey-place-copy h2{margin:0;color:currentColor;font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:2rem;line-height:1.04}.journey-place-copy p{display:-webkit-box;overflow:hidden;margin:0;color:currentColor;font-size:.92rem;font-weight:700;line-height:1.55;opacity:.9;-webkit-box-orient:vertical;-webkit-line-clamp:2}.journey-place-expanded{display:grid;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:#39242057;box-shadow:inset 0 1px #ffffff2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.journey-place-card:not(.has-image) .journey-place-expanded{background:#fffcf794}.journey-place-actions,.future-preview-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.place-fragment-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.place-fragment-strip::-webkit-scrollbar{display:none}.place-fragment-chip{display:grid;min-width:132px;max-width:150px;gap:7px;padding:7px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:#fffcf729;color:currentColor}.fragment-thumb{display:grid;width:100%;aspect-ratio:1.25;place-items:center;overflow:hidden;border-radius:10px;color:#734c497a;background:linear-gradient(135deg,#f5cfd2c2,#faddab80),#fffcf780;background-position:center;background-size:cover}.fragment-thumb input,.future-preview-actions input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fragment-chip-copy{display:grid;gap:2px}.fragment-chip-copy strong,.future-preview-copy strong{overflow:hidden;color:currentColor;font-size:.82rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.fragment-chip-copy span,.future-preview-copy span{display:-webkit-box;overflow:hidden;color:currentColor;font-size:.7rem;font-weight:700;line-height:1.3;opacity:.82;-webkit-box-orient:vertical;-webkit-line-clamp:2}.fragment-inline-editor{display:grid;gap:7px}.fragment-inline-editor input,.fragment-inline-editor textarea{width:100%;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:var(--album-brown);background:#fffcf7c7;font:inherit;font-size:.72rem}.fragment-inline-editor input{min-height:30px;padding:0 8px}.fragment-inline-editor textarea{min-height:54px;padding:7px 8px;resize:vertical}.fragment-empty{margin:0;color:currentColor;font-size:.78rem;font-weight:800;opacity:.76}.add-fragment-button{width:fit-content}.future-places-panel{display:grid;gap:14px;padding:18px}.future-add-button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:5px;padding:0 12px;border:1px solid rgba(191,122,128,.2);border-radius:999px;color:#9b6268;background:linear-gradient(135deg,#f8d8d8b8,#fff9eead),#fffcf7b3;box-shadow:inset 0 1px #ffffffd1;font-size:.84rem;font-weight:900}.future-tag-cloud{display:flex;flex-wrap:wrap;gap:9px}.future-place-item{display:contents}.future-place-chip{display:inline-flex;min-width:0;min-height:38px;align-items:center;gap:6px;padding:0 12px;border:1px solid rgba(151,101,93,.16);border-radius:999px;color:#7d6258;background:#fffcf79e;box-shadow:inset 0 1px #ffffffc2;font-size:.84rem;font-weight:900}.future-place-chip small{color:var(--album-muted);font-size:.7rem}.future-place-item.is-active .future-place-chip{color:#954f5e;background:#f5cfd2a8}.future-place-preview{display:grid;width:100%;grid-template-columns:82px minmax(0,1fr);gap:10px;padding:10px;border:1px solid rgba(151,101,93,.14);border-radius:18px;background:#fffcf794}.future-preview-photo{display:grid;width:82px;aspect-ratio:1;place-items:center;border-radius:14px;color:#8d596194;background:linear-gradient(135deg,#f5cfd2c7,#faddab8f),#fffcf7b8;background-position:center;background-size:cover}.future-preview-copy{display:grid;min-width:0;align-content:center;gap:4px}.future-preview-copy p{display:-webkit-box;overflow:hidden;margin:0;color:#6d5d51;font-size:.76rem;font-weight:700;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.future-preview-actions{grid-column:1 / -1}.future-empty{margin:0;color:var(--album-muted);font-size:.86rem;font-weight:800}.future-upload-field input[type=file]{padding-top:9px}@media (max-width: 390px){.journey-summary-card{padding:14px}.journey-map,.journey-map svg{min-height:154px;height:154px}.journey-place-card{width:84%;min-width:84%}.journey-place-copy h2{font-size:1.78rem}.future-place-preview{grid-template-columns:72px minmax(0,1fr)}.future-preview-photo{width:72px}}.wishlist-dashboard{gap:14px}.wishlist-compact-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:18px;overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:26px;background:radial-gradient(circle at 12% 12%,rgba(248,216,216,.78),transparent 34%),linear-gradient(145deg,#fffdf7e6,#ffefdac7);box-shadow:0 16px 40px #7452371f,inset 0 1px #ffffffeb}.wishlist-compact-head:after{position:absolute;right:-22px;bottom:-28px;color:#bc6b7712;content:"WISH";font-family:Georgia,Times New Roman,serif;font-size:4.8rem;font-weight:900;letter-spacing:0;pointer-events:none}.wishlist-compact-head h1{position:relative;z-index:1;margin:4px 0 0;color:var(--album-brown);font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:2rem;line-height:1.08}.wishlist-icon-add{position:relative;z-index:1;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(191,122,128,.2);border-radius:999px;color:#8f5360;background:#fffcf7c2;box-shadow:inset 0 1px #ffffffe0,0 12px 22px #bc6b7724}.wishlist-stat-strip{position:relative;z-index:1;display:grid;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wishlist-stat-strip span{display:grid;min-height:54px;place-items:center;align-content:center;gap:1px;border:1px solid rgba(151,101,93,.1);border-radius:18px;color:var(--album-muted);background:#fffcf78a;box-shadow:inset 0 1px #ffffffc7;font-size:.72rem;font-weight:800}.wishlist-stat-strip strong{color:var(--album-brown);font-size:1.22rem;line-height:1}.wishlist-tabs{position:sticky;top:8px;z-index:12;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:#fffcf7d6;box-shadow:0 10px 24px #7452371a,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(16px) saturate(1.12);backdrop-filter:blur(16px) saturate(1.12)}.wishlist-tabs button{min-width:0;min-height:34px;border:0;border-radius:999px;color:#806a60;background:transparent;font-size:.8rem;font-weight:900}.wishlist-tabs button.is-active{color:#954f5e;background:#f5cfd2bd;box-shadow:inset 0 1px #ffffffdb,0 8px 18px #d2858f29}.wishlist-feedback{display:grid;gap:4px}.wishlist-feedback:empty{display:none}.wishlist-feedback p{margin:0;color:var(--album-muted);font-size:.82rem;font-weight:800}.wishlist-masonry{column-count:2;column-gap:12px}.wishlist-masonry-item{display:inline-block;width:100%;margin:0 0 12px;break-inside:avoid}.wish-postcard{position:relative;display:grid;width:100%;min-height:198px;height:auto;overflow:hidden;padding:0;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.78),transparent 32%),linear-gradient(145deg,#f5cfd2d1,#faddab85);background-position:center;background-size:cover;box-shadow:0 12px 28px #74523724,0 5px #ffffff61,inset 0 1px #ffffffdb;cursor:pointer;isolation:isolate}.wish-postcard:before{display:none}.wish-postcard:after{content:none}.wish-postcard.no-cover.short{min-height:166px}.wish-postcard.no-cover.medium{min-height:198px}.wish-postcard.no-cover.tall{min-height:230px}.wish-postcard.has-cover{min-height:244px}.wish-postcard-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,#40261f1a,#40261f8f),linear-gradient(135deg,#fffcf72e,#f5cfd229)}.wish-postcard.has-cover .wish-postcard-overlay{background:none}.wish-postcard.no-cover .wish-postcard-overlay{background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.42),transparent 24%),linear-gradient(180deg,#fffcf714,#fffcf742)}.wish-postcard-content{position:relative;z-index:1;display:grid;min-height:inherit;align-content:end;gap:8px;padding:14px}.wish-postcard-top{position:absolute;top:12px;right:12px;left:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.wish-postcard h2{display:-webkit-box;overflow:hidden;margin:0;color:var(--album-brown);font-size:1.05rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.wish-postcard.has-cover h2,.wish-postcard.has-cover p{color:#fffaf5;text-shadow:0 2px 12px rgba(41,25,21,.35)}.wish-postcard p{display:-webkit-box;overflow:hidden;margin:0;color:#6d5d51;font-size:.78rem;font-weight:700;line-height:1.48;-webkit-box-orient:vertical;-webkit-line-clamp:3}.wish-date-chip,.wish-status-dot,.wish-done-mark{display:inline-flex;width:fit-content;align-items:center;gap:4px;border:1px solid rgba(255,255,255,.42);border-radius:999px;box-shadow:inset 0 1px #ffffff9e;font-size:.68rem;font-weight:900}.wish-date-chip{min-height:28px;padding:0 9px;color:#8f5360;background:#fffcf7bd}.wish-postcard.has-cover .wish-date-chip{color:#fffaf5;background:#44282447;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.wish-status-dot{min-height:25px;padding:0 8px;color:#8f5360;background:#fffcf7bd}.wish-status-dot.status-plan{color:#765c1d}.wish-status-dot.status-done{color:#4f6847}.wish-done-mark{width:28px;height:28px;justify-content:center;color:#fffaf5;background:#627a50b3}.wish-postcard.is-done{filter:saturate(.9)}.wish-postcard.is-done:after{position:absolute;right:12px;bottom:12px;z-index:2;padding:4px 9px;border:1px solid rgba(98,122,80,.18);border-radius:999px;color:#4f6847b8;background:#fffcf79e;content:"DONE";font-size:.64rem;font-weight:900;letter-spacing:.06em;transform:rotate(-8deg)}.wishlist-empty{display:grid;place-items:center;gap:8px;min-height:150px;padding:18px;border:1px dashed rgba(191,122,128,.26);border-radius:24px;color:#9b6268;background:#fffcf77a;text-align:center}.wishlist-empty p{margin:0;color:var(--album-muted);font-weight:800}.wishlist-fab{position:fixed;right:max(22px,calc((100vw - 430px)/2 + 22px));bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:39;display:grid;width:54px;height:54px;place-items:center;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:#fffaf5;background:linear-gradient(145deg,#be6070eb,#e2979adb),#c86d78;box-shadow:0 18px 32px #9b525d42,inset 0 1px #ffffff85}.wishlist-drawer-backdrop{z-index:80}.wishlist-editor-drawer{display:grid;gap:14px;padding:12px 16px 16px;border:1px solid rgba(255,255,255,.76);background:radial-gradient(circle at 18% 8%,rgba(248,216,216,.72),transparent 28%),linear-gradient(160deg,#fffdf7f5,#fff0e0f0);box-shadow:0 -18px 48px #482c2633,inset 0 1px #fffffff0}.drawer-grabber{width:42px;height:5px;justify-self:center;border-radius:999px;background:#97655d3d}.drawer-title-row{display:flex;align-items:start;justify-content:space-between;gap:14px}.drawer-title-row h2{margin:2px 0 0;color:var(--album-brown);font-size:1.35rem;line-height:1.12}.drawer-icon-button{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border:1px solid rgba(151,101,93,.12);border-radius:999px;color:#8d6f63;background:#fffcf7b3}.wishlist-cover-field{position:relative;display:grid;min-height:116px;place-items:center;overflow:hidden;border:1px dashed rgba(191,122,128,.34);border-radius:22px;color:#9b6268;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.72),transparent 26%),linear-gradient(145deg,#f5cfd29e,#faddab6b);background-position:center;background-size:cover;cursor:pointer}.wishlist-cover-field.has-image:before{position:absolute;top:0;right:0;bottom:0;left:0;content:none}.wishlist-cover-field input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.wishlist-cover-field span{position:relative;z-index:1;display:inline-flex;min-height:36px;align-items:center;gap:6px;padding:0 12px;border-radius:999px;color:#8f5360;background:#fffcf7c7;box-shadow:inset 0 1px #ffffffd1;font-size:.84rem;font-weight:900}.drawer-form-grid{display:grid;gap:12px}.drawer-inline-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:10px}.drawer-action-grid{position:sticky;bottom:-16px;display:flex;flex-wrap:wrap;gap:8px;margin:0 -2px -2px;padding:10px 0 0;background:linear-gradient(180deg,#fffdf700,#fffdf7f0 34%)}.drawer-action-grid .soft-action-button{flex:1 1 96px}.drawer-action-grid .soft-action-button:disabled{cursor:not-allowed;opacity:.48}.memory-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 42%,#fff7eeeb,#fff7eea8 36%,#fff7ee47),#fffcf7c2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.memory-loading-panel{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:12px 18px;border:1px solid rgba(214,139,124,.24);border-radius:999px;color:#8f5360;background:#fffdf7db;box-shadow:0 18px 48px #784a4024;font-size:.95rem;font-weight:900}.memory-loading-panel p{margin:0}.memory-loading-mark{width:14px;height:14px;border-radius:999px;background:#e88996;box-shadow:0 0 #e8899657;animation:memory-loading-pulse 1.35s ease-in-out infinite}.update-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top,0px)) 18px max(20px,env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 50% 38%,rgba(255,247,238,.72),rgba(255,247,238,.22) 42%,transparent 68%),#56403038;-webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08)}.update-modal-card{display:grid;width:min(390px,100%);gap:14px;padding:22px;border:1px solid rgba(255,255,255,.76);border-radius:26px;color:var(--ink);background:linear-gradient(180deg,#ffffffeb,#fffaf0d1),#fffdf7e6;box-shadow:0 12px 26px #74523729,0 38px 92px #74523742,inset 0 1px #fffffff0;-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}.update-modal-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:18px;color:#9b5961;background:linear-gradient(145deg,#f8d8d8d1,#faddab94),#fffdf7c2;box-shadow:0 12px 24px #97595c29,inset 0 1px #ffffffe0}.update-modal-copy{display:grid;gap:8px}.update-modal-copy h2,.update-page-content h2{margin:0;color:var(--album-brown, var(--ink));font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:1.55rem;line-height:1.18}.update-version{width:fit-content;padding:5px 9px;border:1px solid rgba(191,122,128,.18);border-radius:999px;color:#8f5360;background:#f8d8d861;font-size:.78rem;font-weight:900}.update-notes,.update-page-notes{display:grid;gap:6px;margin:4px 0 0;color:#6d5d51;font-size:.95rem;font-weight:700;line-height:1.7}.update-notes p,.update-page-notes p,.update-empty-note,.update-install-tip{margin:0}.update-empty-note{color:#6d5d51;line-height:1.7}.update-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.update-page-shell{min-height:100dvh;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top,0px)) 16px max(18px,env(safe-area-inset-bottom,0px))}.update-page-card{position:relative;display:grid;width:min(430px,100%);gap:22px;overflow:hidden;padding:24px;border:1px solid rgba(255,255,255,.78);border-radius:28px;color:var(--ink);background:linear-gradient(135deg,#ffffffe6,#fff8eeb8),radial-gradient(circle at 84% 12%,rgba(250,221,171,.42),transparent 34%),radial-gradient(circle at 16% 86%,rgba(247,207,212,.36),transparent 34%);box-shadow:var(--album-shadow, var(--shadow-lifted)),inset 0 1px #fffffff0}.update-page-brand{display:flex;align-items:center;gap:14px}.update-page-brand .brand-mark{flex:0 0 auto}.update-page-brand h1{margin:0;color:var(--album-brown, var(--ink));font-family:Songti SC,STSong,"Noto Serif SC",PingFang SC,serif;font-size:clamp(2rem,10vw,3rem);line-height:1.02}.update-page-content,.update-page-empty{display:grid;gap:14px}.update-page-empty{min-height:190px;place-items:center;align-content:center;border:1px dashed rgba(191,122,128,.24);border-radius:22px;color:#8f5360;background:#fffdf775;text-align:center}.update-page-empty p{max-width:260px;margin:0;color:#6d5d51;font-weight:800;line-height:1.7}.update-download-button{width:100%;min-height:48px}.update-install-tip{color:#806e61;font-size:.86rem;font-weight:800;line-height:1.65}@keyframes memory-loading-pulse{0%,to{transform:scale(.92);box-shadow:0 0 #e8899657}50%{transform:scale(1);box-shadow:0 0 0 9px #e8899600}}@media (max-width: 390px){.wishlist-compact-head{padding:16px}.wishlist-compact-head h1{font-size:1.78rem}.wishlist-masonry{column-gap:10px}.wishlist-masonry-item{margin-bottom:10px}.wish-postcard-content{padding:12px}.wish-postcard h2{font-size:.98rem}.wish-postcard p{font-size:.74rem}}
