:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ff-past-event-text:color-mix(in srgb, color-mix(in srgb, var(--ff-muted) 90%, var(--ff-surface-subtle)) 70%, transparent);--ff-font-display:"Newsreader", Georgia, serif;--ff-font-ui:"Manrope", system-ui, sans-serif;--ff-firefly-body:#e9b44c;--ff-firefly-core:var(--ff-firefly-body);--ff-firefly-about-core:#fff4d2;--ff-firefly-gold:#ffc44f;--ff-firefly-amber:#ef921c;--ff-firefly-realistic-fill:var(--ff-firefly-body);--ff-firefly-falloff:var(--ff-firefly-simple-falloff);--ff-firefly-simple-falloff:radial-gradient(ellipse, color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 16%, transparent), color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 7%, transparent) 24%, color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 2%, transparent) 48%, transparent 76%);--ff-firefly-realistic-falloff:radial-gradient(ellipse, color-mix(in srgb, var(--ff-firefly-gold) 16%, transparent), color-mix(in srgb, var(--ff-firefly-gold) 7%, transparent) 24%, color-mix(in srgb, var(--ff-firefly-gold) 2%, transparent) 48%, transparent 76%);--ff-radius-xs:8px;--ff-radius-sm:12px;--ff-radius-md:16px;--ff-radius-lg:24px;--ff-radius-pill:999px;--ff-control-height:40px;--ff-search-field-height:36px;--ff-shadow-card:0 2px 8px #17283912, 0 10px 24px #1728390d;--ff-shadow-raised:0 8px 24px #1728391f, 0 18px 48px #17283914;--ff-duration-fast:.14s;--ff-duration-base:.22s;--ff-duration-status-reveal:.3s;--ff-duration-widget-reveal:.2s;--ff-invite-surface:color-mix(in srgb, color-mix(in srgb, var(--ff-border) 94%, var(--ff-primary) 6%) 70%, var(--ff-surface));--ff-duration-tab-crossfade:.15s;--ff-duration-slow:.42s;--ff-night-gradient:linear-gradient(to bottom, var(--ff-night-start) 0%, var(--ff-night-mid) 43%, var(--ff-night-end) 67%, var(--ff-night-mid) 100%);--ff-sheet-overscan:8px;--ff-duration-modal:.4s;--ff-duration-modal-exit:.2s;--ff-ease-out:cubic-bezier(.2, .8, .2, 1);--ff-ease-modal-enter:var(--ff-ease-surface-spring);--ff-ease-modal-exit:var(--ff-ease-out);--ff-ease-in:cubic-bezier(.4, 0, 1, 1);--ff-ease-in-out:cubic-bezier(.4, 0, .2, 1);--ff-ease-spring:cubic-bezier(.22, 1.2, .36, 1);--ff-ease-surface-spring:cubic-bezier(.22, 1.35, .36, 1);--ff-ease-menu-spring:cubic-bezier(.22, 1.8, .36, 1);--ff-layer-popover:18;--ff-layer-overlay-exit:19;--ff-layer-overlay:20;--ff-layer-overlay-handoff:21}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,[data-theme=light]{--ff-canvas:#f6f8f4;--ff-surface:#fff;--ff-surface-subtle:#eef2ec;--ff-field:var(--ff-surface);--ff-auth-field:color-mix(in srgb, var(--ff-field) 50%, transparent);--ff-auth-card-surface:color-mix(in srgb, var(--ff-surface) 90%, transparent);--ff-ink:#172839;--ff-text:#26343e;--ff-muted:#66766f;--ff-border:#d9e1d9;--ff-border-strong:#b8c7bd;--ff-primary:#315e62;--ff-primary-hover:#244c51;--ff-primary-contrast:#fff;--ff-action-hover-soft:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 6%);--ff-switch-thumb:#fff;--ff-overlay-scrim:#12222fad;--ff-overlay-scrim-strong:#12222fb8;--ff-signal:#e9b44c;--ff-signal-soft:#e6edd0;--ff-night-start:#01050a;--ff-night-mid:#04161b;--ff-night-end:#061c21;--ff-focus:color-mix(in srgb, var(--ff-primary) 72%, var(--ff-surface) 28%);--ff-focus-glow:color-mix(in srgb, var(--ff-focus) 38%, transparent);--ff-danger:#a94643;--ff-danger-contrast:#fff;--ff-danger-dismiss:#0003;--ff-danger-dismiss-hover:#00000080;--ff-tooltip:#1c1c1c;--ff-tooltip-contrast:#fff;--ff-highlight-red:#c9443f;--ff-highlight-blue:#3f73b8;--ff-highlight-indigo:#5365b7;--ff-highlight-purple:#7556b5;--ff-highlight-teal:#2f8a82;--ff-highlight-orange:#d97836;--ff-highlight-rose:#bc5d79;--ff-highlight-berry:#a64c72;--ff-highlight-green:#5e8f62;--ff-rsvp-going:#4f9b68;--ff-rsvp-interested:#55641e;--ff-rsvp-maybe:#8a6c29;--ff-media-control-surface:#ffffff4d;--ff-media-control-surface-hover:#ffffffa6;--ff-media-thumbnail-control:#ffffff8c;--ff-media-panel-surface:#ffffff14;--ff-media-panel-selected:#ffffff2e;--ff-media-control-border:#fff6;--ff-media-control-text-subtle:#fff6;--ff-media-control-text-muted:#fff9;--ff-media-control-text-secondary:#ffffffb3;--ff-media-control-text-strong:#fffc;--ff-media-scrim:#0009;--ff-media-crop-scrim:#0000008a;--ff-media-control-outline:#070b11;--ff-media-control-outline-muted:#0009;--ff-gray-100:#f4f5f4;--ff-gray-200:#e2e5e3;--ff-gray-300:#c9cfcb;--ff-gray-400:#98a29c;--ff-gray-500:#66716b;--ff-rsvp-none:color-mix(in srgb, var(--ff-gray-300) 78%, var(--ff-gray-400));--ff-gray-600:#3d4842;--ff-cover-mist:#a0cabb;--ff-cover-sky:#6685bb;--ff-cover-coral:#bf6c79;--ff-cover-gold:#d7b257;--ff-cover-moss:#5f8a71}[data-theme=dark]{--ff-canvas:#132331;--ff-surface:#1c3241;--ff-surface-subtle:#263d4b;--ff-field:color-mix(in srgb, var(--ff-canvas) 97%, var(--ff-primary) 3%);--ff-auth-field:var(--ff-field);--ff-auth-card-surface:var(--ff-surface);--ff-ink:#f2f4ef;--ff-text:#e5ece7;--ff-muted:#b7c5bf;--ff-border:#405967;--ff-border-strong:#66808a;--ff-primary:#4eb9b0;--ff-primary-hover:#6bcac1;--ff-primary-contrast:#132331;--ff-action-hover-soft:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 6%);--ff-switch-thumb:#fff;--ff-overlay-scrim:#12222fad;--ff-overlay-scrim-strong:#12222fb8;--ff-signal:#d3de6c;--ff-signal-soft:#394c2d;--ff-night-start:#000305;--ff-night-mid:#031116;--ff-night-end:#051a1f;--ff-focus:color-mix(in srgb, var(--ff-primary) 82%, var(--ff-surface) 18%);--ff-focus-glow:color-mix(in srgb, var(--ff-focus) 38%, transparent);--ff-danger:#c9443f;--ff-danger-contrast:#fff;--ff-danger-dismiss:#0003;--ff-danger-dismiss-hover:#00000080;--ff-tooltip:#1c1c1c;--ff-tooltip-contrast:#fff;--ff-highlight-red:#c9443f;--ff-highlight-blue:#3f73b8;--ff-highlight-indigo:#5365b7;--ff-highlight-purple:#7556b5;--ff-highlight-teal:#2f8a82;--ff-highlight-orange:#d97836;--ff-highlight-rose:#bc5d79;--ff-highlight-berry:#a64c72;--ff-highlight-green:#5e8f62;--ff-rsvp-going:#78c783;--ff-rsvp-interested:#c6d785;--ff-rsvp-maybe:#f0cf79;--ff-media-control-surface:#ffffff4d;--ff-media-control-surface-hover:#ffffffa6;--ff-media-thumbnail-control:#ffffff8c;--ff-media-panel-surface:#ffffff14;--ff-media-panel-selected:#ffffff2e;--ff-media-control-border:#fff6;--ff-media-control-text-subtle:#fff6;--ff-media-control-text-muted:#fff9;--ff-media-control-text-secondary:#ffffffb3;--ff-media-control-text-strong:#fffc;--ff-media-scrim:#0009;--ff-media-crop-scrim:#0000008a;--ff-media-control-outline:#070b11;--ff-media-control-outline-muted:#0009;--ff-gray-100:#e9eeeb;--ff-gray-200:#cbd3ce;--ff-gray-300:#a4afa8;--ff-gray-400:#78857d;--ff-gray-500:#526058;--ff-gray-600:#35423b;--ff-cover-mist:#a9c9c1;--ff-cover-sky:#8eadd6;--ff-cover-coral:#e394a0;--ff-cover-gold:#e8c76e;--ff-cover-moss:#87b095}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}body{background:var(--ff-canvas);color:var(--ff-text);font:500 15px/1.5 var(--ff-font-ui);margin:0}.ff-firefly{background:var(--ff-firefly-fill,var(--ff-signal));box-shadow:0 0 10px 2px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 49%, transparent), 0 0 24px 7px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 29%, transparent);border-radius:50%;width:9px;height:9px;animation:4.8s ease-in-out infinite ff-glow;position:relative}.ff-firefly:before{background:var(--ff-firefly-falloff);content:"";pointer-events:none;position:absolute;inset:-22px}.ff-firefly:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 40%, transparent));content:"";transform-origin:100%;border-radius:50%;width:15px;height:2px;position:absolute;top:4px;right:5px;transform:rotate(-18deg)}@keyframes ff-glow{0%{box-shadow:0 0 8px 1px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 39%, transparent), 0 0 20px 5px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 25%, transparent);transform:translate(0)}50%{box-shadow:0 0 12px 3px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 57%, transparent), 0 0 28px 8px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 33%, transparent);transform:translate(1px,-2px)}to{box-shadow:0 0 8px 1px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 39%, transparent), 0 0 20px 5px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 25%, transparent);transform:translate(0)}}.app-loading-screen{background:linear-gradient(to bottom, var(--ff-night-start) 0%, var(--ff-night-mid) 43%, var(--ff-night-end) 67%, var(--ff-night-mid) 100%);place-items:center;min-height:100dvh;display:grid}.app-loading-screen__content{place-items:center;gap:16px;display:grid}.app-loading-screen__content p{color:var(--ff-media-control-text-strong);margin:0;font-size:.75rem}.firefly-spinner{width:76px;height:76px;position:relative}.firefly-spinner__track{box-sizing:border-box;border:1px solid #000;border-radius:50%;position:absolute;inset:0}.firefly-spinner__orbit{animation:1.6s linear infinite firefly-spinner-orbit;position:absolute;inset:0}.firefly-spinner__orbit:before{background:conic-gradient(from -90deg, transparent 0deg 238deg, color-mix(in srgb, var(--ff-signal) 8%, transparent) 272deg, color-mix(in srgb, var(--ff-signal) 34%, transparent) 318deg, color-mix(in srgb, var(--ff-signal) 72%, transparent) 350deg, color-mix(in srgb, var(--ff-signal) 92%, transparent) 360deg);content:"";border-radius:50%;animation:1.6s ease-in-out infinite firefly-spinner-tail-pulse;position:absolute;inset:0;transform:rotate(106deg);-webkit-mask:radial-gradient(#0000 67.5%,#000 68.5% 69.5%,#0000 70.5%);mask:radial-gradient(#0000 67.5%,#000 68.5% 69.5%,#0000 70.5%)}.firefly-spinner__orbit:after{background:conic-gradient(from -90deg, transparent 0deg 300deg, color-mix(in srgb, var(--ff-signal) 4%, transparent) 324deg, color-mix(in srgb, var(--ff-signal) 34%, transparent) 346deg, color-mix(in srgb, var(--ff-signal) 72%, transparent) 360deg);content:"";pointer-events:none;border-radius:50%;animation:1.6s ease-in-out infinite firefly-spinner-tail-pulse;position:absolute;inset:0;transform:rotate(106deg);-webkit-mask:radial-gradient(#0000 67%,#000 68% 70%,#0000 71%);mask:radial-gradient(#0000 67%,#000 68% 70%,#0000 71%)}.firefly-spinner .ff-firefly{width:6px;height:6px;animation:1.6s ease-in-out infinite firefly-spinner-pulse;position:absolute;top:-1px;left:calc(50% + 10px);transform:translate(-50%)}.firefly-spinner .ff-firefly:after{display:none}@keyframes firefly-spinner-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes firefly-spinner-pulse{0%,to{box-shadow:0 0 4px 1px color-mix(in srgb, var(--ff-signal) 8%, transparent), 0 0 10px 3px color-mix(in srgb, var(--ff-signal) 4%, transparent);filter:grayscale()brightness(.42);opacity:.9}50%{box-shadow:0 0 14px 3px color-mix(in srgb, var(--ff-signal) 60%, transparent), 0 0 34px 10px color-mix(in srgb, var(--ff-signal) 38%, transparent);filter:brightness(1.18);opacity:1}}@keyframes firefly-spinner-tail-pulse{0%,to{opacity:.64}50%{opacity:1}}#firefly-startup{position:fixed;inset:0}#firefly-startup .startup-recovery{bottom:max(24px, env(safe-area-inset-bottom));text-align:center;visibility:hidden;animation:0s 12s forwards startup-recovery-show;position:absolute;left:24px;right:24px}#firefly-startup .startup-recovery a{color:inherit;padding:12px;display:inline-block}@keyframes startup-recovery-show{to{visibility:visible}}@media (prefers-reduced-motion:reduce){.firefly-spinner__orbit,.firefly-spinner__orbit:before,.firefly-spinner__orbit:after,.firefly-spinner .ff-firefly,.ff-firefly{animation:none}}::selection{background:color-mix(in srgb, var(--ff-highlight-green) 42%, var(--ff-surface));color:var(--ff-ink)}body.archive-active{background:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%)}button,input,textarea,select{font:inherit}button{cursor:pointer}.ff-display{color:var(--ff-ink);font:600 clamp(2rem, 5vw, 3.4rem)/1.02 var(--ff-font-display);letter-spacing:-.035em}.ff-heading{color:var(--ff-ink);font:600 1.55rem/1.12 var(--ff-font-display);letter-spacing:-.02em}.ff-label{color:var(--ff-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.ff-button{--ff-button-height:var(--ff-control-height);border-radius:var(--ff-radius-pill);height:var(--ff-button-height);min-height:var(--ff-button-height);transition:transform var(--ff-duration-fast) var(--ff-ease-out), background var(--ff-duration-fast) var(--ff-ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;display:inline-flex}.ff-button:active{transform:scale(.98)}.ff-button--primary{background:var(--ff-primary);color:var(--ff-primary-contrast)}.ff-button--primary:hover{background:var(--ff-primary-hover)}.ff-button--secondary{background:var(--ff-surface);border-color:var(--ff-border);color:var(--ff-ink)}.ff-button--secondary:hover{background:var(--ff-surface-subtle)}.ff-button--secondary-ghost-hover:hover{background:var(--ff-action-hover-soft);color:var(--ff-primary-hover)}.ff-button--ghost-primary{color:var(--ff-primary);background:0 0;border-color:#0000}.ff-button--ghost-primary:hover{background:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 12%);color:var(--ff-primary-hover)}.ff-button--destructive{background:var(--ff-danger);color:var(--ff-danger-contrast)}.ff-button--destructive:hover{background:color-mix(in srgb, var(--ff-danger) 88%, #000)}.ff-button--small{min-height:var(--ff-control-height);padding-inline:12px;font-size:.8rem}.ff-button--small svg{stroke-width:2.25px;width:16px;height:16px}.ff-button--wide{padding-inline:36px}.ff-button--compact{--ff-button-height:36px;padding-inline:12px;font-size:.78rem}.ff-button--large{--ff-button-height:44px;padding-inline:20px}.ff-button--full{width:100%}.ff-button--save-event{white-space:nowrap;min-width:160px;padding-inline:16px}.ff-button--form-action{padding-inline:24px}.ff-icon-button{--ff-icon-button-size:var(--ff-control-height);aspect-ratio:1;background:var(--ff-surface);border:1px solid var(--ff-border);color:var(--ff-ink);height:var(--ff-icon-button-size);min-width:var(--ff-icon-button-size);transition:transform var(--ff-duration-fast) var(--ff-ease-spring), background var(--ff-duration-fast) ease;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover) and (pointer:fine){.ff-icon-button:hover{background:var(--ff-surface-subtle)}}.ff-icon-button:active{transform:scale(.96)}.ff-icon-button--ghost{background:0 0;border-color:#0000}@media (hover:hover) and (pointer:fine){.ff-icon-button--ghost:hover{background:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 12%);box-shadow:none}}.ff-icon-button--compact{height:var(--ff-control-height);min-width:var(--ff-control-height);width:var(--ff-control-height)}.ff-icon-button--small{--ff-icon-button-size:36px}.ff-icon-button--large{--ff-icon-button-size:44px}.ff-button:disabled,.ff-icon-button:disabled{cursor:not-allowed;opacity:.32}.ff-button:disabled:active,.ff-icon-button:disabled:active{transform:none}.ff-button:focus-visible,.ff-icon-button:focus-visible,.ff-field:focus-visible,.ff-check-control input:focus-visible,.ff-radio-control input:focus-visible,.ff-switch-control input:focus-visible+.ff-switch-track{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);outline-offset:3px;outline:0}.ff-field{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);color:var(--ff-text);height:var(--ff-control-height);min-height:var(--ff-control-height);transition:border-color var(--ff-duration-fast) ease, box-shadow var(--ff-duration-fast) ease;width:100%;padding:0 12px;font-weight:500}.ff-field::placeholder,.ff-tag-input input::placeholder{color:color-mix(in srgb, var(--ff-muted) 64%, transparent);opacity:1}.ff-field:hover{border-color:var(--ff-border-strong)}.ff-field:focus{border-color:var(--ff-border-strong);box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);outline:0}.ff-field[aria-invalid=true]{border-color:var(--ff-danger)}.ff-field[aria-invalid=true]:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ff-danger) 28%, transparent), 0 0 14px color-mix(in srgb, var(--ff-danger) 28%, transparent)}.ff-field:-webkit-autofill{-webkit-text-fill-color:var(--ff-text);-webkit-box-shadow:0 0 0 1000px var(--ff-surface) inset;box-shadow:0 0 0 1000px var(--ff-surface) inset;caret-color:var(--ff-text)}.ff-field:-webkit-autofill:hover{-webkit-text-fill-color:var(--ff-text);-webkit-box-shadow:0 0 0 1000px var(--ff-surface) inset;box-shadow:0 0 0 1000px var(--ff-surface) inset;caret-color:var(--ff-text)}.ff-field:-webkit-autofill:focus{-webkit-text-fill-color:var(--ff-text);-webkit-box-shadow:0 0 0 1000px var(--ff-surface) inset;box-shadow:0 0 0 1000px var(--ff-surface) inset;caret-color:var(--ff-text)}.ff-field:-webkit-autofill:focus{border-color:var(--ff-border-strong);-webkit-box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow), 0 0 0 1000px var(--ff-surface) inset;box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow), 0 0 0 1000px var(--ff-surface) inset}.ff-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2366766f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:calc(100% - 13px);background-repeat:no-repeat;background-size:20px;padding-right:2.5rem}.ff-check-control,.ff-radio-control,.ff-switch-control{color:var(--ff-text);cursor:pointer;align-items:center;gap:8px;font-size:.84rem;display:inline-flex}.ff-check-control input[type=checkbox],.ff-radio-control input[type=radio]{appearance:none;background:var(--ff-surface);border:1px solid var(--ff-border-strong);width:18px;height:18px;margin:0;position:relative}.ff-check-control input[type=checkbox]{border-radius:6px}.ff-radio-control input[type=radio]{border-radius:50%}.ff-check-control input[type=checkbox]:checked,.ff-radio-control input[type=radio]:checked{background-color:var(--ff-primary);border-color:var(--ff-primary)}.ff-check-control input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:14px}.ff-radio-control input[type=radio]:checked{box-shadow:inset 0 0 0 4px var(--ff-surface)}.ff-switch-control input{appearance:none;cursor:pointer;opacity:0;margin:0;position:absolute}.ff-switch-track{background:var(--ff-border-strong);border-radius:var(--ff-radius-pill);height:22px;transition:background var(--ff-duration-fast) ease;width:40px;position:relative}.ff-switch-track:after{background:var(--ff-switch-thumb);content:"";height:16px;transition:transform var(--ff-duration-fast) var(--ff-ease-out);border-radius:50%;width:16px;position:absolute;top:3px;left:3px}.ff-switch-control input:checked+.ff-switch-track{background:var(--ff-primary)}.ff-switch-control input:checked+.ff-switch-track:after{transform:translate(18px)}.ff-segmented-control{--ff-segment-inset:3px;--ff-segment-outer-size:6px;background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);grid-template-columns:repeat(var(--ff-segment-count,3), minmax(0, 1fr));height:var(--ff-control-height);padding:var(--ff-segment-inset);width:fit-content;display:grid;position:relative}.ff-segmented-control:before{background:var(--ff-surface);border-radius:var(--ff-radius-pill);box-shadow:0 1px 3px color-mix(in srgb, var(--ff-ink) 12%, transparent);content:"";height:calc(100% - var(--ff-segment-outer-size));left:var(--ff-segment-inset);top:var(--ff-segment-inset);transform:translateX(calc(var(--ff-segment-index,0) * 100%));opacity:var(--ff-segment-indicator-opacity,1);transition:opacity var(--ff-duration-fast) ease, transform var(--ff-duration-base) var(--ff-ease-spring);width:calc((100% - var(--ff-segment-outer-size)) / var(--ff-segment-count,3));position:absolute}.ff-segmented-control button{border-radius:var(--ff-radius-pill);color:var(--ff-muted);font:700 .8rem var(--ff-font-ui);min-width:64px;min-height:0;transition:background var(--ff-duration-fast) var(--ff-ease-out), color var(--ff-duration-fast) var(--ff-ease-out);z-index:1;background:0 0;border:0;padding:0 16px;position:relative}@media (hover:hover) and (pointer:fine){.ff-segmented-control button:not([aria-pressed=true]):hover{background:var(--ff-action-hover-soft);color:var(--ff-ink)}}.ff-segmented-control button[aria-pressed=true]{color:var(--ff-ink)}.ff-segmented-control--enter{animation:ff-segmented-control-enter var(--ff-duration-base) var(--ff-ease-out) both}.ff-tabs{border-bottom:1px solid var(--ff-border);gap:20px;display:flex;overflow-x:auto}.ff-tabs button{color:var(--ff-muted);font:700 .78rem var(--ff-font-ui);letter-spacing:.02em;text-transform:capitalize;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;min-height:42px;padding:0 2px}.ff-tabs button:hover{color:var(--ff-ink)}.ff-tabs button[aria-selected=true]{border-bottom-color:var(--ff-primary);color:var(--ff-ink)}.ff-tabs button:focus-visible{border-radius:var(--ff-radius-xs);box-shadow:none;outline:1px solid var(--ff-focus);outline-offset:2px}.ff-tabs--light{background:var(--ff-surface)}@keyframes ff-segmented-control-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.ff-search-field{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);color:var(--ff-muted);height:var(--ff-search-field-height);min-height:var(--ff-search-field-height);transition:border-color var(--ff-duration-fast) ease, box-shadow var(--ff-duration-fast) ease;align-items:center;gap:8px;padding:0 12px;display:flex}.ff-search-field:hover{border-color:var(--ff-border-strong)}.ff-search-field:focus-within{border-color:var(--ff-focus);box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow)}.ff-search-field input{color:var(--ff-text);font:500 .82rem var(--ff-font-ui);background:0 0;border:0;outline:0;width:100%;min-width:0}.ff-search-field input:focus-visible{box-shadow:none}.ff-search-field input::placeholder{color:var(--ff-muted)}.ff-tooltip{animation:ff-tooltip-enter var(--ff-duration-fast) var(--ff-ease-out) both;background:var(--ff-tooltip);border-radius:var(--ff-radius-xs);color:var(--ff-tooltip-contrast);z-index:30;padding:6px 9px;font-size:.75rem;font-weight:600;line-height:1}.ff-tooltip-arrow{fill:var(--ff-tooltip)}@keyframes ff-tooltip-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.ff-menu{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);display:grid;overflow:hidden}.ff-menu button{color:var(--ff-text);text-align:left;background:0 0;border:0;align-items:center;gap:7px;min-height:38px;padding:9px 11px;font-size:.8rem;display:flex}.ff-menu button:hover:not(:disabled){background:var(--ff-surface-subtle)}.ff-menu button:disabled{color:var(--ff-muted);cursor:not-allowed}.ff-menu__divider{background:var(--ff-border);height:1px}.ff-menu .danger{color:var(--ff-danger)}.ff-alert{animation:ff-alert-enter var(--ff-duration-base) var(--ff-ease-out) both;background:color-mix(in srgb, var(--ff-danger) 90%, transparent);border-radius:var(--ff-radius-sm);color:var(--ff-danger-contrast);align-items:center;gap:12px;margin:0;padding:12px 16px;font-size:.875rem;font-weight:600;display:flex}.ff-alert>svg{flex:none;width:20px;height:20px}.ff-alert>span{flex:1}.ff-alert--success{background:color-mix(in srgb, var(--ff-rsvp-going) 16%, var(--ff-surface));border:1px solid color-mix(in srgb, var(--ff-rsvp-going) 42%, var(--ff-border));color:var(--ff-text)}.ff-alert--success>svg{color:var(--ff-rsvp-going)}.ff-alert__dismiss{color:var(--ff-danger-dismiss);height:var(--ff-control-height);min-height:var(--ff-control-height);transition:background var(--ff-duration-fast) var(--ff-ease-out), color var(--ff-duration-fast) var(--ff-ease-out);width:var(--ff-control-height);background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;margin:-8px -12px -8px 0;padding:0;display:inline-flex}.ff-alert__dismiss:hover{color:var(--ff-danger-dismiss-hover)}.ff-alert__dismiss svg{width:20px;height:20px}@keyframes ff-alert-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.ff-card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-card)}.ff-card--interactive{transition:border-color var(--ff-duration-base) ease, box-shadow var(--ff-duration-base) var(--ff-ease-out), transform var(--ff-duration-base) var(--ff-ease-spring)}.ff-card--interactive:hover{border-color:var(--ff-border-strong);box-shadow:var(--ff-shadow-raised);transform:translateY(-2px)}.ff-dialog{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-raised);width:100%}.ff-dialog--compact{max-width:390px;padding:24px}.ff-chip{background:var(--ff-signal-soft);border-radius:var(--ff-radius-pill);color:color-mix(in srgb, var(--ff-signal) 20%, var(--ff-ink));padding:.28rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.ff-tag-input{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);min-height:var(--ff-control-height);min-width:0;transition:border-color var(--ff-duration-fast) ease, box-shadow var(--ff-duration-fast) ease;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 12px;display:flex}.ff-tag-input:focus-within{border-color:var(--ff-border-strong);box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow)}.ff-tag-input input{color:var(--ff-text);min-height:calc(var(--ff-control-height) - 14px);background:0 0;border:0;outline:0;flex:8rem;min-width:0;padding:0 6px;font-weight:500}.ff-tag-input input:focus-visible{box-shadow:none;outline:0}.ff-tag-input__chip{background:var(--ff-gray-200);border-radius:var(--ff-radius-pill);color:var(--ff-gray-600);align-items:center;gap:3px;min-width:0;max-width:100%;padding:4px 5px 4px 9px;font-size:.78rem;font-weight:700;display:inline-flex;overflow:hidden}.ff-tag-input__chip[data-pending-removal=true]{background:color-mix(in srgb, var(--ff-danger) 16%, var(--ff-surface));color:var(--ff-danger)}.ff-tag-input__chip{overflow-wrap:anywhere}.ff-tag-input__chip button{color:inherit;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.ff-tag-input__chip svg{stroke-width:2.5px;width:14px;height:14px}.ff-tag-input__chip button:hover svg{color:var(--ff-ink)}[data-theme=dark] .ff-tag-input__chip{background:color-mix(in srgb, var(--ff-primary) 20%, var(--ff-surface));border:1px solid color-mix(in srgb, var(--ff-primary) 32%, var(--ff-border));color:var(--ff-text)}[data-theme=dark] .ff-tag-input__chip[data-pending-removal=true]{background:color-mix(in srgb, var(--ff-danger) 20%, var(--ff-surface));border-color:color-mix(in srgb, var(--ff-danger) 48%, var(--ff-border));color:var(--ff-text)}.ff-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ff-tag-input__suggestions{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);max-height:232px;z-index:calc(var(--ff-layer-overlay) + 1);margin:0;padding:4px;list-style:none;position:fixed;overflow:hidden}.ff-tag-input__suggestions--above{transform:translateY(-100%)}.ff-tag-input__suggestions li{border-radius:var(--ff-radius-xs);cursor:pointer;padding:8px 10px}.ff-tag-input__suggestions li[aria-selected=true],.ff-tag-input__suggestions li:hover{background:var(--ff-surface-subtle);color:var(--ff-ink)}.ff-disclosure-enter{animation:ff-disclosure-enter var(--ff-duration-base) var(--ff-ease-menu-spring) both, ff-disclosure-fade-in var(--ff-duration-base) linear both}.ff-disclosure-exit{animation:ff-disclosure-exit var(--ff-duration-fast) var(--ff-ease-out) both, ff-disclosure-fade-out var(--ff-duration-fast) linear both;pointer-events:none}@keyframes ff-disclosure-enter{0%{translate:0 -8px}to{translate:0}}@keyframes ff-disclosure-exit{0%{translate:0}to{translate:0 -8px}}@keyframes ff-disclosure-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ff-disclosure-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.ff-disclosure-enter,.ff-disclosure-exit{animation:none}}:is(.quick-filters,.calendar-tag-filters)>button{-webkit-tap-highlight-color:transparent;transition:scale .24s var(--ff-ease-menu-spring);scale:1}:is(.quick-filters,.calendar-tag-filters)>button:active:not(:disabled){transition:scale 90ms var(--ff-ease-out);scale:.94}@media (prefers-reduced-motion:reduce){:is(.quick-filters,.calendar-tag-filters)>button{transition:none}:is(.quick-filters,.calendar-tag-filters)>button:active:not(:disabled){scale:1}}.ff-menu-exit{--ff-menu-exit-y:-6px;pointer-events:none;animation:ff-menu-exit var(--ff-duration-fast) var(--ff-ease-out) both!important}.plan-artwork-rsvp .rsvp-menu.ff-menu-exit,.ff-menu-exit:is(.action-menu--above,.detail-action-menu,.ff-menu--above){--ff-menu-exit-y:6px}@keyframes ff-menu-exit{0%{opacity:1;translate:0}to{opacity:0;translate:0 var(--ff-menu-exit-y)}}@media (prefers-reduced-motion:reduce){:is(.quick-filters,.calendar-tag-filters)>button.is-selected,.ff-menu-exit{animation:none!important}}.calendar-sync-panel{gap:1rem;margin-bottom:1.5rem;display:grid}.calendar-sync-heading{justify-content:space-between;align-items:center;gap:1rem;margin:-4px 0 -16px;display:flex}.family-settings .calendar-sync-heading h3{margin:0}.calendar-sync-heading>button,.calendar-sync-heading .ff-icon-button{color:var(--ff-primary);flex:none}.calendar-sync-info{max-width:min(20rem,100vw - 32px);line-height:1.5}.calendar-sync-panel h3{align-items:center;gap:.5rem;display:flex}.calendar-sync-panel p{color:var(--ff-muted);margin:0}.calendar-sync-actions{flex-wrap:wrap;gap:.5rem;display:flex}.calendar-sync-actions a{text-decoration:none}.calendar-sync-invitation{animation:ff-disclosure-fade-in var(--ff-duration-widget-reveal) linear both;background:var(--ff-night-gradient);color:var(--ff-media-control-text-strong);border-radius:var(--ff-radius-md);text-align:center;isolation:isolate;justify-items:center;gap:8px;margin:24px auto;padding:24px 24px 32px;display:grid;position:relative;overflow:hidden}.calendar-sync-invitation>h3,.family-settings .calendar-sync-invitation>h3{color:inherit;font:600 1.5rem/1.2 var(--ff-font-display);margin:8px 0 0}.calendar-sync-invitation>p,.family-settings .calendar-sync-invitation>p{color:inherit;margin:0;line-height:1.5}.calendar-sync-invitation>.ff-button{margin-top:8px}.calendar-sync-invitation__connection{align-items:center;gap:8px;height:56px;display:flex}.calendar-sync-invitation__logo,.calendar-sync-invitation__calendar{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:40px;height:40px}.calendar-sync-invitation__logo text{fill:currentColor;stroke:none;font-family:var(--ff-font-display);font-size:26px;font-weight:500}.calendar-sync-invitation__flight{width:104px;height:32px;position:relative}.calendar-sync-invitation__traveler{animation:ff-calendar-firefly-flight 6.5s linear var(--fly-delay) infinite;position:absolute;top:50%;left:-8px}.calendar-sync-invitation .auth-firefly{--auth-firefly-flee-x:0px;--auth-firefly-flee-y:0px;width:4px;height:4px;animation:ff-calendar-firefly-pulse 3.5s ease-in-out var(--fly-delay) infinite, ff-calendar-firefly-arrival 6.5s linear var(--fly-delay) infinite}@keyframes ff-calendar-firefly-flight{0%{opacity:0;transform:translate(0, var(--fly-height))}12%{opacity:.9}45%{transform:translate(60px, calc(var(--fly-height) - 4px))}90%{opacity:.9;transform:translate(128px, var(--fly-height))}to{opacity:0;transform:translate(132px, var(--fly-height))}}@keyframes ff-calendar-firefly-pulse{0%,to{filter:brightness(.8)}50%{filter:brightness(1.2)}}@keyframes ff-calendar-firefly-arrival{0%,85%,to{background:var(--ff-firefly-fill,var(--ff-signal));box-shadow:0 0 12px 2px color-mix(in srgb, var(--ff-signal) 49%, transparent), 0 0 28px 7px color-mix(in srgb, var(--ff-signal) 29%, transparent)}90%,93%{background:var(--ff-firefly-fill,var(--ff-signal));box-shadow:0 0 16px 4px color-mix(in srgb, var(--ff-signal) 80%, transparent), 0 0 32px 9px color-mix(in srgb, var(--ff-signal) 45%, transparent)}}.calendar-sync-invitation__grass{width:100%;height:56px;fill:var(--ff-primary);opacity:.6;pointer-events:none;z-index:-1;position:absolute;bottom:0;left:0}.calendar-sync-invitation__grass path{transform-box:fill-box;transform-origin:bottom;animation:ff-calendar-grass-sway var(--grass-duration,7s) ease-in-out var(--grass-delay) infinite alternate}@keyframes ff-calendar-grass-sway{0%{transform:skew(-12deg)rotate(-3deg)}to{transform:skew(12deg)rotate(3deg)}}@media (prefers-reduced-motion:reduce){.app-install,.calendar-sync-invitation,.calendar-sync-invitation__traveler,.calendar-sync-invitation .auth-firefly,.calendar-sync-invitation__grass path{animation:none}.calendar-sync-invitation__traveler{opacity:.7;left:50%}}.family-settings .calendar-sync-heading h3{align-items:center;gap:8px;margin:0;line-height:1;display:flex}.calendar-sync-heading h3>svg{flex:none;width:20px;height:20px;display:block}.calendar-sync-heading h3>span{display:block;position:relative;top:3px}.calendar-sync-invitation--settings{margin:0}.calendar-sync-invitation__calendar{stroke-width:.711px;width:50.667px;height:50.667px}.calendar-sync-invitation__ambient{pointer-events:none;z-index:-1;position:absolute;inset:0}.calendar-sync-invitation .calendar-sync-invitation__ambient .auth-firefly{animation:auth-firefly-appear 24s var(--ff-ease-out) var(--auth-firefly-cycle-delay) infinite, auth-firefly-pulse var(--auth-firefly-pulse-duration) ease-in-out var(--auth-firefly-pulse-delay) infinite}@media (prefers-reduced-motion:reduce){.calendar-sync-invitation .calendar-sync-invitation__ambient .auth-firefly{animation:none}}.ff-labelled-select{flex-wrap:nowrap;align-items:stretch;gap:0;padding:0;overflow:hidden}.ff-labelled-select__label{background:var(--ff-action-hover-soft);color:var(--ff-primary);text-transform:uppercase;flex:none;align-items:center;padding:0 12px;font-size:.72rem;font-weight:700;display:flex}.ff-labelled-select__value{flex:1;min-width:0;display:flex;position:relative}.family-settings .ff-labelled-select select{appearance:none;color:var(--ff-text);font:inherit;height:auto;min-height:calc(var(--ff-control-height) - 2px);width:100%;min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;padding:6px 36px 6px 40px;font-weight:500}.ff-labelled-select__value>svg{color:var(--ff-primary);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.ff-labelled-select__icon{left:12px}.ff-labelled-select__value>svg:last-child{width:18px;height:18px;right:12px}.ff-labelled-select:has(select:disabled){opacity:.6}.calendar-sync-invitation__actions{flex-direction:column;align-items:center;gap:8px;margin-top:8px;display:flex}.calendar-sync-invitation__actions .app-install__dismiss{position:static}.calendar-sync-link-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.calendar-sync-panel .calendar-sync-link-status{color:var(--ff-rsvp-going);align-items:center;gap:4px;font-size:.78rem;font-weight:600;display:inline-flex}.calendar-sync-link-status svg{flex-shrink:0}.calendar-sync-actions{align-items:center}.calendar-sync-menu-wrap{position:relative}.calendar-sync-menu{z-index:10;width:max-content;position:absolute;top:calc(100% + 8px);right:0}.calendar-sync-help-toggle{color:var(--ff-primary);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:12px;padding:8px 0;font-size:.8rem;text-decoration:underline}.calendar-sync-instructions{background:var(--ff-action-hover-soft);border-radius:var(--ff-radius-sm);gap:12px;padding:16px;font-size:.8rem;display:grid}.calendar-sync-instructions ul{gap:12px;margin:0;padding-left:24px;display:grid}.calendar-sync-instructions__heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:-8px;display:flex}.family-settings .calendar-sync-panel .calendar-sync-instructions__heading h4{font:600 21px/1.35 var(--ff-font-display);margin:0}.calendar-sync-instructions__close{flex-shrink:0}@media (width<=719px){.ff-disclosure-exit{animation:ff-disclosure-collapse var(--ff-duration-base) var(--ff-ease-out) both, ff-disclosure-fade-out var(--ff-duration-base) linear both;overflow:hidden}@keyframes ff-disclosure-collapse{0%{max-height:var(--ff-disclosure-height)}to{border-top-width:0;border-bottom-width:0;min-height:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}}}@media (prefers-reduced-motion:reduce){.ff-disclosure-exit{animation:none}}.event-share-menu{z-index:40;width:max-content;max-width:calc(100vw - 16px);position:fixed}.event-share-menu button{min-height:44px;padding-right:24px}.event-share-menu svg{flex-shrink:0}.event-share-notice{z-index:50;max-width:calc(100vw - 32px);position:fixed;bottom:104px;left:50%;transform:translate(-50%)}@media (hover:none){.event-share-menu button:hover{background:0 0}}.event-share-menu.action-menu--above{animation:menu-surface-enter-above .24s var(--ff-ease-menu-spring) both;transform-origin:100% 100%}.legal-page{background:var(--ff-canvas);color:var(--ff-text);min-height:100vh;padding:40px 24px 72px}.legal-page__brand{color:var(--ff-ink);font:600 1.5rem var(--ff-font-display);align-items:center;gap:10px;width:min(100%,720px);margin:0 auto 32px;text-decoration:none;display:flex}.legal-page__back{color:var(--ff-primary);align-items:center;gap:4px;width:min(100%,720px);margin:-8px auto 16px;font-weight:700;text-decoration:none;display:none}.legal-page__back svg{width:18px;height:18px}.legal-page__card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-card);max-width:720px;margin:auto;padding:40px}.legal-page__eyebrow{color:var(--ff-primary);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.legal-page h1{color:var(--ff-ink);font:600 2.35rem/1.05 var(--ff-font-display);margin:10px 0 8px}.legal-page__updated{color:var(--ff-muted);margin:0 0 32px;font-size:.82rem}.legal-page section+section{margin-top:26px}.legal-page h2{color:var(--ff-ink);font:600 1.18rem/1.15 var(--ff-font-display);margin:0 0 7px}.legal-page section p{margin:0;line-height:1.65}@media (width<=640px){.legal-page{padding:24px 16px 48px}.legal-page__brand{margin-bottom:20px}.legal-page__back{display:inline-flex}.legal-page__card{border-radius:var(--ff-radius-md);padding:28px 22px}.legal-page h1{font-size:2rem}}*{box-sizing:border-box}html,body{scrollbar-color:var(--ff-border-strong) var(--ff-canvas);scrollbar-width:thin}html::-webkit-scrollbar{width:8px}body::-webkit-scrollbar{width:8px}html::-webkit-scrollbar-track{background:var(--ff-canvas)}body::-webkit-scrollbar-track{background:var(--ff-canvas)}html::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border:2px solid var(--ff-canvas);border-radius:var(--ff-radius-pill)}body::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border:2px solid var(--ff-canvas);border-radius:var(--ff-radius-pill)}html::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}body::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}body{background:var(--ff-canvas);color:var(--ff-text);font:500 15px/1.45 var(--ff-font-ui);transition:background-color var(--ff-duration-base) var(--ff-ease-out);margin:0;overflow-x:clip}html{scrollbar-gutter:stable}html[data-modal-open],html[data-modal-open] body{overscroll-behavior:none}html[data-modal-open]{overflow-y:auto}.crash-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.crash-card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-card);text-align:center;width:600px;animation:crash-card-enter .68s var(--ff-ease-out) both;flex-direction:column;align-items:center;gap:16px;padding:36px 24px;display:flex}.crash-card>*{animation:crash-card-element-enter .5s var(--ff-ease-out) both}.crash-mark{color:var(--ff-primary);justify-content:center;align-items:center;width:136px;height:96px;margin-bottom:8px;display:flex;position:relative}.crash-firefly{background:color-mix(in srgb, var(--ff-muted) 72%, var(--ff-cover-moss));box-shadow:0 0 4px 1px color-mix(in srgb, var(--ff-cover-moss) 18%, transparent);opacity:.5;border-radius:50%;width:4px;height:4px;position:absolute}.crash-firefly--one{animation:3.8s ease-in-out infinite alternate crash-firefly-drift,3.33s step-end infinite crash-firefly-attempt-once;top:14px;left:8px}.crash-firefly--two{animation:4.6s ease-in-out -1.5s infinite alternate-reverse crash-firefly-drift,3.33s step-end -1.665s infinite crash-firefly-attempt-twice;bottom:12px;right:8px}.crash-card h1{color:var(--ff-ink);font:600 2rem/1.05 var(--ff-font-display);letter-spacing:-.03em;margin:0}.crash-card p{color:var(--ff-ink);margin:0}.crash-card a.ff-button{text-decoration:none}.email-verification-card .auth-brand{font-size:1rem}@keyframes crash-firefly-drift{0%{transform:translate(0)}to{transform:translate(5px,-4px)}}@keyframes crash-card-enter{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes crash-card-element-enter{0%{opacity:0}to{opacity:1}}@keyframes crash-firefly-attempt-once{0%,44%,64%,to{background:color-mix(in srgb, var(--ff-muted) 72%, var(--ff-cover-moss));box-shadow:0 0 4px 1px color-mix(in srgb, var(--ff-cover-moss) 18%, transparent);opacity:.5}48%{box-shadow:0 0 11px 4px color-mix(in srgb, var(--ff-signal) 68%, transparent)}52%{background:var(--ff-signal);box-shadow:0 0 17px 7px color-mix(in srgb, var(--ff-signal) 86%, transparent);opacity:1}56%{background:color-mix(in srgb, var(--ff-muted) 72%, var(--ff-cover-moss));box-shadow:0 0 9px 3px color-mix(in srgb, var(--ff-signal) 52%, transparent);opacity:.5}}@keyframes crash-firefly-attempt-twice{0%,44%,72%,to{background:color-mix(in srgb, var(--ff-muted) 72%, var(--ff-cover-moss));box-shadow:0 0 4px 1px color-mix(in srgb, var(--ff-cover-moss) 18%, transparent);opacity:.5}48%{box-shadow:0 0 11px 4px color-mix(in srgb, var(--ff-signal) 68%, transparent)}52%,62%{background:var(--ff-signal);box-shadow:0 0 17px 7px color-mix(in srgb, var(--ff-signal) 86%, transparent);opacity:1}56%,66%{background:color-mix(in srgb, var(--ff-muted) 72%, var(--ff-cover-moss));box-shadow:0 0 9px 3px color-mix(in srgb, var(--ff-signal) 52%, transparent);opacity:.5}}.crash-card .ff-button--primary{padding-inline:40px}button{font:inherit}button:focus-visible,input:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);outline-offset:3px;outline:0}.quick-filters{border-bottom:1px solid var(--ff-border);scrollbar-width:none;background:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%);overscroll-behavior:contain;top:calc(70px + var(--ff-search-field-height));touch-action:pan-x;z-index:4;gap:4px;margin:-10px -20px 12px;padding:8px 20px;display:flex;position:sticky;overflow-x:auto}.quick-filters button{background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);color:var(--ff-text);cursor:pointer;min-height:28px;transition:background var(--ff-duration-fast) var(--ff-ease-out), border-color var(--ff-duration-fast) var(--ff-ease-out);white-space:nowrap;align-items:center;padding:2px 14px;font-size:13px;display:inline-flex}.quick-filters button:hover{background:color-mix(in srgb, var(--ff-surface-subtle) 88%, var(--ff-primary));border-color:var(--ff-border-strong)}.quick-filters button.is-selected{background:var(--ff-primary);color:var(--ff-primary-contrast);border-color:#0000}.quick-filters button.is-selected:hover{background:var(--ff-primary-hover);border-color:#0000}.quick-filters button svg{margin-right:4px}.quick-filters::-webkit-scrollbar{display:none}.quick-filters.is-scrolled{box-shadow:var(--ff-shadow-raised)}.share-dialog,.family-settings{animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both;background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-raised);width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:28px;position:relative;overflow:auto}.share-dialog>.share-dialog__title h2,.family-settings h2{color:var(--ff-ink);font:600 28px/1.1 var(--ff-font-display);margin:0}.share-dialog__title{align-items:center;gap:8px;margin-bottom:8px;display:flex}.share-dialog__title h2{white-space:nowrap;margin:0;font-size:1.5rem}.share-dialog__title>svg{color:var(--ff-primary);flex:none;width:24px;height:24px}.share-dialog__title .ff-dialog-close{flex:none;margin-left:auto;position:static}.share-dialog__preview.plan-card--repeat{margin-bottom:16px;overflow:hidden}.share-dialog__preview .plan-artwork-wrap{pointer-events:none}.share-dialog__preview .event-meta svg{margin:0 2px 0 0}.share-dialog>p{color:var(--ff-muted);margin:0 0 20px;font-size:.8125rem}.family-settings .close-button{position:absolute;top:16px;right:16px}.form-field{gap:6px;margin:16px 0;display:grid}.form-field>span,.form-field>.share-dialog__description-label,.form-field small{color:var(--ff-muted);font-size:.82rem}.form-field input,.form-field textarea,.form-field select,.member-list select{background:var(--ff-field);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm);color:var(--ff-text);font:inherit;min-height:46px;padding:10px 12px}.form-field textarea{resize:vertical;min-height:112px}.share-dialog .form-field textarea{min-height:100px}.share-dialog__file-select{display:block;position:relative}.share-dialog__file-trigger{background:var(--ff-field);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm);color:var(--ff-text);font:inherit;text-align:left;align-items:center;gap:12px;width:100%;min-height:46px;padding:6px 12px;display:flex}.share-dialog__file-trigger:hover{background:var(--ff-action-hover-soft)}.share-dialog__file-trigger:focus-visible,.share-dialog__file-menu button:focus-visible{outline:3px solid var(--ff-focus-glow);outline-offset:2px}.share-dialog__file-trigger>span:not(.share-dialog__file-thumbnail){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-dialog__file-trigger>svg{color:var(--ff-primary);pointer-events:none;flex:none;width:18px;height:18px;margin-left:auto}.share-dialog__file-menu{background:var(--ff-surface);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-card);z-index:20;padding:4px;position:fixed;overflow-y:auto}.share-dialog__file-menu,.role-select__menu,.member-menu__popover,.invite-link__popover,.google-account__popover,.profile-menu,.ff-menu,.calendar-picker,.event-source__thumbnail-menu-content{animation:menu-surface-enter .24s var(--ff-ease-menu-spring) both;transform-origin:100% 0}.share-dialog__file-menu button{border-radius:var(--ff-radius-xs);color:var(--ff-text);font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:44px;padding:6px 8px;display:flex}.share-dialog__file-menu button:hover,.share-dialog__file-menu button[aria-selected=true]{background:var(--ff-action-hover-soft)}.share-dialog__file-thumbnail{background:var(--ff-surface-subtle);border-radius:var(--ff-radius-xs);object-fit:cover;flex:none;place-items:center;width:32px;height:32px;display:grid}.share-dialog__file-thumbnail--fallback{color:var(--ff-muted)}.share-dialog__file-thumbnail--fallback svg{width:16px;height:16px}.share-dialog__description-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.share-dialog__copy{color:var(--ff-primary);text-align:right;background:0 0;border:0;margin-left:auto;padding:0;font-size:13px;line-height:1.5}.share-dialog__copy:hover{color:var(--ff-primary-hover);text-decoration:underline}.share-dialog__copy:focus-visible{border-radius:var(--ff-radius-xs);outline:3px solid var(--ff-focus-glow);outline-offset:2px}.share-dialog .share-dialog__error{width:auto;margin:16px 0;position:static}.share-dialog__existing{border-top:1px solid var(--ff-border);margin-top:20px;padding-top:16px}.share-dialog__existing h3{color:var(--ff-ink);font:600 1.2rem var(--ff-font-display);margin:0 0 8px}.share-dialog__existing div{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.share-dialog__existing a{color:var(--ff-primary)}.settings-check{align-items:center;gap:10px;margin:20px 0;display:flex}.family-settings h3{color:var(--ff-ink);font:600 1.3rem var(--ff-font-display);margin:28px 0 4px}.invite-controls{align-items:center;gap:8px;margin:12px 0;display:flex}.invite-controls select{flex:1}.invite-link{background:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%);border-radius:var(--ff-radius-sm);justify-content:space-between;align-items:center;margin-bottom:4px;padding:12px 16px;display:flex}.invite-link a{color:var(--ff-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.member-list{gap:8px;margin:0 0 24px;padding:0;list-style:none;display:grid}.member-list li{border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:10px;display:grid}.member-list strong,.member-list small{display:block}.member-list small{color:var(--ff-muted);font-size:.75rem}.overlay.family-settings-overlay{z-index:var(--ff-layer-overlay);align-items:center;padding:24px}.family-settings{flex-direction:column;width:min(720px,100vw - 48px);max-width:720px;height:min(760px,100vh - 48px);padding:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.family-settings__header{justify-content:space-between;align-items:center;padding:24px 28px 0;display:flex}.family-settings__title{color:var(--ff-ink);align-items:center;gap:10px;display:flex}.family-settings__title>svg{width:28px;height:28px}.family-settings .family-settings__title h2{font:600 1.75rem/1 var(--ff-font-display);margin:0}.family-settings__header .ff-icon-button,.family-settings__header .ff-dialog-close{flex:none}.family-settings .ff-dialog-close:focus-visible,.family-settings .ff-tabs button:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus);outline-offset:0;outline:0}.family-settings>.ff-tabs{margin:0;padding-inline:28px;position:relative}.family-settings>.ff-tabs button,.family-settings>.ff-tabs button[aria-selected=true]{border-bottom-color:#0000}.family-settings__tab-indicator{background:var(--ff-primary);height:2px;transition:left var(--ff-duration-base) var(--ff-ease-out), width var(--ff-duration-base) var(--ff-ease-out);position:absolute;bottom:0}.family-settings__body{flex:1;min-height:0;padding:24px 28px 32px;overflow:auto}.settings-panel{width:100%;max-width:none;margin:0}.settings-panel--enter{animation:settings-panel-enter var(--ff-duration-base) var(--ff-ease-out) both}@keyframes settings-panel-enter{0%{opacity:0}to{opacity:1}}.settings-switch,.settings-choice,.settings-quick-filters,.account-row,.account-section{width:calc(100% + 56px);margin-left:calc(50% - 50cqi);padding-inline:28px}.settings-panel__heading{margin-bottom:24px}.settings-panel__heading h3,.family-settings .settings-panel h4{color:var(--ff-ink);font-family:var(--ff-font-display)}.settings-panel__heading h3{margin:0 0 4px;font-size:1.5rem}.settings-panel__heading p,.settings-panel p{color:var(--ff-muted);margin:0}.family-settings .form-field{margin:0 0 24px}.family-settings .form-field.calendar-sync-link-form{margin:16px 0 0}.family-settings .ff-tag-input input{min-height:calc(var(--ff-control-height) - 14px);background:0 0;border:0;padding:0 6px}.settings-switch,.settings-choice{border-top:1px solid var(--ff-border);justify-content:space-between;align-items:center;gap:16px;padding-block:18px;display:flex}.settings-switch,.settings-quick-filters{-webkit-tap-highlight-color:transparent}.settings-choice{flex-wrap:wrap}.settings-choice>div:first-child{flex:210px}.settings-choice .ff-segmented-control{flex:none}.settings-panel>.settings-choice:first-child{border-top:0;padding-top:0}.settings-switch>span:first-child,.settings-choice>div:first-child{gap:3px;display:grid}.settings-switch small,.settings-choice small,.account-row small{color:var(--ff-muted);font-size:.78rem}.settings-label-with-lock{align-items:center;gap:6px;display:inline-flex}.settings-label-with-lock svg{width:12px;height:12px}.family-settings__viewer-notice{background:var(--ff-gray-100);color:var(--ff-muted);text-align:center;justify-content:center;align-items:center;gap:4px;padding:10px 28px;font-size:12px;font-style:italic;display:flex}:is(.settings-switch .ff-switch-control:has(input:disabled),.settings-quick-filters .ff-switch-control:has(input:disabled)){cursor:default;opacity:.5}.household-name-field__control .ff-field:disabled,.household-name-field__control .ff-field:disabled:hover{background:var(--ff-gray-100);border-color:var(--ff-border);color:var(--ff-muted);cursor:default}.family-settings__viewer-notice svg{flex:none;width:12px;height:12px}.settings-quick-filters{border-top:1px solid var(--ff-border);gap:8px;padding-block:18px;display:grid}.settings-quick-filters__heading{justify-content:space-between;align-items:center;display:flex}.settings-quick-filters__heading>span{gap:3px;display:grid}.settings-quick-filters__heading small{color:var(--ff-muted);font-size:.78rem}.settings-quick-filters .ff-tag-input{background:var(--ff-surface)}.settings-quick-filters>.settings-quick-filters__hint{color:var(--ff-muted);margin-top:-2px;font-size:.72rem}.settings-quick-filters>small{color:var(--ff-muted);font-size:.75rem}.settings-field-error{color:var(--ff-danger)!important}.settings-switch .ff-switch-track,.settings-quick-filters .ff-switch-track{width:56px;height:32px}.settings-switch .ff-switch-track:after,.settings-quick-filters .ff-switch-track:after{width:24px;height:24px;top:4px;left:4px}.family-settings .form-field>span,.family-settings .settings-panel h4,.family-settings .settings-invite h4,.family-settings .account-row strong,.family-settings .account-section h4{color:var(--ff-text);font:700 15px/1.35 var(--ff-font-ui)}.family-settings .settings-panel>h4{margin:0 0 4px}.settings-switch .ff-switch-control input:checked+.ff-switch-track:after,.settings-quick-filters .ff-switch-control input:checked+.ff-switch-track:after{transform:translate(24px)}.settings-web-access{display:none}.settings-choice .ff-segmented-control button{white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-width:0;padding-inline:12px;display:inline-flex}.settings-choice .ff-segmented-control button svg{width:15px;height:15px}.family-settings .member-list{margin-bottom:24px}.family-settings .member-list li{padding:12px 16px}.members-description{font-size:.8rem;margin:0 0 14px!important}.members-heading span{color:var(--ff-muted);font:inherit;font-weight:500}.ff-field-icon{display:block;position:relative}.ff-field-icon .ff-field{padding-left:40px}.ff-field-icon .ff-tag-input{padding-left:36px}.ff-field-icon>svg{color:var(--ff-muted);pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.household-section-divider{border:0;border-top:1px solid var(--ff-border);width:calc(100% + 56px);height:0;margin:0 0 18px -28px;padding:0}.household-section-divider+.members-heading{margin-top:0}.member-list__identity{align-items:center;gap:10px;min-width:0;display:flex}.member-list__copy{flex:1;min-width:0;display:grid;overflow:hidden}.member-list__identity strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-list__identity small{color:var(--ff-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;display:block;overflow:hidden}.member-list__avatar{background:var(--ff-invite-surface);color:var(--ff-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;overflow:hidden}.member-list__avatar svg{width:22px;height:22px}.member-list__avatar img{object-fit:cover;width:100%;height:100%}.member-list__actions{flex:none;align-items:center;gap:4px;margin-left:auto;display:flex}.role-select{min-width:112px;position:relative}.role-select__control{background:var(--ff-field);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm);cursor:pointer;font:700 .76rem var(--ff-font-ui);justify-content:space-between;align-items:center;width:100%;height:34px;padding:0 8px 0 10px;display:flex;position:relative}.role-select__control:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow)}.role-select__control>svg{color:var(--ff-muted);pointer-events:none;width:17px}.role-select__control>span{color:var(--ff-text);text-transform:capitalize;display:block}.role-select--compact{min-width:0}.role-select--compact .role-select__control{color:var(--ff-primary);background:0 0;border:0;border-radius:0;height:auto;padding:0;font-size:13px}.role-select--compact .role-select__control>span,.role-select--compact .role-select__control>svg{color:var(--ff-primary)}.role-select--compact.role-select--readonly{font-size:13px}.role-select--readonly{color:var(--ff-muted);font:700 .76rem var(--ff-font-ui);text-transform:capitalize}.role-select__menu{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);z-index:20;gap:2px;width:min(220px,100vw - 32px);padding:4px;display:grid;position:fixed}.role-select__menu button{border-radius:var(--ff-radius-xs);color:var(--ff-text);text-align:left;background:0 0;border:0;gap:1px;padding:8px;display:grid}.role-select__menu button:hover,.role-select__menu button[aria-current=true]{background:var(--ff-surface-subtle)}.role-select__option-title{justify-content:space-between;align-items:center;min-width:0;display:flex}.role-select__option-title strong{font:700 .76rem var(--ff-font-ui);text-transform:capitalize}.role-select__option-title svg{color:var(--ff-primary);stroke-width:2.5px;flex:none;width:14px;height:14px;margin-left:8px}.role-select__menu small{color:var(--ff-muted);font-size:.7rem}.member-menu{position:relative}.member-menu__popover{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);z-index:20;padding:4px;position:fixed;transform:translate(-100%)}.member-menu__popover button{border-radius:var(--ff-radius-xs);color:var(--ff-danger);font:700 .78rem var(--ff-font-ui);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;min-height:36px;padding:0 10px;display:inline-flex}.member-menu__popover button:hover{background:color-mix(in srgb, var(--ff-danger) 10%, var(--ff-surface))}.settings-invite{padding-top:18px;position:relative}.settings-invite:before{background:var(--ff-border);content:"";height:1px;position:absolute;top:0;left:-28px;right:-28px}.settings-invite h4,.account-section h4{margin:0 0 4px;font-size:1.14rem}.settings-invite p,.account-section p,.account-row small{font-size:.8rem}.invite-form{background:var(--ff-invite-surface);border-radius:var(--ff-radius-md);gap:0;margin:16px 0;padding:16px;display:grid}.invite-form__row{min-width:0;display:flex}.invite-form__header{justify-content:space-between;align-items:center;min-width:0;display:flex}.invite-form__header>strong{color:var(--ff-text);font:700 13px var(--ff-font-ui);text-transform:capitalize}.invite-form__recipient{width:100%;padding-left:42px}.invite-form__recipient-wrap{width:100%;display:block;position:relative}.invite-form__recipient-wrap>svg{color:var(--ff-muted);pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.invite-form .role-select{flex:none}.invite-form .ff-button{justify-self:stretch;width:100%;margin-top:8px}.invite-list{gap:8px;min-width:0;display:grid}.invite-link{background:color-mix(in srgb, color-mix(in srgb, var(--ff-canvas) 94%, var(--ff-primary) 6%) 70%, var(--ff-surface));min-width:0;position:relative}.invite-link__border{color:var(--ff-border-strong);pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.invite-link__identity,.invite-link__actions{position:relative}.invite-link__identity{gap:3px;min-width:0;display:grid}.invite-link__title{align-items:center;gap:8px;min-width:0;display:flex}.invite-link__title>svg{color:var(--ff-muted);flex:none;width:18px;height:18px}.invite-link__title strong{color:var(--ff-text);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.invite-link__detail{color:var(--ff-muted);white-space:nowrap;align-items:center;gap:5px;min-width:0;font-size:.7rem;display:flex;overflow:hidden}.invite-link__detail a{font-size:inherit;flex:none}.invite-link__actions{flex:none;align-items:center;gap:2px;display:flex}.invite-link__menu{position:relative}.invite-link__popover{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);z-index:3;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.invite-link__popover button{border-radius:var(--ff-radius-xs);color:var(--ff-danger);font:700 .78rem var(--ff-font-ui);white-space:nowrap;background:0 0;border:0;min-height:36px;padding:0 10px}.invite-link__popover button:hover{background:color-mix(in srgb, var(--ff-danger) 10%, var(--ff-surface))}.invite-link small{color:var(--ff-muted);font-size:.7rem}.account-row{border-bottom:1px solid var(--ff-border);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding-block:20px;display:grid}.account-row>div:nth-child(2){gap:3px;display:grid}.account-avatar{background:var(--ff-signal-soft);color:var(--ff-ink);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-weight:800;display:flex;overflow:hidden}.account-avatar img{object-fit:cover;width:100%;height:100%}.account-section{border-bottom:1px solid var(--ff-border);padding-block:20px}.account-section__heading{align-items:center;gap:8px;display:flex}.account-section__heading h4{margin-bottom:0}.account-section p{margin-bottom:14px;font-size:.84rem}.account-password{align-items:center;gap:8px;display:flex}.account-password .ff-field,.account-password>.ff-field-icon{flex:1;min-width:0}.account-password .ff-button,.account-row>.ff-button{flex:none}.account-note{color:var(--ff-muted);margin-top:10px;font-size:.76rem;display:block}.google-account{gap:5px;display:grid}.google-account__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.google-account__email{align-items:center;gap:8px;width:fit-content;max-width:100%;font-size:.8rem;display:flex}.google-account__email span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.google-account__email .google-mark{flex:none;width:18px;height:18px}.google-account__check{background:var(--ff-highlight-green);color:var(--ff-primary-contrast);border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;display:inline-flex}.google-account__check svg{stroke-width:3px;width:10px;height:10px}.google-account__menu{position:relative}.google-account__popover{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);z-index:3;width:max-content;min-width:164px;padding:0;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.google-account__popover button{color:var(--ff-danger);font:700 .78rem var(--ff-font-ui);white-space:nowrap;background:0 0;border:0;border-radius:0;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 12px;display:flex}.google-account__popover button:hover{background:color-mix(in srgb, var(--ff-danger) 10%, var(--ff-surface))}.google-account__popover button.is-unavailable{color:var(--ff-muted);cursor:not-allowed;opacity:.72}.google-account__unlink-tooltip{max-width:260px;line-height:1.4}.family-settings__footer{background:var(--ff-surface);border-top:1px solid var(--ff-border);padding:12px 28px 20px}.family-settings__footer-actions{justify-content:space-between;align-items:center;display:flex}.settings-status{height:var(--ff-control-height);color:var(--ff-primary);min-height:var(--ff-control-height);flex:1;min-width:0;margin:0 0 0 16px;font-size:.8rem;display:grid;position:relative}.settings-status__layer{opacity:0;grid-area:1/1;justify-content:flex-end;align-items:center;gap:6px;line-height:20px;display:flex;position:absolute;inset:0}.settings-status__text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.settings-status__layer>svg{flex:none}.settings-status__layer.is-visible{opacity:1}.settings-status--error{color:var(--ff-danger)}.settings-saving{animation:.7s linear infinite settings-spinner}@keyframes settings-spinner{to{transform:rotate(360deg)}}@media (width<=719px){.plan-card:not(.plan-card--repeat) .plan-artwork-wrap{overflow:hidden}.overlay.family-settings-overlay{justify-content:flex-start;align-items:stretch;padding:0}.family-settings{animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both;border-radius:0;width:100vw;height:100dvh;max-height:none}.family-settings__header{padding:20px 20px 0}.family-settings>.ff-tabs{margin:0;padding-inline:20px}.family-settings__body{padding:20px 20px 28px}.household-section-divider{width:calc(100% + 40px);margin-inline:-20px}.settings-invite:before{left:-20px;right:-20px}.family-settings__footer{padding:12px 20px calc(20px + env(safe-area-inset-bottom))}.account-password{flex-direction:column;align-items:stretch}.account-row{grid-template-columns:auto 1fr}.account-row .ff-button{grid-column:1/-1}.family-settings .member-list li{grid-template-columns:minmax(0,1fr)}.family-settings .member-list{gap:8px}.member-list__actions{justify-content:flex-end}.family-settings .invite-controls .role-select{flex:160px}.settings-switch,.settings-choice,.settings-quick-filters,.settings-web-access,.account-row,.account-section{width:calc(100% + 40px);margin-inline:-20px;padding-inline:20px}.settings-web-access{background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);margin-inline:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:auto;margin-top:16px;padding-block:16px;padding-inline:16px;display:grid}.settings-web-access>svg{color:var(--ff-primary);width:20px;height:20px}.settings-web-access__link{color:var(--ff-primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;max-width:100%;margin-top:6px;padding:0;font-size:.72rem;font-weight:700;display:inline-flex}.settings-web-access__link:focus-visible{border-radius:var(--ff-radius-xs);outline:2px solid var(--ff-focus);outline-offset:2px}.settings-web-access__link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-web-access__link svg{flex:none}}@keyframes family-settings-sheet-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.public-share-page{max-width:680px;min-height:100vh;margin:0 auto;padding:24px}.public-share-brand{color:var(--ff-ink);font:600 1.5rem var(--ff-font-display);align-items:center;gap:10px;margin-bottom:24px;display:flex}.public-share-card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-card);gap:8px;padding:24px;display:grid;overflow:hidden}.public-share-card__artwork{aspect-ratio:4/3;background:var(--ff-surface-subtle);justify-content:center;align-items:center;width:calc(100% + 48px);margin:-24px -24px 0;display:flex;position:relative;overflow:hidden}.public-share-card__artwork img{object-fit:contain;height:100%;transition:opacity var(--ff-duration-base) var(--ff-ease-out);width:100%}.public-share-card__artwork img.is-loading{opacity:0}.public-share-spinner{place-items:center;display:grid;position:absolute;inset:0}.public-share-spinner .firefly-spinner--public{width:61px;height:61px}.firefly-spinner--light .firefly-spinner__track{border-color:color-mix(in srgb, var(--ff-primary) 10%, transparent);border-width:2px}.firefly-spinner.firefly-spinner--light{animation:firefly-spinner-light-enter .3s var(--ff-ease-out) .1s both}.firefly-spinner.firefly-spinner--light .firefly-spinner__orbit{animation:firefly-spinner-light-orbit 1.2s linear(0, .06 8%, .25 22%, .55 54%, 1) infinite;opacity:1}.firefly-spinner--light .firefly-spinner__orbit:before,.firefly-spinner--light .firefly-spinner__orbit:after{content:none}.firefly-spinner--light .firefly-spinner__tail{pointer-events:none;position:absolute;inset:0;overflow:hidden}.firefly-spinner.firefly-spinner--light .ff-firefly{background:var(--ff-signal);box-shadow:0 0 8px 2px color-mix(in srgb, var(--ff-signal) 58%, transparent), 0 0 20px 6px color-mix(in srgb, var(--ff-signal) 28%, transparent);filter:none;opacity:1;width:5px;height:5px;animation:1.33s ease-in-out infinite firefly-spinner-light-glow;top:-1.5px;left:50%}@keyframes firefly-spinner-light-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes firefly-spinner-light-enter{0%{opacity:0}to{opacity:1}}@keyframes firefly-spinner-light-glow{0%,to{box-shadow:0 0 6px 1px color-mix(in srgb, var(--ff-signal) 38%, transparent), 0 0 14px 4px color-mix(in srgb, var(--ff-signal) 18%, transparent)}50%{box-shadow:0 0 12px 3px color-mix(in srgb, var(--ff-signal) 68%, transparent), 0 0 28px 8px color-mix(in srgb, var(--ff-signal) 38%, transparent)}}.public-share-skeleton{animation:public-share-skeleton-pulse 1.8s var(--ff-ease-out) infinite;background:linear-gradient(115deg, color-mix(in srgb, var(--ff-surface-subtle) 90%, var(--ff-primary) 10%) 18%, color-mix(in srgb, var(--ff-surface) 76%, var(--ff-primary) 24%) 50%, color-mix(in srgb, var(--ff-surface-subtle) 90%, var(--ff-primary) 10%) 82%);border-radius:var(--ff-radius-xs);background-size:220% 100%;display:block}.public-share-skeleton--eyebrow{width:148px;height:16px}.public-share-skeleton--title{width:min(100%,440px);height:48px}.public-share-skeleton--meta{width:210px;height:22px}.public-share-skeleton--action{border-radius:var(--ff-radius-pill);width:100%;height:52px;margin-top:8px}@keyframes public-share-skeleton-pulse{0%,to{opacity:.62;background-position:100%}50%{opacity:1;background-position:0}}.public-share-card h1{color:var(--ff-ink);font:600 clamp(2rem, 7vw, 3.2rem)/1 var(--ff-font-display);margin:0}.public-share-card>.eyebrow{align-items:center;gap:4px;margin-bottom:0;display:flex}.public-share-meta,.public-share-link{align-items:center;gap:4px;display:flex}.public-share-description{white-space:pre-wrap}.public-share-link{color:var(--ff-primary)}.app-shell{width:100%;max-width:760px;min-height:100vh;margin:0 auto;padding:8px 20px 104px}.app-header{background:var(--ff-canvas);isolation:isolate;z-index:7;justify-content:space-between;align-items:center;min-height:52px;margin:-8px -20px 0;padding:4px 20px;display:flex;position:sticky;top:0}.app-header--profile-menu-open{z-index:12}.orientation-notice{display:none}.app-header:before,.page-title:before{background:inherit;content:"";inset-block:0;pointer-events:none;z-index:-1;width:100vw;position:absolute;left:50%;transform:translate(-50%)}.brand{-webkit-tap-highlight-color:transparent;transition:transform var(--ff-duration-fast) var(--ff-ease-spring);color:var(--ff-ink);cursor:pointer;font:600 1.4rem var(--ff-font-display);background:0 0;border:0;align-items:center;gap:10px;padding:0;line-height:1;display:flex;position:relative;transform:translateY(2px)}.brand:focus-visible{box-shadow:none}.app-header .brand>.ff-firefly{flex:0 0 7px;width:7px;height:7px;top:-2px}.app-header .brand>.ff-firefly:after{top:3px;right:4px}.brand:focus-visible:after{border:2px solid var(--ff-focus-glow);border-radius:var(--ff-radius-xs);box-shadow:0 0 14px var(--ff-focus-glow);content:"";pointer-events:none;position:absolute;inset:-8px}.avatar-button,.more-button,.close-button{background:var(--ff-surface);border:1px solid var(--ff-border);color:var(--ff-ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.avatar-button{-webkit-tap-highlight-color:transparent;transition:transform var(--ff-duration-fast) var(--ff-ease-spring);background:var(--ff-primary);border-color:var(--ff-primary);color:var(--ff-primary-contrast);width:36px;height:36px;padding:0;font-size:.73rem;font-weight:700;overflow:hidden}.avatar-button:hover{background:var(--ff-primary-hover);border-color:var(--ff-primary-hover)}.avatar-button img{object-fit:cover;border-radius:50%;width:100%;height:100%}.page-title{background:var(--ff-canvas);isolation:isolate;transition:background-color var(--ff-duration-base) var(--ff-ease-out);z-index:5;justify-content:space-between;align-items:center;margin:0 -20px 8px;padding:4px 20px 7px;display:flex;position:sticky;top:52px}.eyebrow{color:var(--ff-muted);letter-spacing:.11em;text-transform:uppercase;font-size:.7rem;font-weight:700}.page-title h1,.empty-state h1{color:var(--ff-ink);font:600 clamp(2.15rem, 7vw, 3.6rem)/1 var(--ff-font-display);letter-spacing:-.04em;margin:6px 0}.page-title p{color:var(--ff-muted);margin:0}.plans-view{background:var(--ff-canvas);transition:background-color var(--ff-duration-base) var(--ff-ease-out)}.plans-view.archive-view{--ff-archive-canvas:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%);background:var(--ff-archive-canvas);min-height:calc(100vh - 42px);margin:-2px -20px -104px;padding:2px 20px 104px}.archive-view .page-title{background:var(--ff-archive-canvas)}.archive-back-button{animation:archive-heading-enter var(--ff-duration-base) var(--ff-ease-out) both;border-radius:var(--ff-radius-pill);color:var(--ff-ink);cursor:pointer;font:700 .88rem var(--ff-font-ui);min-height:var(--ff-control-height);background:0 0;border:0;align-items:center;gap:2px;margin-left:-12px;padding:0 16px 0 8px;display:flex}.archive-back-button:hover{background:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 12%)}.archive-section-title{color:var(--ff-muted);font:800 .7rem/1 var(--ff-font-ui);letter-spacing:.11em;text-transform:uppercase;margin:0}.feed-month-heading{align-items:center;gap:8px;min-width:0;min-height:28px;margin:4px 0 -3px 2px;display:flex}.feed-month-label{animation:archive-heading-enter var(--ff-duration-base) var(--ff-ease-out) both;color:var(--ff-muted);font:800 .7rem/1 var(--ff-font-ui);letter-spacing:.11em;text-transform:uppercase}.feed-today-marker{pointer-events:none;width:0;height:0;scroll-margin-top:calc(76px + var(--ff-search-field-height));position:absolute}:is(.plans-view:has(.quick-filters) .feed-today-marker,.plans-view:has(.quick-filters) .plan-card){scroll-margin-top:calc(120px + var(--ff-search-field-height))}.feed-month-interest{animation:feed-month-interest-enter .2s var(--ff-ease-out) both;flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.feed-month-interest__chip{background:color-mix(in srgb, var(--ff-surface-subtle) 86%, var(--ff-border) 14%);border-radius:var(--ff-radius-pill);color:var(--ff-text);font:700 .68rem/1 var(--ff-font-ui);white-space:nowrap;align-items:center;gap:5px;padding:4px 7px;display:inline-flex}@keyframes feed-month-interest-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.archive-title-band{animation:archive-heading-enter var(--ff-duration-base) var(--ff-ease-out) both;background:color-mix(in srgb, var(--ff-archive-canvas) 90%, var(--ff-primary) 10%);border-radius:var(--ff-radius-xs);margin:2px 0 14px;padding:8px 16px}.feed-toolbar{align-items:center;gap:8px;display:flex}.load-more{justify-content:center;margin-top:24px;display:flex}.feed-scroll-spacer{height:calc(100dvh - 360px);min-height:240px}.feed-controls{align-items:center;gap:2px;display:flex}.feed-controls .ff-search-field{width:min(190px,42vw)}.feed-archive-button[aria-pressed=true],.feed-search-toggle.is-active,.feed-filter-toggle.is-active{background:color-mix(in srgb, var(--ff-surface-subtle) 82%, var(--ff-primary) 18%);color:var(--ff-primary)}.feed-search-toggle,.mobile-search-field{display:none}.search-clear-button{color:var(--ff-muted);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-right:-2px;padding:0;display:inline-flex}.search-clear-button:hover{background:var(--ff-surface-subtle);color:var(--ff-ink)}.profile-menu-wrap{align-items:center;gap:8px;display:flex;position:relative}.offline-chip{animation:ff-status-reveal var(--ff-duration-status-reveal) linear both;background:var(--ff-gray-200);border-radius:var(--ff-radius-xs);color:var(--ff-gray-600);letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;font-size:.66rem;font-weight:700}.profile-menu{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);z-index:7;min-width:196px;position:absolute;top:49px;right:0;overflow:hidden}.profile-menu button{color:var(--ff-text);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;padding:11px 13px}.profile-menu button:hover{background:var(--ff-surface-subtle)}.profile-menu-logout{align-items:center;gap:8px;display:flex;border-top:1px solid var(--ff-border)!important}.profile-menu-logout svg{width:16px;height:16px}.profile-menu-theme{border-bottom:1px solid var(--ff-border);gap:8px;padding:12px 13px;display:grid}.profile-menu-theme>span{color:var(--ff-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.profile-menu-settings{align-items:center;gap:8px;display:flex}.profile-menu-settings svg{width:16px;height:16px}.profile-menu-install p{color:var(--ff-muted);margin:0;padding:0 13px 10px 37px;font-size:.75rem;line-height:1.35}.profile-menu .ff-segmented-control{width:100%}.profile-menu .ff-segmented-control button{text-align:center;justify-content:center;align-items:center;gap:5px;width:auto;display:inline-flex}.profile-menu .ff-segmented-control svg{stroke-width:2.25px;width:18px;height:18px}.scroll-marker{color:var(--ff-muted);justify-content:space-between;align-items:center;gap:9px;margin:35px 0 14px;font-size:.78rem;font-weight:700;display:flex}.scroll-marker span{color:var(--ff-ink)}.scroll-marker time{font-weight:600}.feed{grid-template-columns:minmax(0,1fr);gap:18px;min-width:0;margin-top:8px;display:grid}.plan-card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-card);min-width:0;max-width:100%;scroll-margin-top:116px;position:relative;overflow:visible}.plan-card--enter{opacity:0;will-change:opacity}.plan-card--enter.plan-card--visible{animation:feed-card-enter .3s var(--ff-ease-out) var(--feed-enter-delay,0s) both}.plan-card__repeat-icon{color:var(--ff-gray-400);pointer-events:none;position:absolute;top:14px;right:14px}.plan-card--repeat{grid-template-columns:72px minmax(0,1fr);display:grid;overflow:visible}.plan-card--repeat .plan-artwork-wrap{border-radius:calc(var(--ff-radius-md) - 1px) 0 0 0;grid-area:1/1;align-self:stretch;min-height:72px;overflow:hidden}.plan-card--repeat .flyer,.plan-card--repeat .flyer.source-gallery,.plan-card--repeat .source-artwork,.plan-card--repeat .generated-artwork{aspect-ratio:auto;border-radius:0;width:72px;height:100%;min-height:72px;max-height:none}.plan-card--repeat .flyer img,.plan-card--repeat .source-gallery img{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none}.plan-card--repeat .generated-artwork__fireflies,.plan-card--repeat .plan-artwork-rsvp{display:none}.plan-card--repeat .plan-body{cursor:pointer;flex-direction:column;grid-area:1/2;justify-content:center;padding:8px 14px;display:flex}.plan-card--repeat .plan-footer{border-top:1px solid var(--ff-border);grid-column:1/-1;padding:4px 8px}.plan-card--repeat .plan-actions{margin-left:auto}.plan-card--repeat .plan-top h2{font-size:1.05rem}.plan-card--repeat .plan-card__repeat-icon{display:none}.plan-card__recurrence-icon{color:var(--ff-gray-400);vertical-align:initial;flex:none;margin-left:0}.plan-details-trigger .event-meta{min-width:0;display:block}.plan-details-trigger .event-meta__location svg{vertical-align:-.16em;margin:0}.repeat-feed-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.repeat-feed-actions__button{border-color:var(--ff-primary);color:var(--ff-primary);background:0 0}.repeat-feed-actions__button:hover{background:var(--ff-action-hover-soft)}.archived-plan-card{border-color:var(--ff-border-strong);background:0 0}.flyer,.detail-flyer{border-radius:var(--ff-radius-md) var(--ff-radius-md) 0 0;cursor:pointer;border:0;width:100%;height:225px;display:block;position:relative;overflow:hidden}.source-artwork{aspect-ratio:3/4;background:var(--ff-surface-subtle);height:auto}.generated-artwork{aspect-ratio:1;min-width:0;height:auto}.source-artwork img{object-fit:contain;width:100%;height:100%;display:block}.source-gallery{background:var(--ff-surface-subtle);overflow:visible}.source-gallery__canvas{background:var(--ff-surface-subtle);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.source-gallery__image-loading{background:linear-gradient(115deg, color-mix(in srgb, var(--ff-surface-subtle) 90%, var(--ff-primary) 10%) 18%, color-mix(in srgb, var(--ff-surface) 72%, var(--ff-primary) 28%) 50%, color-mix(in srgb, var(--ff-surface-subtle) 90%, var(--ff-primary) 10%) 82%);color:color-mix(in srgb, var(--ff-muted) 54%, var(--ff-surface));z-index:1;animation:source-gallery-image-loading 1.8s var(--ff-ease-out) infinite;background-size:220% 100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.source-gallery__image-loading svg{animation:source-gallery-image-icon-pulse 1.8s var(--ff-ease-out) infinite;filter:drop-shadow(0 1px 5px color-mix(in srgb, var(--ff-primary) 14%, transparent))}@keyframes source-gallery-image-icon-pulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes source-gallery-image-loading{0%,to{opacity:.64;background-position:100%}50%{opacity:1;background-position:0}}.source-gallery__generated{animation:source-image-reveal var(--ff-duration-base) var(--ff-ease-out) both;width:100%;height:100%}.source-artwork-loading{aspect-ratio:4/3;background:var(--ff-surface-subtle);place-items:center;height:auto;display:grid}.source-artwork-loading span{background:color-mix(in srgb, var(--ff-border) 64%, transparent);border-radius:var(--ff-radius-sm);width:44%;height:36%;animation:1.2s ease-in-out infinite source-artwork-loading-pulse}@keyframes source-artwork-loading-pulse{0%,to{opacity:.45}50%{opacity:.8}}.source-gallery--interactive{cursor:pointer}.source-gallery--interactive:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus), 0 0 14px var(--ff-focus-glow);outline:0}.source-gallery img{border-radius:inherit;object-fit:contain;width:100%;height:100%;animation:.3s linear both source-image-reveal;display:block}.source-gallery img.image-with-edits{object-fit:cover;transform-origin:50%}.source-gallery img.source-gallery__image--loading{opacity:0;animation:none}@keyframes source-image-reveal{0%{opacity:0}to{opacity:1}}.flyer.source-gallery{aspect-ratio:4/3;background:var(--ff-surface-subtle);justify-content:center;align-items:center;height:auto;max-height:50dvh;display:flex}.flyer.source-gallery .source-gallery__canvas{height:100%}.flyer.source-gallery img{width:auto;max-width:100%;height:auto;max-height:50dvh}.flyer.source-gallery img.image-with-edits{width:100%;max-width:none;height:100%;max-height:none}.gallery-control{--ff-icon-button-size:44px;isolation:isolate;position:absolute;top:50%;transform:translateY(-50%);background:0 0!important;border:0!important}.gallery-control:before,.detail-close:before,.image-detail-close:before,.image-detail-zoom-button:before{background:var(--ff-media-control-surface);content:"";height:36px;transition:background var(--ff-duration-fast) ease;z-index:0;border-radius:50%;width:36px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-control:hover:before,.image-detail-zoom-button:hover:before{background:var(--ff-media-control-surface-hover)}.detail-close:hover:before,.image-detail-close:hover:before{background:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 6%)}.gallery-control svg{z-index:1;width:20px;height:20px;position:relative}.gallery-control:active{transform:translateY(-50%)scale(.98)}.gallery-control--previous{left:12px}.gallery-control--next{right:12px}.gallery-dots{z-index:2;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.gallery-dots button{background:var(--ff-gray-400);height:5px;transition:background-color var(--ff-duration-base) var(--ff-ease-out);border:0;border-radius:50%;width:5px;padding:0}.gallery-dots button[aria-current=true]{background:var(--ff-ink)}.plan-footer__carousel-dots{justify-content:center;align-items:center;height:12px;display:flex}.plan-footer__carousel-dots .gallery-dots{place-self:center;position:relative;top:2px;bottom:auto;left:auto;transform:none}.source-artwork__fallback{color:var(--ff-ink);text-align:center;justify-content:center;align-items:center;gap:4px;height:100%;padding:24px;display:grid}.source-artwork__fallback small{color:var(--ff-muted)}.generated-artwork__fireflies{z-index:1;align-items:flex-end;gap:5px;display:flex;position:absolute;bottom:18px;left:18px}.generated-artwork__fireflies span{background:#ffffffd9;border-radius:50%;width:7px;height:7px;box-shadow:0 0 12px 4px #ffffff57}.generated-artwork__fireflies span:nth-child(2){width:5px;height:5px;margin-bottom:7px}.generated-artwork__fireflies span:nth-child(3){width:4px;height:4px;margin-bottom:2px}.plan-card .flyer{border-radius:0}.plan-artwork-wrap{isolation:isolate;z-index:0;position:relative}.plan-artwork-rsvp{z-index:2;flex-wrap:nowrap;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.plan-artwork-rsvp .rsvp-menu{animation:menu-surface-enter-above .24s var(--ff-ease-menu-spring) both;transform-origin:100% 100%;top:auto;bottom:calc(100% + 6px)}.plan-footer{padding:0 15px 14px}.plan-footer__top{align-items:center;gap:8px;min-width:0;display:flex}.plan-footer__top .plan-tag-row{flex-wrap:nowrap;flex:1;align-items:center;min-width:0;margin:0;overflow:hidden}.plan-tag-row [data-event-tag][data-hidden=true]{pointer-events:none;visibility:hidden;position:absolute}.note-preview{color:var(--ff-muted);cursor:pointer;font:500 .76rem/1.35 var(--ff-font-ui);text-align:left;background:0 0;border:0;align-items:center;width:100%;min-width:0;max-width:100%;margin-top:10px;padding:0;display:flex;overflow:hidden}.note-preview__text{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;width:0;min-width:0;overflow:hidden}.note-preview__more{color:var(--ff-primary);white-space:nowrap;align-items:center;gap:1px;margin-left:8px;font-weight:700;display:inline-flex}.note-preview__more svg{flex:none}.plan-card mark{background:color-mix(in srgb, var(--ff-signal) 42%, transparent);color:inherit;border-radius:3px;padding:0}.plan-body{background:var(--ff-surface);border-radius:calc(var(--ff-radius-md) - 1px) calc(var(--ff-radius-md) - 1px) 0 0;z-index:1;padding:12px 15px 9px;position:relative}.plan-header-trigger{grid-template-columns:38px minmax(0,1fr);gap:9px;min-width:0;display:grid}.plan-date-trigger,.plan-title-trigger{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.plan-date-trigger:focus-visible,.plan-title-trigger:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus), 0 0 14px var(--ff-focus-glow);outline:0}.plan-date-trigger{align-self:start}.plan-title-trigger{max-width:100%;display:block}.plan-details-trigger{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;max-width:100%;padding:0;display:inline-flex}.plan-details-trigger:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus), 0 0 14px var(--ff-focus-glow);outline:0}.plan-top{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:9px;display:grid}.plan-card-status{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.archive-status{background:color-mix(in srgb, var(--ff-surface-subtle) 78%, var(--ff-primary) 12%);border-radius:var(--ff-radius-pill);color:var(--ff-primary);letter-spacing:.06em;text-transform:uppercase;padding:5px 7px;font-size:.62rem;font-weight:800;line-height:1}.date-block{border-right:1px solid var(--ff-border);text-align:center;flex-direction:column;padding-right:7px;line-height:1;display:flex}.date-block strong{color:var(--ff-ink);font:600 1.45rem var(--ff-font-display)}.date-block span{color:var(--ff-muted);letter-spacing:.08em;margin-top:2px;font-size:.63rem;font-weight:700}.plan-top h2{color:var(--ff-ink);font:600 1.22rem/1.05 var(--ff-font-display);letter-spacing:-.02em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.plan-top p,.detail-subtitle{color:var(--ff-muted);margin:0;font-size:.8rem}.plan-summary{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.event-meta{color:var(--ff-muted);font-size:.8rem;line-height:1.25;display:block}.event-meta svg{vertical-align:-.16em;margin:0 4px 0 1px}.event-meta__separator{color:var(--ff-border-strong);margin-inline:2px}.event-meta__location{display:inline}.detail-recurrence{align-items:center;gap:4px;display:inline-flex}.detail-recurrence svg{color:var(--ff-gray-400);vertical-align:initial;flex:none;margin-left:0}.detail-subtitle.detail-meta{flex-wrap:wrap;align-items:center;display:flex}.detail-subtitle .event-meta__location{display:inline}.detail-subtitle .event-meta__location svg{vertical-align:-.16em;margin:0 3px 0 0}.rsvp-picker{position:relative}.rsvp-chip,.past-event-badge{background:color-mix(in srgb, var(--ff-surface) 40%, transparent);border-radius:var(--ff-radius-pill);color:var(--ff-ink);font:700 .62rem/1 var(--ff-font-ui);white-space:nowrap;border:none;align-items:center;gap:5px;padding:6px 7px;display:inline-flex}.rsvp-chip:hover{background:color-mix(in srgb, var(--ff-surface) 50%, transparent)}.rsvp-menu{z-index:4;min-width:128px;position:absolute;top:calc(100% + 6px);right:0}.rsvp-menu--portal{z-index:30;position:fixed;right:auto}.more-button{letter-spacing:0;width:28px;height:28px;font-size:1.2rem;line-height:1}.plan-actions{flex:none;align-items:center;gap:0;display:flex}.plan-action-button,.detail-action-button{color:var(--ff-muted);transition:color var(--ff-duration-base) var(--ff-ease-out)}.plan-action-button.favorite{color:var(--ff-highlight-rose)}.menu-wrap{position:relative}.action-menu{z-index:3;min-width:150px;position:absolute;top:40px;right:0}.plan-actions .action-menu{z-index:4}.action-menu--portal{z-index:var(--ff-layer-popover);position:fixed;right:auto}.tag-row{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.tag-row span{background:var(--ff-surface-subtle);color:var(--ff-muted);border-radius:999px;padding:4px 8px;font-size:.69rem;font-weight:700}.tag-row__more{background:color-mix(in srgb, var(--ff-surface-subtle) 78%, var(--ff-primary) 9%)!important;color:var(--ff-primary)!important}.interest{color:var(--ff-rsvp-interested);white-space:nowrap;font-size:.67rem;font-weight:700}.interest.must-go{color:var(--ff-primary)}.interest.maybe{color:var(--ff-rsvp-maybe)}.bottom-nav{background:color-mix(in srgb, var(--ff-surface) 91%, transparent);border:1px solid var(--ff-border);box-shadow:var(--ff-shadow-raised);z-index:10;border-radius:999px;grid-template-rows:58px;grid-template-columns:1fr 64px 1fr;align-items:center;width:calc(100% - 40px);max-width:440px;height:74px;padding:7px;display:grid;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}@keyframes feed-card-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.plan-card--enter{opacity:1;transform:none}}@keyframes archive-heading-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.nav-item{color:color-mix(in srgb, var(--ff-muted) 58%, transparent);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;transition:background-color var(--ff-duration-fast) var(--ff-ease-out), color var(--ff-duration-fast) var(--ff-ease-out);background:0 0;border:0;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:8px 16px;font-size:.65rem;font-weight:700;display:flex}.nav-item:active{background-color:var(--ff-action-hover-soft)}@media (hover:hover) and (pointer:fine){.nav-item:hover{background-color:var(--ff-action-hover-soft)}}.nav-item.active{color:var(--ff-primary)}.add-fab{-webkit-tap-highlight-color:transparent;background:var(--ff-primary);border:5px solid var(--ff-surface);color:var(--ff-primary-contrast);cursor:pointer;height:58px;transition:background var(--ff-duration-fast) var(--ff-ease-out), transform .28s var(--ff-ease-spring);border-radius:50%;justify-content:center;align-items:center;width:58px;font-size:1.65rem;line-height:1;display:flex;transform:translateY(-20px)}@media (hover:hover) and (pointer:fine){.add-fab:hover{background:var(--ff-primary-hover)}}.add-fab:active{transition:transform .11s var(--ff-ease-out);transform:translateY(-19px)scale(.96)}.add-fab:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);outline:0}.add-fab-spacer{width:58px;height:58px}.empty-state{animation:empty-state-enter var(--ff-duration-slow) var(--ff-ease-out) both;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:380px;margin:64px auto 0;display:flex;container-type:inline-size}.plans-empty-stack{flex-direction:column;display:flex}.plans-loading{place-items:center;min-height:360px;display:grid}.plans-empty-stack>.app-install{order:2;margin-top:24px}.plans-empty-stack>.empty-state{order:1}.empty-state h1{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:min(2.65rem,11cqi);overflow:hidden}.empty-state p{color:var(--ff-muted);margin:12px 0 24px}.empty-state__icon{color:var(--ff-primary);opacity:.3;width:140px;height:140px;margin:8px auto}.event-empty-illustration{width:100%;max-width:min(100%,280px);height:auto;margin:8px auto;display:block}.empty-state--search h1{font-size:2.6rem}.empty-state--search .ff-button--ghost-primary{font-size:14px}.empty-state--search .ff-button--ghost-primary svg{width:14px;height:14px}@keyframes empty-state-enter{0%{opacity:0}to{opacity:1}}.empty-illustration{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:28px;width:216px;height:166px;margin-bottom:30px;position:relative;overflow:hidden}.empty-illustration i,.empty-illustration b,.empty-illustration span{border-radius:50%;position:absolute}.empty-illustration i{background:var(--ff-signal);box-shadow:0 0 30px 10px color-mix(in srgb, var(--ff-signal) 35%, transparent);width:17px;height:17px;top:63px;left:97px}.empty-illustration b{background:#dae9e2;width:240px;height:160px;top:105px;left:-50px}.empty-illustration span{border:1px dashed var(--ff-primary);width:118px;height:118px;top:21px;left:49px}.overlay{background:var(--ff-overlay-scrim);overscroll-behavior:contain;touch-action:none;animation:overlay-enter var(--ff-duration-base) var(--ff-ease-out);z-index:var(--ff-layer-overlay);justify-content:center;align-items:flex-end;padding:14px;display:flex;position:fixed;inset:0;overflow:hidden}:is(.overlay,.about-overlay):not(.overlay--detail-editor-handoff,.overlay--detail-editor-handoff-source,.overlay--capture-handoff,.overlay--capture-handoff-source,.overlay--return,.overlay--detail-return){isolation:isolate;background:0 0;animation:none}:is(.overlay,.about-overlay):not(.overlay--detail-editor-handoff,.overlay--detail-editor-handoff-source,.overlay--capture-handoff,.overlay--capture-handoff-source,.overlay--return,.overlay--detail-return):before{animation:overlay-enter var(--ff-duration-modal) var(--ff-ease-out) both;background:var(--ff-overlay-scrim);content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}:is(.overlay--exit,.modal-presence-exit):before{animation:overlay-exit var(--ff-duration-modal-exit) var(--ff-ease-in-out) both!important}.overlay--exit{animation:overlay-exit .3s var(--ff-ease-out) both}.overlay--edit{animation:overlay-edit-enter var(--ff-duration-base) var(--ff-ease-out) both}.overlay--detail-editor-handoff{z-index:var(--ff-layer-overlay-handoff);animation:none}.overlay--detail-editor-handoff-source{background:0 0}.overlay--detail-editor-handoff .add-sheet--edit{animation:detail-to-editor-sheet .22s var(--ff-ease-modal-enter) both}.overlay--return{background:0 0;animation:none}.overlay--detail-return{z-index:var(--ff-layer-overlay-handoff);animation:none}.confirm-overlay{z-index:var(--ff-layer-overlay-handoff);align-items:center}.confirm-dialog{animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both}.confirm-dialog__title{align-items:center;gap:8px;display:flex}.confirm-dialog__title svg{color:var(--ff-night-start);flex:none;width:21px;height:21px}[data-theme=dark] .confirm-dialog__title svg{color:var(--ff-ink)}.confirm-dialog h2{color:var(--ff-ink);font:600 1.35rem/1.2 var(--ff-font-display);letter-spacing:-.02em;flex:1;margin:0}.confirm-dialog p{color:var(--ff-muted);overflow-wrap:anywhere;margin:8px 0 20px;font-size:.875rem}.confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.confirm-dialog__actions .ff-button{min-height:44px}.overlay--exit .add-sheet,.overlay--exit .detail-sheet{animation:modal-dismiss-slide var(--ff-duration-modal-exit) linear both, modal-dismiss-fade var(--ff-duration-modal-exit) linear both}.modal-presence{display:contents}.modal-presence-exit{pointer-events:none;animation:none!important}.modal-presence-exit>:is(section,.capture-sheet,.capture-night){animation:modal-dismiss-slide var(--ff-duration-modal-exit) linear both, modal-dismiss-fade var(--ff-duration-modal-exit) linear both!important}@media (prefers-reduced-motion:reduce){:is(.overlay--exit,.modal-presence-exit):before,.overlay--exit .add-sheet,.overlay--exit .detail-sheet,.overlay--event-detail.overlay--exit .detail-sheet,.modal-presence-exit>:is(section,.capture-sheet,.capture-night){animation:none!important}}.add-sheet,.detail-sheet{background:var(--ff-surface);animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both;border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-raised);width:100%;max-width:640px;position:relative;overflow:hidden}.overlay--event-detail{animation-duration:var(--ff-duration-modal)}.overlay--event-detail.overlay--exit .detail-sheet{animation:modal-dismiss-slide var(--ff-duration-modal-exit) linear both, modal-dismiss-fade var(--ff-duration-modal-exit) linear both}.overlay--detail-editor-handoff-source.overlay--exit .detail-sheet{animation:modal-surface-exit .2s var(--ff-ease-modal-exit) both}@keyframes modal-dismiss-slide{0%{transform:translateY(0)}to{transform:translateY(40px)}}@keyframes modal-dismiss-fade{0%{opacity:.8}to{opacity:0}}.add-sheet,.detail-sheet,.event-form__scroll,.detail-scroll{touch-action:pan-y}.add-sheet{flex-direction:column;max-height:min(90vh,900px);display:flex}.add-sheet--custom-recurrence{height:min(90vh,900px)}.add-sheet--edit{animation:edit-sheet-enter var(--ff-duration-slow) var(--ff-ease-modal-enter) both}.add-sheet--capture-handoff{transform-origin:bottom}.add-sheet--capture-handoff .add-sheet__header,.add-sheet--capture-handoff .event-form{animation:capture-to-editor-content .3s var(--ff-ease-out) both}.capture-sheet--manual-exit>:not(input){animation:capture-to-editor-content .12s var(--ff-ease-out) reverse both}.capture-sheet--manual-exit{animation:capture-sheet-manual-exit .18s var(--ff-ease-modal-exit) both}@keyframes capture-sheet-manual-exit{0%{box-shadow:var(--ff-shadow-raised)}to{box-shadow:0 0 #0000}}.overlay--capture-handoff{z-index:var(--ff-layer-overlay-handoff);animation:none}.overlay--capture-handoff-source{background:0 0;animation:none}@media (width<=719px){.add-sheet--capture-handoff{animation:capture-to-editor-sheet-mobile .3s var(--ff-ease-out) both;height:var(--capture-source-height);max-height:calc(100dvh - 28px);overflow:hidden}}@media (hover:none) and (pointer:coarse) and (orientation:landscape) and (height<=520px){body{overflow:hidden}.app-shell{flex-direction:column;height:100dvh;min-height:0;padding-top:0;padding-bottom:0;display:flex;overflow:hidden}.app-shell>:not(.app-header):not(.orientation-notice){display:none!important}.app-header{flex:none;margin-top:0}.orientation-notice{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;min-height:0;padding:20px 24px;display:flex}.orientation-notice>svg{color:var(--ff-border-strong);stroke-width:1.5px;width:48px;height:48px;margin:14px 0 18px}.orientation-notice h1{color:var(--ff-ink);font:600 clamp(1.6rem, 5vw, 2.2rem)/1.08 var(--ff-font-display);letter-spacing:-.03em;margin:0}.orientation-notice p{color:var(--ff-muted);margin:12px 0 0;font-size:.8rem}.overlay,.about-overlay,.event-added-burst,.toast{display:none!important}}@media (width>=720px){.add-sheet--capture-handoff{animation:capture-to-editor-sheet-desktop .22s var(--ff-ease-modal-enter) both}}::view-transition-image-pair(*){isolation:isolate}::view-transition-old(*){mix-blend-mode:normal}::view-transition-new(*){mix-blend-mode:normal}::view-transition-group(*){z-index:1}::view-transition-group(root){z-index:0}.overlay--return .add-sheet--return{animation:edit-sheet-return var(--ff-duration-modal) var(--ff-ease-modal-exit) both}.overlay--detail-return .detail-sheet--return{animation:editor-to-detail-sheet var(--ff-duration-modal) var(--ff-ease-modal-enter) both}.detail-sheet--event-edit-exit .detail-artwork-wrap{opacity:0;transition:opacity .1s var(--ff-ease-out)}.add-sheet header{border-bottom:1px solid var(--ff-border);justify-content:space-between;align-items:flex-start;padding:23px;display:flex}.add-sheet .add-sheet__header{align-items:center;padding:24px 64px 16px 24px}.add-sheet .add-sheet__header h2{align-items:center;gap:10px;margin:0;font-size:1.75rem;display:flex;transform:none}.add-sheet__header h2 svg{color:var(--ff-primary);width:24px;height:24px;transform:translateY(-3px)}.ff-dialog-close{color:var(--ff-muted);height:var(--ff-control-height);width:var(--ff-control-height);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.ff-dialog-close:hover{background:var(--ff-action-hover-soft);color:var(--ff-ink)}.ff-dialog-close:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);outline:0}.ff-dialog-close svg{opacity:.5;stroke-width:2px;width:20px;height:20px}.add-sheet .ff-dialog-close{z-index:2;position:absolute;top:15px;right:12px}.add-sheet h2,.detail-content h2{color:var(--ff-ink);font:600 1.75rem/1 var(--ff-font-display);letter-spacing:-.03em;margin:6px 0}.close-button{height:var(--ff-control-height);width:var(--ff-control-height);font-size:1.6rem}.add-options{padding:10px 15px 19px}.add-options button{border:0;border-bottom:1px solid var(--ff-border);color:var(--ff-text);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:14px;width:100%;padding:17px 6px;display:flex}.add-options button:last-child{border:0}.add-options b{background:var(--ff-signal-soft);color:var(--ff-primary);border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.2rem;display:flex}.add-options span{gap:2px;display:grid}.add-options small{color:var(--ff-muted)}.add-options button>svg{color:var(--ff-muted);margin-left:auto}.simple-form{gap:15px;min-height:0;padding:23px;display:grid;overflow:auto}.simple-form label,.event-field-group{color:var(--ff-ink);gap:2px;font-size:.8rem;font-weight:700;display:grid}.event-field-label{align-items:baseline;gap:8px;display:flex}.event-location-field{display:block;position:relative}.event-location-field>svg{color:var(--ff-muted);pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.event-location-field .ff-field{padding-left:34px}.event-field-error,.event-schedule__error{color:var(--ff-danger);font-size:.7rem;font-weight:700}.event-field-error{min-width:0}.simple-form>label>input{background:var(--ff-surface);border:1px solid var(--ff-border);color:var(--ff-text);height:var(--ff-control-height);min-height:var(--ff-control-height);border-radius:12px;padding:0 12px}.form-actions{justify-content:flex-end;gap:9px;margin-top:6px;display:flex}.event-form{flex-direction:column;flex:1;gap:0;padding:0;display:flex;overflow:hidden}.event-form__scroll{scrollbar-color:var(--ff-border-strong) var(--ff-surface);scrollbar-width:thin;gap:12px;min-height:0;padding:18px 23px 22px;display:grid;overflow:auto}.event-form__scroll::-webkit-scrollbar{width:8px}.event-form__scroll::-webkit-scrollbar-track{background:var(--ff-surface)}.event-form__scroll::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border:2px solid var(--ff-surface);border-radius:var(--ff-radius-pill)}.event-form__scroll::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}.event-save-error{animation:ff-alert-enter .32s var(--ff-ease-out) both;width:100%}.event-source{border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);gap:10px;padding:12px;display:grid}.event-source__heading{gap:2px;display:grid}.event-source__title-row{align-items:center;gap:6px;display:flex}.event-source__generate{color:var(--ff-primary);cursor:pointer;font-family:var(--ff-font-ui);background:0 0;border:0;align-items:center;gap:4px;margin-left:auto;padding:4px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.event-source__generate svg{width:14px;height:14px}.event-source__generate:hover{background:var(--ff-surface-subtle);border-radius:var(--ff-radius-pill);color:var(--ff-primary-hover);text-decoration:none}.event-source__generate:focus-visible{outline:2px solid var(--ff-primary);outline-offset:2px}.event-source__title-row>span,.event-source__text>span{color:var(--ff-ink);align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:flex}.event-source__heading small{color:var(--ff-muted);font-size:.75rem;font-weight:500}.event-source__info{color:var(--ff-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin:-4px 0;padding:0;display:inline-flex}.event-source__info:hover{color:var(--ff-primary)}.event-source__info:focus-visible,.event-source__thumbnail-menu-trigger:focus-visible{outline:2px solid var(--ff-primary);outline-offset:2px}.event-source__info svg{width:16px;height:16px}.event-source__info-tooltip{text-align:left;white-space:normal;max-inline-size:min(280px,100vw - 32px);line-height:1.35}.event-source__file{background:var(--ff-surface-subtle);border:1px dashed var(--ff-border-strong);border-radius:var(--ff-radius-sm);color:var(--ff-primary);cursor:pointer;align-items:center;gap:8px;min-height:46px;padding:0 12px;position:relative;overflow:hidden;font-size:.82rem!important;display:flex!important}.event-source__file input{cursor:pointer;opacity:0;position:absolute;inset:0}.event-source__file span{color:var(--ff-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-source__file--add-more{gap:6px;min-height:40px;margin-top:-4px;padding-inline:10px;font-size:.78rem!important}.event-source__file--add-more svg{width:18px;height:18px}.event-source__clear{color:var(--ff-primary);background:0 0;border:0;justify-self:start;padding:0;font-size:.78rem}.event-source__text{gap:4px;display:grid!important}.event-source__text textarea{resize:vertical;height:84px;padding-block:10px}.event-source__thumbnails{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid;position:relative}@media (width>=460px){.event-source__thumbnails{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=600px){.event-source__thumbnails{grid-template-columns:repeat(5,minmax(0,1fr))}}.event-source__thumbnail{gap:6px;min-width:0;display:grid;position:relative}.event-source__thumbnail--drop-target:after{background:var(--ff-rsvp-going);border-radius:var(--ff-radius-pill);content:"";pointer-events:none;z-index:2;width:4px;position:absolute;top:0;bottom:24px}.event-source__thumbnail--drop-before:after{left:-8px}.event-source__thumbnail--drop-after:after{right:-8px}.event-source__thumbnail img,.event-source__file-fallback{aspect-ratio:1;background:var(--ff-surface);border-radius:var(--ff-radius-sm);object-fit:cover;place-items:center;width:100%;display:grid}.event-source__thumbnail>img{cursor:pointer;transition:opacity var(--ff-duration-base) var(--ff-ease-out)}.event-source__thumbnail>img.event-source__thumbnail-image--loading{opacity:0}.event-source__thumbnail-loading{aspect-ratio:1;background:var(--ff-surface-subtle);border-radius:var(--ff-radius-sm);color:var(--ff-muted);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:grid;position:absolute;inset:0 0 24px}.event-source__thumbnail-loading svg{width:24px;height:24px}.event-source__generated-thumbnail{aspect-ratio:1;border-radius:var(--ff-radius-sm);cursor:pointer;width:100%}.event-source__thumbnail-edit-overlay{border-radius:var(--ff-radius-sm);color:#fff;opacity:0;pointer-events:none;transition:opacity var(--ff-duration-fast) var(--ff-ease-out);z-index:2;background:#26343e66;place-items:center;display:grid;position:absolute;inset:0 0 24px}.event-source__thumbnail:hover .event-source__thumbnail-edit-overlay,.event-source__thumbnail:focus-within .event-source__thumbnail-edit-overlay{opacity:1}.event-source__thumbnail-edit-overlay svg{width:22px;height:22px}.generated-cover{isolation:isolate;position:relative;overflow:hidden}.generated-cover:after{content:"";filter:contrast(var(--generated-cover-contrast)) saturate(var(--generated-cover-saturation));mix-blend-mode:soft-light;opacity:max(.16, var(--generated-cover-grain));pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");position:absolute;inset:0}.generated-cover-editor__preview{aspect-ratio:4/3;border-radius:var(--ff-radius-md);width:100%;max-width:min(680px,100vw - 48px);margin:0 auto 20px}.generated-cover-editor__controls{gap:20px;max-width:680px;display:grid}.generated-cover-editor h2{font-family:var(--ff-font-ui);margin:0 0 8px;font-size:.88rem}.generated-cover-editor p{color:var(--ff-muted);margin:-4px 0 8px;font-size:.78rem}.generated-cover-editor__styles{gap:8px;display:flex}.generated-cover-editor__styles button{border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);color:var(--ff-text);font:inherit;background:0 0;gap:4px;padding:4px;font-size:.72rem;display:grid}.generated-cover-editor__style{border-radius:5px;width:42px;height:26px}.generated-cover-editor__style--blend{background:linear-gradient(130deg, var(--ff-cover-coral), var(--ff-signal), var(--ff-cover-sky))}.generated-cover-editor__style--solid-stripes{background:linear-gradient(130deg, var(--ff-cover-coral) 0 33%, var(--ff-signal) 33% 66%, var(--ff-cover-sky) 66%)}.generated-cover-editor__style--double-gradient{background:linear-gradient(130deg, var(--ff-cover-coral), var(--ff-surface), var(--ff-signal), var(--ff-cover-sky))}.generated-cover-editor__style--radial-wash{background:radial-gradient(circle at 20% 20%, var(--ff-cover-mist), transparent 35%), linear-gradient(130deg, var(--ff-cover-coral), var(--ff-cover-sky))}.generated-cover-editor__swatches{flex-wrap:wrap;gap:8px;display:flex}.generated-cover-editor__swatches button{background:var(--ff-surface);border:2px solid #0000;border-radius:50%;padding:3px}.generated-cover-editor__swatches span{border-radius:50%;width:24px;height:24px;display:block}.generated-cover-editor__ranges{gap:12px;display:grid}.generated-cover-editor__ranges label{color:var(--ff-text);gap:5px;font-size:.82rem;font-weight:700;display:grid}.event-source__thumbnail--dragging>img,.event-source__thumbnail--dragging>.event-source__file-fallback{opacity:.2}.event-source__thumbnail--delete-target>img,.event-source__thumbnail--delete-target>.event-source__file-fallback{opacity:.45}.event-source__thumbnail--delete-target .event-source__thumbnail-menu{visibility:hidden}.event-source__drag-preview{border-radius:var(--ff-radius-sm);pointer-events:none;z-index:20;position:fixed;overflow:hidden}.event-source__drag-preview>img,.event-source__drag-preview>.event-source__file-fallback{width:100%;height:100%}.event-source__drag-preview .event-source__thumbnail-delete-overlay{inset:0}.event-source__thumbnail-label{color:var(--ff-text);width:100%;min-width:0;font-size:.72rem;display:flex}.event-source__thumbnail-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.event-source__thumbnail-extension{white-space:nowrap;flex:none}.event-source__thumbnail-menu{z-index:4;position:absolute;top:6px;right:6px}.event-source__thumbnail-menu-trigger{background:var(--ff-media-thumbnail-control);color:var(--ff-ink);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}.event-source__thumbnail-menu-trigger:hover{background:var(--ff-media-control-surface-hover)}.event-source__thumbnail-menu-trigger svg{width:18px;height:18px}.event-source__thumbnail-menu-content{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);box-shadow:var(--ff-shadow-raised);min-width:168px;transform:translateX(var(--menu-offset-x,0));display:grid;position:absolute;top:34px;right:0;overflow:hidden}.event-source__thumbnail--first .event-source__thumbnail-menu-content{left:0;right:auto}.event-source__thumbnail-menu-content button{color:var(--ff-text);cursor:pointer;font:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:8px 10px;font-size:.75rem;display:flex}.event-source__thumbnail-menu-content button:hover:not(:disabled){background:var(--ff-surface-subtle)}.event-source__thumbnail-menu-content button:disabled{color:var(--ff-muted);cursor:not-allowed;opacity:.5}.event-source__thumbnail-menu-content button svg{width:14px;height:14px}.event-source__thumbnail-menu-divider{border-top:1px solid var(--ff-border);width:100%;margin:2px 0}.event-source__thumbnail-menu-delete{color:var(--ff-danger)!important}.event-source__thumbnail-menu-delete svg{width:14px;height:14px}.event-source__thumbnail-delete-overlay{background:color-mix(in srgb, var(--ff-danger) 56%, transparent);border-radius:var(--ff-radius-sm);color:#fff;pointer-events:none;text-align:center;z-index:2;align-content:center;justify-items:center;gap:6px;font-size:.8rem;font-weight:700;display:grid;position:absolute;inset:0 0 24px}.event-source__thumbnail-delete-overlay svg{width:20px;height:20px}.event-form .form-actions{background:var(--ff-surface);border-top:1px solid var(--ff-border);padding:14px 23px max(14px, env(safe-area-inset-bottom));flex:none;margin:0;position:relative}.multi-event-notice{background:var(--ff-primary);border-color:var(--ff-primary);color:var(--ff-primary-contrast);flex:none;margin:16px 23px 0;font-weight:400;animation:none}.multi-event-notice strong{font-weight:700}.multi-event-navigation{white-space:nowrap;flex:none;align-items:center;gap:8px;display:flex}.multi-event-progress{color:var(--ff-muted);text-align:right;align-items:center;gap:8px;margin-left:auto;font-size:.75rem;display:flex}.multi-event-progress svg{flex:none;width:20px;height:20px}.multi-event-progress.is-saved{color:var(--ff-rsvp-going)}.multi-event-progress.is-discarded{color:var(--ff-danger)}.event-form--batch .event-form__review-fields>*{animation:batch-event-enter var(--ff-duration-slow) var(--ff-ease-out)}@keyframes batch-event-enter{0%{opacity:0;transform:translateX(var(--batch-event-offset,32px))}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.event-form--batch .event-form__review-fields>*{animation:none}}.event-form .form-actions:has(.multi-event-review-row){flex-wrap:wrap;align-items:center;padding-top:0}.multi-event-review-row{border-bottom:1px solid var(--ff-border);flex:0 0 calc(100% + 46px);align-items:center;gap:16px;margin:0 -23px 8px;padding:4px 23px;display:flex}.multi-event-menu{position:relative}.multi-event-menu__popover{z-index:4;min-width:max-content;position:absolute;bottom:calc(100% + 8px);right:0}.multi-event-menu__popover button:last-child{border-top:1px solid var(--ff-border)}.event-form__review-fields{border:0;margin:0;padding:0;display:contents}@media (width<=600px){.multi-event-notice{flex-wrap:wrap}.event-form .form-actions:has(.multi-event-progress) .ff-button{min-width:0;padding-inline:16px}}.form-actions__issue{color:var(--ff-danger);cursor:help;height:var(--ff-control-height);width:var(--ff-control-height);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;left:23px;transform:translateY(-50%)}.form-actions__issue svg{width:20px;height:20px}.form-actions__save-tooltip{display:inline-flex}.event-form .ff-button--save-event:disabled{background:color-mix(in srgb, var(--ff-primary) 52%, var(--ff-surface));cursor:not-allowed}.event-form .ff-field[aria-invalid=true],.event-form .ff-tag-input[aria-invalid=true]{border-color:var(--ff-danger)}.event-form .ff-field[aria-invalid=true]:focus-visible,.event-form .ff-tag-input[aria-invalid=true]:focus-within{box-shadow:0 0 0 2px color-mix(in srgb, var(--ff-danger) 28%, transparent), 0 0 14px color-mix(in srgb, var(--ff-danger) 28%, transparent)}.event-rsvp{border:0;gap:2px;min-inline-size:0;margin:0;padding:0;display:grid}.event-rsvp legend{color:var(--ff-ink);padding:0;font-size:.8rem;font-weight:700}.event-rsvp .ff-segmented-control{width:100%}.event-rsvp .ff-segmented-control button{white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-width:0;padding:0 8px;display:inline-flex}.event-schedule{background:var(--ff-surface-subtle);border-radius:var(--ff-radius-md);gap:12px;padding:16px 16px 8px;display:grid;container-type:inline-size}.event-recurrence{grid-template-rows:auto 0fr;padding-top:6px;display:grid;position:relative}.event-recurrence:before{background:var(--ff-border);content:"";height:1px;position:absolute;top:0;left:-16px;right:-16px}.event-recurrence--active{grid-template-rows:auto 1fr}.event-recurrence--active .event-recurrence__controls-slot{overflow:visible}.event-recurrence__controls-slot{min-height:0;margin:0 -3px -3px;padding:0 3px 3px;overflow:hidden}.event-recurrence__toggle-row{color:var(--ff-primary);justify-content:space-between;align-items:center;min-height:40px;display:flex}.event-recurrence__toggle-row>svg{opacity:.4;width:18px;height:18px;margin-right:9px}.simple-form .event-recurrence__toggle{color:var(--ff-ink);font:700 .8rem var(--ff-font-ui);gap:8px;display:inline-flex!important}.event-recurrence__toggle .ff-switch-track{width:50px;height:28px}.event-recurrence__toggle .ff-switch-track:after{width:20px;height:20px;top:4px;left:4px}.event-recurrence__toggle input:checked+.ff-switch-track:after{transform:translate(22px)}.event-recurrence__controls{gap:8px;padding:8px 0 1px;display:grid}.event-recurrence--active .event-recurrence__controls{animation:recurrence-controls-fade var(--ff-duration-slow) var(--ff-ease-out) both}@keyframes recurrence-controls-fade{0%{opacity:0}to{opacity:1}}.event-recurrence__ends{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);min-height:var(--ff-control-height);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid;overflow:hidden}.event-recurrence__ends:focus-within{border-color:var(--ff-focus);box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow)}.event-recurrence__ends-toggle{background:color-mix(in srgb, var(--ff-surface-subtle) 82%, var(--ff-primary) 18%);color:var(--ff-primary);cursor:pointer;font:700 .7rem var(--ff-font-ui);letter-spacing:.04em;text-transform:uppercase;border:0;align-self:stretch;align-items:center;padding:0 12px;display:flex}.event-recurrence__ends-toggle:hover{background:color-mix(in srgb, var(--ff-surface-subtle) 72%, var(--ff-primary) 28%)}.event-recurrence__ends-toggle:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus);outline:0}.event-recurrence__ends .event-picker-field{min-width:0}.event-recurrence__count-field{min-width:0;display:block;position:relative}.event-recurrence__count-field>svg{color:var(--ff-muted);pointer-events:none;width:17px;height:17px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.event-recurrence__ends--count .ff-field{padding-right:38px}.event-recurrence__count-field input::-webkit-inner-spin-button{appearance:none;margin:0}.event-recurrence__count-field input::-webkit-outer-spin-button{appearance:none;margin:0}.event-recurrence__ends .ff-field{color:color-mix(in srgb, var(--ff-muted) 30%, var(--ff-surface));background:0 0;border:0;border-radius:0;width:100%}.event-recurrence__ends--set .ff-field{color:var(--ff-text)}.event-recurrence__ends .ff-field:focus-visible{box-shadow:none}.event-recurrence__summary{color:var(--ff-muted);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:4px;margin:0 0 4px;padding:0;font-size:.8rem;display:flex}.event-recurrence__summary:hover{color:var(--ff-text)}.event-recurrence__summary:focus-visible{border-radius:var(--ff-radius-xs);box-shadow:0 0 0 2px var(--ff-focus-glow);outline:0}.event-recurrence__summary svg{width:16px;height:16px}@media (prefers-reduced-motion:reduce){.event-recurrence__controls{animation:none}}.event-recurrence__select{display:block;position:relative}.event-recurrence__select select{appearance:none;padding-right:42px}.event-recurrence__select--with-icon>svg:first-child{color:var(--ff-primary);pointer-events:none;height:17px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.event-recurrence__select>svg:last-child{color:var(--ff-primary);pointer-events:none;width:17px;height:17px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.event-recurrence__select--with-icon select{padding-left:40px;padding-right:42px}.recurrence-editor{animation:recurrence-editor-enter .22s var(--ff-ease-surface-spring) both;flex-direction:column;flex:1;min-height:0;display:flex}.recurrence-editor--leave{animation:recurrence-editor-leave .22s var(--ff-ease-out) both}.recurrence-editor__header{align-items:center;padding:16px 24px 4px;display:flex}.recurrence-editor__header h3{color:var(--ff-ink);font:600 1.2rem/1.1 var(--ff-font-display);align-items:center;gap:8px;margin:0;display:flex}.recurrence-editor__header h3 svg{color:var(--ff-primary);width:19px;height:19px}.recurrence-editor__body{flex:0 auto;align-content:start;gap:16px;margin-bottom:auto;padding:16px 24px 24px;overflow:auto}.recurrence-editor__interval{align-items:center;gap:8px;display:flex}.recurrence-editor__interval input{max-width:100px}.recurrence-editor__days,.recurrence-editor__options{border:0;gap:8px;margin:0;padding:0;display:grid}.recurrence-editor__days legend,.recurrence-editor__options legend{color:var(--ff-ink);padding:0;font-size:.8rem;font-weight:700}.recurrence-editor__options legend{margin-bottom:2px}.recurrence-editor__days>div{grid-template-columns:repeat(7, minmax(var(--ff-control-height), 1fr));gap:6px;display:grid;overflow-x:auto}.recurrence-editor__days .ff-button{min-height:var(--ff-control-height);min-width:var(--ff-control-height);width:100%;padding-inline:8px;font-size:.84rem}.recurrence-editor__days .ff-button[aria-pressed=true]{background:var(--ff-primary);color:var(--ff-primary-contrast)}@media (width<=374px){.recurrence-editor__days>div{grid-template-columns:repeat(7,minmax(40px,1fr));gap:3px;overflow-x:hidden}.recurrence-editor__days .ff-button{--ff-button-height:40px;min-width:40px;min-height:40px;padding-inline:4px;font-size:.78rem}}@media (width<=340px){.recurrence-editor__days>div{grid-template-columns:repeat(7,minmax(36px,1fr))}.recurrence-editor__days .ff-button{--ff-button-height:36px;min-width:36px;min-height:36px;font-size:.72rem}}.recurrence-editor__weekday-rule{grid-column:2;gap:8px;display:grid}.recurrence-editor__rule-value{color:var(--ff-primary);font-weight:600}.recurrence-editor__weekday-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.recurrence-editor__weekday-rule .event-recurrence__select select{padding-left:12px}.recurrence-editor__annual-date{grid-column:2;align-items:center;gap:8px;display:flex}.recurrence-editor__annual-date .event-recurrence__select{flex:1}.recurrence-editor__annual-date .event-recurrence__select select{padding-left:12px}.recurrence-editor__annual-date input{flex:0 0 88px;width:88px;min-width:88px;max-width:88px}.recurrence-editor__end-option{gap:8px;display:grid}.recurrence-editor__end-option .event-picker-field,.recurrence-editor__count{max-width:180px;margin-left:28px}.recurrence-editor .form-actions{padding:10px 16px max(10px, env(safe-area-inset-bottom));gap:8px}@media (width<=400px){.recurrence-editor .form-actions{gap:4px;padding-inline:10px}.recurrence-editor .form-actions .ff-button,.recurrence-editor .form-actions .archive-back-button{white-space:nowrap;padding-inline:12px;font-size:.86rem}.recurrence-editor .form-actions .ff-button--wide{padding-inline:14px}}.recurrence-editor .ff-radio-control{column-gap:10px}.recurrence-editor__weekday-option{align-items:start}.recurrence-editor__weekday-option>input[type=radio]{align-self:start;margin-top:2px}.recurrence-editor__days .ff-button[aria-pressed=true]{color:var(--ff-primary-contrast)}@keyframes recurrence-editor-enter{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes recurrence-editor-leave{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(28px)}}.ff-radio-control{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.ff-radio-control .ff-field{grid-column:2}.event-schedule__row{grid-template-columns:minmax(140px,1fr) minmax(0,1fr);gap:8px;display:grid}.event-schedule__row>label,.event-picker-field,.event-picker-field .ff-field{min-width:0}.event-picker-field .ff-field{appearance:none;text-align:left;max-width:100%;padding-right:30px}.event-picker-field input[type=date]::-webkit-date-and-time-value{text-align:left}.event-picker-field input[type=date]::-webkit-datetime-edit{text-align:left}.event-picker-field input[type=time]::-webkit-date-and-time-value{text-align:left}.event-picker-field input[type=time]::-webkit-datetime-edit{text-align:left}.event-schedule__row>:only-child{grid-column:1/-1}.event-schedule__error{margin:-4px 0 0}.event-all-day-row{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.event-picker-field{display:block;position:relative}.event-picker-trigger{color:var(--ff-muted);background:0 0;border:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.event-picker-clear{color:var(--ff-muted);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex;position:absolute;top:50%;right:31px;transform:translateY(-50%)}.event-picker-clear:hover{background:var(--ff-action-hover-soft);color:var(--ff-ink)}.event-picker-clear svg{width:16px;height:16px}.event-picker-field:has(.event-picker-clear) .ff-field{padding-right:58px}.event-picker-trigger svg{width:18px;height:18px}.event-picker-field input::-webkit-calendar-picker-indicator{opacity:0;pointer-events:none}.event-picker-field input[type=time]::-webkit-calendar-picker-indicator{display:none}.simple-form .event-all-day{justify-content:flex-start;place-self:start;gap:8px;font-size:.8rem;font-weight:700;display:inline-flex!important}.event-duration{color:var(--ff-muted);margin-right:4px;font-size:.8rem;font-weight:500}.event-all-day .ff-switch-track{flex:none;width:50px;height:28px}.event-all-day .ff-switch-track:after{width:20px;height:20px;top:4px;left:4px}.event-all-day input:checked+.ff-switch-track:after{transform:translate(22px)}.event-notes-field{height:calc(var(--ff-control-height) * 2);min-height:calc(var(--ff-control-height) * 2);resize:vertical;padding-block:8px}@media (width<=480px){.event-picker-field input[type=date],.event-picker-field input[type=time]{min-inline-size:0}.event-rsvp .ff-segmented-control button{padding-inline:5px;font-size:.7rem}.event-rsvp .ff-segmented-control button.event-rsvp__none{padding-inline:2px}}@media (width<=400px){.event-schedule__row{grid-template-columns:minmax(156px,1fr) minmax(120px,1fr)}}@container (width<=283px){.event-schedule__row{grid-template-columns:minmax(156px,1fr)}.event-schedule__row>label:nth-child(2){grid-column:1/-1}}.rsvp-dot{border:1.5px solid var(--ff-rsvp-none);background:0 0;border-radius:50%;flex:none;width:7px;height:7px}.rsvp-dot--not_going{background:var(--ff-highlight-red);border:0}.rsvp-dot--maybe{background:var(--ff-signal);border:0}.rsvp-dot--going{background:var(--ff-rsvp-going);border:0}.detail-sheet{flex-direction:column;max-height:calc(100vh - 28px);display:flex;position:relative;overflow:hidden}.detail-scroll{flex:1;min-height:0;overflow:auto}.detail-flyer{cursor:default;border-radius:0;height:270px}.detail-flyer.source-gallery--interactive{cursor:zoom-in}.detail-flyer.source-gallery img:not(.image-with-edits){width:auto;max-width:100%;height:100%;max-height:100%}.detail-flyer.source-artwork-loading{aspect-ratio:auto;height:270px}.detail-flyer.source-artwork{aspect-ratio:3/4;height:auto}.detail-flyer.generated-artwork{aspect-ratio:1;height:auto}.detail-artwork-wrap{position:relative}.detail-artwork-rsvp{z-index:2;flex-wrap:nowrap;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.detail-artwork-rsvp .rsvp-menu{top:auto;bottom:calc(100% + 6px)}.detail-content{padding:23px}.detail-date{color:var(--ff-muted);letter-spacing:0;text-transform:none;align-items:center;gap:6px;margin:0 0 4px;font-size:.8rem;font-weight:500;line-height:1.25;display:flex}.detail-date svg{flex:none}.detail-archive-status{opacity:0;pointer-events:none;transition:opacity var(--ff-duration-base) var(--ff-ease-out), transform var(--ff-duration-base) var(--ff-ease-out);margin-left:auto;transform:translateY(-2px)}.detail-archive-status.is-visible{opacity:1;transform:translateY(0)}.detail-heading-row h2{margin:0}.detail-meta{line-height:1.25;display:block}.detail-meta svg{flex:none}.detail-rsvp,.notes{margin-top:24px}.detail-rsvp legend,.notes h3{font:600 1.2rem var(--ff-font-display)}.detail-rsvp .ff-segmented-control{margin-top:6px}.detail-link{margin:20px 0 0}.detail-link a{color:var(--ff-primary);overflow-wrap:anywhere;align-items:center;gap:6px;max-width:100%;font-size:.85rem;display:inline-flex}.detail-link a:hover{color:color-mix(in srgb, var(--ff-primary) 78%, var(--ff-ink))}.detail-link svg{color:var(--ff-muted);flex:none;width:15px;height:15px}.detail-heading-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-heading-row h2{flex:1}.detail-close{color:color-mix(in srgb, var(--ff-ink) 68%, transparent);isolation:isolate;z-index:2;background:0 0;border:0;width:44px;height:44px;position:absolute;top:15px;right:12px}.detail-close:hover{color:var(--ff-ink)}.detail-close svg,.image-detail-close svg{stroke-width:2px;z-index:1;width:20px;height:20px;position:relative}.image-detail-screen:not(.image-editor-screen){animation:image-detail-enter var(--ff-duration-base) var(--ff-ease-out) both;background:color-mix(in srgb, var(--ff-night-start) 92%, black);z-index:var(--ff-layer-overlay);grid-template-rows:60px minmax(0,1fr) auto;place-items:center;display:grid;position:fixed;inset:0}.image-detail-screen--exit{animation:image-detail-exit var(--ff-duration-base) var(--ff-ease-out) both}.image-detail-canvas{box-sizing:border-box;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;grid-row:2;justify-content:center;align-items:center;width:100%;height:100%;padding:12px 24px;display:flex;position:relative;overflow:hidden}.image-detail-canvas:active{cursor:grabbing}.image-detail-canvas img{object-fit:contain;transform-origin:50%;max-width:min(720px,100vw - 48px);max-height:100%;transition:transform var(--ff-duration-fast) var(--ff-ease-out);-webkit-user-select:none;user-select:none}.image-detail-generated-cover{animation:source-image-reveal var(--ff-duration-base) var(--ff-ease-out) both;aspect-ratio:4/3;transform-origin:50%;max-width:min(720px,100vw - 48px);height:min(100%,540px);transition:transform var(--ff-duration-fast) var(--ff-ease-out);flex:none;width:min(720px,100vw - 48px)}.image-detail-toolbar{z-index:2;grid-row:1;justify-self:end;align-items:center;gap:12px;padding-right:16px;display:flex}.image-detail-caption{box-sizing:border-box;max-width:100%;padding:0 16px max(18px, env(safe-area-inset-bottom));flex-direction:column;grid-row:3;align-items:center;gap:6px;display:flex}.image-detail-name{color:var(--ff-media-control-text-strong);overflow-wrap:anywhere;text-align:center;z-index:2;max-width:calc(100vw - 104px);margin:0;font-size:.78rem;line-height:1.25}.image-detail-dots{justify-content:center;align-items:center;gap:4px;display:flex}.image-detail-dots button{height:5px;transition:background-color var(--ff-duration-base) var(--ff-ease-out);background:#ffffff73;border:0;border-radius:50%;width:5px;padding:0}.image-detail-dots button[aria-current=true]{background:var(--ff-media-control-text-strong)}.image-detail-close{color:var(--ff-media-control-text-strong);isolation:isolate;background:0 0;border:0;border-radius:50%;width:44px;height:44px;position:relative}.image-detail-close svg{transition:color var(--ff-duration-fast) var(--ff-ease-out)}.image-detail-close:hover{background:0 0}.image-detail-zoom{display:flex}.image-detail-zoom-button{--ff-icon-button-size:44px;color:var(--ff-media-control-text-strong);isolation:isolate;background:0 0;border:0;position:relative}.image-detail-zoom-button:hover{background:0 0}.image-detail-zoom-button:disabled{opacity:.32}.image-detail-zoom-button svg{z-index:1;width:18px;height:18px;position:relative}.image-detail-edit-button{margin-right:12px}.image-editor-screen{background:color-mix(in srgb, var(--ff-night-start) 92%, black);padding:72px 16px max(16px, env(safe-area-inset-bottom));z-index:30;scrollbar-color:color-mix(in srgb, var(--ff-media-control-text-muted) 54%, var(--ff-night-mid)) color-mix(in srgb, var(--ff-night-start) 92%, black);grid-template-rows:minmax(0,1fr) auto auto;place-items:center;display:grid;position:fixed;inset:0}html:has(.image-editor-screen)::-webkit-scrollbar-track{background:color-mix(in srgb, var(--ff-night-start) 92%, black)}body:has(.image-editor-screen)::-webkit-scrollbar-track{background:color-mix(in srgb, var(--ff-night-start) 92%, black)}.image-editor-screen::-webkit-scrollbar-track{background:color-mix(in srgb, var(--ff-night-start) 92%, black)}html:has(.image-editor-screen)::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ff-media-control-text-muted) 54%, var(--ff-night-mid));border-color:color-mix(in srgb, var(--ff-night-start) 92%, black)}body:has(.image-editor-screen)::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ff-media-control-text-muted) 54%, var(--ff-night-mid));border-color:color-mix(in srgb, var(--ff-night-start) 92%, black)}.image-editor-screen::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ff-media-control-text-muted) 54%, var(--ff-night-mid));border-color:color-mix(in srgb, var(--ff-night-start) 92%, black)}html:has(.image-editor-screen)::-webkit-scrollbar-thumb:hover{background:var(--ff-border-strong)}body:has(.image-editor-screen)::-webkit-scrollbar-thumb:hover{background:var(--ff-border-strong)}.image-editor-screen::-webkit-scrollbar-thumb:hover{background:var(--ff-border-strong)}.image-editor-screen--event-enter{animation:image-editor-event-enter var(--ff-duration-base) var(--ff-ease-out) both}.image-editor-screen--event-enter .image-editor-canvas,.image-editor-screen--event-enter .generated-cover-editor__preview{animation:image-editor-artwork-enter .28s var(--ff-ease-out) both}.image-editor-screen--event-exit{animation:image-editor-event-exit .18s var(--ff-ease-out) both}.image-editor-screen--event-exit .image-editor-canvas,.image-editor-screen--event-exit .generated-cover-editor__preview{animation:image-editor-artwork-exit .18s var(--ff-ease-out) both}@keyframes image-editor-event-enter{0%{opacity:0}to{opacity:1}}@keyframes image-editor-artwork-enter{0%{opacity:0;transform:translate(-16px,18px)scale(.82)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes image-editor-event-exit{to{opacity:0}}@keyframes image-editor-artwork-exit{to{opacity:0;transform:translate(-16px,18px)scale(.82)}}.image-editor-screen .image-detail-close{position:absolute;top:16px;right:12px}.image-editor-canvas{background:var(--ff-night-mid);border-radius:var(--ff-radius-sm);place-self:center;width:min(100%,520px);max-width:min(720px,100%);max-height:min(52vh,520px);display:grid;position:relative;overflow:hidden}.image-editor-canvas img{object-fit:contain;height:100%;transition:filter var(--ff-duration-fast) var(--ff-ease-out);width:100%}.image-editor-canvas--cropped img{object-fit:cover;transform-origin:50%;transition:filter var(--ff-duration-fast) var(--ff-ease-out), transform var(--ff-duration-base) var(--ff-ease-out)}.image-editor-crop-frame{border:2px solid var(--ff-surface);box-shadow:0 0 0 9999px var(--ff-media-crop-scrim);height:var(--crop-frame-height);left:var(--crop-frame-left);pointer-events:auto;top:var(--crop-frame-top);transition:all var(--ff-duration-fast) var(--ff-ease-out);width:var(--crop-frame-width);position:absolute}.image-editor-canvas--cropping{touch-action:none}.image-editor-crop-frame{cursor:grab}.image-editor-canvas--cropping.is-dragging .image-editor-crop-frame{cursor:grabbing;transition:none}.image-editor-crop-handle{background:var(--ff-surface);border:2px solid var(--ff-ink);border-radius:50%;width:14px;height:14px;position:absolute}.image-editor-crop-handle--top-left{cursor:nwse-resize;top:-8px;left:-8px}.image-editor-crop-handle--top-right{cursor:nesw-resize;top:-8px;right:-8px}.image-editor-crop-handle--bottom-left{cursor:nesw-resize;bottom:-8px;left:-8px}.image-editor-crop-handle--bottom-right{cursor:nwse-resize;bottom:-8px;right:-8px}.image-editor-controls{color:var(--ff-surface);width:100%;max-width:min(720px,100%);min-height:260px;margin:12px auto 0}.image-editor-tab-row{justify-content:space-between;align-items:center;display:flex}.image-editor-tabs{background:var(--ff-media-panel-surface);border:1px solid color-mix(in srgb, var(--ff-media-control-border) 50%, transparent);border-radius:var(--ff-radius-pill);grid-template-columns:repeat(2,minmax(0,1fr));max-width:216px;padding:3px;display:grid}.image-editor-tabs button{border-radius:var(--ff-radius-pill);color:var(--ff-media-control-text-secondary);cursor:pointer;font:700 12px var(--ff-font-ui);min-height:30px;transition:background-color var(--ff-duration-fast) var(--ff-ease-out), color var(--ff-duration-fast) var(--ff-ease-out);background:0 0;border:0;padding:0 10px}.image-editor-tabs button[aria-selected=true]{background:var(--ff-media-panel-selected);color:var(--ff-surface)}.image-editor-tab-row .image-editor-reset{font:700 12px var(--ff-font-ui);min-height:30px;padding:0 10px}.image-editor-tool-row,.image-editor-aspects,.image-editor-filters,.image-editor-actions{align-items:center;gap:8px;margin-bottom:16px;display:flex}.image-editor-tool,.image-editor-reset,.image-editor-aspects button{border:1px solid color-mix(in srgb, var(--ff-surface) 35%, transparent);border-radius:var(--ff-radius-pill);color:inherit;cursor:pointer;font:600 .75rem var(--ff-font-body);background:0 0;align-items:center;gap:5px;min-height:36px;padding:0 10px;display:inline-flex}.image-editor-tool.is-active,.image-editor-aspects button.is-selected{border-color:var(--ff-signal);box-shadow:0 0 0 2px color-mix(in srgb, var(--ff-signal) 36%, transparent)}.image-editor-reset{margin-left:auto}.image-editor-tool svg,.image-editor-reset svg{width:15px;height:15px}.image-editor-crop-controls{background:color-mix(in srgb, var(--ff-ink) 82%, transparent);border:1px solid color-mix(in srgb, var(--ff-surface) 25%, transparent);border-radius:var(--ff-radius-md);gap:8px;margin-top:12px;padding:12px;display:grid}.image-editor-crop-controls p{margin:0;font-size:.78rem}.image-editor-crop-heading{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label confirm""helper confirm";align-items:center;gap:2px 12px;display:grid}.image-editor-crop-heading label{grid-area:label}.image-editor-crop-heading p{opacity:.6;grid-area:helper}.image-editor-crop-heading .image-editor-confirm-crop{grid-area:confirm}.image-editor-crop-heading-actions{grid-area:confirm;align-items:center;gap:8px;display:flex}.image-editor-crop-heading-actions .image-editor-reset{margin-left:0}.image-editor-crop-controls label{align-items:center;gap:4px;font-size:14px;display:grid}.image-editor-crop-controls input[type=range]{accent-color:var(--ff-signal);appearance:none;background:0 0;width:100%}.image-editor-crop-controls input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--ff-signal) 0 var(--image-editor-range-value), color-mix(in srgb, var(--ff-surface) 56%, transparent) var(--image-editor-range-value) 100%);border-radius:var(--ff-radius-pill);height:5px}.image-editor-crop-controls input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ff-signal);border:2px solid var(--ff-ink);border-radius:50%;width:17px;height:17px;margin-top:-6px}.image-editor-crop-controls input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--ff-signal) 0 var(--image-editor-range-value), color-mix(in srgb, var(--ff-surface) 56%, transparent) var(--image-editor-range-value) 100%);border-radius:var(--ff-radius-pill);height:5px}.image-editor-crop-controls input[type=range]::-moz-range-thumb{background:var(--ff-signal);border:2px solid var(--ff-ink);border-radius:50%;width:13px;height:13px}.image-editor-confirm-crop{--ff-icon-button-size:36px;flex:none;min-width:36px;height:36px;min-height:36px;padding:0}.image-editor-confirm-crop svg{width:15px;height:15px}.image-editor-filter-panel{background:color-mix(in srgb, var(--ff-ink) 82%, transparent);border:1px solid color-mix(in srgb, var(--ff-surface) 25%, transparent);border-radius:var(--ff-radius-md);margin-top:12px;padding:12px}.image-editor-filter-panel h2{color:inherit;font:700 14px var(--ff-font-ui);margin:0}.image-editor-filters{margin-top:8px;padding-bottom:2px;overflow-x:auto}.image-editor-filters button{color:inherit;cursor:pointer;font:600 12px var(--ff-font-ui);background:0 0;border:0;justify-items:center;gap:4px;width:56px;padding:4px;display:grid}.image-editor-filters button>span{border:2px solid color-mix(in srgb, var(--ff-surface) 88%, transparent);border-radius:var(--ff-radius-xs);box-sizing:border-box;width:40px;height:40px;display:block;position:relative;overflow:hidden}.image-editor-filters img{object-fit:cover;width:100%;height:100%}.image-editor-filters button.is-selected>span{border:2px solid var(--ff-signal)}.image-editor-filters button.is-selected{color:var(--ff-signal)}.image-editor-actions{justify-content:flex-end;width:100%;max-width:min(720px,100%);margin:12px auto 0}.image-editor-actions .ff-button{min-height:44px}.image-editor-cancel{border:1px solid color-mix(in srgb, var(--ff-surface) 68%, transparent);color:var(--ff-surface);background:0 0}.image-editor-cancel:hover{background:var(--ff-surface);border-color:var(--ff-surface);color:var(--ff-ink)}.image-editor-save,.image-editor-confirm-crop{background:var(--ff-primary);border-color:var(--ff-primary);color:var(--ff-surface)}.image-editor-save:hover,.image-editor-confirm-crop:hover{background:color-mix(in srgb, var(--ff-primary) 82%, var(--ff-ink))}@media (width<=420px){.image-editor-screen{padding-inline:12px}.image-editor-aspects{gap:4px}.image-editor-aspects button{padding-inline:8px;font-size:.68rem}}@keyframes image-detail-enter{0%{opacity:0}to{opacity:1}}@keyframes image-detail-exit{to{opacity:0}}.detail-menu-wrap{flex:none;position:relative}.detail-action-bar{background:var(--ff-surface);border-top:1px solid var(--ff-border);z-index:2;flex:none;justify-content:flex-end;align-items:center;gap:4px;min-height:56px;padding:6px 16px;display:flex;position:relative}.detail-back-button{margin-right:auto}.detail-action-button.favorite{color:var(--ff-highlight-rose)}.detail-action-button--favorite,.plan-action-button--favorite{position:relative}.favorite-burst{pointer-events:none;position:absolute;inset:50% auto auto 50%}.favorite-burst__ring{animation:favorite-ring-expand .62s var(--ff-ease-out) both;border:2px solid color-mix(in srgb, var(--ff-highlight-rose) 48%, transparent);border-radius:50%;width:16px;height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}.favorite-burst__ring--outer{border-color:color-mix(in srgb, var(--ff-highlight-rose) 32%, transparent);animation-delay:70ms}.favorite-burst__firefly{background:var(--ff-signal);box-shadow:0 0 7px 1px color-mix(in srgb, var(--ff-signal) 50%, transparent), 0 0 14px 3px color-mix(in srgb, var(--ff-signal) 26%, transparent);border-radius:50%;width:3px;height:3px;animation:.85s linear both favorite-firefly-rise;position:absolute;top:50%;left:50%}.favorite-burst__firefly:nth-of-type(3){--favorite-burst-x:-15px;--favorite-burst-y:38px;animation-delay:0s}.favorite-burst__firefly:nth-of-type(4){--favorite-burst-x:-5px;--favorite-burst-y:48px;animation-delay:.18s}.favorite-burst__firefly:nth-of-type(5){--favorite-burst-x:10px;--favorite-burst-y:42px;animation-delay:.36s}.favorite-burst__firefly:nth-of-type(6){--favorite-burst-x:18px;--favorite-burst-y:32px;animation-delay:.54s}@keyframes favorite-ring-expand{0%{opacity:.72;transform:translate(-50%,-50%)scale(.35)}to{opacity:0;transform:translate(-50%,-50%)scale(2.3)}}@keyframes favorite-firefly-rise{0%{opacity:0;transform:translate(-50%,-50%)}15%{opacity:.8;transform:translate(calc(-50% + var(--fly-bend-1)), calc(-50% + var(--favorite-burst-y) * .15))}40%{opacity:.75;transform:translate(calc(-50% + var(--favorite-burst-x) * .4 + var(--fly-bend-2)), calc(-50% + var(--favorite-burst-y) * .35))}65%{opacity:.5;transform:translate(calc(-50% + var(--favorite-burst-x) * .65 + var(--fly-bend-3)), calc(-50% + var(--favorite-burst-y) * .65))}to{opacity:0;transform:translate(calc(-50% + var(--favorite-burst-x)), calc(-50% + var(--favorite-burst-y)))}}.detail-action-menu{white-space:nowrap;z-index:3;width:max-content;top:auto;bottom:calc(100% + 8px)}.meta-grid{grid-template-columns:1fr 1fr;gap:10px;margin:23px 0;display:grid}.meta-grid div{background:var(--ff-surface-subtle);border-radius:12px;gap:3px;padding:12px;display:grid}.meta-grid span{color:var(--ff-muted);font-size:.69rem}.meta-grid strong{color:var(--ff-ink);font-size:.8rem}.notes{border-top:1px solid var(--ff-border);padding-top:20px}.notes h3{color:var(--ff-ink);margin:0}.notes p{color:var(--ff-muted);margin:4px 0 0;font-size:.9rem;line-height:1.4}.muted{color:var(--ff-muted)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:7px;margin-top:30px;display:grid}.calendar-grid b{color:var(--ff-muted);text-align:center;font-size:.68rem}.calendar-grid div,.calendar-grid button{aspect-ratio:1;background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:10px;justify-content:center;align-items:center;font-size:clamp(.72rem,3.4vw,.82rem);display:flex}.calendar-grid .has-plan{background:var(--ff-signal-soft);border-color:var(--ff-signal);color:var(--ff-primary);font-weight:700}.calendar-view{isolation:isolate;z-index:8;min-width:0;position:relative}.calendar-toolbar,.calendar-navigation,.calendar-control-row,.calendar-event-list__heading,.calendar-event-list__heading>div{align-items:center;display:flex}.calendar-toolbar{z-index:9;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:8px 0;margin:4px 0 12px;display:grid;position:relative}.calendar-navigation,.calendar-control-row{gap:2px;min-width:0}.calendar-toolbar .calendar-navigation,.calendar-toolbar .calendar-control-row{grid-column:1;width:100%;display:flex}.calendar-toolbar .calendar-navigation{grid-row:1}.calendar-toolbar .calendar-control-row{grid-row:2}.calendar-control-row{gap:8px}.calendar-title-picker{min-width:0;position:relative}.calendar-title-button{color:var(--ff-ink);cursor:pointer;font:600 clamp(1.45rem, 5vw, 2rem)/1 var(--ff-font-display);white-space:nowrap;background:0 0;border:0;align-items:center;gap:2px;padding:8px 4px 4px 0;display:inline-flex;position:relative}.calendar-search-toggle.is-active,.calendar-control-row button.is-active{color:var(--ff-primary)}.calendar-filter-toggle,.feed-filter-toggle,.calendar-search-toggle,.feed-search-toggle{position:relative}.calendar-filter-toggle.has-active-filters:after,.feed-filter-toggle.has-active-filters:after,.calendar-search-toggle.has-active-search:after,.feed-search-toggle.has-active-search:after{background:var(--ff-primary);border:1px solid var(--ff-canvas);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:5px}.feed-filter-toggle.is-active.has-active-filters:after,.feed-search-toggle.is-active.has-active-search:after{border-color:color-mix(in srgb, var(--ff-surface-subtle) 82%, var(--ff-primary) 18%)}.calendar-title-button:hover{color:var(--ff-primary)}.calendar-title-button:focus-visible{box-shadow:none;outline:0}.calendar-title-button:focus-visible:after{border-radius:var(--ff-radius-pill);box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow);content:"";pointer-events:none;position:absolute;inset:-4px -8px}.calendar-title-button:hover svg{color:currentColor}.calendar-page-nav{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);box-shadow:0 1px 3px color-mix(in srgb, var(--ff-ink) 12%, transparent);justify-self:end;align-items:center;width:64px;height:32px;margin-left:auto;display:flex;overflow:hidden}.calendar-page-nav button{--ff-icon-button-size:32px;border-radius:0}.calendar-page-nav button+button{border-left:1px solid color-mix(in srgb, var(--ff-ink) 10%, transparent)}@media (hover:hover) and (pointer:fine){.calendar-page-nav button:hover{background:var(--ff-action-hover-soft)}}.calendar-picker{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);box-shadow:var(--ff-shadow-raised);z-index:10;gap:2px;min-width:190px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);left:0}.calendar-picker button{border-radius:var(--ff-radius-pill);color:var(--ff-text);cursor:pointer;text-align:left;background:0 0;border:0;padding:9px 10px;font-size:.83rem}.calendar-picker button:focus-visible{box-shadow:inset 0 0 0 2px var(--ff-focus-glow);outline:0}.calendar-picker button:hover{background:var(--ff-action-hover-soft);color:var(--ff-primary)}.calendar-picker button.is-selected{background:var(--ff-primary);border-radius:var(--ff-radius-pill);color:var(--ff-primary-contrast)}.calendar-picker button.is-selected:hover{background:var(--ff-primary-hover);color:var(--ff-primary-contrast)}.calendar-picker--month{grid-template-columns:minmax(0,1fr) 112px;column-gap:8px;min-width:284px;max-width:calc(100vw - 40px);padding-bottom:4px}.calendar-picker-months,.calendar-picker-years{max-height:var(--calendar-picker-available-height,none);align-content:start;gap:2px;display:grid;overflow-y:auto}.calendar-picker-years{border-left:1px solid var(--ff-border);max-height:calc(var(--calendar-picker-available-height,100dvh) + 12px);padding-block:6px;flex-direction:column;margin-block:-6px;padding-left:8px;display:flex}.calendar-picker-years>*{flex-shrink:0}.calendar-picker-select{display:block;position:relative}.calendar-picker-select select{appearance:none;background:var(--ff-field);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm);color:var(--ff-text);font:inherit;min-height:var(--ff-search-field-height);width:100%;padding:4px 38px 4px 12px;font-size:.83rem}.calendar-picker-select svg{color:var(--ff-primary);pointer-events:none;width:17px;height:17px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.calendar-search{width:min(230px,31vw);margin-left:auto}.calendar-search-toggle,.calendar-mobile-search{display:none}.calendar-search-toggle{justify-self:end;margin-left:auto}.calendar-filters{background:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);z-index:8;align-items:center;gap:0;margin:-4px 0 10px;padding:7px 10px;display:flex;position:relative}.calendar-tag-filters{overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;flex:1 1 0;gap:5px;min-width:0;padding-right:8px;display:flex;overflow:auto hidden}.calendar-tag-filters::-webkit-scrollbar{display:none}.calendar-tag-filters>button{flex:none}.calendar-filters button{background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);color:var(--ff-text);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;min-height:30px;padding:2px 11px;font-size:.75rem;display:inline-flex}.calendar-filters button.is-selected{background:var(--ff-primary);border-color:var(--ff-primary);color:var(--ff-primary-contrast)}.calendar-rsvp-filter{border-left:1px solid var(--ff-border);padding-block:7px;flex:none;align-self:stretch;align-items:center;margin-block:-7px;padding-left:8px;display:flex;position:relative}.calendar-rsvp-trigger{background:var(--ff-surface)!important;border-color:var(--ff-border-strong)!important}.calendar-rsvp-trigger.is-selected{border-color:var(--ff-primary)!important;color:var(--ff-primary)!important}.calendar-rsvp-trigger__dots{align-items:center;gap:2px;display:inline-flex}.calendar-rsvp-trigger__dots .rsvp-dot{width:6px;height:6px}.calendar-rsvp-menu{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);box-shadow:var(--ff-shadow-raised);z-index:6;gap:2px;min-width:158px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.calendar-rsvp-menu button{text-align:left;background:0 0;border-color:#0000;border-radius:8px;justify-content:flex-start}.calendar-rsvp-menu button:hover{background:var(--ff-action-hover-soft)}.calendar-rsvp-menu button.is-selected{background:color-mix(in srgb, var(--ff-primary) 12%, var(--ff-surface));color:var(--ff-primary);border-color:#0000}.calendar-rsvp-menu .calendar-rsvp-clear{border-top:1px solid var(--ff-border);color:var(--ff-primary);border-radius:0;margin-top:2px}.calendar-mode{max-width:150px;margin:0}.calendar-today{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);box-shadow:0 1px 3px color-mix(in srgb, var(--ff-ink) 12%, transparent);color:var(--ff-ink);cursor:pointer;font:700 .8rem var(--ff-font-ui);min-height:32px;margin-left:12px;padding:0 22px}@media (hover:hover) and (pointer:fine){.calendar-today:hover{background:var(--ff-action-hover-soft)}}.calendar-control-row>.ff-icon-button:not(.calendar-search-toggle){justify-self:end}.calendar-layout{z-index:0;align-items:start;gap:14px;display:grid;position:relative}.calendar-swipe{--calendar-swipe-gap:12px;touch-action:auto;-webkit-user-select:none;user-select:none;min-width:0;position:relative;overflow:hidden}.calendar-swipe__track,.calendar-swipe__page{height:100%}.calendar-swipe__track{position:relative}.calendar-swipe.is-settling .calendar-swipe__track{transition:transform var(--ff-duration-slow) var(--ff-ease-spring)}.calendar-swipe.is-dragging .calendar-swipe__track{transition:none}.calendar-swipe__preview{pointer-events:none;width:100%;height:100%;position:absolute;top:0}.calendar-swipe__preview.is-previous{left:calc(-100% - var(--calendar-swipe-gap))}.calendar-swipe__preview.is-next{left:calc(100% + var(--calendar-swipe-gap))}.calendar-swipe .calendar-grid{animation:none}.calendar-swipe.is-dragging .calendar-day-content,.calendar-swipe.is-settling .calendar-day-content{pointer-events:none}@media (prefers-reduced-motion:reduce){.calendar-swipe__track,.calendar-swipe.is-settling .calendar-swipe__track{transition:none;transform:none!important}.calendar-swipe.is-dragging .calendar-swipe__page{opacity:.65}}.calendar-grid{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);min-width:0;transition:height var(--ff-duration-base) var(--ff-ease-out);grid-template-columns:repeat(7,minmax(0,1fr));gap:0;width:100%;margin:0;overflow:hidden}.calendar-grid b{background:color-mix(in srgb, var(--ff-surface-subtle) 78%, var(--ff-primary) 7%);justify-content:center;align-items:center;min-height:24px;font-size:.67rem;display:flex}.calendar-grid>span,.calendar-grid>button{aspect-ratio:1;background:var(--ff-surface);border:0;border-top:1px solid var(--ff-border);color:var(--ff-text);border-radius:0;flex-direction:column;justify-content:center;align-items:center;font-size:clamp(.75rem,3.3vw,.9rem);display:flex;position:relative}.calendar-grid button{-webkit-tap-highlight-color:transparent;cursor:pointer}.calendar-grid button:hover{background:var(--ff-surface)}.calendar-day-content{transition:transform var(--ff-duration-fast) var(--ff-ease-spring), background-color var(--ff-duration-fast) var(--ff-ease-out);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:min(42px,12vw);height:min(42px,12vw);margin:0 auto;display:inline-flex;position:relative}.calendar-day-content>strong{font:inherit;position:absolute;top:6px;left:50%;transform:translate(-50%)}.calendar-day-content .calendar-event-dots{position:absolute;bottom:6px;left:50%;transform:translate(-50%)}@media (hover:hover) and (pointer:fine){.calendar-grid button:hover .calendar-day-content{background:color-mix(in srgb, var(--ff-primary) 16%, var(--ff-surface))}}.calendar-grid button.is-selected .calendar-day-content{background:var(--ff-primary);color:var(--ff-primary-contrast)}.calendar-grid button.is-today:not(.is-selected) .calendar-day-content{background:color-mix(in srgb, var(--ff-signal-soft) 30%, var(--ff-surface-subtle));color:var(--ff-text)}.calendar-grid button.is-today .calendar-day-content>strong{font-weight:800}@media (hover:hover) and (pointer:fine){.calendar-grid button.is-today:not(.is-selected):hover .calendar-day-content{background:color-mix(in srgb, var(--ff-signal-soft) 44%, var(--ff-surface-subtle))}}.calendar-grid button:focus-visible{box-shadow:none;outline-offset:0;z-index:1;outline:0}.calendar-grid button:focus-visible .calendar-day-content{box-shadow:inset 0 0 0 2px var(--ff-focus-glow), inset 0 0 12px var(--ff-focus-glow)}.calendar-event-dots{border-radius:var(--ff-radius-pill);height:5px;width:min(32px, var(--ff-dot-count,5px));display:flex;overflow:hidden}.calendar-event-dots em{background:var(--ff-gray-500);flex:5px;min-width:0}.calendar-event-dots .rsvp-dot--going{background:var(--ff-rsvp-going)}.calendar-event-dots .rsvp-dot--maybe{background:var(--ff-signal)}.calendar-event-dots .rsvp-dot--not_going{background:var(--ff-highlight-red)}.calendar-grid button.is-selected .calendar-event-dots em{background:var(--ff-primary-contrast)}.calendar-event-dots .rsvp-dot--none,.calendar-rsvp-menu .rsvp-dot--none,.calendar-rsvp-trigger .rsvp-dot--none{background:var(--ff-rsvp-none);border:0}.calendar-event-list{background:0 0;border:0;border-radius:0;align-content:start;gap:8px;min-height:142px;padding:16px;display:grid}.calendar-event-list__content{align-content:start;gap:8px;min-height:122px;display:grid}.calendar-event-list__heading{justify-content:space-between}.calendar-event-list__heading h2{color:var(--ff-ink);font:600 1rem/1.1 var(--ff-font-display);white-space:nowrap;flex-shrink:0;margin:0;transform:translateY(2px)}.calendar-event-list__today{color:var(--ff-muted);min-width:0;font:800 .66rem/1 var(--ff-font-ui);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;flex:0 auto;align-items:center;gap:8px;margin-left:auto;display:flex}.calendar-event-list__today:before{background:color-mix(in srgb, var(--ff-primary) 38%, var(--ff-border));content:"";flex-shrink:1;width:clamp(24px,12vw,92px);min-width:0;height:2px}.calendar-event-list__heading>div{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);box-shadow:0 1px 3px color-mix(in srgb, var(--ff-ink) 12%, transparent);flex-shrink:0;height:32px;margin-left:8px;overflow:hidden}.calendar-event-list__heading>div .ff-icon-button{--ff-icon-button-size:32px;border-radius:0}.calendar-event-list__heading>div .ff-icon-button+.ff-icon-button{border-left:1px solid color-mix(in srgb, var(--ff-ink) 10%, transparent)}.calendar-empty{margin:0;font-size:.85rem}.calendar-empty--filtered{flex-wrap:wrap;align-items:baseline;gap:0 4px;display:flex}.calendar-empty--filtered button{color:var(--ff-primary);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.calendar-empty--filtered button:hover{color:var(--ff-primary-hover)}.calendar-event-card{background:var(--ff-surface)}.calendar-week-agenda{align-content:start;gap:32px}.calendar-week-day{gap:6px;display:grid}.calendar-week-day__heading{justify-content:space-between;align-items:center;display:flex}.calendar-week-day__heading h2{color:var(--ff-ink);font:600 1rem/1.1 var(--ff-font-display);margin:0}.calendar-week-day__heading span{color:var(--ff-muted);font:800 .66rem/1 var(--ff-font-ui);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:8px;margin-left:12px;display:flex}.calendar-week-day__heading span:before{background:color-mix(in srgb, var(--ff-primary) 38%, var(--ff-border));content:"";width:48px;height:2px}.calendar-week-day.is-empty .calendar-week-day__heading h2,.calendar-week-day.is-empty .calendar-empty{color:color-mix(in srgb, var(--ff-muted) 58%, var(--ff-canvas))}.calendar-event-card .plan-actions{flex:none}.plan-card--repeat .rsvp-chip,.calendar-event-card__rsvp,.calendar-event-card__statuses .past-event-badge{background:var(--ff-surface-subtle);color:var(--ff-primary);align-items:center;gap:5px;display:inline-flex}.plan-card--repeat .rsvp-chip:hover:not(:disabled),.calendar-event-card__rsvp:hover:not(:disabled){background:color-mix(in srgb, var(--ff-surface-subtle) 90%, var(--ff-ink) 10%)}@keyframes calendar-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes calendar-week-day-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.calendar-enter{animation:calendar-enter .24s var(--ff-ease-out) both}.calendar-week-day--enter{animation:feed-card-enter var(--ff-duration-base) var(--ff-ease-out) both;animation-delay:var(--calendar-week-day-delay,0s)}.calendar-week-day--enter .calendar-event-card{animation:none}.calendar-enter--toolbar{animation-delay:20ms}.calendar-enter--filters{animation-delay:55ms}.calendar-enter--grid{animation-delay:75ms}.calendar-enter--details{animation-name:feed-card-enter;animation-delay:.115s}.calendar-enter--card{animation-name:feed-card-enter;animation-delay:var(--calendar-enter-delay,.12s)}@media (prefers-reduced-motion:reduce){.calendar-enter,.calendar-week-day--enter{animation:none}}@media (width>=720px){.app-shell:has(.calendar-view){flex-direction:column;height:100dvh;min-height:0;padding-top:0;display:flex;overflow:visible}.app-shell:has(.calendar-view) .app-header{flex:none;margin-top:0}.main-content:has(.calendar-view){flex:auto;min-height:0}.calendar-view{flex-direction:column;height:100%;min-height:0;display:flex}.calendar-toolbar{gap:12px}.calendar-search{justify-self:end;width:min(230px,31vw)}.calendar-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-event-list{border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);max-height:608px;overflow:auto}.calendar-layout--month,.calendar-layout--week{border:1px solid var(--ff-border);border-radius:var(--ff-radius-xs);flex:auto;align-items:stretch;gap:0;min-height:0;margin-bottom:4px;overflow:hidden}.calendar-layout--month .calendar-grid,.calendar-layout--week .calendar-grid{background:var(--ff-surface-subtle);border:0;border-right:1px solid var(--ff-border);grid-template-rows:24px repeat(var(--calendar-week-rows), max-content);border-radius:0;align-content:start;height:100%}.calendar-layout--month .calendar-event-list,.calendar-layout--week .calendar-event-list{background:var(--ff-canvas);border:0;border-radius:0;align-content:start;min-height:0;max-height:none;overflow:auto}.calendar-layout--month .calendar-event-list__content{align-content:start;min-height:0}.calendar-week-agenda{max-height:608px}.calendar-layout--week .calendar-week-agenda{scroll-behavior:smooth;max-height:none;scroll-padding-top:8px}.calendar-layout--week .calendar-week-day{scroll-snap-align:start;gap:8px}.calendar-layout--week .calendar-week-day__heading{min-height:32px}}@media (width<=719px){.app-shell:has(.calendar-view){overscroll-behavior:none;flex-direction:column;height:100dvh;min-height:0;padding-top:0;padding-bottom:0;display:flex;overflow:visible}.app-shell:has(.calendar-view) .app-header{flex:none;margin-top:0}:is(.main-content:has(.calendar-view),.calendar-view){min-height:0}.main-content:has(.calendar-view){flex:auto}.calendar-view{flex-direction:column;height:100%;display:flex}.calendar-layout{grid-template-columns:minmax(0,1fr);gap:0;margin-inline:-20px;container-type:inline-size}.calendar-layout>.calendar-swipe{--calendar-swipe-gap:24px;width:100%}.calendar-swipe__track{width:calc(100% - 40px);margin-inline:20px}.calendar-layout--month,.calendar-layout--week{flex:auto;grid-template-rows:auto minmax(0,1fr);align-items:stretch;height:auto;min-height:0;overflow:hidden}.calendar-event-list{grid-template-columns:calc(100cqw - 40px);min-width:0;padding:16px 20px 0;overflow-x:hidden}.calendar-layout--month .calendar-event-list{overscroll-behavior:contain;min-height:0;padding-bottom:calc(104px + env(safe-area-inset-bottom));overflow-y:auto}.calendar-week-agenda{overscroll-behavior:contain;scroll-behavior:smooth;scroll-snap-type:y proximity;scrollbar-color:var(--ff-border-strong) transparent;scrollbar-width:thin;min-width:0;min-height:0;scroll-padding-top:16px;overflow-y:auto}.calendar-week-agenda::-webkit-scrollbar{width:8px}.calendar-week-agenda::-webkit-scrollbar-track{background:0 0}.calendar-week-agenda::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border-radius:var(--ff-radius-pill)}.calendar-week-agenda::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}.calendar-toolbar{gap:6px}.calendar-search{display:none}.calendar-search-toggle{display:inline-flex}.calendar-toolbar.search-open .calendar-mobile-search{grid-area:3/1/auto/-1;display:flex}.calendar-mobile-search input{font-size:16px}.calendar-today{padding-inline:16px}.calendar-filters{align-items:flex-start}.calendar-grid--month{grid-template-rows:24px repeat(var(--calendar-week-rows), minmax(0, 1fr));height:250px}.calendar-grid--week{grid-template-rows:24px minmax(0,1fr);height:70px}.calendar-grid--month>button,.calendar-grid--month>span,.calendar-grid--week>button,.calendar-grid--week>span{aspect-ratio:auto}}.toast{background:var(--ff-ink);border-radius:var(--ff-radius-xs);color:var(--ff-surface);text-align:center;white-space:normal;z-index:12;width:max-content;max-width:calc(100% - 24px);padding:10px 14px;font-size:.82rem;font-weight:700;position:fixed;bottom:94px;left:50%;transform:translate(-50%)}@media (width<=719px){.google-account__unlink-tooltip{display:none}}.event-added-burst{background:var(--ff-overlay-scrim-strong);pointer-events:none;z-index:11;animation:1.65s linear both event-added-burst-fade;position:fixed;inset:0;overflow:hidden}.event-added-burst .event-added-firefly{bottom:var(--ff-burst-bottom);height:var(--ff-burst-size);left:var(--ff-burst-left);width:var(--ff-burst-size);position:absolute}.event-added-burst .event-added-firefly>.auth-firefly{animation:auth-firefly-pulse 1.15s ease-in-out var(--ff-burst-pulse-delay) infinite;width:100%;height:100%;transition:none;display:block;position:static;transform:none}.event-added-burst .event-added-firefly--rise{opacity:0}.event-added-burst .event-added-firefly--flash{animation:event-added-firefly-flash .76s var(--ff-ease-out) both;animation-delay:var(--ff-burst-delay)}.event-added-burst .event-added-firefly--linger{animation:event-added-firefly-linger 1.65s var(--ff-ease-out) both;animation-delay:var(--ff-burst-delay)}.event-added-message{animation:event-added-message-enter 1.45s var(--ff-ease-out) both, event-added-message-glow 1.2s ease-out both;border-radius:var(--ff-radius-pill);box-shadow:0 0 10px 2px color-mix(in srgb, var(--ff-signal) 34%, transparent), 0 0 26px 8px color-mix(in srgb, var(--ff-signal) 16%, transparent);color:var(--ff-surface);font:700 14px var(--ff-font-ui);white-space:nowrap;z-index:1;background:#0000004d;padding:7px 12px;position:absolute;bottom:108px;left:50%;transform:translate(-50%)}@keyframes event-added-burst-fade{0%{opacity:1}48%{opacity:.7}76%{opacity:.24}to{opacity:0}}@keyframes event-added-firefly-flash{0%,to{opacity:0;transform:scale(.7)}42%{opacity:.9;transform:scale(1)}}@keyframes event-added-firefly-linger{0%{opacity:0;transform:scale(.72)}18%,72%{opacity:.92;transform:scale(1)}to{opacity:0;transform:scale(.86)}}@keyframes event-added-message-enter{0%{opacity:0;transform:translate(-50%,10px)}18%,68%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}@keyframes event-added-message-glow{0%{box-shadow:0 0 10px 2px color-mix(in srgb, var(--ff-signal) 30%, transparent), 0 0 22px 7px color-mix(in srgb, var(--ff-signal) 14%, transparent)}32%{box-shadow:0 0 16px 3px color-mix(in srgb, var(--ff-signal) 58%, transparent), 0 0 36px 11px color-mix(in srgb, var(--ff-signal) 30%, transparent)}78%,to{box-shadow:0 0 #0000}}.prototype-toggle{color:var(--ff-muted);cursor:pointer;background:0 0;border:0;font-size:.7rem;position:fixed;top:9px;left:50%;transform:translate(-50%)}@media (width>=720px){html,body{scrollbar-color:var(--ff-border-strong) var(--ff-canvas);scrollbar-width:thin}html{overflow-y:auto}html::-webkit-scrollbar{width:8px}body::-webkit-scrollbar{width:8px}html::-webkit-scrollbar-track{background:var(--ff-canvas)}body::-webkit-scrollbar-track{background:var(--ff-canvas)}html::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border:2px solid var(--ff-canvas);border-radius:var(--ff-radius-pill)}body::-webkit-scrollbar-thumb{background:var(--ff-border-strong);border:2px solid var(--ff-canvas);border-radius:var(--ff-radius-pill)}html::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}body::-webkit-scrollbar-thumb:hover{background:var(--ff-muted)}html.auth-page{background:var(--ff-night-start);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:color-mix(in srgb, var(--ff-signal) 38%, var(--ff-night-mid)) var(--ff-night-start);overflow-y:auto}html.auth-page body{background:var(--ff-night-start)}html.auth-page::-webkit-scrollbar-track{background:var(--ff-night-start)}html.auth-page body::-webkit-scrollbar-track{background:var(--ff-night-start)}html.auth-page::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ff-signal) 38%, var(--ff-night-mid));border-color:var(--ff-night-start)}html.auth-page body::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ff-signal) 38%, var(--ff-night-mid));border-color:var(--ff-night-start)}html.auth-page::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ff-signal) 52%, var(--ff-night-mid))}html.auth-page body::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ff-signal) 52%, var(--ff-night-mid))}.feed-controls .ff-search-field{width:min(250px,34vw)}.quick-filters{background:color-mix(in srgb, var(--ff-canvas) 92%, var(--ff-primary) 8%);border:1px solid var(--ff-border);border-radius:var(--ff-radius-pill);transition:box-shadow var(--ff-duration-base) var(--ff-ease-out);margin:-8px 0 12px;padding:8px 20px}.overlay{align-items:center}.add-sheet{border-radius:var(--ff-radius-sm)}.detail-sheet{border-radius:var(--ff-radius-sm);max-width:600px}.flyer:not(.source-artwork):not(.generated-artwork):not(.source-gallery){height:280px}}@media (width<=719px){.app-shell{overflow-x:clip}.plans-empty-stack{row-gap:24px;min-height:calc(100dvh - 208px)}.plans-empty-stack>.empty-state{order:1}.plans-empty-stack>.app-install{order:2;margin-top:auto;margin-bottom:0}.page-title{flex-wrap:nowrap}.page-title.search-open{flex-wrap:wrap}.feed-search-toggle{display:inline-flex}.desktop-search-field{display:none}.mobile-search-field{flex-basis:100%;order:2;width:100%;margin-top:8px;display:flex}.mobile-search-field input{font-size:16px}.quick-filters{top:100px}.page-title.search-open+.quick-filters{top:calc(110px + var(--ff-search-field-height))}:is(.plans-view:has(.quick-filters) .feed-today-marker,.plans-view:has(.quick-filters) .plan-card){scroll-margin-top:164px}:is(.plans-view:has(.page-title.search-open) .feed-today-marker,.plans-view:has(.page-title.search-open) .plan-card){scroll-margin-top:calc(132px + var(--ff-search-field-height))}:is(.plans-view:has(.page-title.search-open):has(.quick-filters) .feed-today-marker,.plans-view:has(.page-title.search-open):has(.quick-filters) .plan-card){scroll-margin-top:calc(180px + var(--ff-search-field-height))}.overlay{padding:0}.share-dialog{animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both;border-radius:var(--ff-radius-md) var(--ff-radius-md) 0 0;max-height:calc(100dvh - 20px);padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-bottom:0;align-self:flex-end;width:100%;margin:0}.share-dialog__title{align-items:flex-start}.share-dialog__title h2{white-space:normal;flex:1;min-width:0;font-size:clamp(1.65rem,8vw,1.9rem)}.share-dialog__title .ff-dialog-close{margin-top:-4px}.share-dialog input,.share-dialog textarea{font-size:16px}.add-sheet,.detail-sheet{border-radius:var(--ff-radius-sm) var(--ff-radius-sm) 0 0;height:calc(100dvh - 28px);max-height:calc(100dvh - 28px)}.detail-action-bar{padding-bottom:10px}.event-form .form-actions{padding-bottom:calc(max(14px, env(safe-area-inset-bottom)) + 4px)}.recurrence-editor .form-actions{padding-bottom:calc(max(10px, env(safe-area-inset-bottom)) + 4px)}.image-editor-actions{padding-bottom:calc(max(16px, env(safe-area-inset-bottom)) + 4px)}.add-sheet input,.add-sheet textarea{font-size:16px}}@keyframes capture-to-editor-sheet-mobile{0%{height:var(--capture-source-height)}to{height:calc(100dvh - 28px)}}@keyframes capture-to-editor-sheet-desktop{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes capture-to-editor-content{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes overlay-exit{to{opacity:0}}@keyframes overlay-return{to{opacity:0}}@keyframes overlay-edit-enter{0%{opacity:0}to{opacity:1}}@keyframes modal-sheet-enter{0%{opacity:0;transform:translateY(40px)scale(.98)}to{opacity:1;transform:translateY(0)}}@keyframes modal-sheet-exit{to{opacity:0;transform:translateY(8px)scale(.99)}}@keyframes modal-surface-enter{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-surface-exit{to{opacity:0;transform:translateY(8px)}}@keyframes menu-surface-enter{0%{opacity:0;translate:0 -6px}to{opacity:1;translate:0}}@keyframes menu-surface-enter-above{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0}}.action-menu--above{animation:menu-surface-enter-above .24s var(--ff-ease-menu-spring) both;transform-origin:100% 100%}@media (prefers-reduced-motion:reduce){.share-dialog,.family-settings,.confirm-dialog,.about-dialog,.share-dialog__file-menu,.role-select__menu,.member-menu__popover,.invite-link__popover,.google-account__popover,.profile-menu,.ff-menu,.calendar-picker,.event-source__thumbnail-menu-content{animation:none}}@keyframes edit-sheet-enter{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes detail-to-editor-sheet{0%{opacity:1;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes edit-sheet-return{to{opacity:0;transform:translate(16px)}}@keyframes detail-sheet-return{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes editor-to-detail-sheet{0%{opacity:1;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.capture-sheet,.capture-night{animation:capture-sheet-enter var(--ff-duration-slow) var(--ff-ease-modal-enter) both;border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-raised);width:min(100%,520px);max-width:520px;margin:auto;padding:32px;position:relative}.capture-sheet{background:var(--ff-surface);color:var(--ff-text);padding:24px 24px 16px}.capture-sheet h2,.capture-night h2{color:var(--ff-ink);font:600 1.8rem/1.08 var(--ff-font-display);margin:12px 0 8px}.capture-heading-row{justify-content:space-between;align-items:center;min-height:44px;display:flex}.capture-title{align-items:center;gap:6px;display:flex}.capture-title>svg{color:var(--ff-primary);width:28px;height:28px;position:relative;top:-4px}.capture-title h2{margin:0}.capture-intro{margin-top:0}.capture-failure-heading{align-items:center;gap:12px;display:flex}.capture-failure-heading>svg{color:var(--ff-danger);width:28px;height:28px}.capture-failure-heading h2{margin:0}.capture-sheet>.ff-button{margin-top:12px}.capture-action{position:relative}.capture-action>svg{width:19px;height:19px}.capture-action__end{margin-left:auto}.capture-action--balanced>svg:first-child{justify-self:start}.capture-action--balanced>svg:last-child{justify-self:end}.capture-action--centered{justify-content:center}.capture-confirm-actions{align-items:center;gap:12px;margin-top:20px;display:flex}.capture-confirm-actions .ff-button{flex:1;margin:0}.capture-close{position:absolute;top:16px;right:16px}.capture-option{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);color:var(--ff-ink);text-align:left;min-height:60px;transition:transform var(--ff-duration-fast) var(--ff-ease-out), background var(--ff-duration-fast) var(--ff-ease-out);align-items:center;gap:12px;width:100%;margin-top:10px;padding:8px 14px;line-height:1.4;display:flex}.capture-option:hover{background:var(--ff-action-hover-soft);color:var(--ff-primary-hover)}.capture-option:active{transform:scale(.985)}.capture-option>svg{color:var(--ff-primary);flex:none;width:24px;height:24px}.capture-option span{font-weight:700}.capture-option small{color:var(--ff-muted);margin-top:0;font-size:.78rem;font-weight:500;display:block}.capture-option>.capture-option__arrow{color:var(--ff-primary);width:22px;height:22px;margin-left:auto}.capture-preview{background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);object-fit:contain;width:100%;height:min(44vh,360px);margin:20px 0;display:block}.capture-source-copy{background:var(--ff-surface-subtle);border-radius:var(--ff-radius-sm);white-space:pre-wrap;max-height:360px;margin:20px 0;padding:16px;overflow:auto}.capture-source-copy--empty{color:var(--ff-muted);font-style:italic}.capture-empty-source{background:var(--ff-surface-subtle);border-radius:var(--ff-radius-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;height:160px;margin:20px 0;display:flex}.capture-empty-source>svg{color:var(--ff-primary);width:24px;height:24px;margin-bottom:8px}.capture-empty-source>p{color:var(--ff-muted);margin:0;font-style:italic}.capture-night{background:radial-gradient(circle at 50% 28%, var(--ff-night-end), var(--ff-night-start));color:#e7f1e8;text-align:center;min-height:340px;overflow:hidden}.capture-night h2{color:#fff;margin-top:28px}.capture-night>.firefly-spinner{margin:80px auto 0;display:block}.capture-night>p{opacity:.6;font-size:.875rem}.capture-fireflies i{animation:capture-firefly-flight var(--flight-duration) ease-in-out var(--flight-delay) infinite;background:var(--ff-signal);box-shadow:0 0 12px 4px color-mix(in srgb, var(--ff-signal) 55%, transparent);border-radius:50%;width:7px;height:7px;position:absolute}.capture-fireflies i:nth-child(n+3){width:4px;height:4px;box-shadow:0 0 8px 2px color-mix(in srgb, var(--ff-signal) 55%, transparent)}.capture-fireflies i:first-child{--flight-duration:7.3s;--flight-delay:-1.2s;--flight-x:22px;--flight-y:-16px;top:24%;left:15%}.capture-fireflies i:nth-child(2){--flight-duration:9.1s;--flight-delay:-4s;--flight-x:-28px;--flight-y:12px;top:18%;left:78%}.capture-fireflies i:nth-child(3){--flight-duration:6.7s;--flight-delay:-2.8s;--flight-x:-4px;--flight-y:-22px;top:72%;left:12%}.capture-fireflies i:nth-child(4){--flight-duration:8.6s;--flight-delay:-5.2s;--flight-x:16px;--flight-y:-26px;animation-name:capture-firefly-flight,capture-firefly-blink;top:67%;left:83%}.capture-fireflies i:nth-child(5){--flight-duration:10.3s;--flight-delay:-3.6s;--flight-x:30px;--flight-y:10px;top:12%;left:52%}.capture-fireflies i:nth-child(6){--flight-duration:7.9s;--flight-delay:-6.1s;--flight-x:-12px;--flight-y:20px;animation-name:capture-firefly-flight,capture-firefly-blink;top:55%;left:10%}@keyframes capture-firefly-flight{0%,to{transform:translate(0)}28%{transform:translate(var(--flight-x), calc(var(--flight-y) * .4))}61%{transform:translate(calc(var(--flight-x) * .35), var(--flight-y))}83%{transform:translate(calc(var(--flight-x) * -.3), calc(var(--flight-y) * .6))}}@keyframes capture-firefly-blink{0%,25%,85%,to{opacity:.85}45%,65%{opacity:0}}@media (prefers-reduced-motion:reduce){.capture-fireflies i{animation:none}}@keyframes capture-float{to{opacity:.45;transform:translate(10px,-14px)}}@media (width>=720px) and (height<=800px){.plans-empty-stack{row-gap:24px;min-height:calc(100dvh - 156px)}.plans-empty-stack>.empty-state{order:1}.plans-empty-stack>.app-install{order:2;margin-top:auto;margin-bottom:0}}.app-install{animation:ff-disclosure-fade-in var(--ff-duration-widget-reveal) linear both;background:linear-gradient(145deg, var(--ff-night-start), var(--ff-night-mid) 48%, var(--ff-night-end));border:1px solid color-mix(in srgb, var(--ff-signal) 20%, transparent);border-radius:var(--ff-radius-md);color:#e7f1e8;isolation:isolate;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px;display:grid;position:relative;overflow:hidden}.app-install--feed{scroll-margin-top:calc(76px + var(--ff-search-field-height));margin:4px 0}.feed-month-heading+.app-install--feed{margin-top:0}.app-install__close{color:#ffffff7a;cursor:pointer;opacity:.7;z-index:1;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:background-color .14s,color .14s,opacity .14s;display:flex;position:absolute;top:4px;right:4px}.app-install__close svg{width:16px;height:16px}.app-install__close:hover{color:#fff;opacity:1;background:#ffffff14}.app-install__close:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow);opacity:1;outline:0}.about-overlay{background:var(--ff-overlay-scrim);z-index:var(--ff-layer-overlay);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.about-dialog{animation:modal-surface-enter var(--ff-duration-modal) var(--ff-ease-modal-enter) both;background:var(--ff-surface);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-raised);width:100%;max-width:600px;overflow:hidden}.about-dialog__night{background:radial-gradient(circle at 50% 28%, var(--ff-night-end), var(--ff-night-start));color:#e7f1e8;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:218px;padding:32px;display:flex;position:relative;overflow:hidden}.about-dialog__fireflies i{background:var(--ff-firefly-realistic-fill);box-shadow:0 0 2px color-mix(in srgb, var(--ff-firefly-gold) 65%, transparent), 0 0 6px 1px color-mix(in srgb, var(--ff-firefly-amber) 35%, transparent);opacity:.72;border-radius:50%;width:5px;height:5px;animation:4.8s ease-in-out infinite alternate about-firefly-drift,3.4s ease-in-out infinite about-firefly-pulse;position:absolute}.about-dialog__fireflies i:before{background:radial-gradient(circle, color-mix(in srgb, var(--ff-firefly-amber) 14%, transparent), color-mix(in srgb, var(--ff-firefly-gold) 6%, transparent) 25%, color-mix(in srgb, var(--ff-firefly-gold) 1%, transparent) 55%, transparent 78%);content:"";pointer-events:none;position:absolute;inset:-18px}.about-dialog__fireflies i:first-child{animation-delay:-1.8s,-.4s;top:25%;left:9%}.about-dialog__fireflies i:nth-child(2){width:4px;height:4px;animation-delay:-3.2s,-1.6s;top:72%;left:23%}.about-dialog__fireflies i:nth-child(3){animation:11s cubic-bezier(.45,0,.55,1) infinite about-firefly-flight,3.4s ease-in-out -2.7s infinite about-firefly-pulse;top:16%;left:38%}.about-dialog__fireflies i:nth-child(4){width:4px;height:4px;animation-delay:-2.4s,-.9s;top:78%;left:61%}.about-dialog__fireflies i:nth-child(5){animation:13s cubic-bezier(.45,0,.55,1) -5.2s infinite about-firefly-flight,3.4s ease-in-out -2.2s infinite about-firefly-pulse;top:30%;left:76%}.about-dialog__fireflies i:nth-child(6){width:4px;height:4px;animation-delay:-1.1s,-3.1s;top:67%;left:89%}.about-dialog__close,.about-dialog__brand,.about-dialog__night>p{z-index:1;position:relative}.about-dialog__close{color:#ffffffa6;cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:12px;right:12px}.about-dialog__close:hover{color:#fff;background:#ffffff1a}.about-dialog__close:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow);outline:0}.about-dialog__close svg{width:18px;height:18px}.about-dialog__brand{color:#fff;font:600 1.65rem/1 var(--ff-font-display);align-items:center;gap:11px;display:flex}.about-dialog__orb.ff-firefly{background:radial-gradient(circle at center, var(--ff-firefly-about-core) 0 12%, color-mix(in srgb, var(--ff-firefly-about-core) 35%, var(--ff-firefly-gold)) 38%, var(--ff-firefly-body) 72%, var(--ff-firefly-amber) 100%);box-shadow:0 0 2px .5px color-mix(in srgb, var(--ff-firefly-gold) 85%, transparent), 0 0 6px 1px color-mix(in srgb, var(--ff-firefly-amber) 65%, transparent);isolation:isolate;flex:0 0 7px;width:7px;height:7px;animation:4.8s ease-in-out infinite about-brand-glow}.about-dialog__orb:before{background:radial-gradient(ellipse at 48% 54%, color-mix(in srgb, var(--ff-firefly-amber) 20%, transparent) 0%, color-mix(in srgb, var(--ff-firefly-gold) 10%, transparent) 18%, color-mix(in srgb, var(--ff-firefly-gold) 4%, transparent) 38%, color-mix(in srgb, var(--ff-firefly-gold) 1%, transparent) 58%, transparent 78%);content:"";pointer-events:none;z-index:-1;animation:4.8s ease-in-out infinite about-brand-bloom;position:absolute;inset:-30px -33px}.about-dialog__orb:after{content:none}.about-dialog__flare{background:radial-gradient(ellipse at 100% 50%, color-mix(in srgb, var(--ff-firefly-core) 78%, transparent) 0%, color-mix(in srgb, var(--ff-firefly-gold) 48%, transparent) 22%, color-mix(in srgb, var(--ff-firefly-amber) 18%, transparent) 48%, transparent 76%);filter:blur(.4px);pointer-events:none;transform-origin:100%;width:18px;height:4px;animation:4.8s ease-in-out infinite about-brand-flare;position:absolute;top:3px;right:4px;transform:rotate(-24deg)}.about-dialog__flare:before{background:radial-gradient(ellipse at 100% 50%, color-mix(in srgb, var(--ff-firefly-gold) 18%, transparent), color-mix(in srgb, var(--ff-firefly-amber) 5%, transparent) 40%, transparent 75%);content:"";position:absolute;inset:-4px 0}@keyframes about-brand-glow{0%,to{box-shadow:0 0 2px .5px color-mix(in srgb, var(--ff-firefly-gold) 65%, transparent), 0 0 5px 1px color-mix(in srgb, var(--ff-firefly-amber) 40%, transparent);transform:translate(0)}50%{box-shadow:0 0 4px 1px var(--ff-firefly-gold), 0 0 12px 3px color-mix(in srgb, var(--ff-firefly-amber) 85%, transparent), 0 0 23px 5px color-mix(in srgb, var(--ff-firefly-gold) 18%, transparent);transform:translate(1px,-2px)}}@keyframes about-brand-flare{0%,to{opacity:.45;transform:rotate(-24deg)scaleX(.85)}50%{opacity:.9;transform:rotate(-24deg)scaleX(1.05)}}@keyframes about-brand-bloom{0%,to{opacity:.28}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.about-dialog__orb.ff-firefly,.about-dialog__orb:before,.about-dialog__flare{animation:none}}.about-dialog__night>p{color:#ffffffd9;white-space:nowrap;margin:42px 0 0;font-size:.9rem;line-height:1.5}.about-dialog__details{text-align:center;padding:28px 32px 32px}.about-dialog__details p{color:var(--ff-text);margin:12px 0;font-size:.9rem}.about-dialog__heart{color:#ae4d70}.about-dialog__details a{color:var(--ff-primary);text-decoration:none}.about-dialog__details a:hover{text-decoration:underline}.about-dialog__legal-links{justify-content:center;gap:6px;display:flex}.about-dialog__separator{color:var(--ff-muted)}.about-dialog__done{width:100%;margin-top:22px}@keyframes about-firefly-drift{to{transform:translate(8px,-9px)}}@keyframes about-firefly-pulse{0%,to{box-shadow:0 0 2px color-mix(in srgb, var(--ff-firefly-gold) 45%, transparent), 0 0 5px 1px color-mix(in srgb, var(--ff-firefly-amber) 25%, transparent);opacity:.45}50%{box-shadow:0 0 3px .5px color-mix(in srgb, var(--ff-firefly-gold) 85%, transparent), 0 0 9px 2px color-mix(in srgb, var(--ff-firefly-amber) 55%, transparent), 0 0 17px 3px color-mix(in srgb, var(--ff-firefly-gold) 12%, transparent);opacity:.9}}@media (prefers-reduced-motion:reduce){.about-dialog__fireflies i{animation:none}}@keyframes about-firefly-flight{0%,to{transform:translate(0,0)}28%{transform:translate(11px,-8px)}58%{transform:translate(-7px,-17px)}78%{transform:translate(8px,-4px)}}@media (width<=640px){.about-overlay{align-items:flex-end;padding:0}.about-dialog{border-radius:0;flex-direction:column;height:100dvh;min-height:100svh;max-height:none;animation-name:capture-sheet-enter-mobile;display:flex;overflow:hidden}.about-dialog__night{flex:0 0 50%;min-height:0}.about-dialog__night>p{white-space:normal}.about-dialog__details{flex-direction:column;flex:1;padding:0;display:flex}.about-dialog__copy{padding:30px 24px}.about-dialog__footer{border-top:1px solid var(--ff-border);padding:16px max(24px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));margin-top:auto}.about-dialog__done{margin:0}}.app-install:before{aspect-ratio:1;background:radial-gradient(circle, color-mix(in srgb, var(--ff-signal) 16%, transparent), transparent 67%);content:"";z-index:-1;width:240px;position:absolute;inset:-58% 34% auto auto}.app-install__icon{background:color-mix(in srgb, var(--ff-signal) 16%, transparent);border:1px solid color-mix(in srgb, var(--ff-signal) 36%, transparent);color:var(--ff-signal);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.app-install__icon svg{width:21px;height:21px}.app-install__copy{min-width:0}.app-install__copy h3{color:#fff;font:600 1.35rem/1.05 var(--ff-font-display);margin:0 0 5px}.app-install__copy p,.app-install__availability{color:#e7f1e8b8;margin:0;font-size:.84rem;line-height:1.4}.app-install__availability{grid-column:1/-1}.app-install__button{background:var(--ff-signal);border-color:var(--ff-signal);color:var(--ff-night-start);white-space:nowrap;flex:none}.app-install__actions{justify-content:center;align-self:stretch;align-items:center;min-height:84px;display:flex;position:relative}.app-install__dismiss{color:#ffffff80;cursor:pointer;font:600 .76rem/1.2 var(--ff-font-ui);background:0 0;border:0;padding:8px;position:absolute;bottom:-10px}.app-install__dismiss:hover{color:#ffffffbf}.app-install__dismiss:focus-visible{border-radius:var(--ff-radius-xs);box-shadow:0 0 0 2px var(--ff-focus-glow);outline:0}.app-install__button:hover{background:color-mix(in srgb, var(--ff-signal) 88%, #fff);border-color:color-mix(in srgb, var(--ff-signal) 88%, #fff)}.app-install__firefly{background:var(--ff-firefly-realistic-fill);box-shadow:0 0 12px 3px color-mix(in srgb, var(--ff-signal) 42%, transparent);opacity:.8;pointer-events:none;z-index:-1;border-radius:50%;width:4px;height:4px;position:absolute}.app-install__firefly--one{animation:3.4s ease-in-out -1.4s infinite alternate capture-float;top:14px;right:18%}.app-install__firefly--two{animation:4.1s ease-in-out -2.1s infinite alternate capture-float;bottom:15px;right:6%}.app-install__ios-guide{border-radius:var(--ff-radius-sm);background:#00000038;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:4px 8px;padding:12px;display:flex}.app-install__ios-guide strong{color:#fff;font-size:.85rem}.app-install__ios-guide span{color:#e7f1e8c2;align-items:center;gap:5px;font-size:.82rem;display:inline-flex}.app-install__ios-guide svg{color:var(--ff-signal);width:15px;height:15px}.app-bookmark,.app-install__guidance{background:var(--ff-surface-subtle);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);color:var(--ff-primary);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:16px;padding:16px;display:grid}.app-install__guidance{grid-template-columns:auto minmax(0,1fr);margin-top:16px}.app-bookmark>svg,.app-install__guidance>svg,.settings-web-access>svg{margin-inline:4px}.app-bookmark>svg,.app-install__guidance>svg{width:20px;height:20px}.app-bookmark h3,.settings-info-card__title{color:var(--ff-ink);font:600 1rem/1.1 var(--ff-font-ui);margin:0 0 3px}.app-bookmark p,.settings-info-card__description{color:var(--ff-muted);font:400 .8rem/1.35 var(--ff-font-ui);margin:0}.family-settings .app-install__guidance>div>.settings-info-card__title,.family-settings .settings-web-access>div>.settings-info-card__title,.family-settings .app-bookmark>div>h3{color:var(--ff-ink);font:600 1rem/1.1 var(--ff-font-ui);margin:0 0 3px}.family-settings .app-install__guidance>div>.settings-info-card__description,.family-settings .settings-web-access>div>.settings-info-card__description,.family-settings .app-bookmark>div>p{color:var(--ff-muted);font:400 .8rem/1.35 var(--ff-font-ui);margin:0}.app-bookmark kbd{background:var(--ff-surface);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-xs);color:var(--ff-text);font:700 .75rem var(--ff-font-ui);border-bottom-width:2px;padding:5px 7px}@media (width<=560px){.app-install{grid-template-columns:auto minmax(0,1fr);align-items:start}.app-install__actions,.app-install__availability{grid-column:1/-1;width:100%}.app-install__actions{align-self:auto;gap:4px;min-height:0;display:grid}.app-install__dismiss{position:static}.app-install__button{justify-content:center}.app-bookmark{grid-template-columns:auto minmax(0,1fr) auto}.app-bookmark kbd{grid-column:auto;justify-self:end}}@keyframes capture-sheet-enter{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.overlay--capture{padding:0}.capture-sheet,.capture-night{border-bottom-right-radius:0;border-bottom-left-radius:0;width:100%;max-width:none;margin:0}.capture-sheet{animation-name:capture-sheet-enter-mobile}}@keyframes capture-sheet-enter-mobile{0%{opacity:0;transform:translateY(56px)}to{opacity:1;transform:translateY(0)}}.generated-cover-editor{align-items:start;overflow-y:auto}.generated-cover-editor .image-detail-close{position:fixed;top:16px;right:12px}.generated-cover-editor__preview{align-self:start;width:min(100%,1.33333*min(34vh,330px));max-height:min(34vh,330px)}.generated-cover-editor h2,.generated-cover-editor p,.generated-cover-editor__ranges label,.generated-cover-editor__styles button{color:var(--ff-surface)}.generated-cover-editor__styles button.is-selected,.generated-cover-editor__swatches button.is-selected{border-color:var(--ff-signal);box-shadow:0 0 0 2px color-mix(in srgb, var(--ff-signal) 42%, transparent)}.generated-cover-editor__swatches button{justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.generated-cover-editor__swatches button>svg{width:16px;height:16px}.generated-cover-editor__utility{color:color-mix(in srgb, var(--ff-ink) 60%, transparent);opacity:1;transition:color var(--ff-duration-fast) var(--ff-ease-out);border-radius:50%;background:var(--ff-surface)!important;border:0!important}.generated-cover-editor__utility:hover,.generated-cover-editor__utility:focus-visible{color:color-mix(in srgb, var(--ff-ink) 80%, transparent);opacity:1}.generated-cover-editor__swatches button{border:3px solid var(--ff-media-control-outline-muted);box-sizing:border-box;background:0 0;padding:0}.generated-cover-editor__swatches button>span{width:28px;height:28px}.generated-cover-editor__swatches button.is-selected{border-color:var(--ff-surface);box-shadow:none}.generated-cover-editor__ranges input[type=range],.image-editor-crop-controls input[type=range]{appearance:none;background:0 0;width:100%;height:18px;margin:0}.generated-cover-editor__ranges input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--ff-signal) 0 var(--image-editor-range-value), color-mix(in srgb, var(--ff-surface) 78%, transparent) var(--image-editor-range-value) 100%);border-radius:var(--ff-radius-pill);height:5px}.image-editor-crop-controls input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--ff-signal) 0 var(--image-editor-range-value), color-mix(in srgb, var(--ff-surface) 78%, transparent) var(--image-editor-range-value) 100%);border-radius:var(--ff-radius-pill);height:5px}.generated-cover-editor__ranges input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ff-signal);border:0;border-radius:50%;width:14px;height:14px;margin-top:-4.5px}.image-editor-crop-controls input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ff-signal);border:0;border-radius:50%;width:14px;height:14px;margin-top:-4.5px}.generated-cover-editor__ranges input[type=range]::-moz-range-track{background:color-mix(in srgb, var(--ff-surface) 78%, transparent);border-radius:var(--ff-radius-pill);height:5px}.image-editor-crop-controls input[type=range]::-moz-range-track{background:color-mix(in srgb, var(--ff-surface) 78%, transparent);border-radius:var(--ff-radius-pill);height:5px}.generated-cover-editor__ranges input[type=range]::-moz-range-progress{background:var(--ff-signal);border-radius:var(--ff-radius-pill);height:5px}.image-editor-crop-controls input[type=range]::-moz-range-progress{background:var(--ff-signal);border-radius:var(--ff-radius-pill);height:5px}.generated-cover-editor__ranges input[type=range]::-moz-range-thumb{background:var(--ff-signal);border:0;border-radius:50%;width:14px;height:14px}.image-editor-crop-controls input[type=range]::-moz-range-thumb{background:var(--ff-signal);border:0;border-radius:50%;width:14px;height:14px}.image-editor-title{color:var(--ff-surface);font:700 1rem var(--ff-font-ui);align-items:center;gap:8px;margin:0;display:flex;position:absolute;top:30px;left:20px}.image-editor-title svg{width:18px;height:18px}.image-editor-confirm-crop{background:var(--ff-primary);color:var(--ff-primary-contrast);border:0}.image-editor-filters button,.generated-cover-editor__styles button{color:var(--ff-media-control-text-subtle);cursor:pointer;font:600 12px var(--ff-font-ui);background:0 0;border:0;justify-items:center;gap:4px;width:56px;padding:4px;display:grid}.image-editor-filters button>span,.generated-cover-editor__style{border:3px solid var(--ff-media-control-outline);border-radius:var(--ff-radius-xs);box-sizing:border-box;background-clip:padding-box;width:40px;height:40px;display:block;overflow:hidden}.image-editor-filters button.is-selected,.generated-cover-editor__styles button.is-selected{color:var(--ff-surface)}.image-editor-filters button.is-selected>span,.generated-cover-editor__styles button.is-selected .generated-cover-editor__style{border-color:var(--ff-surface)}.image-editor-filters button.is-selected>span{border-width:3px}.generated-cover-editor__styles button.is-selected{box-shadow:none}.image-editor-aspects button{border:3px solid var(--ff-media-control-outline);box-shadow:none;box-sizing:border-box;color:var(--ff-media-control-text-secondary);font:600 12px var(--ff-font-ui);transition:border-color .2s var(--ff-ease-out);padding-inline:12px}.image-editor-aspects button:hover{border-color:var(--ff-media-control-border)}.image-editor-aspects button.is-selected,.image-editor-aspects button.is-selected:hover{border-color:var(--ff-surface);box-shadow:none;color:var(--ff-surface)}.image-editor-filter-panel h2,.generated-cover-editor h2,.image-editor-crop-controls label,.generated-cover-editor__ranges label{font:700 14px var(--ff-font-ui)}.generated-cover-editor p{opacity:.6}.generated-cover-editor__ranges label>span,.image-editor-crop-controls label>span{justify-content:space-between;align-items:center;display:flex}.generated-cover-editor__ranges output,.image-editor-crop-controls output{color:var(--ff-surface);font-variant-numeric:tabular-nums;font-weight:600}.generated-cover-editor__styles button,.generated-cover-editor__swatches button,.image-editor-filters button{position:relative}.image-editor-selection-check{display:none}.generated-cover-editor__styles button.is-selected .image-editor-selection-check,.generated-cover-editor__swatches button.is-selected .image-editor-selection-check,.image-editor-filters button.is-selected .image-editor-selection-check{color:var(--ff-surface);pointer-events:none;width:14px;height:14px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.generated-cover-editor__styles button.is-selected .image-editor-selection-check,.image-editor-filters button.is-selected .image-editor-selection-check{top:24px}.generated-cover-editor__utility{color:var(--ff-surface);border:3px solid var(--ff-media-control-outline)!important;background:0 0!important}.generated-cover-editor__utility:hover,.generated-cover-editor__utility:focus-visible{color:var(--ff-surface);border-color:var(--ff-media-control-border)!important}.image-editor-filters button:hover>span,.generated-cover-editor__styles button:hover .generated-cover-editor__style,.generated-cover-editor__swatches button:hover{border-color:var(--ff-media-control-border)}.image-editor-filters button.is-selected:hover>span,.generated-cover-editor__styles button.is-selected:hover .generated-cover-editor__style,.generated-cover-editor__swatches button.is-selected:hover{border-color:var(--ff-surface)}.image-editor-filters button>span,.generated-cover-editor__style,.generated-cover-editor__swatches button,.generated-cover-editor__utility{transition:border-color .2s var(--ff-ease-out)}.generated-cover-editor__swatches .generated-cover-editor__clear{color:var(--ff-media-control-text-strong);cursor:pointer;font:600 12px var(--ff-font-ui);background:0 0;border:0;align-self:center;padding:4px;text-decoration:none}.generated-cover-editor__swatches .generated-cover-editor__clear:hover{color:var(--ff-surface)}.generated-cover-editor__clear:disabled{cursor:default;opacity:.45}.image-editor-screen{grid-template-rows:minmax(0,1fr) auto;align-items:stretch;padding:72px 0 0}.generated-cover-editor{align-items:stretch;overflow:hidden}.image-editor-content{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;min-height:0;padding:0 16px 16px;display:flex;overflow-y:auto}.image-editor-content .image-editor-canvas{flex:none}.image-editor-content .generated-cover-editor__preview{align-self:center}.image-editor-controls{flex:none;min-height:300px}.generated-cover-editor__controls{flex-direction:column;justify-content:flex-start;align-items:stretch;height:300px;display:flex;overflow-x:clip}.image-editor-filter-panel,.image-editor-crop-controls{background:0 0;border:0;border-radius:0;margin-top:16px;padding:0}.image-editor-tab-row{border-bottom:1px solid #ffffff1a;padding:6px 0 10px}.image-editor-actions .image-editor-cancel{border-color:color-mix(in srgb, var(--ff-surface) 35%, transparent);color:var(--ff-surface);background:0 0}.image-editor-actions .image-editor-cancel:hover{background:var(--ff-media-scrim);border-color:color-mix(in srgb, var(--ff-surface) 35%, transparent);color:var(--ff-surface)}.image-editor-tab-row .image-editor-reset:hover{background:var(--ff-media-scrim);color:inherit}.image-editor-filter-panel,.image-editor-crop-controls,.generated-cover-editor__controls>section{animation:image-editor-tab-enter .3s var(--ff-ease-out)}@keyframes image-editor-tab-enter{0%{opacity:0}to{opacity:1}}.image-editor-crop-heading{grid-template-columns:minmax(0,1fr);grid-template-areas:"label""helper"}.image-editor-aspects{gap:6px}.image-editor-aspects button{border-width:2px;padding-inline:10px}.image-editor-tabs{background:0 0;border:0;border-radius:0;max-width:none;padding:0;position:relative}.image-editor-tabs:after{background:var(--ff-surface);content:"";height:2px;transition:transform var(--ff-duration-base) var(--ff-ease-spring);width:50%;position:absolute;bottom:-10px;left:0;transform:translate(0)}.image-editor-tabs--crop:after,.image-editor-tabs--adjust:after{transform:translate(100%)}.image-editor-tabs button{color:var(--ff-media-control-text-muted);transition:color var(--ff-duration-fast) var(--ff-ease-out);border-radius:0;padding:0 12px}.image-editor-tabs button:hover{color:var(--ff-media-control-text-strong)}.image-editor-tabs button[aria-selected=true]{color:var(--ff-media-control-text-strong);background:0 0}.image-editor-actions{background:color-mix(in srgb, var(--ff-night-start) 92%, black);box-sizing:border-box;max-width:none;padding:12px 16px max(16px, env(safe-area-inset-bottom));border-top:1px solid #ffffff1a;grid-row:2;justify-content:flex-end;width:100%;margin:0}.auth-screen{isolation:isolate;background:var(--ff-night-gradient);min-height:100dvh;color:var(--ff-ink);--ff-firefly-light:var(--ff-firefly-gold);--ff-firefly-fill:var(--ff-firefly-realistic-fill);--ff-firefly-falloff:var(--ff-firefly-realistic-falloff);place-items:center;padding:24px;display:grid;position:relative;overflow-x:clip}.auth-screen .ff-firefly:after{background:radial-gradient(ellipse at 100% 50%, color-mix(in srgb, var(--ff-firefly-core) 65%, transparent), color-mix(in srgb, var(--ff-firefly-gold) 25%, transparent) 35%, transparent 76%);pointer-events:none;height:3px}.auth-card{--ff-firefly-fill:var(--ff-signal);--ff-firefly-light:var(--ff-signal);--ff-firefly-falloff:var(--ff-firefly-simple-falloff)}.auth-card .ff-firefly:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ff-signal) 40%, transparent));height:2px}.calendar-sync-invitation .auth-firefly,.app-install__firefly{--ff-firefly-light:var(--ff-firefly-gold);--ff-firefly-fill:var(--ff-firefly-realistic-fill);--ff-firefly-falloff:var(--ff-firefly-realistic-falloff)}.auth-firefly:before,.auth-ambient-glow:before,.auth-quick-glow:before,.capture-fireflies i:before,.favorite-burst__firefly:before,.app-install__firefly:before{background:var(--ff-firefly-falloff);content:"";pointer-events:none;position:absolute;inset:-18px}.auth-firefly-layer{z-index:0;pointer-events:none;position:absolute;inset:0}.auth-firefly-intro{left:var(--auth-firefly-x);top:var(--auth-firefly-y);opacity:0;animation:auth-firefly-intro-enter .9s var(--ff-ease-out) var(--auth-firefly-enter-delay) both;position:absolute}.auth-firefly-intro--drifting{animation:auth-firefly-intro-enter .9s var(--ff-ease-out) var(--auth-firefly-enter-delay) both, auth-firefly-drift 12s cubic-bezier(.45, 0, .55, 1) var(--auth-firefly-drift-delay) infinite alternate}.auth-firefly-travel{display:block}.auth-firefly-travel.is-travelling .auth-firefly,.auth-quick-glow-travel.is-travelling .auth-quick-glow{animation-play-state:paused}.auth-firefly{background:var(--ff-firefly-fill,var(--ff-signal));width:7px;height:7px;box-shadow:0 0 12px 2px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 49%, transparent), 0 0 28px 7px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 29%, transparent);opacity:.9;transform:translate(var(--auth-firefly-flee-x), var(--auth-firefly-flee-y));transition:transform .42s var(--ff-ease-out);animation:auth-firefly-appear 24s var(--ff-ease-out) infinite, auth-firefly-pulse var(--auth-firefly-pulse-duration) ease-in-out infinite;animation-delay:var(--auth-firefly-cycle-delay), var(--auth-firefly-pulse-delay);border-radius:50%;display:block;position:relative}.auth-firefly--steady{animation:auth-firefly-appear 24s var(--ff-ease-out) infinite;animation-delay:var(--auth-firefly-cycle-delay)}.auth-ambient-glow{left:var(--auth-ambient-x);top:var(--auth-ambient-y);background:var(--ff-firefly-fill,var(--ff-signal));width:5px;height:5px;box-shadow:0 0 7px 1px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 22%, transparent), 0 0 16px 4px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 12%, transparent);opacity:0;animation:auth-ambient-glow 6s var(--ff-ease-out) infinite;animation-delay:var(--auth-ambient-delay);border-radius:50%;position:absolute}.auth-quick-glow-travel{left:var(--auth-quick-x);top:var(--auth-quick-y);position:absolute}.auth-quick-glow{background:var(--ff-firefly-fill,var(--ff-signal));width:5px;height:5px;box-shadow:0 0 6px 1px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 18%, transparent), 0 0 14px 3px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 10%, transparent);opacity:0;animation:auth-quick-glow 6s var(--ff-ease-out) infinite;animation-delay:var(--auth-quick-delay);border-radius:50%;display:block;position:relative}.auth-stack{z-index:1;gap:12px;width:min(100%,400px);display:grid;position:relative}.auth-card{border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);background:var(--ff-auth-card-surface);width:100%;box-shadow:var(--ff-shadow-card);animation:auth-slide-down-enter var(--ff-duration-slow) var(--ff-ease-out) both;gap:16px;padding:32px;display:grid}.auth-brand{justify-self:center;font-size:2rem}.invite-card{text-align:center;min-height:320px}.invite-card .auth-brand{font-size:21px}.invite-card__heading{justify-content:center;align-items:center;gap:10px;display:flex}.invite-card__heading-icon{color:var(--ff-ink);background:#d4dddb;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.invite-card__heading-icon svg{width:22px;height:22px}.invite-card__heading h1{color:var(--ff-ink);font:600 1.5rem/1.1 var(--ff-font-display)}.invite-card__copy{color:var(--ff-muted);font-size:.95rem;line-height:1.55}.invite-card__inviter{color:var(--ff-ink)}.invite-card__inviter svg{vertical-align:-.18em;width:18px;height:18px;margin-right:5px}.invite-card__inviter strong{font-weight:700}.invite-card .ff-button{justify-content:center;align-items:center;gap:6px;display:inline-flex;position:relative}.invite-card .ff-button svg{position:absolute;right:20px}.auth-card h1,.auth-card p{margin:0}.auth-intro{color:var(--ff-muted);text-align:center;min-height:1.45em;display:grid;overflow:hidden}.auth-intro-copy{opacity:0;transition:opacity var(--ff-duration-base) var(--ff-ease-out), transform var(--ff-duration-base) var(--ff-ease-out);grid-area:1/1;transform:translate(-28px)}.auth-card[data-mode=sign-in] .auth-intro-copy--sign-in,.auth-card[data-mode=sign-up] .auth-intro-copy--sign-up{opacity:1;transform:translate(0)}.auth-card form{gap:12px;display:grid}.auth-card form>.ff-button{margin-top:12px}.auth-form-field{gap:2px;display:grid}.auth-form-field label{font-size:14px;font-weight:600}.auth-field-label{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.auth-field-label>span{color:var(--ff-danger);text-align:right;margin-left:auto;font-size:.75rem;font-weight:600}.auth-card input{width:100%;height:var(--ff-control-height);min-height:var(--ff-control-height);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);background:var(--ff-auth-field);color:var(--ff-ink);font-family:var(--ff-font-ui);padding:10px 12px 10px 44px;font-size:16px;font-weight:500}.auth-card input::placeholder{color:var(--ff-muted);opacity:.72}.auth-card input:-webkit-autofill{font-family:var(--ff-font-ui);-webkit-text-fill-color:var(--ff-ink);-webkit-box-shadow:0 0 0 1000px var(--ff-auth-field) inset;box-shadow:0 0 0 1000px var(--ff-auth-field) inset;caret-color:var(--ff-ink);font-size:16px;font-weight:500}.auth-card input:-webkit-autofill:hover{font-family:var(--ff-font-ui);-webkit-text-fill-color:var(--ff-ink);-webkit-box-shadow:0 0 0 1000px var(--ff-auth-field) inset;box-shadow:0 0 0 1000px var(--ff-auth-field) inset;caret-color:var(--ff-ink);font-size:16px;font-weight:500}.auth-card input:-webkit-autofill:focus{font-family:var(--ff-font-ui);-webkit-text-fill-color:var(--ff-ink);-webkit-box-shadow:0 0 0 1000px var(--ff-auth-field) inset;box-shadow:0 0 0 1000px var(--ff-auth-field) inset;caret-color:var(--ff-ink);font-size:16px;font-weight:500}.auth-card input:-webkit-autofill:focus-visible{box-shadow:0 0 0 2px var(--ff-focus-glow), 0 0 14px var(--ff-focus-glow), 0 0 0 1000px var(--ff-auth-field) inset}.auth-field{display:block;position:relative}.auth-field>svg{width:18px;height:18px;color:var(--ff-muted);pointer-events:none;transition:color var(--ff-duration-fast) var(--ff-ease-out);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.auth-field:focus-within>svg{color:var(--ff-primary)}.auth-card.has-error .auth-field input,.auth-card input[aria-invalid=true]{border-color:var(--ff-danger)}.auth-card.has-error .auth-field input:focus-visible,.auth-card input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ff-danger) 28%, transparent), 0 0 14px color-mix(in srgb, var(--ff-danger) 28%, transparent)}.auth-card.has-error .auth-field>svg{color:var(--ff-danger)}.auth-password-input{padding-right:52px}.auth-password-placeholder{color:var(--ff-muted);font:inherit;opacity:.72;pointer-events:none;align-items:center;display:grid;position:absolute;inset:0 52px 0 44px;overflow:hidden}.auth-password-placeholder>span,.auth-submit-copy>span{opacity:0;transition:opacity var(--ff-duration-base) var(--ff-ease-out);grid-area:1/1}.auth-card[data-mode=sign-in] .auth-password-placeholder__sign-in,.auth-card[data-mode=sign-up] .auth-password-placeholder__sign-up,.auth-card[data-mode=sign-in] .auth-submit-copy--sign-in,.auth-card[data-mode=sign-up] .auth-submit-copy--sign-up{opacity:1}:-webkit-any(.auth-password-input:-webkit-autofill+.auth-password-placeholder,.auth-password-input:autofill+.auth-password-placeholder){display:none}:is(.auth-password-input:autofill+.auth-password-placeholder,.auth-password-input:autofill+.auth-password-placeholder){display:none}.auth-password-toggle{width:var(--ff-control-height);height:var(--ff-control-height);min-height:var(--ff-control-height);color:var(--ff-muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:1px;right:1px}.auth-password-toggle:hover{color:var(--ff-primary)}.auth-password-toggle svg{width:18px;height:18px}.auth-tooltip{border-radius:var(--ff-radius-xs);background:var(--ff-tooltip);color:var(--ff-tooltip-contrast);padding:6px 9px;font-size:.75rem;font-weight:600;line-height:1;box-shadow:0 4px 12px #0000002e}.auth-tooltip-arrow{fill:var(--ff-tooltip)}.auth-card button{min-height:var(--ff-control-height);font:inherit;cursor:pointer}.auth-submit-copy{place-items:center;display:grid}.auth-provider,.auth-toggle{color:var(--ff-ink)}.auth-screen .auth-toggle{color:#fff9;transition:color var(--ff-duration-fast) var(--ff-ease-out)}.auth-screen .auth-toggle:hover{color:#fffc}.auth-provider{justify-content:center;align-items:center;gap:6px;display:inline-flex}.auth-provider:hover{background:color-mix(in srgb, var(--ff-primary) 7%, var(--ff-surface))}@media (width<=430px){.auth-provider.ff-button--wide{white-space:nowrap;padding-inline:16px}}@media (width<=375px){.auth-card .ff-button{font-size:14px}}.google-mark{flex:none;width:18px;height:18px}.auth-toggle{border-radius:var(--ff-radius-pill);color:var(--ff-ink);cursor:pointer;background:0 0;border:0;justify-self:center;min-height:auto;padding:4px 8px;font-size:.875rem;text-decoration:underline}.auth-error{border-radius:var(--ff-radius-sm);background:color-mix(in srgb, var(--ff-danger) 90%, transparent);width:100%;color:var(--ff-danger-contrast);animation:auth-slide-down-enter var(--ff-duration-slow) var(--ff-ease-out) both;justify-content:flex-start;align-items:center;gap:12px;margin:0;padding:12px 16px;font-size:.875rem;font-weight:600;display:flex;position:absolute;bottom:calc(100% + 12px);left:0}.auth-error>svg{flex:none;width:20px;height:20px}.auth-error>span{flex:1}.auth-error-dismiss{width:var(--ff-control-height);height:var(--ff-control-height);min-height:var(--ff-control-height);color:var(--ff-danger-dismiss);cursor:pointer;transition:background var(--ff-duration-fast) var(--ff-ease-out), color var(--ff-duration-fast) var(--ff-ease-out);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin:-8px -12px -8px 0;padding:0;display:grid}.auth-error-dismiss:hover{color:var(--ff-danger-dismiss-hover)}.auth-error-dismiss svg{width:20px;height:20px}@keyframes auth-slide-down-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-firefly-appear{0%,74%,to{opacity:0}5%,66%{opacity:.9}}@keyframes auth-firefly-pulse{0%,to{box-shadow:0 0 4px 1px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 12%, transparent);filter:opacity(.05)brightness(.48)}50%{box-shadow:0 0 14px 3px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 58%, transparent), 0 0 32px 9px color-mix(in srgb, var(--ff-firefly-light,var(--ff-signal)) 36%, transparent);filter:opacity()brightness(1.12)}}@keyframes auth-firefly-intro-enter{0%{opacity:0}to{opacity:1}}@keyframes auth-ambient-glow{0%,20%,66%,to{opacity:0}34%,54%{opacity:.58}}@keyframes auth-quick-glow{0%,28%,50%,to{opacity:0}36%,44%{opacity:.5}}@keyframes auth-firefly-drift{0%{transform:translate(0,0)}to{transform:translate(3px,-4px)}}@media (prefers-reduced-motion:reduce){.auth-firefly-intro{opacity:1;animation:none!important}.auth-firefly{opacity:.72;transition:none;animation:none!important}.auth-firefly-intro:nth-child(n+5),.auth-ambient-glow,.auth-quick-glow{display:none}}.ff-tab-transition .main-content{view-transition-name:ff-tab-content}.ff-tab-transition .bottom-nav{view-transition-name:ff-tab-nav}.ff-tab-transition .app-header{view-transition-name:ff-tab-header}.ff-tab-transition::view-transition-group(ff-tab-header){z-index:3;animation:none;overflow:visible}.ff-tab-transition::view-transition-image-pair(ff-tab-header){overflow:visible}.ff-tab-transition::view-transition-old(ff-tab-header){display:none}.ff-tab-transition::view-transition-new(ff-tab-header){opacity:1;animation:none}.ff-tab-transition::view-transition-group(ff-tab-nav){z-index:2;animation:none}.ff-tab-transition::view-transition-old(ff-tab-nav){display:none}.ff-tab-transition::view-transition-new(ff-tab-nav){opacity:1;animation:none}.ff-tab-transition::view-transition-old(root){animation:none}.ff-tab-transition::view-transition-new(root){animation:none}.ff-tab-transition::view-transition-group(ff-tab-content){animation-duration:var(--ff-duration-tab-crossfade)}.ff-tab-transition::view-transition-old(ff-tab-content){animation:ff-tab-fade-out var(--ff-duration-tab-crossfade) linear both}.ff-tab-transition::view-transition-new(ff-tab-content){animation:ff-tab-fade-in var(--ff-duration-tab-crossfade) linear both}@keyframes ff-tab-fade-out{0%{opacity:1}to{opacity:0}}@keyframes ff-tab-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ff-status-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.offline-chip{animation:none}}@media (width<420px){.family-settings>.ff-tabs{gap:8px;padding-inline:16px}.family-settings>.ff-tabs button{letter-spacing:0;font-size:.72rem}}@media (width<=719px){.family-settings,.add-sheet,.detail-sheet,.share-dialog{border-bottom:var(--ff-sheet-overscan) solid transparent;margin-bottom:calc(-1 * var(--ff-sheet-overscan));background-clip:border-box}.family-settings{height:calc(100dvh + var(--ff-sheet-overscan))}.add-sheet,.detail-sheet{height:calc(100dvh - 28px + var(--ff-sheet-overscan));max-height:calc(100dvh - 28px + var(--ff-sheet-overscan))}}@media (width<=640px){.capture-sheet,.capture-night,.about-dialog{border-bottom:var(--ff-sheet-overscan) solid transparent;margin-bottom:calc(-1 * var(--ff-sheet-overscan));background-clip:border-box}.about-dialog{height:calc(100dvh + var(--ff-sheet-overscan))}}@media (pointer:coarse){.family-settings :is(input:not([type=checkbox]):not([type=radio]),textarea,select){font-size:max(16px,1rem)}}.settings-archive-select{margin-bottom:24px}.settings-panel--account{--settings-account-action-width:11rem}.settings-panel--account>.account-row:first-child{padding-top:0}.settings-panel--account .account-password>.ff-button,.settings-panel--account .account-row>.ff-button{width:var(--settings-account-action-width);white-space:nowrap}.settings-panel--account>:is(.account-row,.account-section){border-bottom-color:#0000;position:relative}.settings-panel--account>:is(.account-row,.account-section):after{background:var(--ff-border);box-shadow:-28px 0 0 var(--ff-border), 28px 0 0 var(--ff-border);content:"";pointer-events:none;height:1px;position:absolute;bottom:-1px;left:0;right:0}@media (width<=719px){.settings-panel--account .account-password>.ff-button,.settings-panel--account .account-row>.ff-button{width:100%}}.family-settings>.ff-tabs{gap:8px;overflow-x:auto}.family-settings>.ff-tabs button{min-height:44px;padding-inline:10px}.email-verification-reminder{background:var(--ff-action-hover-soft);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);align-items:center;gap:12px;margin:12px 0;padding:12px 16px;font-size:.875rem;display:flex}.email-verification-reminder>span{flex:1}.email-verification-reminder>svg{color:var(--ff-primary);flex:none}.email-verification-reminder button{flex:none}@media (width<=719px){.email-verification-reminder{flex-wrap:wrap}}.account-verification-card{background:var(--ff-action-hover-soft);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);margin-top:16px;padding:16px}.account-email-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.account-email-heading h4{margin:0}.account-email-verified{color:var(--ff-rsvp-going);flex:none;align-items:center;gap:4px;font-size:.78rem;font-weight:600;display:inline-flex}.google-account__unlink-tooltip{max-width:min(260px,100vw - 32px);max-height:var(--radix-tooltip-content-available-height);z-index:1000;overflow-y:auto}.ff-tab-transition .main-content [style*=view-transition-name]{view-transition-name:none!important}.ff-tab-transition .profile-menu{view-transition-name:ff-tab-profile-menu}.ff-tab-transition::view-transition-group(ff-tab-profile-menu){z-index:4;animation:none;overflow:visible}.ff-tab-transition::view-transition-old(ff-tab-profile-menu){display:none}.ff-tab-transition::view-transition-new(ff-tab-profile-menu){opacity:1;animation:none}@media (prefers-reduced-motion:reduce){.add-fab{transition:none}.add-fab:active{transform:translateY(-20px)}}.tab-crossfade-outgoing{pointer-events:none;z-index:1;position:fixed;inset:0;overflow:hidden}.tab-crossfade-outgoing .main-content{pointer-events:none}.tab-crossfade-outgoing .app-install,.tab-crossfade-outgoing .calendar-sync-invitation{visibility:hidden}.ff-button--save-event{position:relative}.event-save-spinner{color:var(--ff-switch-thumb);opacity:.7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.settings-panel--account>:is(.account-row,.account-section):last-child:after{content:none}.calendar-grid button:active .calendar-day-content{background:color-mix(in srgb, var(--ff-primary) 16%, var(--ff-surface));transform:scale(.96)}.calendar-grid button.is-selected:active .calendar-day-content{background:var(--ff-primary-hover)}.calendar-grid button.is-today:not(.is-selected):active .calendar-day-content{background:color-mix(in srgb, var(--ff-signal-soft) 44%, var(--ff-surface-subtle))}@media (prefers-reduced-motion:reduce){.calendar-day-content{transition:none}.calendar-grid button:active .calendar-day-content{transform:none}}.avatar-button:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.avatar-button{transition:none}.avatar-button:active{transform:none}}.brand:active{transform:translateY(2px)scale(.96)}@media (prefers-reduced-motion:reduce){.brand{transition:none}.brand:active{transform:translateY(2px)}}.brand-firefly-burst{pointer-events:none;position:absolute;top:50%;left:60%}@media (prefers-reduced-motion:reduce){.brand-firefly-burst{display:none}}.brand{isolation:isolate}.brand:before{content:"";border-radius:var(--ff-radius-pill);background:var(--ff-action-hover-soft);opacity:0;pointer-events:none;z-index:-1;transition:opacity var(--ff-duration-fast) var(--ff-ease-out);position:absolute;inset:-8px -12px}.brand:active:before{opacity:1}@media (prefers-reduced-motion:reduce){.brand:before{transition:none}}.share-dialog__preview.plan-card--repeat .plan-artwork-wrap{border-radius:calc(var(--ff-radius-md) - 1px) 0 0 calc(var(--ff-radius-md) - 1px)}.action-menu--portal button{padding-right:20px}.plan-card--past{--ff-artwork-grayscale:1;background:color-mix(in srgb, var(--ff-surface) 50%, transparent)}.plan-card--past .plan-body,.plan-card--past .plan-footer{background:0 0}.plan-card--past .plan-top h2,.plan-card--past .plan-body,.plan-card--past .plan-body button,.plan-card--past .plan-footer,.plan-card--past .plan-footer a,.plan-card--past .date-block strong,.plan-card--past .date-block span,.plan-card--past .plan-top p,.plan-card--past .event-meta,.plan-card--past .event-meta__separator,.plan-card--past .event-meta__location{color:var(--ff-past-event-text)}.plan-card--past .plan-artwork-wrap>:not(.past-event-badge):not(.plan-artwork-rsvp){filter:grayscale();opacity:.8}.past-event-badge{pointer-events:none;z-index:2;position:absolute;bottom:12px;right:12px}.past-event-badge svg{flex:none}.plan-artwork-rsvp .past-event-badge,.detail-artwork-rsvp .past-event-badge{position:static}.plan-card--repeat .past-event-badge{bottom:4px;right:4px}.rsvp-chip,.past-event-badge{box-sizing:border-box;height:24px}.rsvp-chip .rsvp-dot:not([class*=rsvp-dot--]){border-color:var(--ff-muted)}.sheet-drag-handle{display:none}@media (width<=719px){.sheet-drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;height:32px;display:flex}.overlay--event-detail .detail-close{top:47px}.overlay--event-detail[data-sheet-dragging] .sheet-drag-handle{cursor:grabbing}.sheet-drag-handle>span{background:var(--ff-border-strong);border-radius:var(--ff-radius-pill);width:36px;height:4px}.overlay--event-detail{background:color-mix(in srgb, var(--ff-overlay-scrim) calc(var(--sheet-backdrop-strength,1) * 100%), transparent);transition:background var(--ff-duration-base) var(--ff-ease-out)}.overlay--event-detail>.detail-sheet{translate:0 var(--sheet-drag-y,0px);transition:translate .25s var(--ff-ease-spring)}.overlay--event-detail[data-sheet-dragging]>.detail-sheet,.overlay--event-detail[data-sheet-dragging]{transition:none}}@media (prefers-reduced-motion:reduce){.overlay--event-detail>.detail-sheet{transition:none}}.calendar-event-card__statuses{align-items:center;gap:8px;display:flex}.calendar-event-card__statuses .past-event-badge{position:static}@keyframes sheet-swipe-dismiss{0%{opacity:1;transform:translateY(0)}to{transform:translateY(calc(100% - var(--sheet-drag-y,0px) + 32px));opacity:0}}@media (width<=719px){.overlay--event-detail.overlay--exit[data-sheet-swipe-dismiss]>.detail-sheet{animation:sheet-swipe-dismiss var(--ff-duration-modal) var(--ff-ease-out) both;transition:none}.swipeable-mobile-sheet{translate:0 var(--sheet-drag-y,0px);transition:translate .25s var(--ff-ease-spring)}.swipeable-mobile-sheet[data-swipe-dragging]{transition:none}.swipeable-mobile-sheet>.sheet-drag-handle{min-height:32px}.swipeable-mobile-sheet[data-swipe-finished]{animation:none!important}.capture-sheet>.sheet-drag-handle,.share-dialog>.sheet-drag-handle{margin-top:-16px}}@media (width>=641px){.sheet-drag-handle--640{display:none}}@media (prefers-reduced-motion:reduce){.swipeable-mobile-sheet{transition:none}}@media (width<=719px){.add-sheet .add-sheet__header{gap:8px;padding:4px 12px 12px 24px}.add-sheet .add-sheet__header .ff-dialog-close{flex:none;position:static}}
