@import "https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600;700&family=Figtree:wght@400;500;600;700&display=swap";:root{--bg:#fff2f7;--surface:#fff;--surface-2:#fbdfec;--ink:#1b0a12;--ink-muted:#8c5d74;--accent:#e31c79;--accent-ink:#fff;--brand:#14060c;--brand-ink:#fff;--gold:#c68a1e;--line:#f5c7de;--good:#3f7d5c;--shadow:0 1px 2px #1b0a1214, 0 8px 24px -16px #1b0a124d;--radius:16px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#170910;--surface:#221018;--surface-2:#2e1521;--ink:#fbe6f0;--ink-muted:#ce93af;--accent:#ff4d9b;--accent-ink:#1a0510;--brand:#0c0308;--brand-ink:#fbe6f0;--gold:#e8b559;--line:#3d1e2d;--good:#6fbe93;--shadow:0 1px 2px #00000059, 0 12px 28px -18px #000000a6}}:root[data-theme=dark]{--bg:#170910;--surface:#221018;--surface-2:#2e1521;--ink:#fbe6f0;--ink-muted:#ce93af;--accent:#ff4d9b;--accent-ink:#1a0510;--brand:#0c0308;--brand-ink:#fbe6f0;--gold:#e8b559;--line:#3d1e2d;--good:#6fbe93;--shadow:0 1px 2px #00000059, 0 12px 28px -18px #000000a6}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);min-height:100%;padding-inline:16px;font-family:Figtree,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}h1,h2,h3,.display{text-wrap:balance;margin:0;font-family:Fraunces,Georgia,serif}.num{font-variant-numeric:tabular-nums}a{color:inherit}button{font-family:inherit}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.wrap{max-width:640px;margin:0 auto;padding-block:16px 40px}.topbar{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);flex-direction:column;gap:10px;padding-block:10px 12px;display:flex;position:sticky}.brand-row{align-items:center;gap:10px;display:flex}.heart-mark{flex:none;width:28px;height:28px}.logo-img{object-fit:cover;width:34px;height:34px;box-shadow:var(--shadow);border-radius:50%;flex:none}.brand-lockup{flex-direction:column;line-height:1.15;display:flex}.brand-name{letter-spacing:-.01em;font-size:1.12rem;font-weight:700}.brand-by{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.66rem}.spacer{flex:1}.countdown-pill{background:var(--surface-2);color:var(--accent);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:600}.avatar-chip{color:#fff;cursor:pointer;width:32px;height:32px;box-shadow:var(--shadow);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}.mini-therm{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.mini-therm>i{background:linear-gradient(90deg, var(--gold), var(--accent));border-radius:999px;height:100%;display:block}.tabbar{background:var(--surface-2);border-radius:12px;gap:4px;padding:4px;display:flex}.tabbar button{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:8px 4px;font-size:.82rem;font-weight:600;transition:background .15s,color .15s}.tabbar button[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stack{flex-direction:column;gap:14px;display:flex}.row{align-items:center;gap:10px;display:flex}.muted{color:var(--ink-muted)}.small{font-size:.8rem}.section-title{font-size:1.05rem;font-weight:700}.hairline{border:none;border-top:1px solid var(--line);margin:0}.hero{text-align:left;padding-block:14px 6px}.hero .heart-mark{width:42px;height:42px}.hero h1{margin-top:10px;font-size:1.9rem;line-height:1.15}.hero p{margin-top:8px}.stat-teaser{gap:18px;margin-top:14px;display:flex}.stat-teaser div{flex-direction:column;display:flex}.stat-teaser strong{font-family:Fraunces,serif;font-size:1.3rem}.stat-teaser span{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0}.swatch[aria-pressed=true]{border-color:var(--ink)}.field label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.78rem;font-weight:600;display:block}input[type=text],input[type=number],input[type=date],input[type=url]{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:1rem}.btn{cursor:pointer;background:var(--accent);color:var(--accent-ink);border:none;border-radius:11px;justify-content:center;align-items:center;gap:6px;width:100%;padding:12px 18px;font-size:.92rem;font-weight:700;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:var(--surface-2);color:var(--ink)}.btn.ghost{color:var(--accent);border:1px solid var(--line);background:0 0;width:auto;padding:8px 14px;font-size:.82rem}.step-input-row{align-items:baseline;gap:8px;display:flex}.step-input-row input{text-align:center;padding-block:14px;font-family:Fraunces,serif;font-size:2rem;font-weight:600}.cal-weekday-row{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;grid-template-columns:28px 1fr auto;gap:8px;font-size:.66rem;font-weight:700;display:grid}.cal-weekday-row .cal-week{text-align:center;grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-weeks{flex-direction:column;gap:6px;display:flex}.cal-week-row{grid-template-columns:28px 1fr auto;align-items:center;gap:8px;display:grid}.cal-week{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-day{aspect-ratio:1;background:var(--surface-2);color:var(--ink-muted);border-radius:8px;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex}.cal-day.out{opacity:.32;background:0 0}.cal-day.logged{background:var(--accent);color:var(--accent-ink)}.cal-day.today{box-shadow:0 0 0 2px var(--accent)}.cal-week-total{color:var(--ink-muted);text-align:right;min-width:38px;font-size:.72rem}.streak-badge{color:var(--gold);background:var(--surface-2);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}.lb-row{align-items:center;gap:12px;padding-block:10px;display:flex}.lb-rank{text-align:center;width:22px;color:var(--ink-muted);flex:none;font-family:Fraunces,serif;font-weight:700}.lb-rank.gold{color:#c68a1e}.lb-rank.silver{color:#9aa0a6}.lb-rank.bronze{color:#b0703c}.avatar{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:.85rem;font-weight:700;display:flex}.lb-name{flex:1;min-width:0;font-weight:600}.lb-name .you{color:var(--accent);font-weight:700}.lb-meta{color:var(--ink-muted);font-size:.72rem}.lb-steps{text-align:right;font-weight:700}.lb-badges{letter-spacing:.02em;margin-left:6px;font-size:.8rem}.badge-row{flex-wrap:wrap;gap:6px;display:flex}.badge-chip{background:var(--surface-2);color:var(--ink);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:700}.star-card{background:var(--surface-2);border-color:#0000}.star-row{align-items:center;gap:10px;display:flex}.star-row+.star-row{margin-top:10px}.star-emoji{flex:none;font-size:1.2rem}.star-text{font-size:.85rem}.star-text strong{color:var(--accent)}.feed-row{align-items:flex-start;gap:12px;padding-block:12px;display:flex}.feed-text{flex:1;min-width:0}.feed-date{color:var(--ink-muted);font-size:.72rem}.feed-note{color:var(--ink-muted);margin-top:4px;font-size:.82rem;font-style:italic}.cheer-btn{background:var(--surface-2);color:var(--ink-muted);cursor:pointer;border:none;border-radius:999px;flex:none;align-items:center;gap:4px;padding:6px 11px;font-size:.76rem;font-weight:700;display:inline-flex}.cheer-btn.active{background:var(--accent);color:var(--accent-ink)}.feed-actions{align-items:center;gap:10px;margin-top:8px;display:flex}.feed-comments{flex-direction:column;gap:5px;margin-top:8px;display:flex}.feed-comment{font-size:.82rem}.feed-comment strong{font-weight:700}.reply-toggle{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.76rem;font-weight:700}.reply-form{gap:6px;margin-top:8px;display:flex}.reply-form input{flex:1}.reply-form .btn{width:auto;padding:8px 14px;font-size:.8rem}.therm{background:var(--surface-2);border-radius:999px;height:16px;overflow:hidden}.therm>i{background:linear-gradient(90deg, var(--gold), var(--accent));border-radius:999px;height:100%;display:block}.therm-nums{justify-content:space-between;margin-top:6px;font-size:.8rem;display:flex}.kr{font-family:Fraunces,serif;font-size:1.5rem;font-weight:700}.milestone-card{background:linear-gradient(160deg, var(--brand), #3a0e24);color:var(--brand-ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.milestone-eyebrow{text-transform:uppercase;letter-spacing:.06em;opacity:.75;font-size:.72rem}.milestone-big{margin-top:4px;font-family:Fraunces,serif;font-size:2.1rem;font-weight:700}.milestone-sub{opacity:.82;margin-top:2px;font-size:.8rem}.milestone-list{flex-direction:column;margin-top:18px;display:flex}.milestone-item{gap:12px;padding-bottom:18px;display:flex;position:relative}.milestone-item:last-child{padding-bottom:0}.milestone-item:before{content:"";background:#ffffff29;width:2px;position:absolute;top:26px;bottom:0;left:11px}.milestone-item:last-child:before{display:none}.milestone-item.done:before{background:var(--accent)}.milestone-dot{z-index:1;width:24px;height:24px;color:var(--brand-ink);background:#ffffff1a;border:2px solid #ffffff47;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex}.milestone-item.done .milestone-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.milestone-item.current .milestone-dot{border-color:var(--accent);box-shadow:0 0 0 3px #e31c7947}.milestone-body{flex:1;min-width:0;padding-top:1px}.milestone-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.milestone-label{font-size:.86rem;font-weight:700}.milestone-km{opacity:.68;margin-top:1px;font-size:.7rem}.milestone-status{opacity:.9;white-space:nowrap;font-size:.72rem;font-weight:700}.milestone-item.done .milestone-status{color:var(--accent)}.milestone-mini-bar{background:#ffffff29;border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.milestone-mini-bar>i{background:var(--accent);border-radius:999px;height:100%;display:block}.recap-podium{flex-direction:column;gap:10px;margin-top:18px;display:flex}.recap-podium-row{align-items:center;gap:10px;display:flex}.recap-rank{text-align:center;flex:none;width:22px;font-family:Fraunces,serif;font-weight:700}details.settings summary{cursor:pointer;color:var(--ink-muted);font-size:.8rem;font-weight:600;list-style:none}details.settings summary::-webkit-details-marker{display:none}.empty{text-align:center;color:var(--ink-muted);padding:26px 10px}.empty .heart-mark{opacity:.6;width:24px;height:24px;margin:0 auto 10px}.toast{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);max-width:520px;color:var(--bg);box-shadow:var(--shadow);z-index:50;opacity:0;pointer-events:none;border-radius:12px;margin:0 auto;padding:12px 16px;font-size:.85rem;transition:opacity .2s,transform .2s;position:fixed;transform:translateY(8px)}.toast.show{opacity:1;transform:translateY(0)}[hidden]{display:none!important}.tabbar a{text-align:center;color:var(--ink-muted);border-radius:9px;flex:1;padding:8px 4px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.tabbar a:hover{color:var(--ink)}.tabbar a[aria-current=page]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.avatar-chip-link{flex:none;text-decoration:none;display:flex}.admin-chip{white-space:nowrap;background:var(--surface-2);color:var(--ink-muted);border-radius:999px;flex:none;padding:5px 10px;font-size:.72rem;font-weight:700;text-decoration:none}.admin-chip:hover{color:var(--accent)}.admin-chip[aria-current=page]{background:var(--accent);color:var(--accent-ink)}.brand-row{flex-wrap:wrap;row-gap:8px}.topbar-actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}a.btn,a.btn:hover{text-decoration:none}input[type=email],input[type=password],input[type=search],input[type=tel]{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:1rem}input:focus{border-color:var(--accent)}input::placeholder{color:var(--ink-muted);opacity:.7}form{margin:0}.stack>form:not(.reply-form){flex-direction:column;gap:14px;display:flex}.swatch-field{border:none;margin:0;padding:0}.swatch-field legend{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;padding:0;font-size:.78rem;font-weight:600}.swatch-label{cursor:pointer;display:inline-flex}.swatch-label input{opacity:0;width:0;height:0;position:absolute}.swatch-label .swatch{display:block}.swatch-label input:checked+.swatch{border-color:var(--ink)}.swatch-label input:focus-visible+.swatch{outline:2px solid var(--accent);outline-offset:2px}.icon-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:1rem;line-height:1}.icon-btn:hover{background:var(--surface-2)}.auth-wrap{max-width:420px}.auth-brand{text-align:center;padding-block:24px 18px}.auth-brand .logo-img{margin:0 auto}.auth-heading{margin-top:10px;font-size:1.8rem}.auth-brand .brand-by{margin:2px 0 0}.auth-intro{margin-top:10px}.auth-error{color:var(--accent);background:var(--surface-2);border-radius:10px;margin:0;padding:10px 12px;font-size:.85rem;font-weight:600}.filters,.stack>form.filters{flex-flow:wrap;align-items:center;gap:8px;display:flex}.filters input[type=search]{flex:100%;min-width:0}.filters select{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);border-radius:10px;flex:140px;padding:10px 12px;font-family:inherit}.filters .btn{flex:none;width:auto}.tag{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:700}.tag-admin{background:var(--accent);color:var(--accent-ink)}.tag-blocked{background:var(--ink-muted);color:var(--surface)}.tag-excluded{background:var(--surface-2);color:var(--ink-muted)}.user-stats{flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;display:flex}.user-stats div{flex-direction:column;display:flex}.user-stats dt{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-size:.72rem;font-weight:700}.user-stats dd{margin:0;font-size:.92rem;font-weight:700}.admin-row-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row-actions{flex-wrap:wrap;gap:2px 16px;margin-top:12px;display:flex}.row-actions .reply-toggle{color:var(--accent)}.admin-list{flex-direction:column;display:flex}.admin-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding-block:12px;display:flex}.admin-row:first-child{border-top:none}.admin-row-main{flex:1;min-width:0}.admin-row-main strong{overflow-wrap:anywhere}.admin-row .reply-toggle{color:var(--accent);margin-top:6px}input[type=file]{width:100%;color:var(--ink-muted);font-family:inherit;font-size:.85rem}input[type=file]::file-selector-button{cursor:pointer;background:var(--surface-2);color:var(--ink);border:none;border-radius:9px;margin-right:10px;padding:8px 12px;font-family:inherit;font-size:.82rem;font-weight:700}.beneficiary{flex-direction:column;align-items:center;gap:10px;padding-block:8px 4px;display:flex}.beneficiary-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.72rem;font-weight:600}.beneficiary-logo{width:150px;height:auto;box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:10px 16px;display:block}.reply-toggle,.auth-wrap .small a{margin:-9px -4px;padding:9px 4px;display:inline-block}.feed-actions .reply-toggle{margin-inline:0;padding-inline:0}details.settings summary{padding-block:9px}details.settings[open] summary{margin-bottom:1px}.cheer-btn{padding:8px 12px}.admin-chip{padding:9px 13px}.icon-btn{min-width:36px;min-height:36px}.filters select{font-size:1rem}.install-guide{border-radius:var(--radius);background:var(--surface);color:var(--ink);border:none;width:100%;max-width:min(400px,100vw - 32px);padding:24px 22px;box-shadow:0 16px 40px #0000004d}.install-guide::backdrop{background:#140a108c}.install-guide .section-title{margin:0}.install-step{align-items:flex-start;gap:12px;display:flex}.install-step+.install-step{margin-top:14px}.install-step-num{background:var(--accent);width:26px;height:26px;color:var(--accent-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.82rem;font-weight:700;display:flex}.install-step strong{color:var(--accent)}.install-guide .reply-toggle{align-self:center}.calendar{grid-template-columns:auto repeat(7,minmax(0,1fr)) auto;align-items:center;gap:6px;display:grid}.cal-head{text-align:center;white-space:nowrap;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.66rem;font-weight:700}.cal-head-short{display:none}@media (width<=379px){.calendar{gap:4px}.cal-head-long{display:none}.cal-head-short{display:inline}}.cal-weeknum{text-align:center;color:var(--ink-muted);white-space:nowrap;font-size:.8rem}.cal-day{user-select:none}.brand-lockup{min-width:0}.brand-name,.brand-by{white-space:nowrap}
