*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-round: "Zen Maru Gothic", "M PLUS Rounded 1c", "Hiragino Maru Gothic Pro", "BIZ UDPGothic", sans-serif;--bg: #fef8f3;--surface: #fffcf9;--surface-alt: #faf3ed;--ink: #3d2b1f;--ink-mid: #6b4c3b;--ink-sub: #9c7b6c;--ink-faint: #c4a898;--accent: #e87060;--accent-dark: #c45040;--accent-light: #fdeee9;--gradient-banner: linear-gradient(145deg, #e06848 0%, #cc4672 100%);--border: #e8ddd7;--border-light: #f2ebe6;--shadow-sm: 0 2px 12px rgba(200, 120, 90, .09);--shadow-md: 0 4px 24px rgba(200, 120, 90, .11);--radius-sm: .5rem;--radius-md: .875rem;--radius-lg: 1.25rem;--radius-xl: 2rem}body{font-family:var(--font-round);background-color:var(--bg);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;min-height:100dvh}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:100dvh;color:var(--ink-faint);font-family:var(--font-round);font-size:.9rem;letter-spacing:.05em}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:1.5rem 1rem}.auth-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-md);padding:2.25rem 1.75rem;width:100%;max-width:420px}.auth-logo{text-align:center;margin-bottom:2rem}.auth-logo h1{font-family:var(--font-round);font-size:2rem;font-weight:700;color:var(--accent);letter-spacing:.04em}.auth-logo p{font-family:var(--font-round);color:var(--ink-sub);font-size:.9rem;margin-top:.45rem;letter-spacing:.04em}.tab-group{display:flex;border-radius:var(--radius-md);background:var(--surface-alt);padding:3px;margin-bottom:1.5rem}.tab-group button{flex:1;padding:.5rem;border:none;background:transparent;border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.9rem;font-weight:500;color:var(--ink-sub);transition:all .15s}.tab-group button.active{background:var(--surface);color:var(--accent);font-weight:700;box-shadow:0 1px 4px #00000014}.auth-form{display:flex;flex-direction:column;gap:.85rem}.auth-form label{display:block;font-family:var(--font-round);font-size:.85rem;font-weight:500;color:var(--ink-mid);margin-bottom:.3rem;letter-spacing:.03em}.auth-form input{width:100%;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:1rem;color:var(--ink);transition:border-color .15s;background:var(--surface)}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #263a6e1a}.btn-primary{width:100%;padding:.9rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xl);font-family:var(--font-round);font-size:1rem;font-weight:700;margin-top:.5rem;letter-spacing:.05em;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent;box-shadow:0 3px 12px #e8706059}.btn-primary:hover:not(:disabled){opacity:.88}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.65rem .85rem;border-radius:.5rem;font-size:.875rem}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;padding:.65rem .85rem;border-radius:.5rem;font-size:.875rem}.home-container{display:flex;flex-direction:column;min-height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:var(--surface);border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:10}.app-header h1{font-family:var(--font-round);font-size:1.1rem;font-weight:700;color:var(--accent);letter-spacing:.04em}.btn-signout{padding:.35rem .85rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.8rem;color:var(--ink-sub);letter-spacing:.03em;transition:all .15s}.btn-signout:hover{background:var(--surface-alt);color:var(--ink-mid)}.btn-settings{padding:.35rem .75rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.8rem;color:var(--ink-sub);letter-spacing:.03em;white-space:nowrap;transition:all .15s}.btn-settings:hover{background:var(--surface-alt);color:var(--ink-mid)}.btn-back-header{padding:.35rem .5rem;background:transparent;border:none;font-family:var(--font-round);font-size:.9rem;color:var(--ink-sub);letter-spacing:.02em;transition:opacity .15s;white-space:nowrap}.btn-back-header:hover{opacity:.7}.home-content{padding:1.25rem 1rem;max-width:600px;width:100%;margin:0 auto}.profile-card{background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.profile-card h2{font-family:var(--font-round);font-size:1.15rem;font-weight:600;margin-bottom:1rem;color:var(--ink);letter-spacing:.04em}.profile-dl{display:grid;gap:.65rem}.profile-row{display:grid;grid-template-columns:6rem 1fr;gap:.5rem;font-size:.9rem}.profile-row dt{color:var(--ink-sub);font-weight:500}.profile-row dd{color:var(--ink);word-break:break-all}.api-badge{margin-top:1.25rem;padding:.5rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.4rem;color:#16a34a;font-size:.825rem;font-weight:500}.page-container{display:flex;flex-direction:column;min-height:100dvh}.app-header-title{font-family:var(--font-round);font-size:1.1rem;font-weight:600;color:var(--accent);letter-spacing:.04em;flex:1}.app-header-user{display:none}@media (min-width: 480px){.app-header-user{display:block;font-size:.8rem;color:var(--ink-faint);margin-right:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}}.main-content{padding:1rem;max-width:600px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}@media (min-width: 768px){.main-content{max-width:960px;padding:1.5rem 2rem}.app-header{padding-left:2rem;padding-right:2rem}.theme-banner{padding:2.25rem 2rem 2.6rem}.theme-primary-title{font-size:2.2rem}}.section{display:flex;flex-direction:column;gap:.75rem}.section-header{display:flex;align-items:center;justify-content:space-between}.section-title{font-family:var(--font-round);font-size:.9rem;font-weight:600;color:var(--ink-sub);letter-spacing:.06em}.text-muted{color:var(--ink-faint);font-family:var(--font-round);font-size:.875rem}.empty-state{background:var(--surface);border-radius:var(--radius-lg);padding:2.75rem 1.5rem;text-align:center;border:1px solid var(--border-light)}.empty-state-icon{display:block;font-size:2.5rem;line-height:1;margin-bottom:1rem;opacity:.7}.empty-state p{font-family:var(--font-round);font-size:1rem;color:var(--ink-sub);line-height:1.9;letter-spacing:.02em}.empty-state p+p{font-family:var(--font-round);font-size:.875rem;color:var(--ink-faint);line-height:1.8;margin-top:.45rem}.child-list{display:flex;flex-direction:column;gap:.75rem;list-style:none}@media (min-width: 768px){.child-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}}.child-card{display:flex;align-items:center;gap:.85rem;background:var(--surface);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.avatar-wrap{position:relative;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.avatar-circle{width:52px;height:52px;border-radius:50%;overflow:visible;background:var(--accent-light);display:flex;align-items:center;justify-content:center;position:relative}.avatar-circle--loading{opacity:.6}.avatar-img{width:52px;height:52px;border-radius:50%;object-fit:cover;display:block}.avatar-initial{font-family:var(--font-round);font-size:1.3rem;font-weight:600;color:var(--accent);line-height:1;-webkit-user-select:none;user-select:none}.avatar-camera{position:absolute;bottom:-1px;right:-1px;width:20px;height:20px;background:var(--accent);border-radius:50%;border:2px solid var(--surface);display:flex;align-items:center;justify-content:center;font-size:.55rem;line-height:1;pointer-events:none}.avatar-lightbox-img{width:min(260px,calc(100vw - 4rem));height:min(260px,calc(100vw - 4rem));object-fit:cover;border-radius:50%;display:block}.btn-avatar-change{margin-top:1.25rem;padding:.7rem 1.75rem;background:#ffffff26;border:1.5px solid rgba(255,255,255,.5);border-radius:.5rem;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-avatar-change:hover{background:#ffffff47}.child-card-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:none;border:none;padding:.25rem 0;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;min-width:0}.child-card-info:active{opacity:.7}.child-card-name{font-family:var(--font-round);font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:.3rem;letter-spacing:.02em}.child-card-meta{display:flex;align-items:center;gap:.6rem;font-family:var(--font-round);font-size:.8rem;color:var(--ink-sub);flex-wrap:wrap}.child-card-age{background:var(--accent-light);color:var(--accent-dark);padding:.15rem .6rem;border-radius:999px;font-weight:700;font-size:.75rem;letter-spacing:.02em}.child-card-unlock{margin-top:.3rem;font-family:var(--font-round);font-size:.75rem;color:var(--ink-faint)}.child-card-arrow{font-size:1.4rem;color:var(--accent-light);flex-shrink:0;line-height:1}.btn-back{background:none;border:none;color:var(--accent);font-family:var(--font-round);font-size:.9rem;font-weight:600;padding:.25rem 0;white-space:nowrap;letter-spacing:.03em;-webkit-tap-highlight-color:transparent}.capsule-header-title{font-family:var(--font-round);font-size:1rem;font-weight:600;color:var(--ink);letter-spacing:.04em;flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 .5rem}.theme-banner{background:var(--gradient-banner);color:#fff;padding:1.75rem 1.25rem 2.1rem;position:relative;overflow:hidden}.theme-banner:before{content:"";position:absolute;top:-30%;right:-8%;width:260px;height:260px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 60%);pointer-events:none}.theme-banner:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,rgba(80,0,30,.18) 0%,transparent 100%);pointer-events:none}.theme-banner--loading{font-family:var(--font-round);font-size:.875rem;color:#ffffffb3;padding:.5rem 0}.theme-banner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.theme-banner-label{font-family:var(--font-round);font-size:.68rem;font-weight:700;letter-spacing:.16em;color:#fff;text-transform:uppercase;text-shadow:0 1px 6px rgba(100,10,40,.3)}.theme-banner-label:before{content:"✦ "}.theme-banner-label:after{content:" ✦"}.theme-more-btn{background:#fff3;border:1px solid rgba(255,255,255,.5);color:#fff;font-family:var(--font-round);font-size:.72rem;font-weight:600;padding:.25rem .75rem;border-radius:999px;letter-spacing:.03em;-webkit-tap-highlight-color:transparent;transition:background .15s;text-shadow:0 1px 4px rgba(80,0,30,.2)}.theme-more-btn:hover{background:#ffffff59}.theme-primary{position:relative;z-index:1}.theme-primary-title{font-family:var(--font-round);font-size:1.85rem;font-weight:700;line-height:1.45;letter-spacing:.03em;text-shadow:0 2px 12px rgba(80,10,40,.45),0 1px 3px rgba(0,0,0,.2);position:relative}.theme-primary-body{font-family:var(--font-round);font-size:.9rem;line-height:1.95;color:#fffffff5;text-shadow:0 1px 6px rgba(80,10,40,.25);margin-top:.55rem;overflow-wrap:break-word}.theme-sub{margin-top:1rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.35);font-family:var(--font-round);font-size:.875rem;line-height:1.8;position:relative}.theme-sub-title{font-weight:700;letter-spacing:.02em;text-shadow:0 1px 4px rgba(80,10,40,.2)}.theme-sub-body{color:#ffffffe6;margin-left:.5rem;font-size:.83rem;text-shadow:0 1px 4px rgba(80,10,40,.15)}.post-card{background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.85rem;margin-bottom:.5rem}.post-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.post-date{font-family:var(--font-round);font-size:.82rem;color:var(--ink-sub);font-weight:500;letter-spacing:.04em}.post-age-badge{background:var(--accent-light);color:var(--accent-dark);font-family:var(--font-round);font-size:.75rem;font-weight:700;padding:.15rem .65rem;border-radius:999px;letter-spacing:.02em}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.tag-chip{background:var(--accent-light);color:var(--accent-dark);font-family:var(--font-round);font-size:.72rem;padding:.2rem .65rem;border-radius:999px;font-weight:700;letter-spacing:.03em}.photo-strip{display:flex;gap:.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -1rem;padding:0 1rem}.photo-strip::-webkit-scrollbar{display:none}.photo-thumb{flex-shrink:0;width:calc(100vw - 3.5rem);max-width:340px;height:240px;object-fit:cover;border-radius:var(--radius-lg);scroll-snap-align:start;background:var(--surface-alt);cursor:pointer}.photo-strip:has(.photo-thumb:only-child) .photo-thumb{width:100%;max-width:100%}@media (min-width: 768px){.timeline-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}}@media (min-width: 768px){.photo-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));overflow-x:visible;scroll-snap-type:none;margin:0;padding:0;gap:.5rem}.photo-thumb{width:100%;max-width:100%;height:220px}.photo-strip:has(.photo-thumb:only-child) .photo-thumb{grid-column:1 / -1;height:320px}}.post-confirmed-badge{font-family:var(--font-round);font-size:.67rem;font-weight:600;color:var(--ink-faint);letter-spacing:.05em;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border-light);background:var(--surface-alt);-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.post-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.post-edit-btn{background:none;border:1px solid var(--border);color:var(--ink-sub);font-family:var(--font-round);font-size:.75rem;padding:.15rem .55rem;border-radius:999px;cursor:pointer;letter-spacing:.03em;transition:all .15s;-webkit-tap-highlight-color:transparent}.post-edit-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.post-delete-btn{background:none;border:none;color:var(--ink-faint);font-family:var(--font-round);font-size:.75rem;padding:.15rem .45rem;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.03em;transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent}.post-delete-btn:hover:not(:disabled){color:#c0392b;background:#fdf0ee}.post-delete-btn:disabled{opacity:.5;cursor:not-allowed}.post-menu-wrap{position:relative}.post-menu-btn{background:none;border:none;padding:4px 8px;cursor:pointer;font-size:1.2rem;color:var(--ink-sub);border-radius:6px;line-height:1}.post-menu-btn:hover{background:var(--surface)}.post-menu-dropdown{position:absolute;right:0;top:calc(100% + 4px);min-width:140px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:200;overflow:hidden}.post-menu-item{display:block;width:100%;padding:10px 16px;text-align:left;background:none;border:none;cursor:pointer;font-size:.9rem;color:var(--ink)}.post-menu-item:hover{background:var(--surface)}.post-menu-item--danger{color:#e53e3e}.post-menu-item--danger:hover{background:#fff5f5}@media (prefers-color-scheme: dark){.post-menu-item--danger:hover{background:#e53e3e26}}:root[data-theme=dark] .post-menu-item--danger:hover{background:#e53e3e26}:root[data-theme=light] .post-menu-item--danger:hover{background:#fff5f5}.post-edit-form{display:flex;flex-direction:column;gap:.75rem;background:var(--surface-alt);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-light)}.post-edit-form .form-group label{font-size:.8rem;font-weight:600;color:var(--ink-sub)}.post-edit-form input[type=date],.post-edit-form input[type=text],.post-edit-form textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.9rem;background:var(--surface);color:var(--ink)}.post-edit-actions{display:flex;gap:.5rem}.post-edit-actions .btn-primary{flex:1;padding:.6rem;font-size:.9rem}.tag-chip--removable{cursor:pointer;opacity:.85;-webkit-user-select:none;user-select:none}.tag-chip--removable:hover{opacity:1;background:var(--accent);color:#fff}.post-seal-date{font-family:var(--font-round);font-size:.73rem;color:var(--ink-faint);letter-spacing:.04em;text-align:right;padding-top:.35rem;border-top:1px solid var(--border-light)}.post-seal-soon{font-family:var(--font-round);font-size:.75rem;font-weight:600;color:var(--accent);letter-spacing:.04em;text-align:center;padding:.3rem .6rem;margin-top:.3rem;background:var(--accent-light);border-radius:var(--radius-sm);opacity:.9}.post-message{font-family:var(--font-round);font-size:1rem;color:var(--ink-mid);line-height:1.9;white-space:pre-wrap;letter-spacing:.02em}.comment-section{display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--border-light);padding-top:.75rem}.comment-list{display:flex;flex-direction:column;gap:.35rem}.comment-item{display:flex;align-items:flex-start;gap:.4rem;font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);line-height:1.6}.comment-icon{flex-shrink:0;font-size:.8rem;margin-top:.15rem}.comment-body{flex:1}.comment-delete-btn{flex-shrink:0;margin-left:auto;background:none;border:none;color:var(--ink-faint);font-size:.8rem;padding:0 .15rem;cursor:pointer;line-height:1;transition:color .15s}.comment-delete-btn:hover{color:#c0392b}.comment-form{display:flex;gap:.4rem}.comment-form input{flex:1;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:.9rem;color:var(--ink);background:var(--surface);min-width:0;transition:border-color .15s}.comment-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #263a6e14}.btn-comment-submit{padding:.55rem .9rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xl);font-family:var(--font-round);font-size:.85rem;font-weight:700;white-space:nowrap;cursor:pointer;letter-spacing:.03em;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.btn-comment-submit:hover:not(:disabled){opacity:.84}.btn-comment-submit:disabled{opacity:.45;cursor:not-allowed}.comment-limit-msg{font-family:var(--font-round);font-size:.82rem;color:var(--ink-faint);text-align:center;padding:.2rem 0}.comment-error{font-size:.82rem;padding:.4rem .65rem}.comment-author{font-weight:600;color:var(--ink)}.name-setting-card{background:var(--surface);border-radius:var(--radius-lg);padding:1rem 1.1rem;border:1px solid var(--border-light);border-left:3px solid var(--accent);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.5rem}.name-setting-label{font-family:var(--font-round);font-size:.9rem;font-weight:700;color:var(--accent);letter-spacing:.03em}.name-setting-desc{font-family:var(--font-round);font-size:.82rem;color:var(--ink-sub);margin-top:-.2rem}.name-setting-form{display:flex;flex-direction:column;gap:.6rem;margin-top:.2rem}.name-setting-form input{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:1rem;color:var(--ink);background:var(--surface);transition:border-color .15s}.name-setting-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #263a6e14}.name-setting-actions{display:flex;gap:.5rem}.name-setting-save{flex:1;margin-top:0}.name-display-row{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:var(--radius-lg);padding:.7rem 1rem;border:1px solid var(--border-light)}.name-display-text{font-family:var(--font-round);font-size:.875rem;color:var(--ink-sub)}.name-display-text strong{color:var(--ink);font-weight:600}.btn-name-edit{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem .65rem;font-family:var(--font-round);font-size:.78rem;color:var(--accent);cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-name-edit:hover{background:var(--accent-light)}.toggle-form-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.9rem;background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius-lg);color:var(--accent);font-family:var(--font-round);font-size:.9rem;font-weight:600;letter-spacing:.04em;transition:all .15s;-webkit-tap-highlight-color:transparent}.toggle-form-btn:hover{background:var(--accent-light);border-color:var(--accent)}.toggle-form-btn.open{background:var(--accent-light);border-style:solid;border-color:var(--accent)}.timeline-controls{display:flex;align-items:center;gap:.5rem;padding:.1rem .25rem .5rem;flex-wrap:wrap}.timeline-sort-btn{font-family:var(--font-round);font-size:.78rem;color:var(--ink-sub);background:none;border:1px solid var(--border-light);border-radius:999px;padding:.25rem .75rem;cursor:pointer;letter-spacing:.03em;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent}.timeline-sort-btn:hover{background:var(--accent-light);color:var(--accent-dark);border-color:var(--accent)}.timeline-month-filter{font-family:var(--font-round);font-size:.78rem;color:var(--ink-sub);border:1px solid var(--border-light);border-radius:999px;padding:.25rem .75rem;background:var(--surface);cursor:pointer;outline:none}.timeline-month-filter:focus{border-color:var(--accent)}.create-form{background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-family:var(--font-round);font-size:.875rem;font-weight:500;color:var(--ink-mid);letter-spacing:.02em}.form-group input,.form-group textarea{width:100%;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:1rem;color:var(--ink);background:var(--surface);transition:border-color .15s;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #263a6e14}.input-narrow{width:5rem!important;text-align:center}.unlock-age-row{display:flex;align-items:center;gap:.5rem}.unit-label{font-family:var(--font-round);font-size:.9rem;color:var(--ink-mid)}.hint{font-family:var(--font-round);font-size:.8rem;color:var(--ink-faint)}.required{color:#ef4444;margin-left:.15rem}.optional{color:var(--ink-faint);font-weight:400;font-size:.8rem;margin-left:.25rem}.theme-section{border:1px solid var(--accent);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.85rem;background:var(--accent-light)}.theme-section-label{font-family:var(--font-round);font-size:.8rem;font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.theme-section-desc{font-family:var(--font-round);font-size:.82rem;color:var(--ink-sub);line-height:1.7;margin-top:-.4rem}.action-row{display:flex;gap:.5rem;align-items:stretch}.action-btn{flex:1}.invite-section{display:flex;flex-direction:column;justify-content:center}.btn-invite{padding:.85rem 1rem;background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius-lg);color:var(--accent);font-family:var(--font-round);font-size:.875rem;font-weight:600;white-space:nowrap;cursor:pointer;letter-spacing:.03em;transition:all .15s;-webkit-tap-highlight-color:transparent}.btn-invite:hover:not(:disabled){background:var(--accent-light);border-color:var(--accent)}.btn-invite:disabled{opacity:.5;cursor:not-allowed}.invite-result{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:.85rem;display:flex;flex-direction:column;gap:.5rem;width:100%}.invite-result-label{font-family:var(--font-round);font-size:.78rem;color:var(--accent);font-weight:700;letter-spacing:.06em}.invite-url-input{width:100%;padding:.5rem .6rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.75rem;color:var(--ink-sub);background:var(--surface-alt);font-family:Courier New,monospace;cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-result-actions{display:flex;gap:.4rem}.btn-copy{flex:1;padding:.55rem .75rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xl);font-family:var(--font-round);font-size:.875rem;font-weight:700;cursor:pointer;letter-spacing:.03em;transition:opacity .15s;white-space:nowrap}.btn-copy:hover{opacity:.84}.btn-copy--done{background:#4a9e6a}.btn-invite-reset{padding:.55rem .75rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);color:var(--ink-sub);font-size:.875rem;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-invite-reset:hover{background:var(--border-light)}.invite-card{text-align:center}.invite-icon-area{font-size:3rem;margin:.5rem 0;line-height:1}.invite-heading{font-family:var(--font-round);font-size:1.15rem;font-weight:600;color:var(--ink);letter-spacing:.04em;margin-bottom:.5rem}.invite-desc{font-family:var(--font-round);font-size:.9rem;color:var(--ink-sub);line-height:1.8;margin-bottom:1rem}.invite-name-input{width:100%;padding:.75rem .9rem;border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:1rem;color:var(--ink);background:var(--bg);box-sizing:border-box;transition:border-color .15s}.invite-name-input:focus{outline:none;border-color:var(--accent)}.auth-field-hint{font-family:var(--font-round);font-size:.78rem;color:var(--ink-faint);margin:.25rem 0 0;line-height:1.5}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.photo-preview-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-alt)}.photo-preview-img{width:100%;height:100%;object-fit:cover;display:block}.photo-remove-btn{position:absolute;top:3px;right:3px;width:22px;height:22px;background:#0000008c;color:#fff;border:none;border-radius:50%;font-size:.85rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.photo-add-cell{aspect-ratio:1;border:1.5px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.photo-add-cell:hover{background:var(--accent-light);border-color:var(--accent)}.photo-add-icon{font-size:1.4rem;color:var(--ink-faint);line-height:1}.photo-add-label{font-family:var(--font-round);font-size:.68rem;color:var(--ink-faint);font-weight:500}.tag-list--edit{margin-bottom:.4rem}.tag-chip--removable{display:inline-flex;align-items:center;gap:.2rem}.tag-remove-btn{background:none;border:none;color:var(--ink-sub);font-size:.75rem;padding:0 .1rem;cursor:pointer;line-height:1}.tag-suggest-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.tag-suggest-chip{font-family:var(--font-round);font-size:.8rem;padding:.3rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);color:var(--ink-sub);cursor:pointer;transition:all .12s;-webkit-tap-highlight-color:transparent}.tag-suggest-chip:hover{border-color:var(--accent);color:var(--accent)}.tag-suggest-chip--selected{background:var(--accent-light);border-color:var(--accent);color:var(--accent-dark);font-weight:600}.tag-input-row{display:flex;gap:.4rem}.tag-input-row input{flex:1}.btn-tag-add{padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--accent-light);color:var(--accent-dark);font-family:var(--font-round);font-size:.875rem;font-weight:700;white-space:nowrap;cursor:pointer;letter-spacing:.02em;transition:all .15s}.btn-tag-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.form-actions{display:flex;gap:.5rem}.btn-cancel{flex:1;padding:.8rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-round);color:var(--ink-sub);font-size:.95rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:background .15s}.btn-cancel:hover:not(:disabled){background:var(--border-light)}.btn-cancel:disabled{opacity:.5}.billing-section{padding:1.25rem 1rem 1rem;margin:.75rem 0;border:1px solid #e2e8f0;border-radius:var(--radius);background:#fafafa}.billing-status-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.85rem;font-size:.9rem}.billing-status-label{color:var(--text-muted)}.billing-status-badge{font-weight:600;font-size:.85rem;padding:.2rem .65rem;border-radius:999px}.billing-status-badge--active{background:#dcfce7;color:#16a34a}.billing-status-badge--past_due{background:#fef9c3;color:#a16207}.billing-status-badge--free{background:#f1f5f9;color:#64748b}.btn-billing-subscribe{display:block;width:100%;padding:.75rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-billing-subscribe:hover:not(:disabled){background:var(--accent-dark)}.btn-billing-subscribe:disabled{opacity:.6;cursor:not-allowed}.btn-billing-manage{display:block;width:100%;padding:.7rem 1rem;background:none;color:var(--text-muted);border:1px solid #cbd5e1;border-radius:var(--radius);font-size:.875rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-billing-manage:hover:not(:disabled){border-color:#94a3b8;color:var(--text-base)}.btn-billing-manage:disabled{opacity:.6;cursor:not-allowed}.billing-upgrade-prompt{padding:.85rem 1rem;background:#fefce8;border:1px solid #fde68a;border-radius:var(--radius);margin:.75rem 0}.billing-upgrade-msg{margin:0 0 .65rem;font-size:.875rem;color:#92400e;font-weight:500}.billing-notice{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;font-size:.9rem;font-weight:500}.billing-notice--success{background:#dcfce7;color:#14532d;border-bottom:1px solid #bbf7d0}.billing-notice--cancel{background:#f1f5f9;color:#475569;border-bottom:1px solid #e2e8f0}.billing-notice-close{background:none;border:none;cursor:pointer;font-size:1rem;color:inherit;opacity:.7;flex-shrink:0}.billing-notice-close:hover{opacity:1}.withdrawal-trigger{text-align:center;padding:2rem 0 1rem}.btn-withdrawal-open{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:.25rem}.btn-withdrawal-open:hover{color:#ef4444}.withdrawal-confirm{margin:1.5rem 0 2rem;padding:1.25rem;border:1px solid #fecaca;border-radius:var(--radius);background:#fff5f5}.withdrawal-heading{margin:0 0 .75rem;font-size:1rem;color:#dc2626}.withdrawal-body{margin:0 0 .75rem;font-size:.9rem;color:var(--text-main)}.withdrawal-list{margin:0 0 1rem 1.25rem;padding:0;font-size:.85rem;color:var(--text-muted);line-height:1.8}.withdrawal-check{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:var(--text-main);margin-bottom:1rem;cursor:pointer}.withdrawal-check input[type=checkbox]{margin-top:.2rem;flex-shrink:0}.withdrawal-actions{display:flex;gap:.75rem}.btn-withdrawal-confirm{flex:1;padding:.8rem;border:none;border-radius:var(--radius);background:#dc2626;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-withdrawal-confirm:hover:not(:disabled){background:#b91c1c}.btn-withdrawal-confirm:disabled{opacity:.45;cursor:not-allowed}.withdraw-section{margin-top:1.2rem;padding:1rem 1.1rem;background:var(--bg-card, #fafafa);border:1px solid var(--border, #e5e7eb);border-radius:8px}.withdraw-section-title{margin:0 0 .35rem;font-size:.82rem;font-weight:700;color:var(--ink-sub, #6b7280);letter-spacing:.03em;text-transform:uppercase}.withdraw-section-body{margin:0 0 .75rem;font-size:.9rem;color:var(--ink, #374151);line-height:1.6}.withdraw-capsule-row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.withdraw-capsule-row:last-child{margin-bottom:0}.withdraw-capsule-name{font-size:.95rem;font-weight:600;color:var(--ink, #374151)}.withdraw-select{width:100%;padding:.5rem .75rem;border:1.5px solid var(--border, #d1d5db);border-radius:8px;font-size:.95rem;background:#fff;color:var(--ink, #374151);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.withdraw-select:focus{outline:none;border-color:var(--accent, #6366f1);box-shadow:0 0 0 3px #6366f11f}.withdraw-radio{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .8rem;margin-bottom:.5rem;border:1.5px solid var(--border, #d1d5db);border-radius:8px;cursor:pointer;background:#fff;transition:border-color .15s}.withdraw-radio:last-child{margin-bottom:0}.withdraw-radio:has(input:checked){border-color:var(--accent, #6366f1);background:#6366f10a}.withdraw-radio input[type=radio]{margin-top:.2rem;flex-shrink:0;accent-color:var(--accent, #6366f1)}.withdraw-radio-text{display:flex;flex-direction:column;gap:.2rem;font-size:.92rem;color:var(--ink, #374151);line-height:1.4}.withdraw-radio-desc{font-size:.82rem;color:var(--ink-faint, #9ca3af);font-weight:400}.withdraw-mode-cards{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.withdraw-mode-card{width:100%;display:flex;flex-direction:column;gap:.4rem;padding:1rem 1.1rem;border:1.5px solid var(--border, #d1d5db);border-radius:10px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.withdraw-mode-card:hover{border-color:var(--accent, #6366f1);background:#6366f10a}.withdraw-mode-card--danger{border-color:#fecaca;background:#fff5f5}.withdraw-mode-card--danger:hover{border-color:#dc2626;background:#fff0f0}.withdraw-mode-label{font-size:.95rem;color:var(--ink, #374151)}.withdraw-mode-card--danger .withdraw-mode-label{color:#dc2626}.withdraw-mode-desc{font-size:.82rem;color:var(--ink-sub, #6b7280);line-height:1.5;font-weight:400}.withdraw-back-btn{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:.75rem;padding:0;border:none;background:none;font-size:.85rem;color:var(--accent, #6366f1);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.withdraw-back-btn:disabled{opacity:.45;cursor:not-allowed}.withdraw-no-candidate{margin:1rem 0;padding:.9rem 1rem;font-size:.88rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;line-height:1.6}.withdraw-transfer-summary{margin-top:.5rem}.withdraw-section-title--danger{color:#dc2626}.btn-withdrawal-confirm--danger{background:#dc2626}.btn-withdrawal-confirm--danger:hover:not(:disabled){background:#b91c1c}.btn-submit{flex:2}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.lightbox-close{position:absolute;top:.75rem;right:.75rem;width:2.5rem;height:2.5rem;background:#ffffff2e;border:none;border-radius:50%;color:#fff;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.lightbox-close:hover{background:#ffffff52}.lightbox-frame{position:relative;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:calc(100dvh - 6rem)}.lightbox-img{max-width:calc(100vw - 2rem);max-height:calc(100dvh - 6rem);object-fit:contain;border-radius:.4rem;display:block;-webkit-user-select:none;user-select:none}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.5rem;height:2.5rem;background:#ffffff2e;border:none;border-radius:50%;color:#fff;font-size:1.6rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.lightbox-nav:hover:not(:disabled){background:#ffffff59}.lightbox-nav:disabled{opacity:.18;cursor:default}.lightbox-prev{left:.4rem}.lightbox-next{right:.4rem}.lightbox-dots{display:flex;gap:.45rem;margin-top:1rem}.lightbox-dot{width:8px;height:8px;border-radius:50%;background:#ffffff59;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.lightbox-dot--active{background:#fff}.avatar-upload-error{font-family:var(--font-round);font-size:.78rem;color:#c0392b;background:#fdf0ee;border-radius:var(--radius-sm);padding:.4rem .75rem;margin-top:.4rem}.release-delete-gap{margin-top:2rem}.danger-zone{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-light);display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.danger-zone-hint{font-family:var(--font-round);font-size:.8rem;color:#7a6a5d;line-height:1.65;margin:0}.btn-danger{background:none;border:1px solid var(--border);border-radius:var(--radius-xl);color:var(--ink-sub);font-family:var(--font-round);font-size:.85rem;font-weight:500;padding:.5rem 1rem;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.btn-danger:hover{border-color:#e06060;color:#c0392b;background:#fdf0ee}.danger-confirm-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem;display:flex;flex-direction:column;gap:.75rem}.danger-confirm-title{font-family:var(--font-round);font-size:.95rem;font-weight:700;color:var(--ink)}.danger-confirm-message{font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);line-height:1.75}.danger-confirm-actions{display:flex;gap:.5rem}.btn-danger-confirm{flex:1;padding:.75rem;background:transparent;color:var(--ink);border:1px solid #7a6a5d;border-radius:var(--radius-xl);font-family:var(--font-round);font-size:.9rem;font-weight:600;cursor:pointer;letter-spacing:.02em;transition:all .15s;-webkit-tap-highlight-color:transparent}.btn-danger-confirm:hover:not(:disabled){background:#f5f0eb;border-color:var(--ink-sub)}.header-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.capsule-icon-btn{position:relative;background:none;border:none;font-size:1.5rem;line-height:1;padding:.2rem .3rem;border-radius:var(--radius-sm);cursor:pointer;transition:transform .15s,opacity .15s;-webkit-tap-highlight-color:transparent}.capsule-icon-btn:hover{opacity:.75}.capsule-icon-btn--active .capsule-icon-emoji{filter:drop-shadow(0 0 5px var(--accent))}.capsule-badge{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;background:var(--accent);color:#fff;border-radius:999px;font-family:var(--font-round);font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 3px;border:2px solid var(--surface);line-height:1}.seal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:1.5rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.seal-popup{background:var(--surface);border-radius:var(--radius-xl);padding:2rem 1.5rem 1.75rem;max-width:360px;width:100%;text-align:center;box-shadow:0 24px 64px #00000038}.seal-popup-icon{font-size:2.8rem;margin-bottom:.75rem;line-height:1}.seal-popup-msg{font-family:var(--font-round);font-size:1rem;color:var(--ink);line-height:1.85;font-weight:600;letter-spacing:.03em;margin-bottom:1.25rem;white-space:pre-line}.seal-cards{display:flex;flex-direction:column;gap:.45rem;max-height:40vh;overflow-y:auto}.seal-card{display:flex;align-items:center;gap:.65rem;background:var(--accent-light);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.65rem .9rem;text-align:left;animation:seal-enter .4s ease both}.seal-card--absorbing{animation:seal-absorb .5s ease forwards}.seal-card-icon{font-size:1rem;flex-shrink:0;opacity:.8}.seal-card-body{display:flex;flex-direction:column;gap:.05rem;min-width:0}.seal-card-title{font-family:var(--font-round);font-size:.88rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seal-card-date{font-family:var(--font-round);font-size:.73rem;color:var(--ink-sub)}@keyframes seal-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes seal-absorb{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-70px) scale(.75)}}@media (prefers-reduced-motion: reduce){.seal-card,.seal-card--absorbing{animation:none;opacity:1;transform:none}}.seal-anim-msg{font-family:var(--font-round);font-size:1rem;color:#fff;font-weight:600;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.3);letter-spacing:.03em;line-height:1.75;padding:0 .5rem}.seal-cards-stage{display:flex;flex-direction:column;align-items:center;gap:.55rem}.seal-capsule-card{position:relative;width:min(260px,80vw);background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius-md);padding:.8rem 1.1rem;overflow:hidden;transition:border-radius .35s cubic-bezier(.2,0,0,1)}.seal-capsule-card--appearing{animation:seal-card-appear .3s cubic-bezier(.2,0,0,1) both}.seal-capsule-card--wrapping,.seal-capsule-card--flying{border-radius:50px}.seal-capsule-card--flying{animation:seal-capsule-fly .5s cubic-bezier(.4,0,.6,1) forwards}.seal-capsule-content{display:flex;flex-direction:column;gap:.15rem;transition:opacity .2s ease}.seal-capsule-card--wrapping .seal-capsule-content,.seal-capsule-card--flying .seal-capsule-content{opacity:0}.seal-capsule-title{font-family:var(--font-round);font-size:.9rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seal-capsule-date{font-family:var(--font-round);font-size:.72rem;color:var(--ink-sub)}.seal-capsule-shell{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.capsule-shell-top{position:absolute;top:0;left:0;right:0;height:50%;background:var(--accent);border-radius:50px 50px 0 0;transform:translateY(-105%);transition:transform .35s cubic-bezier(.2,0,0,1)}.capsule-shell-bottom{position:absolute;bottom:0;left:0;right:0;height:50%;background:var(--accent-light);border-radius:0 0 50px 50px;transform:translateY(105%);transition:transform .35s cubic-bezier(.2,0,0,1)}.seal-capsule-card--wrapping .capsule-shell-top,.seal-capsule-card--flying .capsule-shell-top,.seal-capsule-card--wrapping .capsule-shell-bottom,.seal-capsule-card--flying .capsule-shell-bottom{transform:translateY(0)}.seal-extra-count{font-family:var(--font-round);font-size:.78rem;color:#ffffffd1;text-shadow:0 1px 3px rgba(0,0,0,.25)}.seal-overlay--tappable{cursor:pointer}.seal-capsule-card--resting{animation:seal-card-breathe 2.6s ease-in-out infinite}@keyframes seal-card-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.seal-tap-hint{font-family:var(--font-round);font-size:.8rem;color:#ffffffd9;text-shadow:0 1px 3px rgba(0,0,0,.25);opacity:0;transition:opacity .4s ease .2s}.seal-tap-hint--visible{opacity:1}.seal-progress{font-family:var(--font-round);font-size:.72rem;color:#fff9;letter-spacing:.08em}@keyframes seal-card-appear{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes seal-capsule-fly{0%{transform:translate(0) scale(1);opacity:1}80%{opacity:.6}to{transform:translate(var(--fly-tx, 0px),var(--fly-ty, 0px)) scale(.07);opacity:0}}.capsule-fab--bounce{animation:fab-bounce .55s cubic-bezier(.36,.07,.19,.97)!important}@keyframes fab-bounce{0%{transform:scale(1)}25%{transform:scale(1.28)}55%{transform:scale(.91)}78%{transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.seal-capsule-card--appearing,.seal-capsule-card--resting,.seal-capsule-card--flying,.capsule-fab--bounce{animation:none!important;opacity:1;transform:none}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;background:#3d2b1f73;padding:1.5rem;animation:confirm-fade-in .2s ease}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-card{background:var(--surface);border-radius:var(--radius-md);padding:1.5rem 1.4rem;width:min(340px,100%);box-shadow:0 12px 40px #0000002e;text-align:center}.confirm-message{font-family:var(--font-round);font-size:.95rem;color:var(--ink);line-height:1.8;white-space:pre-line;margin-bottom:1.25rem}.confirm-actions{display:flex;gap:.6rem;justify-content:center}@media (prefers-reduced-motion: reduce){.confirm-overlay{animation:none}}.capsule-fab{position:fixed;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));right:calc(1.25rem + env(safe-area-inset-right,0px));width:64px;height:64px;min-width:64px;border-radius:50%;background:var(--accent-light);border:2px solid var(--accent);box-shadow:0 4px 18px #00000024,0 1px 4px #00000014;display:flex;align-items:center;justify-content:center;opacity:.88;cursor:pointer;transition:opacity .2s,transform .2s,box-shadow .2s;z-index:100;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.capsule-fab:hover,.capsule-fab:focus-visible{opacity:1;box-shadow:0 6px 22px #0000002e,0 1px 5px #00000014;outline:none}.capsule-fab--active{opacity:1;border-width:2.5px;box-shadow:0 4px 20px #ff6d5a47,0 1px 4px #00000014}.capsule-fab--notify{opacity:1;animation:fab-glow 2.6s ease-in-out infinite}.capsule-fab--scrolling{opacity:.55!important;transform:scale(.92);animation:none!important}.capsule-fab-emoji{font-size:2rem;line-height:1;display:block}.capsule-fab-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;background:var(--accent);color:#fff;border-radius:999px;font-family:var(--font-round);font-size:.62rem;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 3px;border:2px solid var(--surface);line-height:1}@keyframes fab-glow{0%,to{box-shadow:0 3px 12px #0000001a}50%{box-shadow:0 0 0 6px #ff6d5a2e,0 3px 14px #0000001a}}@media (prefers-reduced-motion: reduce){.capsule-fab--notify{animation:none}.capsule-fab--scrolling{transition:none}}.view-toggle{display:flex;gap:0;background:var(--surface-alt);border-radius:var(--radius-md);padding:.25rem;margin-bottom:1rem}.view-toggle-btn{flex:1;padding:.55rem .5rem;background:none;border:none;border-radius:calc(var(--radius-md) - 2px);font-family:var(--font-round);font-size:.875rem;font-weight:600;color:var(--ink-sub);cursor:pointer;letter-spacing:.03em;transition:all .2s;-webkit-tap-highlight-color:transparent}.view-toggle-btn--active{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #0000001a}.capsule-box{display:flex;flex-direction:column;gap:1rem}.capsule-count-header{text-align:center;padding:1.25rem 1rem .25rem}.capsule-count-text{font-family:var(--font-round);font-size:1rem;color:var(--ink-mid);line-height:1.9;letter-spacing:.03em}.capsule-count-num{font-size:2.2rem;font-weight:800;color:var(--accent);letter-spacing:0;vertical-align:middle}.capsule-count-text--empty{color:var(--ink-faint);font-size:.9rem}.capsule-chapter{display:flex;flex-direction:column;gap:.5rem}.capsule-chapter-heading{display:flex;flex-direction:column;gap:.15rem;padding:.75rem 1rem .5rem;border-left:3px solid var(--accent);background:linear-gradient(135deg,rgba(255,111,97,.06) 0%,transparent 60%);border-radius:0 .5rem .5rem 0}.capsule-chapter-title{font-family:var(--font-round);font-size:.95rem;font-weight:700;color:var(--accent);letter-spacing:.03em}.capsule-chapter-count{font-size:.78rem;color:var(--ink-mid);letter-spacing:.02em}.capsule-chapter-divider{height:1px;background:linear-gradient(to right,var(--accent-light, #ffd6d0),transparent);margin:.75rem 0 .25rem;opacity:.6}.capsule-list{display:flex;flex-direction:column;gap:.5rem}.capsule-item{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:1rem 1.1rem;cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s,background .2s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;outline:none}.capsule-item:hover{border-color:var(--border);box-shadow:0 2px 8px #e0684814}.capsule-item:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #e0684833}.capsule-item--open{border-color:var(--accent);background:var(--accent-light)}.capsule-item-main{display:flex;align-items:center;gap:.75rem}.capsule-item-icon{font-size:1.2rem;flex-shrink:0;opacity:.75}.capsule-item-body{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.capsule-item-title{font-family:var(--font-round);font-size:.95rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capsule-item-date{font-family:var(--font-round);font-size:.78rem;color:var(--ink-sub);letter-spacing:.02em}.capsule-item-chevron{font-size:1.1rem;color:var(--ink-faint);flex-shrink:0}.capsule-item-hint{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(224,104,72,.2);font-family:var(--font-round);font-size:.875rem;color:var(--accent-dark);font-weight:500;letter-spacing:.02em;line-height:1.6}.btn-load-more{display:block;width:100%;padding:.75rem;background:none;border:1px dashed var(--border);border-radius:var(--radius-md);font-family:var(--font-round);font-size:.875rem;color:var(--ink-sub);cursor:pointer;letter-spacing:.03em;transition:border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}.btn-load-more:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-load-more:disabled{opacity:.5;cursor:not-allowed}.btn-danger-confirm:disabled{opacity:.5;cursor:not-allowed}.theme-banner--empty{background:var(--gradient-banner);padding:1.25rem}.theme-add-btn{display:block;width:100%;background:#ffffff26;border:1.5px solid rgba(255,255,255,.75);border-radius:.75rem;color:#fffffff7;font-family:var(--font-round);font-size:.9rem;font-weight:700;padding:.7rem 1rem;cursor:pointer;text-align:center;margin-top:1.1rem;letter-spacing:.03em;transition:background .15s;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}.theme-add-btn:hover,.theme-add-btn:active{background:#ffffff45}.theme-add-btn--first{margin-top:0;padding:.875rem 1rem;font-size:.95rem}.theme-wizard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d2b1f80;z-index:300;display:flex;align-items:flex-end;justify-content:center;animation:overlay-fade-in .18s ease}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.theme-wizard-card{background:var(--surface);border-radius:1.75rem 1.75rem 0 0;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:2.25rem 1.5rem calc(2.25rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1.25rem;position:relative;animation:sheet-slide-up .26s cubic-bezier(.34,1.08,.64,1)}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.theme-wizard-close{position:absolute;top:1.1rem;right:1.25rem;background:none;border:none;font-size:1.25rem;color:var(--ink-sub);line-height:1;padding:.3rem .4rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.theme-wizard-skip-link{background:none;border:none;font-family:var(--font-round);font-size:.82rem;color:var(--ink-faint);text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:.25rem 0;align-self:center;-webkit-tap-highlight-color:transparent}.theme-wizard-skip-link:hover{color:var(--ink-sub)}.theme-wizard-intro{display:flex;flex-direction:column;gap:.6rem;padding:1rem 0 .5rem;text-align:center}.theme-wizard-intro-heading{font-family:var(--font-round);font-size:1.15rem;font-weight:700;color:var(--ink);line-height:1.7}.theme-wizard-intro-sub{font-family:var(--font-round);font-size:.9rem;color:var(--ink-mid);line-height:1.8}.theme-wizard-intro-body{font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);line-height:1.9;white-space:pre-line}.theme-wizard-q-label{font-family:var(--font-round);font-size:.7rem;font-weight:700;letter-spacing:.14em;color:var(--accent);margin-bottom:.45rem;text-transform:uppercase}.theme-wizard-q-text{font-family:var(--font-round);font-size:1rem;color:var(--ink);line-height:1.9}.theme-wizard-textarea{width:100%;min-height:110px;padding:.875rem 1rem;border:2px solid var(--border);border-radius:.875rem;font-family:var(--font-round);font-size:.95rem;color:var(--ink);background:var(--bg);resize:none;line-height:1.8;transition:border-color .15s}.theme-wizard-textarea:focus{outline:none;border-color:var(--accent)}.theme-wizard-textarea--compact{min-height:80px}.theme-wizard-loading{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 0}.theme-wizard-loading-emoji{font-size:2.75rem;animation:wizard-float 2s ease-in-out infinite}@keyframes wizard-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.theme-wizard-loading-text{font-family:var(--font-round);font-size:.95rem;color:var(--ink-mid);text-align:center;line-height:1.85}.theme-wizard-candidates-heading{font-family:var(--font-round);font-size:.95rem;font-weight:700;color:var(--ink);line-height:1.7}.theme-wizard-candidates-sub{font-family:var(--font-round);font-size:.82rem;color:var(--ink-sub);margin-top:.3rem;line-height:1.7}.theme-candidates-list{display:flex;flex-direction:column;gap:.625rem}.theme-candidate-card{width:100%;text-align:left;border:2px solid var(--border);border-radius:1rem;padding:1rem 1.25rem;cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface);-webkit-tap-highlight-color:transparent}.theme-candidate-card:hover,.theme-candidate-card--selected{border-color:var(--accent);background:var(--accent-light)}.theme-candidate-title{font-family:var(--font-round);font-size:1.05rem;font-weight:700;color:var(--ink);margin-bottom:.4rem}.theme-candidate-wish{font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);line-height:1.85;white-space:pre-wrap}.theme-edit-section{display:flex;flex-direction:column;gap:.875rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.theme-edit-field{display:flex;flex-direction:column;gap:.35rem}.theme-edit-label{font-family:var(--font-round);font-size:.78rem;font-weight:700;color:var(--ink-sub);letter-spacing:.05em}.theme-edit-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border);border-radius:.75rem;font-family:var(--font-round);font-size:1rem;color:var(--ink);background:var(--bg);transition:border-color .15s}.theme-edit-input:focus{outline:none;border-color:var(--accent)}.theme-ai-disclosure{font-family:var(--font-round);font-size:.7rem;color:var(--ink-faint);text-align:center;line-height:1.6}.theme-wizard-btn-row{display:flex;flex-direction:column;gap:.5rem}.theme-wizard-btn-primary{background:var(--accent);color:#fff;border:none;border-radius:999px;font-family:var(--font-round);font-size:1rem;font-weight:700;padding:.9rem 1.5rem;width:100%;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent;letter-spacing:.02em}.theme-wizard-btn-primary:hover{background:var(--accent-dark)}.theme-wizard-btn-primary:disabled{opacity:.45;cursor:not-allowed}.theme-wizard-btn-ghost{background:none;border:1.5px solid var(--border);border-radius:999px;font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);padding:.75rem 1rem;width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s,color .15s}.theme-wizard-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.theme-wizard-btn-primary--danger{background:#b03030}.theme-wizard-btn-primary--danger:hover{background:#8a2020}.theme-overwrite-heading-block{display:flex;flex-direction:column;gap:.3rem}.theme-overwrite-heading{font-family:var(--font-round);font-size:1rem;font-weight:700;color:var(--ink);line-height:1.6}.theme-overwrite-warning{font-family:var(--font-round);font-size:.875rem;color:#b03030;font-weight:600}.theme-overwrite-compare{display:flex;flex-direction:column;gap:.5rem}.theme-overwrite-block{border-radius:.875rem;padding:.875rem 1.1rem;display:flex;flex-direction:column;gap:.3rem}.theme-overwrite-block--current{background:var(--surface-alt);border:1px solid var(--border);opacity:.75}.theme-overwrite-block--new{background:var(--accent-light);border:1.5px solid var(--accent)}.theme-overwrite-label{font-family:var(--font-round);font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--ink-sub);text-transform:uppercase}.theme-overwrite-title{font-family:var(--font-round);font-size:1rem;font-weight:700;color:var(--ink)}.theme-overwrite-body{font-family:var(--font-round);font-size:.82rem;color:var(--ink-mid);line-height:1.75;white-space:pre-wrap}.theme-overwrite-arrow{text-align:center;font-size:1.1rem;color:var(--ink-faint);line-height:1}.theme-overwrite-check-label{display:flex;align-items:flex-start;gap:.6rem;font-family:var(--font-round);font-size:.9rem;color:var(--ink);line-height:1.6;cursor:pointer}.theme-overwrite-check-label input[type=checkbox]{margin-top:.25rem;flex-shrink:0;width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer}@media (prefers-reduced-motion: reduce){.theme-wizard-overlay,.theme-wizard-card,.theme-wizard-loading-emoji{animation:none}}.reflection-card{text-align:center}.reflection-heading{font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.5}.reflection-body{font-size:.9rem;color:var(--ink-sub);line-height:1.7}.reflection-wish{font-size:.85rem;color:var(--ink-sub);font-style:italic;border-left:3px solid var(--accent);padding-left:.75rem;text-align:left}.reflection-btn-group{display:flex;flex-direction:column;gap:.6rem;width:100%}.reflection-stay-message{font-size:1rem;color:var(--ink);text-align:center;line-height:1.7;padding:.5rem 0}.post-theme-hint{display:flex;align-items:baseline;gap:.2rem;font-size:.78rem;padding:.3rem .65rem;background:var(--accent-light);border-radius:.5rem;margin-bottom:.4rem;line-height:1.4}.post-theme-hint-label{color:var(--ink-sub);white-space:nowrap}.post-theme-hint-value{color:var(--ink-mid);font-weight:500}.release-zone{margin:2rem auto 0;max-width:480px;padding:0 1rem;text-align:center}.btn-release{display:inline-block;padding:.6rem 1.4rem;border:1.5px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.btn-release:hover{background:var(--accent-light)}.release-confirm-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.4rem 1.2rem;text-align:left}.release-confirm-title{font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:.6rem}.release-confirm-message{font-size:.88rem;color:var(--ink-mid);line-height:1.6;margin-bottom:1rem}.release-check-label{display:flex;align-items:flex-start;gap:.5rem;font-size:.88rem;color:var(--ink);margin-bottom:1rem;cursor:pointer}.release-check-label input[type=checkbox]{margin-top:.15rem;flex-shrink:0}.release-confirm-actions{display:flex;gap:.6rem;justify-content:flex-end}.btn-release-confirm{padding:.5rem 1.2rem;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-release-confirm:disabled{opacity:.45;cursor:not-allowed}.capsule-box--released .capsule-count-header{border-left:3px solid var(--accent);padding-left:.8rem}.capsule-released-badge{font-size:.78rem;font-weight:600;color:var(--accent);letter-spacing:.04em;margin-bottom:.3rem}.capsule-fab--released{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-light)!important}.capsule-item--sealed{cursor:default}.capsule-item--released{cursor:pointer}.capsule-item-age{display:block;font-size:.75rem;color:var(--ink-sub);margin-top:.1rem}.capsule-item-message{font-family:var(--font-round);font-size:.875rem;line-height:1.85;color:var(--ink-mid);margin-top:.5rem;white-space:normal;overflow-wrap:break-word}.capsule-item-content{padding:.8rem .8rem .6rem 2.6rem;border-top:1px solid var(--border-light, #f0ede8)}.capsule-item-images{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;margin-bottom:.5rem;-webkit-overflow-scrolling:touch}.capsule-item-photo{height:120px;width:auto;border-radius:6px;object-fit:cover;flex-shrink:0}.capsule-item-no-photo{font-size:.8rem;color:var(--ink-sub);margin-bottom:.4rem}.capsule-item-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}.capsule-item-comments{display:flex;flex-direction:column;gap:.3rem}.capsule-item-comment{font-size:.83rem;color:var(--ink-mid);line-height:1.5}.capsule-item-comment-author{font-weight:600;color:var(--ink)}.legal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#fff;display:flex;flex-direction:column;overflow:hidden}.legal-overlay-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;background:#fff;border-bottom:1px solid var(--border)}.legal-overlay-back{flex-shrink:0;background:none;border:none;font-size:.9rem;color:var(--accent);cursor:pointer;padding:.25rem .5rem;border-radius:6px;font-family:var(--font-round)}.legal-overlay-back:hover{background:#f0f9ff}.legal-overlay-title{font-size:1rem;font-weight:700;color:var(--ink);font-family:var(--font-round);margin:0}.legal-overlay-body{flex:1;overflow-y:auto;padding:1.25rem 1rem 3rem;max-width:680px;margin:0 auto;width:100%}.legal-section{margin-bottom:1.75rem}.legal-section h3{font-size:.95rem;font-weight:700;color:var(--ink);font-family:var(--font-round);margin:0 0 .5rem;padding-bottom:.3rem;border-bottom:2px solid var(--accent-pale)}.legal-section p{font-size:.88rem;color:var(--ink-mid);line-height:1.75;margin:.35rem 0;font-family:var(--font-round)}.legal-updated{font-size:.78rem;color:var(--ink-faint);text-align:right;margin-top:2rem;font-family:var(--font-round)}.app-legal-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem;padding:2rem 1rem 1.5rem;margin-top:1.5rem}.legal-link{background:none;border:none;font-size:.78rem;color:var(--ink-faint);cursor:pointer;font-family:var(--font-round);text-decoration:underline;text-decoration-color:transparent;padding:0;line-height:1}.legal-link:hover{color:var(--accent);text-decoration-color:var(--accent)}a.legal-link{display:inline}.legal-footer-sep{color:var(--ink-faint);font-size:.78rem;line-height:1}.signup-consent{display:flex;flex-direction:column;gap:.3rem;padding:.5rem 0}.signup-consent label{display:flex;align-items:flex-start;gap:.55rem;font-size:.85rem;color:var(--ink-mid);font-family:var(--font-round);line-height:1.6;cursor:pointer}.signup-consent input[type=checkbox]{flex-shrink:0;margin-top:.2rem;width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer}.signup-consent span{flex:1}.consent-btn-link{background:none;border:none;padding:0;font-size:inherit;font-family:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;display:inline}.consent-btn-link:hover{text-decoration-color:var(--accent)}.consent-alert{margin:0;font-size:.8rem}.post-report-row{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}.btn-report-text{background:none;border:none;font-size:.75rem;color:var(--ink-faint);cursor:pointer;padding:0;font-family:var(--font-round);text-decoration:underline;text-decoration-color:transparent}.btn-report-text:hover{color:#ef4444;text-decoration-color:#ef4444}.report-panel{margin-top:.6rem;padding:.75rem .9rem;background:#fff8f8;border:1px solid #fecaca;border-radius:8px;font-size:.82rem;font-family:var(--font-round);line-height:1.65}.report-panel-heading{font-weight:700;color:var(--ink);margin:0 0 .4rem}.report-panel p{color:var(--ink-mid);margin:.2rem 0}.report-panel a{color:var(--accent);word-break:break-all}.report-panel-close{display:inline-block;margin-top:.6rem;background:none;border:1px solid var(--border);border-radius:6px;padding:.25rem .7rem;font-size:.78rem;color:var(--ink-mid);cursor:pointer;font-family:var(--font-round)}.report-panel-close:hover{background:#f1f5f9}.member-section{margin:1.5rem 0 .5rem;padding:0 .5rem}.member-section-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;font-family:var(--font-round);font-size:.85rem;font-weight:600;color:var(--ink-mid);cursor:pointer;padding:.3rem 0;letter-spacing:.02em}.member-section-toggle:hover{color:var(--ink)}.member-section-chevron{font-size:1rem;line-height:1;color:var(--ink-faint)}.member-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.15rem}.member-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:var(--radius-md);background:var(--surface)}.member-row:nth-child(2n){background:var(--surface-alt)}.member-avatar{font-size:1rem;flex-shrink:0;opacity:.7}.member-name{flex:1;font-family:var(--font-round);font-size:.875rem;color:var(--ink);font-weight:500}.member-badge{font-size:.7rem;font-family:var(--font-round);font-weight:700;color:var(--accent-dark);background:var(--accent-light);border-radius:999px;padding:.1em .55em;white-space:nowrap;letter-spacing:.04em}.member-remove-btn{background:none;border:1px solid var(--border);border-radius:999px;font-size:.72rem;font-family:var(--font-round);color:var(--ink-sub);padding:.15em .7em;cursor:pointer;white-space:nowrap;transition:all .15s}.member-remove-btn:hover{border-color:var(--ink-sub);color:var(--ink);background:var(--surface-alt)}.btn-cancel-invite{margin-top:.6rem;background:none;border:none;font-size:.76rem;font-family:var(--font-round);color:var(--ink-faint);text-decoration:underline;text-decoration-color:transparent;cursor:pointer;padding:0;transition:color .15s}.btn-cancel-invite:hover{color:var(--ink-sub);text-decoration-color:var(--ink-sub)}.btn-cancel-invite:disabled{opacity:.5;cursor:not-allowed}.remove-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d2b1f59;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.remove-confirm-card{background:var(--bg);border-radius:var(--radius-xl);padding:1.5rem 1.25rem 1.25rem;max-width:360px;width:100%;box-shadow:0 8px 32px #3d2b1f2e}.remove-confirm-title{font-family:var(--font-round);font-size:1rem;font-weight:700;color:var(--ink);margin:0 0 .75rem;line-height:1.5}.remove-confirm-body{font-family:var(--font-round);font-size:.875rem;color:var(--ink-mid);line-height:1.75;margin:0 0 1.25rem}.remove-confirm-actions{display:flex;gap:.5rem}.btn-remove-confirm{flex:1;padding:.8rem;background:var(--accent-dark);border:none;border-radius:var(--radius-md);font-family:var(--font-round);color:#fff;font-size:.95rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:opacity .15s}.btn-remove-confirm:disabled{opacity:.55;cursor:not-allowed}.btn-remove-confirm:hover:not(:disabled){opacity:.88}.capsule-locked{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:4rem 2rem;text-align:center}.capsule-locked-icon{font-size:2.5rem;opacity:.45}.capsule-locked-title{font-family:var(--font-round);font-size:1rem;color:var(--ink-mid);margin:0;line-height:1.7}.lp-root{min-height:100dvh;background:var(--bg);display:flex;justify-content:center;padding:0 1rem 3rem}.lp-inner{width:100%;max-width:400px}.lp-hero{padding:3.5rem 0 2.5rem;text-align:center}.lp-hero-title{font-family:var(--font-round);font-size:1.7rem;font-weight:700;color:var(--accent);letter-spacing:.02em;margin-bottom:.6rem}.lp-hero-sub{font-family:var(--font-round);font-size:.9rem;color:var(--ink-mid);line-height:1.8}.lp-section{padding:1.75rem 0}.lp-label{display:block;font-family:var(--font-round);font-size:.72rem;color:#c08070;letter-spacing:.08em;margin-bottom:.75rem}.lp-head{font-family:var(--font-round);font-size:.95rem;font-weight:500;color:var(--ink);line-height:1.75;margin-bottom:.75rem}.lp-body{font-family:var(--font-round);font-size:.875rem;color:#5f4a3d;line-height:1.9}.lp-divider{border:none;border-top:1px solid rgba(61,43,31,.07)}.lp-footer{padding:2rem 0 1rem;text-align:center}.lp-login-btn{display:block;width:100%;padding:.85rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:999px;font-family:var(--font-round);font-size:1rem;font-weight:600;cursor:pointer;letter-spacing:.04em;transition:background .15s}.lp-login-btn:hover{background:var(--accent-dark)}.lp-footer-note{font-family:var(--font-round);font-size:.73rem;color:#9a8b7e;line-height:1.8;margin-top:1.25rem}.empty-state-signup{background:var(--surface);border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;margin:1rem 0}.empty-state-signup-title{font-family:var(--font-round);font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0 0 .6rem}.empty-state-signup-sub{font-family:var(--font-round);font-size:.95rem;color:var(--text-secondary);line-height:1.7;margin:0 0 .4rem}.empty-state-signup-note{font-family:var(--font-round);font-size:.875rem;color:var(--text-secondary);margin:0 0 1.25rem}.empty-state-signup .billing-upgrade-prompt{background:none;border:none;padding:0;margin:0}.member-create-cta{background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem 1rem;text-align:center;margin:1rem 0 0}.member-create-cta-msg{font-family:var(--font-round);font-size:.875rem;color:var(--text-secondary);margin:0 0 .75rem}.btn-member-create{display:inline-block;padding:.55rem 1.25rem;background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius);color:var(--accent);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.btn-member-create:hover:not(:disabled){background:var(--accent);color:#fff}.btn-member-create:disabled{opacity:.6;cursor:not-allowed}.settings-nav-section{padding:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-light);margin-bottom:1rem}.settings-nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.9rem 1rem;background:var(--surface);border:none;border-bottom:1px solid var(--border-light);font-family:var(--font-round);font-size:.9rem;color:var(--ink);text-align:left;transition:background .12s}.settings-nav-item:last-child{border-bottom:none}.settings-nav-item:hover{background:var(--surface-alt)}.settings-nav-arrow{color:var(--ink-sub);font-size:1.1rem;line-height:1}.guide-link-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:.4rem 0}.guide-link{color:var(--accent);text-decoration:underline;font-size:.9rem}.guide-link:hover{opacity:.75}.guide-link-sep{color:var(--ink-sub);font-size:.85rem}.guide-link-btn{background:none;border:none;padding:0;color:var(--accent);font-family:inherit;font-size:.9rem;text-decoration:underline;cursor:pointer}.guide-link-btn:hover{opacity:.75}.guide-empty-link{margin-top:.5rem;background:none;border:none;padding:.25rem 0;font-family:var(--font-round);font-size:.8rem;color:var(--ink-sub);text-decoration:underline;cursor:pointer;display:block}.guide-empty-link:hover{color:var(--ink-mid)}.feedback-form{display:flex;flex-direction:column;gap:1.25rem}.feedback-label{display:block;font-family:var(--font-round);font-size:.85rem;color:var(--ink-mid);margin-bottom:.4rem}.feedback-textarea{width:100%;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.9rem;color:var(--ink);background:var(--surface);resize:vertical;line-height:1.6;transition:border-color .15s;box-sizing:border-box}.feedback-textarea:focus{outline:none;border-color:var(--accent-light)}.feedback-email{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-round);font-size:.9rem;color:var(--ink);background:var(--surface);transition:border-color .15s;box-sizing:border-box}.feedback-email:focus{outline:none;border-color:var(--accent-light)}.feedback-success{font-family:var(--font-round);font-size:.95rem;color:var(--ink-mid);text-align:center;padding:2rem 1rem;line-height:1.8}.post-toast{position:fixed;bottom:5rem;left:50%;transform:translate(-50%);z-index:400;background:var(--ink);color:var(--bg);padding:.85rem 1.4rem;border-radius:1rem;text-align:center;max-width:min(88vw,320px);box-shadow:0 4px 16px #00000040;animation:toast-in .28s ease forwards;cursor:pointer}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.post-toast--instant{animation:none}.post-toast-title{font-weight:700;font-size:.95rem;margin:0 0 .2rem}.post-toast-body{font-size:.8rem;opacity:.8;margin:0}.ceremony-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#050309;cursor:default}.ceremony-overlay--dim{animation:ceremony-dim-in .3s ease forwards}@keyframes ceremony-dim-in{0%{opacity:0}to{opacity:1}}.ceremony-overlay--light{cursor:pointer}.ceremony-light-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.ceremony-skip-hint{position:absolute;bottom:2.5rem;font-family:var(--font-round);font-size:.75rem;color:#ffffff4d;letter-spacing:.1em;pointer-events:none;-webkit-user-select:none;user-select:none}.ceremony-cover{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;text-align:center;animation:ceremony-cover-in .9s ease forwards}@keyframes ceremony-cover-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ceremony-eyebrow{font-family:var(--font-round);font-size:.72rem;letter-spacing:.25em;color:#ffdc78a6;text-transform:uppercase}.ceremony-title{font-family:var(--font-round);font-size:1.35rem;font-weight:700;color:#fff8dcf2;line-height:1.75;text-shadow:0 0 24px rgba(255,200,80,.45),0 2px 6px rgba(0,0,0,.8);letter-spacing:.02em;max-width:300px}.ceremony-open-btn{background:#ffda5a1f;border:1.5px solid rgba(255,218,90,.55);border-radius:999px;color:#fff0b4f2;font-family:var(--font-round);font-size:1rem;font-weight:600;padding:.8rem 2.8rem;letter-spacing:.12em;cursor:pointer;transition:background .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.ceremony-open-btn:hover,.ceremony-open-btn:active{background:#ffda5a40;border-color:#ffda5acc}.ceremony-preparing{font-family:var(--font-round);font-size:.85rem;color:#fff0d2bf;letter-spacing:.08em;animation:ceremony-preparing-pulse 1.8s ease-in-out infinite}@keyframes ceremony-preparing-pulse{0%,to{opacity:.45}50%{opacity:1}}.ceremony-overlay--fading{pointer-events:none;animation:ceremony-fade-out 1.1s ease forwards}@keyframes ceremony-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ceremony-preparing,.ceremony-overlay--fading{animation:none!important}}.book{display:flex;flex-direction:column;gap:0}.book-nav-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem .25rem;margin-bottom:.5rem}.book-toc-btn{font-family:var(--font-round);font-size:.8rem;color:var(--ink-sub);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .75rem;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.book-toc-btn:hover{background:var(--surface-raised)}.book-page-num{font-family:var(--font-round);font-size:.78rem;color:var(--ink-faint);letter-spacing:.04em}.book-page{background:var(--surface);border:1px solid var(--border-light);border-radius:.75rem;box-shadow:2px 3px 8px #00000012,inset -2px 0 #00000008;min-height:480px;animation:book-slide-forward .25s ease forwards;overflow:hidden}.book-page--back{animation:book-slide-back .25s ease forwards}.book-page--instant,.book-page--instant.book-page--back{animation:none}@keyframes book-slide-forward{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes book-slide-back{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}.book-nav-arrows{display:flex;justify-content:space-between;padding:.5rem .25rem 0}.book-arrow{background:none;border:1px solid var(--border);border-radius:50%;width:2.2rem;height:2.2rem;font-size:1.2rem;color:var(--ink-sub);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}.book-arrow:disabled{opacity:.2;cursor:default}.book-arrow:not(:disabled):hover{background:var(--surface-raised);color:var(--ink)}.book-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 2rem;min-height:480px;background:var(--gradient-banner);text-align:center;animation:book-cover-in .7s ease both}@keyframes book-cover-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.book-cover{animation:none}}.book-cover-ornament{font-size:1.5rem;color:#ffffff80;letter-spacing:.3em}.book-cover-eyebrow{font-family:var(--font-round);font-size:.7rem;letter-spacing:.2em;color:#fff9;text-transform:uppercase}.book-cover-name{font-family:var(--font-round);font-size:2rem;font-weight:700;color:#fff;text-shadow:0 2px 12px rgba(80,10,40,.45);line-height:1.35}.book-cover-sub{font-family:var(--font-round);font-size:.9rem;color:#fffc;letter-spacing:.08em}.book-cover-period{font-family:var(--font-round);font-size:.82rem;color:#ffffffa6;letter-spacing:.05em;margin-top:.25rem}.book-cover-count{font-family:var(--font-round);font-size:.85rem;color:#ffffffb3}.book-cover-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.25rem}.btn-book-continue{background:#ffffff38;border:1.5px solid rgba(255,255,255,.7);border-radius:999px;color:#fff;font-family:var(--font-round);font-size:.95rem;font-weight:600;padding:.65rem 2rem;cursor:pointer;letter-spacing:.06em;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-book-continue:hover{background:#ffffff59}.btn-book-start{background:none;border:none;color:#ffffffa6;font-family:var(--font-round);font-size:.82rem;cursor:pointer;padding:.3rem;text-decoration:underline;text-underline-offset:3px;-webkit-tap-highlight-color:transparent}.book-toc{padding:2rem 1.5rem}.book-toc-heading{font-family:var(--font-round);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.25rem}.book-toc-list{list-style:none;display:flex;flex-direction:column;gap:.1rem}.book-toc-item{border-bottom:1px solid var(--border-light)}.book-toc-link{display:flex;align-items:baseline;gap:.75rem;width:100%;padding:.8rem .25rem;background:none;border:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .1s}.book-toc-link:hover{background:var(--surface-raised);border-radius:.5rem}.book-toc-chapter-label{font-family:var(--font-round);font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em;white-space:nowrap}.book-toc-theme{font-family:var(--font-round);font-size:.95rem;font-weight:600;color:var(--ink);flex:1}.book-toc-count{font-family:var(--font-round);font-size:.75rem;color:var(--ink-faint);white-space:nowrap}.book-chapter-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:480px;padding:3rem 2rem;text-align:center;background:var(--surface-raised)}.book-chapter-num{font-family:var(--font-round);font-size:.72rem;letter-spacing:.2em;color:var(--ink-faint);text-transform:uppercase}.book-chapter-theme{font-family:var(--font-round);font-size:1.75rem;font-weight:700;color:var(--accent);line-height:1.45;letter-spacing:.02em}.book-chapter-wish{font-family:var(--font-round);font-size:.9rem;color:var(--ink-mid);line-height:1.9;max-width:260px}.book-chapter-count{font-family:var(--font-round);font-size:.78rem;color:var(--ink-faint);margin-top:.5rem}.book-post-page{display:flex;flex-direction:column}@media (min-width: 768px){.book-post-page{flex-direction:row;min-height:480px}}.book-post-photos{flex:0 0 auto;background:#f0ede8}@media (max-width: 767px){.book-post-photos{width:100%}}@media (min-width: 768px){.book-post-photos{width:50%;display:flex;flex-direction:column}}.book-post-main-img{width:100%;max-height:360px;object-fit:cover;display:block;cursor:pointer}@media (min-width: 768px){.book-post-main-img{flex:1;max-height:none;height:100%}}.book-post-thumbs{display:flex;gap:2px}.book-post-thumb{flex:1;height:72px;object-fit:cover;cursor:pointer;opacity:.85;transition:opacity .15s}.book-post-thumb:hover{opacity:1}.book-post-no-photo{display:flex;align-items:center;justify-content:center;min-height:180px;font-size:2rem;opacity:.25}@media (min-width: 768px){.book-post-no-photo{min-height:100%}}.book-post-text{flex:1;padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.book-post-meta{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.book-post-date{font-family:var(--font-round);font-size:.8rem;color:var(--ink-faint);letter-spacing:.03em}.book-post-age{font-family:var(--font-round);font-size:.75rem;color:var(--accent);font-weight:600}.book-post-message{font-family:var(--font-round);font-size:1rem;line-height:1.9;color:var(--ink);white-space:pre-wrap;overflow-wrap:break-word}.book-post-message--empty{color:var(--ink-faint);font-size:.85rem;font-style:italic}.book-post-comments{display:flex;flex-direction:column;gap:.5rem;border-left:2px solid var(--border-light);padding-left:.75rem;margin-top:.25rem}.book-post-comment{font-family:var(--font-round);font-size:.82rem;line-height:1.65;color:var(--ink-mid)}.book-post-comment-author{font-weight:600;color:var(--ink-sub)}.book-post-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.book-post-tag{font-family:var(--font-round);font-size:.72rem;color:var(--ink-faint);background:var(--surface-raised);border-radius:999px;padding:.15rem .6rem}.book-colophon{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem 2rem;min-height:480px;text-align:center}.book-colophon-heading{font-family:var(--font-round);font-size:.72rem;letter-spacing:.22em;color:var(--ink-faint);text-transform:uppercase}.book-colophon-name{font-family:var(--font-round);font-size:1.4rem;font-weight:700;color:var(--ink)}.book-colophon-stats{display:flex;flex-direction:column;gap:.4rem}.book-colophon-stat{font-family:var(--font-round);font-size:.85rem;color:var(--ink-sub)}.book-colophon-themes{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.book-colophon-themes-label{font-family:var(--font-round);font-size:.72rem;letter-spacing:.15em;color:var(--ink-faint)}.book-colophon-theme-list{list-style:none;display:flex;flex-direction:column;gap:.3rem}.book-colophon-theme-item{font-family:var(--font-round);font-size:.9rem;color:var(--accent);font-weight:600}.book-colophon-close{font-family:var(--font-round);font-size:.88rem;line-height:2;color:var(--ink-mid);margin-top:auto}@media (min-width: 768px){.book{max-width:780px;margin:0 auto}}
