@font-face{font-family:body;src:url(../media/atkinson_hyperlegible_400-s.p.3kiu02q1_kqh0.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:body;src:url(../media/atkinson_hyperlegible_700-s.p.417-y-7y4nwlv.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:body Fallback;src:local(Arial);ascent-override:95.93%;descent-override:29.29%;line-gap-override:0.0%;size-adjust:99.03%}.fwr0Wq_className{font-family:body,body Fallback}.fwr0Wq_variable{--font-body:"body", "body Fallback"}
:root{--bg:#fff;--surface:#f4f7fb;--ink:#16233a;--muted:#566377;--accent:#2459a6;--accent-ink:#fff;--accent-soft:#e8f0fa;--border:#d3dce8;--field-border:#7b8aa0;--danger:#a3261f;--bubble:#e3ebf6}@media (prefers-color-scheme:dark){:root{--bg:#0e1622;--surface:#162131;--ink:#e8eef7;--muted:#9fadc1;--accent:#7fb0f0;--accent-ink:#0e1622;--accent-soft:#1b2c45;--border:#2e3d54;--field-border:#5d6e88;--danger:#f08a80;--bubble:#22324a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{scroll-padding-top:4.5rem;font-size:18px}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-body), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}.shell{max-width:34rem;margin:0 auto;padding:3rem 1rem}.top-bar{z-index:10;padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem;border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin:-3rem -1rem 1rem;transition:background-color .2s,border-color .2s;display:grid;position:sticky;top:0}.top-bar[data-scrolled]{background:var(--bg);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);border-bottom-color:var(--border)}.top-bar-back{background:var(--accent-soft);height:2.75rem;color:var(--accent);-webkit-tap-highlight-color:transparent;border-radius:999px;justify-self:start;align-items:center;gap:.2rem;padding:0 1rem 0 .6rem;font-weight:700;text-decoration:none;display:inline-flex}.top-bar-back svg{flex:none;width:1.4rem;height:1.4rem}.top-bar-back:active{filter:brightness(.95)}.top-bar-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top-bar-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:0;font-weight:700;transition:opacity .2s,transform .2s;overflow:hidden;transform:translateY(.3rem)}.top-bar-title[data-shown]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.top-bar,.top-bar-title{transition:none}}h1{margin:0 0 .5rem;font-size:2rem;line-height:1.2}p{margin:0 0 1rem}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;margin-top:1.5rem;padding:1.5rem}.stack{flex-direction:column;gap:.75rem;display:flex}label{font-weight:700}input{font:inherit;border:1px solid var(--field-border);background:var(--bg);color:var(--ink);border-radius:.75rem;width:100%;padding:.85rem 1rem}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;border-radius:.75rem;width:100%;padding:.85rem 1rem;font-weight:700}button.secondary{color:var(--accent);background:0 0}button:disabled{opacity:.6;cursor:default}.error{color:var(--danger)}.code{letter-spacing:.1em;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;margin:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.4rem;display:flex}a{color:var(--accent)}h2{margin:0;font-size:1.3rem}a.button{text-align:center;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:.75rem;padding:.85rem 1rem;font-weight:700;text-decoration:none;display:block}a.button.secondary{color:var(--accent);background:0 0}.list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.row button{width:auto;padding:.5rem .85rem;font-size:.9rem}.notice{border-left:4px solid var(--accent);padding-left:.75rem}.link{word-break:break-all;-webkit-user-select:all;user-select:all;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8rem}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:.5rem;font-weight:700}label.choice{align-items:center;gap:.75rem;font-weight:400;display:flex}label.choice input{width:auto}textarea,select{font:inherit;border:1px solid var(--field-border);background:var(--bg);color:var(--ink);border-radius:.75rem;width:100%;padding:.85rem 1rem}textarea{resize:vertical}::placeholder{color:var(--muted);opacity:1}a.button.compose{margin-top:1.5rem}.feed{margin:0;padding:0;list-style:none}.post-header{flex-wrap:wrap;justify-content:space-between;gap:0 .75rem;margin-bottom:.5rem;display:flex}.post-text{white-space:pre-wrap;overflow-wrap:anywhere}.milestone{color:var(--accent);border:1px solid var(--accent);border-radius:999px;margin-bottom:.75rem;padding:.1rem .6rem;font-size:.85rem;font-weight:700;display:inline-block}.post-photos,.album{grid-template-columns:repeat(3,1fr);gap:.25rem;display:grid}.post-photos.count-1{grid-template-columns:1fr}.post-photos.count-2,.post-photos.count-4{grid-template-columns:repeat(2,1fr)}.post-photos img,.album img,.photo-placeholder{aspect-ratio:1;object-fit:cover;background:var(--accent-soft);border-radius:.5rem;width:100%;display:block}.photo-placeholder{text-align:center;color:var(--muted);justify-content:center;align-items:center;padding:.5rem;font-size:.75rem;display:flex}.post-video{background:var(--accent-soft);border:0;border-radius:.5rem;width:100%;max-height:75dvh;margin-bottom:.25rem;padding:0;display:block;position:relative;overflow:hidden}video.post-video{background:#000}.video-poster img{object-fit:cover;width:100%;height:100%;display:block}.video-play{color:#fff;background:#0000008c;border-radius:999px;justify-content:center;align-items:center;min-width:4rem;height:4rem;padding:0 .75rem;font-size:1.4rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%}.video-length,.video-badge{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;padding:.1rem .45rem;font-size:.8rem;font-weight:700;position:absolute;bottom:.4rem;right:.4rem}.video-tile{position:relative}button.photo-button{background:0 0;border:0;border-radius:.5rem;padding:0}button.link-button,a.link-button{width:auto;color:var(--muted);background:0 0;border:0;margin-top:.5rem;padding:.25rem 0;font-size:.9rem;font-weight:400;display:inline-block}a.link-button{text-decoration:none}.post-header a.time{color:inherit;text-decoration:none}.post-header a.time:hover,a.link-button:hover{text-decoration:underline}.caught-up{text-align:center;color:var(--muted);margin:1.5rem 0 0;font-weight:700}.feed-end{text-align:center;color:var(--muted);margin:1.5rem 0 0}.circle-chips{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.circle-chips button{border-radius:999px;width:auto;min-height:2.75rem;padding:.45rem .9rem;font-size:.95rem}.safety-prompt .link-button{align-self:center;min-height:2.75rem;margin-top:0;padding:.5rem 1.5rem}.viewer{z-index:20;background:#000000eb;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex;position:fixed;inset:0}.viewer-photo{object-fit:contain;max-width:100%;max-height:calc(100dvh - 7rem)}.viewer .photo-placeholder{width:min(100%,30rem)}.viewer-controls{gap:.5rem;width:min(100%,30rem);display:flex}.previews{grid-template-columns:repeat(4,1fr);gap:.25rem;display:grid}.preview{position:relative}.preview img,.preview video{aspect-ratio:1;object-fit:cover;border-radius:.5rem;width:100%;display:block}.preview video{background:var(--accent-soft)}.preview .remove{border-radius:999px;width:1.8rem;height:1.8rem;padding:0;line-height:1;position:absolute;top:.2rem;right:.2rem}.home-actions{grid-template-columns:2fr 1fr;gap:.75rem;display:grid}.post-actions{z-index:1;flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex;position:relative}button.link-button.heart.on{color:var(--accent);font-weight:700}.post-body{position:relative}.post-body.loved{margin-bottom:1.4rem}.post-body.loved:has(>.post-video+.post-hearts){margin-bottom:2rem}.post-body.loved:has(>.post-video+.post-hearts) button.post-hearts{bottom:-1.75rem}button.post-hearts{border:1px solid var(--border);background:var(--bg);width:auto;color:var(--accent);border-radius:999px;align-items:center;gap:.25rem;margin:0;padding:.1rem .55rem;font-size:.9rem;font-weight:700;line-height:1.4;display:inline-flex;position:absolute;bottom:-1.1rem;right:-.4rem;box-shadow:0 1px 2px #00000014}button.post-hearts:before{content:"";position:absolute;inset:-.6rem -.4rem}.post-hearts span:not(.sr-only)+span:not(.sr-only){color:var(--muted);font-weight:400}.hearts{margin:.5rem 0 0;font-size:.9rem}.comments{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.comment-list{margin:0 0 .75rem;padding:0;list-style:none}.comment{align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.initial{background:var(--accent-soft);width:2.25rem;height:2.25rem;color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.comment-body{flex:1;min-width:0}.bubble{background:var(--bubble);overflow-wrap:anywhere;border-radius:1.1rem;max-width:100%;padding:.5rem .85rem;display:inline-block}.bubble.loved{margin-bottom:.45rem;padding-right:1.1rem;position:relative}button.comment-hearts{border:1px solid var(--border);background:var(--bg);width:auto;color:var(--accent);border-radius:999px;align-items:center;gap:.2rem;margin:0;padding:.05rem .4rem;font-size:.8rem;font-weight:700;line-height:1.3;display:inline-flex;position:absolute;bottom:-.6rem;right:-.4rem;box-shadow:0 1px 2px #00000014}button.comment-hearts:before{content:"";position:absolute;inset:-.75rem -.5rem}.comment-hearts span:not(.sr-only)+span:not(.sr-only){color:var(--muted);font-weight:400}.bubble strong{font-size:.9rem;display:block}.bubble p{margin:.1rem 0 0}.comment-text{white-space:pre-wrap}.comment-meta{z-index:1;flex-wrap:wrap;gap:0 1rem;margin:.15rem 0 0 .85rem;font-size:.85rem;display:flex;position:relative}.comment-meta .link-button{margin-top:0;padding:0;font-size:.85rem}.comment.highlight .bubble{box-shadow:0 0 0 2px var(--accent)}.comment-form{align-items:center;gap:.5rem;display:flex}.comment-form input{border-radius:999px;flex:1;min-width:0}.comment-form button{border-radius:999px;width:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card.event{background:var(--accent-soft);border-color:var(--accent-soft)}.event h2{margin:0}.event-when{color:var(--accent);margin:.25rem 0;font-weight:700}.rsvp-line{margin:.25rem 0}.rsvp{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.75rem;display:grid}.rsvp button{padding:.6rem .5rem}.home-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.home-header h1{margin:0}.bell,.round-button{width:3rem;height:3rem;color:var(--accent);background:var(--accent-soft);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative}.bell svg{width:1.5rem;height:1.5rem}.header-buttons{gap:.5rem;display:flex}.round-button.you{font-size:1.2rem;font-weight:700;text-decoration:none}.you-dot{background:var(--accent);border:2px solid var(--bg);border-radius:999px;width:.8rem;height:.8rem;position:absolute;top:0;right:0}.bell-count{background:var(--accent);min-width:1.4rem;color:var(--accent-ink);text-align:center;border-radius:999px;padding:0 .35rem;font-size:.8rem;font-weight:700;line-height:1.4rem;position:absolute;top:-.3rem;right:-.3rem}.notice-section{margin-top:1.5rem}.notice-section h2{margin:0 0 .25rem;font-size:1.05rem}.notices{margin:0 -.75rem;padding:0;list-style:none}.notices li+li{margin-top:.15rem}.notice-row{min-height:4.25rem;color:var(--ink);-webkit-tap-highlight-color:transparent;border-radius:1rem;align-items:center;gap:.85rem;padding:.6rem .75rem;text-decoration:none;display:flex}.notice-row[data-fresh]{background:var(--accent-soft)}.notice-row:active{background:var(--surface)}.notice-row[data-fresh]:active{filter:brightness(.97)}.notice-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notice-avatar{background:var(--bubble);width:3rem;height:3rem;color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:inline-flex;position:relative}.notice-badge{background:var(--accent);width:1.4rem;height:1.4rem;color:var(--accent-ink);border:2px solid var(--bg);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:-.2rem;right:-.2rem}.notice-row[data-fresh] .notice-badge{border-color:var(--accent-soft)}.notice-row[data-fresh] .notice-avatar{background:var(--bg)}.notice-text{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.notice-meta{color:var(--muted);margin-top:.15rem;font-size:.9rem}.notice-dot{background:var(--accent);border-radius:999px;flex:none;width:.7rem;height:.7rem}.top-bar-action{grid-column:3;justify-self:end;display:flex}.round-button.top-bar-icon{-webkit-tap-highlight-color:transparent;width:2.75rem;height:2.75rem}.round-button.top-bar-icon svg{width:1.4rem;height:1.4rem}button.round-button{border:0;padding:0}.round-button.top-bar-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notices-more{margin-top:1.5rem}.notices-empty{text-align:center;margin-top:1.5rem;padding:2rem 1rem}.notices-empty p{max-width:22rem;margin-left:auto;margin-right:auto}label.choice{align-items:flex-start;gap:.75rem;display:flex}label.choice input{flex:none;width:1.4rem;height:1.4rem;margin-top:.2rem}.report-form{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.report-form textarea{width:100%;font:inherit;border:1px solid var(--field-border);background:var(--bg);color:var(--ink);border-radius:.75rem;padding:.75rem}.danger-zone{border-color:var(--danger)}button.danger{background:var(--danger);color:var(--accent-ink)}button.danger:disabled{opacity:.5}button.sign-out{margin-top:2rem}.update-pill{left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:9;border-radius:999px;width:auto;min-height:2.75rem;padding:.5rem 1.25rem;font-size:.95rem;position:fixed;transform:translate(-50%);box-shadow:0 2px 10px #0000002e}.chat-list{margin:1.5rem 0 0;padding:0;list-style:none}.chat-row{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:.75rem;padding:.75rem 0;text-decoration:none;display:flex}.chat-row .avatar{background:var(--accent-soft);width:3rem;height:3rem;color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:inline-flex}.chat-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.chat-row-top{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.chat-row-top strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-row-top .muted{flex:none;font-size:.85rem}.chat-row-preview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-row[data-unread] .chat-row-preview{color:var(--ink);font-weight:700}.chat-row-count{background:var(--accent);min-width:1.6rem;color:var(--accent-ink);text-align:center;border-radius:999px;flex:none;padding:0 .45rem;font-size:.85rem;font-weight:700;line-height:1.6rem}.people-picker{border:1px solid var(--border);margin:1.5rem 0 0}.chat-page{flex-direction:column;min-height:calc(100dvh - 6rem);display:flex}.chat-title{font-size:1.5rem}.chat-details{margin-top:.5rem}.chat-details-page{animation:.22s ease-out slide-in}@keyframes slide-in{0%{opacity:0;transform:translate(1.5rem)}}@media (prefers-reduced-motion:reduce){.chat-details-page{animation:none}}.chat-people{margin:0;padding-left:1.2rem}.chat-older{margin:.5rem 0 1rem}.chat-empty{text-align:center;margin:2rem 0}.chat-messages{flex:1;margin:0 0 1rem;padding:0;list-style:none}.chat-day{text-align:center;color:var(--muted);margin:1.25rem 0 .75rem;font-size:.85rem;font-weight:700}.chat-message{flex-direction:column;align-items:flex-start;margin-top:.25rem;display:flex}.chat-message.mine{align-items:flex-end}.chat-author{color:var(--muted);margin:.5rem 0 .1rem .85rem;font-size:.85rem;font-weight:700}button.chat-bubble{background:var(--bubble);width:auto;max-width:85%;color:var(--ink);text-align:left;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent;border:0;border-radius:1.2rem;margin:0;padding:.55rem .95rem;font-weight:400;display:inline-block;position:relative}.chat-message.mine button.chat-bubble{background:var(--accent);color:var(--accent-ink)}.chat-message.mine button.chat-bubble .muted{color:inherit;opacity:.85}button.chat-bubble:empty{display:none}button.chat-bubble:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.chat-bubble.loved{margin-bottom:.5rem}.chat-text{white-space:pre-wrap}.chat-heart{border:1px solid var(--border);background:var(--bg);color:var(--accent);border-radius:999px;padding:.05rem .4rem;font-size:.8rem;font-weight:700;line-height:1.3;position:absolute;bottom:-.65rem;right:-.3rem}.chat-media{width:min(85%,18rem);margin-top:.25rem}.chat-actions{gap:1.25rem;padding:0 .85rem;display:flex}.chat-message .report-form{width:100%;margin-top:.5rem}.chat-time,.chat-seen{margin:.15rem .85rem .5rem;font-size:.8rem}.chat-seen{margin-top:-.4rem}.chat-composer{padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);margin:0 -1rem -3rem;position:sticky;bottom:0}.chat-composer .previews{margin-bottom:.5rem}.chat-composer-row{align-items:flex-end;gap:.5rem;display:flex}.round-button.chat-attach{cursor:pointer;flex:none;width:2.75rem;height:2.75rem}.round-button.chat-attach svg{width:1.4rem;height:1.4rem}.chat-composer textarea{resize:none;border-radius:1.4rem;flex:1;min-width:0;min-height:2.75rem;padding:.5rem 1rem}button.chat-send{border-radius:999px;flex:none;width:auto;min-height:2.75rem;padding:.4rem 1.1rem}.chat-closed{margin-top:0}
