:root{--ion-color-primary:#0054e9;--ion-color-primary-rgb:0, 84, 233;--ion-color-primary-contrast:#fff;--ion-color-primary-contrast-rgb:255, 255, 255;--ion-color-primary-shade:#004acd;--ion-color-primary-tint:#1a65eb;--ion-color-secondary:#0163aa;--ion-color-secondary-rgb:1, 99, 170;--ion-color-secondary-contrast:#fff;--ion-color-secondary-contrast-rgb:255, 255, 255;--ion-color-secondary-shade:#015796;--ion-color-secondary-tint:#1a73b3;--ion-color-tertiary:#6030ff;--ion-color-tertiary-rgb:96, 48, 255;--ion-color-tertiary-contrast:#fff;--ion-color-tertiary-contrast-rgb:255, 255, 255;--ion-color-tertiary-shade:#542ae0;--ion-color-tertiary-tint:#7045ff;--ion-color-success:#2dd55b;--ion-color-success-rgb:45, 213, 91;--ion-color-success-contrast:#000;--ion-color-success-contrast-rgb:0, 0, 0;--ion-color-success-shade:#28bb50;--ion-color-success-tint:#42d96b;--ion-color-warning:#ffc409;--ion-color-warning-rgb:255, 196, 9;--ion-color-warning-contrast:#000;--ion-color-warning-contrast-rgb:0, 0, 0;--ion-color-warning-shade:#e0ac08;--ion-color-warning-tint:#ffca22;--ion-color-danger:#c5000f;--ion-color-danger-rgb:197, 0, 15;--ion-color-danger-contrast:#fff;--ion-color-danger-contrast-rgb:255, 255, 255;--ion-color-danger-shade:#ad000d;--ion-color-danger-tint:#cb1a27;--ion-color-light:#f4f5f8;--ion-color-light-rgb:244, 245, 248;--ion-color-light-contrast:#000;--ion-color-light-contrast-rgb:0, 0, 0;--ion-color-light-shade:#d7d8da;--ion-color-light-tint:#f5f6f9;--ion-color-medium:#636469;--ion-color-medium-rgb:99, 100, 105;--ion-color-medium-contrast:#fff;--ion-color-medium-contrast-rgb:255, 255, 255;--ion-color-medium-shade:#57585c;--ion-color-medium-tint:#737478;--ion-color-dark:#222428;--ion-color-dark-rgb:34, 36, 40;--ion-color-dark-contrast:#fff;--ion-color-dark-contrast-rgb:255, 255, 255;--ion-color-dark-shade:#1e2023;--ion-color-dark-tint:#383a3e}html.ios{--ion-default-font:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font:"Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font:-apple-system-body;--ion-font-family:var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width:768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity:.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity:0;--box-shadow:none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base:var(--ion-color-primary,#0054e9)!important;--ion-color-base-rgb:var(--ion-color-primary-rgb,0, 84, 233)!important;--ion-color-contrast:var(--ion-color-primary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-primary-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-primary-shade,#004acd)!important;--ion-color-tint:var(--ion-color-primary-tint,#1a65eb)!important}.ion-color-secondary{--ion-color-base:var(--ion-color-secondary,#0163aa)!important;--ion-color-base-rgb:var(--ion-color-secondary-rgb,1, 99, 170)!important;--ion-color-contrast:var(--ion-color-secondary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-secondary-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-secondary-shade,#015796)!important;--ion-color-tint:var(--ion-color-secondary-tint,#1a73b3)!important}.ion-color-tertiary{--ion-color-base:var(--ion-color-tertiary,#6030ff)!important;--ion-color-base-rgb:var(--ion-color-tertiary-rgb,96, 48, 255)!important;--ion-color-contrast:var(--ion-color-tertiary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-tertiary-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-tertiary-shade,#542ae0)!important;--ion-color-tint:var(--ion-color-tertiary-tint,#7045ff)!important}.ion-color-success{--ion-color-base:var(--ion-color-success,#2dd55b)!important;--ion-color-base-rgb:var(--ion-color-success-rgb,45, 213, 91)!important;--ion-color-contrast:var(--ion-color-success-contrast,#000)!important;--ion-color-contrast-rgb:var(--ion-color-success-contrast-rgb,0, 0, 0)!important;--ion-color-shade:var(--ion-color-success-shade,#28bb50)!important;--ion-color-tint:var(--ion-color-success-tint,#42d96b)!important}.ion-color-warning{--ion-color-base:var(--ion-color-warning,#ffc409)!important;--ion-color-base-rgb:var(--ion-color-warning-rgb,255, 196, 9)!important;--ion-color-contrast:var(--ion-color-warning-contrast,#000)!important;--ion-color-contrast-rgb:var(--ion-color-warning-contrast-rgb,0, 0, 0)!important;--ion-color-shade:var(--ion-color-warning-shade,#e0ac08)!important;--ion-color-tint:var(--ion-color-warning-tint,#ffca22)!important}.ion-color-danger{--ion-color-base:var(--ion-color-danger,#c5000f)!important;--ion-color-base-rgb:var(--ion-color-danger-rgb,197, 0, 15)!important;--ion-color-contrast:var(--ion-color-danger-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-danger-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-danger-shade,#ad000d)!important;--ion-color-tint:var(--ion-color-danger-tint,#cb1a27)!important}.ion-color-light{--ion-color-base:var(--ion-color-light,#f4f5f8)!important;--ion-color-base-rgb:var(--ion-color-light-rgb,244, 245, 248)!important;--ion-color-contrast:var(--ion-color-light-contrast,#000)!important;--ion-color-contrast-rgb:var(--ion-color-light-contrast-rgb,0, 0, 0)!important;--ion-color-shade:var(--ion-color-light-shade,#d7d8da)!important;--ion-color-tint:var(--ion-color-light-tint,#f5f6f9)!important}.ion-color-medium{--ion-color-base:var(--ion-color-medium,#636469)!important;--ion-color-base-rgb:var(--ion-color-medium-rgb,99, 100, 105)!important;--ion-color-contrast:var(--ion-color-medium-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-medium-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-medium-shade,#57585c)!important;--ion-color-tint:var(--ion-color-medium-tint,#737478)!important}.ion-color-dark{--ion-color-base:var(--ion-color-dark,#222428)!important;--ion-color-base-rgb:var(--ion-color-dark-rgb,34, 36, 40)!important;--ion-color-contrast:var(--ion-color-dark-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-dark-contrast-rgb,255, 255, 255)!important;--ion-color-shade:var(--ion-color-dark-shade,#1e2023)!important;--ion-color-tint:var(--ion-color-dark-tint,#383a3e)!important}.ion-page{contain:layout size style;z-index:0;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{contain:layout style;height:100%;position:relative}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding:20px}@supports (padding-top:20px){html{--ion-safe-area-top:var(--ion-statusbar-padding)}}@supports (padding-top:env(safe-area-inset-top)){html{--ion-safe-area-top:var(--safe-area-inset-top,env(safe-area-inset-top));--ion-safe-area-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom));--ion-safe-area-left:var(--safe-area-inset-left,env(safe-area-inset-left));--ion-safe-area-right:var(--safe-area-inset-right,env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translate(0,0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow:hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-right-radius:8px;border-bottom-left-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width:0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:transform .3s cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion:reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width:0px;--inner-border-width:0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width:fit-content;--height:fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){height:0;display:none}b,strong{font-weight:700}img{max-width:100%}hr{box-sizing:content-box;border-width:0;height:1px}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{height:auto;font:inherit;color:inherit;overflow:auto}textarea::placeholder{padding-left:2px}form,input,optgroup,select{font:inherit;color:inherit;margin:0}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{font-family:inherit;font-style:inherit;font-variant:inherit;text-transform:none;cursor:pointer;-webkit-appearance:button;border:0;border-radius:0;padding:0;line-height:1}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}input::-moz-focus-inner{border:0;padding:0}input[type=number]::-webkit-inner-spin-button{height:auto}input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:#0000;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%;height:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0;position:fixed;overflow:hidden;transform:translateZ(0)}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout:none){html{font:var(--ion-dynamic-font,16px var(--ion-font-family))}}a{color:var(--ion-color-primary,#0054e9);background-color:#0000}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}@font-face{font-family:Pretendard Variable;font-style:normal;font-weight:45 920;font-display:swap;src:url(/fonts/PretendardVariable.woff2)format("woff2-variations")}:root{--app-color-primary:#4b2c57;--app-color-primary-rgb:75, 44, 87;--app-color-on-primary:#fff;--app-color-primary-container:#eee7f8;--app-color-on-primary-container:#35203d;--app-color-background:#fbfafc;--app-color-surface:#fff;--app-color-surface-low:#f5f1f7;--app-color-surface-muted:#f0ebf2;--app-color-surface-high:#e8dfea;--app-color-text:#281c2d;--app-color-text-muted:#6a6070;--app-color-outline:#e8e0eb;--app-color-outline-strong:#8d8194;--app-color-success:#2f7d57;--app-color-success-container:#d9f2e4;--app-color-warning:#7a5900;--app-color-warning-container:#ffefc3;--app-color-error:#ba1a1a;--app-color-danger:var(--app-color-error);--app-tag-restaurant:#ffb7b2;--app-tag-travel:#b2cefe;--app-tag-hobby:#b2e2d2;--app-tag-shopping:#d1b2fe;--app-tag-other:#ded9e1;--app-font-pretendard:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;--app-font-sans:var(--app-font-pretendard);--app-font-display:var(--app-font-sans);--app-space-1:4px;--app-space-2:8px;--app-space-3:12px;--app-space-4:16px;--app-space-5:20px;--app-space-6:24px;--app-space-8:32px;--app-radius-sm:8px;--app-radius-md:20px;--app-radius-lg:28px;--app-shadow-card:0 6px 24px #3f301c0a;--app-font-display-size:2rem;--app-font-display-line:2.5rem;--app-font-title-1-size:1.5rem;--app-font-title-1-line:2rem;--app-font-title-2-size:1.25rem;--app-font-title-2-line:1.75rem;--ion-color-primary:var(--app-color-primary);--ion-color-primary-rgb:var(--app-color-primary-rgb);--ion-color-primary-contrast:var(--app-color-on-primary);--ion-color-primary-contrast-rgb:255, 255, 255;--ion-color-primary-shade:#42274d;--ion-color-primary-tint:#5d4168;--ion-background-color:var(--app-color-background);--ion-text-color:var(--app-color-text);--ion-font-family:var(--app-font-sans)}:root[data-app-font=hi-melody]{--app-font-sans:"Hi Melody", var(--app-font-pretendard)}:root[data-app-font=jua]{--app-font-sans:Jua, var(--app-font-pretendard)}:root[data-app-font=ibm-plex-sans-kr]{--app-font-sans:"IBM Plex Sans KR", var(--app-font-pretendard)}.app-error{text-align:center;max-width:460px;margin:15vh auto;padding:24px}.app-error h1{font-size:1.5rem}.app-error p{color:var(--app-color-text-muted);margin-block:16px 24px}html,body,#root,ion-app{background:var(--app-color-background);min-height:100%}*{box-sizing:border-box}body{color:var(--app-color-text);font-family:var(--app-font-sans);-webkit-tap-highlight-color:transparent;margin:0}button,input{font:inherit}button{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-content{--background:var(--app-color-background)}.app-header{box-shadow:none}.app-header:after{display:none}.app-header ion-toolbar{--background:var(--app-color-background);--border-color:var(--app-color-outline);--border-style:solid;--border-width:0 0 1px;--color:var(--app-color-primary);--min-height:4rem;--padding-start:var(--app-space-5);--padding-end:var(--app-space-3)}.app-header ion-title{width:100%;height:100%;color:var(--app-color-primary);letter-spacing:-.035em;text-align:center;pointer-events:none;padding-inline:64px;font-family:Georgia,Times New Roman,serif;font-size:1.75rem;font-style:italic;font-weight:400;position:absolute;inset:0}.app-header__brand{white-space:nowrap;align-items:baseline;gap:6px;display:inline-flex}.app-header__plus-badge{border:1px solid color-mix(in srgb, var(--app-color-primary) 18%, transparent);color:var(--app-color-primary);background:var(--app-color-primary-container);font-family:var(--app-font-sans);letter-spacing:.08em;border-radius:999px;padding:4px 6px 3px;font-size:.5625rem;font-style:normal;font-weight:800;line-height:1;transform:translateY(-2px)}.app-header__notifications{position:relative}.app-header__notification-count{border:2px solid var(--app-color-background);color:#fff;background:var(--app-color-danger);border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.6rem;font-weight:800;line-height:1;display:grid;position:absolute;top:2px;right:1px}.icon-button{width:40px;height:40px;color:var(--app-color-text-muted);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;transition:background-color .18s,transform .18s;display:inline-grid}.icon-button:active{transform:scale(.94)}.icon-button:hover{background:var(--app-color-surface-low)}.icon-button ion-icon{font-size:1.4375rem}.app-header__notifications{color:var(--app-color-primary)}.content-shell{width:min(100%,768px);min-height:100%;padding:var(--app-space-8) var(--app-space-5) calc(var(--app-space-8) + env(safe-area-inset-bottom));margin:0 auto}.content-shell h1,.content-shell h2,.content-shell h3,.content-shell p{margin-top:0}:is(.bucket-page,.timeline-page,.anniversary-page) .page-title-row,.timeline-intro{margin-bottom:0}:is(.bucket-page,.timeline-page,.anniversary-page) h1,.timeline-intro h1{font-size:1.75rem;line-height:2.125rem}.page-title-row{justify-content:space-between;align-items:center;gap:var(--app-space-4);margin-bottom:var(--app-space-6);display:flex}.page-title-row h1,.timeline-intro h1{font-family:var(--app-font-display);font-size:var(--app-font-display-size);line-height:var(--app-font-display-line);letter-spacing:-.03em;margin:0}.eyebrow{margin-bottom:var(--app-space-1);color:var(--app-color-primary);letter-spacing:.02em;font-size:.75rem;font-weight:700}.surface-card{border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface)}.app-button{justify-content:center;align-items:center;gap:var(--app-space-2);min-height:44px;padding:10px var(--app-space-4);border:1px solid #0000;border-radius:12px;font-size:.875rem;font-weight:700;transition:background-color .18s,color .18s,transform .18s;display:inline-flex}.app-button:active{transform:scale(.98)}.app-button:disabled{cursor:not-allowed;opacity:.48}.app-button ion-icon{font-size:1.1875rem}.app-button--primary{color:var(--app-color-on-primary);background:var(--app-color-primary)}.app-button--secondary{border-color:var(--app-color-primary);color:var(--app-color-primary);background:0 0}.app-button--tertiary{color:var(--app-color-primary);background:var(--app-color-primary-container)}.app-button--destructive{color:#fff;background:var(--app-color-error)}.text-button{align-items:center;gap:var(--app-space-1);padding:var(--app-space-2);color:var(--app-color-primary);background:0 0;border:0;font-size:.875rem;font-weight:700;display:inline-flex}.text-button ion-icon{font-size:1rem}.section-heading{justify-content:space-between;align-items:center;gap:var(--app-space-3);min-height:32px;margin-bottom:var(--app-space-4);display:flex}.home-page .section-heading{margin-bottom:var(--app-space-3)}.section-heading h2{align-items:center;gap:var(--app-space-2);font-size:var(--app-font-title-2-size);line-height:var(--app-font-title-2-line);margin:0;display:flex}.section-heading h2 ion-icon{color:var(--app-color-primary);font-size:1.375rem}.tag-chip,.all-tag-chip{min-height:34px;color:var(--app-color-text);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:.8125rem;font-weight:700;display:inline-flex}button.tag-chip,.all-tag-chip{border-color:var(--app-color-outline);background:var(--app-color-surface)}.tag-chip ion-icon{font-size:.9375rem}.tag-chip--restaurant:not(button),.tag-chip--restaurant.is-selected{background:color-mix(in srgb, var(--app-tag-restaurant) 58%, white)}.tag-chip--travel:not(button),.tag-chip--travel.is-selected{background:color-mix(in srgb, var(--app-tag-travel) 62%, white)}.tag-chip--hobby:not(button),.tag-chip--hobby.is-selected{background:color-mix(in srgb, var(--app-tag-hobby) 62%, white)}.tag-chip--shopping:not(button),.tag-chip--shopping.is-selected{background:color-mix(in srgb, var(--app-tag-shopping) 56%, white)}.tag-chip--other:not(button),.tag-chip--other.is-selected{background:color-mix(in srgb, var(--app-tag-other) 68%, white)}button.tag-chip.is-selected,.all-tag-chip.is-selected{border-color:var(--app-color-primary);box-shadow:inset 0 0 0 1px var(--app-color-primary)}.all-tag-chip.is-selected{color:var(--app-color-on-primary);background:var(--app-color-primary)}.status-badge{min-height:26px;color:var(--app-color-text-muted);border:1px solid;border-radius:8px;align-items:center;gap:5px;padding:3px 8px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.status-badge ion-icon{font-size:.875rem}.status-badge--planned{color:var(--app-color-primary)}.status-badge--completed{color:var(--app-color-success)}.status-badge--paused{color:var(--app-color-warning)}.empty-state{min-height:300px;padding:var(--app-space-8) var(--app-space-5);border:1px dashed var(--app-color-outline);border-radius:var(--app-radius-lg);text-align:center;background:color-mix(in srgb, var(--app-color-surface) 80%, transparent);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{width:64px;height:64px;margin-bottom:var(--app-space-4);color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:50%;place-items:center;display:grid}.empty-state__icon ion-icon{font-size:1.75rem}.empty-state h2{margin-bottom:var(--app-space-2);font-size:1.25rem}.empty-state p{max-width:300px;margin-bottom:var(--app-space-5);color:var(--app-color-text-muted);font-size:.875rem;line-height:1.55}.home-page{gap:var(--app-space-6);flex-direction:column;display:flex}.couple-hero{text-align:center;flex-direction:column;align-items:center;display:flex}.avatar-pair{margin-bottom:var(--app-space-3);align-items:center;display:flex}.avatar{border:3px solid var(--app-color-surface);width:54px;height:54px;color:var(--app-color-on-primary-container);background:linear-gradient(145deg,#f7d8c7,#d8b8a6);border-radius:50%;place-items:center;font-weight:800;display:grid;box-shadow:0 2px 10px #3f001c14}.avatar--second{background:linear-gradient(145deg,#d8e2eb,#b8c8d6)}.avatar-pair__heart{z-index:1;border:2px solid var(--app-color-background);color:#fff;background:var(--app-color-primary);border-radius:50%;place-items:center;width:32px;height:32px;margin-inline:-8px;display:grid}.avatar-pair__heart ion-icon{font-size:.9375rem}.couple-hero h1{margin-bottom:var(--app-space-2);color:var(--app-color-primary);font-family:var(--app-font-display);letter-spacing:-.035em;font-size:1.75rem;line-height:2.125rem}.next-anniversary-inline{align-items:center;gap:var(--app-space-2);color:var(--app-color-text-muted);background:var(--app-color-surface-muted);cursor:pointer;border:0;border-radius:999px;padding:7px 12px;font-size:.8125rem;display:inline-flex}.next-anniversary-inline strong{color:var(--app-color-primary)}.next-plan-card{min-height:102px;box-shadow:var(--app-shadow-card);display:flex;overflow:hidden}.next-plan-card--button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:0;padding:0}.next-plan-card__body{z-index:1;flex:1;padding:10px}.next-plan-card h3{margin-bottom:var(--app-space-1);font-size:1rem;line-height:1.4}.next-plan-card p{color:var(--app-color-text-muted);align-items:center;gap:5px;margin-bottom:0;font-size:.8125rem;display:flex}.next-plan-card p ion-icon{font-size:1rem}.next-plan-card__art{background:linear-gradient(#b8d6e2 0 45%,#d7d5a9 45% 100%);width:32%;min-width:96px;position:relative;overflow:hidden}.next-plan-card__sun{background:#fff4d4;border-radius:50%;width:27px;height:27px;position:absolute;top:17px;right:18px}.next-plan-card__island{background:#789276;border-radius:50% 50% 0 0;width:138px;height:86px;position:absolute;bottom:-26px;right:-18px;transform:rotate(-8deg)}.horizontal-cards{gap:var(--app-space-3);margin-inline:calc(var(--app-space-5) * -1);padding:0 var(--app-space-5) var(--app-space-2);scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.horizontal-cards::-webkit-scrollbar{display:none}.tag-filter-row::-webkit-scrollbar{display:none}.horizontal-cards>div{scroll-snap-align:start;flex:0 0 196px}.home-memories .polaroid-card{padding:7px 7px 9px}.home-memories .polaroid-card__caption{padding-top:6px}.polaroid-card{border:1px solid var(--app-color-outline);background:var(--app-color-surface);min-width:0;box-shadow:var(--app-shadow-card);border-radius:12px;padding:10px 10px 14px}.polaroid-card__button{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.polaroid-card__button:disabled{opacity:1;cursor:default}.polaroid-card__image{aspect-ratio:1;background:var(--app-color-surface-muted);border-radius:7px;position:relative;overflow:hidden}.polaroid-card__image img{object-fit:cover;width:100%;height:100%}.memory-artwork{width:100%;height:100%;display:block}.photo-count{color:#fff;background:#23191aa3;border-radius:999px;align-items:center;gap:3px;padding:4px 7px;font-size:.6875rem;font-weight:700;display:inline-flex;position:absolute;top:8px;right:8px}.polaroid-card__caption{padding:var(--app-space-3) var(--app-space-1) 0;text-align:center}.polaroid-card__meta{white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:flex}.interaction-counts{color:var(--app-color-text-muted);align-items:center;gap:4px;margin-left:auto;font-size:.75rem;display:flex}.interaction-counts>span{align-items:center;gap:4px;display:inline-flex}.interaction-counts ion-icon{font-size:.875rem}.interaction-counts--small{gap:6px;font-size:.6875rem;line-height:1.4}.interaction-counts--small>span{gap:2px}.interaction-counts--small ion-icon{font-size:.8125rem}.activity-list{gap:var(--app-space-2);flex-direction:column;display:flex}.activity-list__empty{padding:var(--app-space-4);color:var(--app-color-text-muted);text-align:center;margin:0}.activity-card{align-items:center;gap:var(--app-space-3);padding:10px var(--app-space-3);border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface);display:flex}.activity-card__icon{width:38px;height:38px;color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:50%;flex:0 0 38px;place-items:center;display:grid}.activity-card p{margin-bottom:2px;font-size:.875rem;line-height:1.45}.activity-card p strong{color:var(--app-color-primary)}.activity-card time{color:var(--app-color-text-muted);font-size:.75rem}.filter-stack{gap:var(--app-space-2);flex-direction:column;display:flex}.bucket-select-row,.memory-date-filters{gap:var(--app-space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.search-field{align-items:center;gap:var(--app-space-2);height:42px;padding:0 var(--app-space-3);border:1px solid var(--app-color-outline);color:var(--app-color-outline-strong);background:var(--app-color-surface);border-radius:12px;display:flex}.search-field:focus-within{border-color:var(--app-color-primary);box-shadow:0 0 0 2px rgb(var(--app-color-primary-rgb) / 12%)}.search-field ion-icon{flex:none;font-size:1.25rem}.search-field input{width:100%;height:100%;color:var(--app-color-text);background:0 0;border:0;outline:none;padding:0;font-size:.875rem}.tag-filter-row{gap:var(--app-space-2);margin-inline:calc(var(--app-space-5) * -1);padding:var(--app-space-1) var(--app-space-5);scrollbar-width:none;display:flex;overflow-x:auto}.segment-control{background:var(--app-color-surface-muted);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:4px;display:grid}.segment-control button{min-width:0;min-height:36px;color:var(--app-color-text-muted);background:0 0;border:0;border-radius:7px;padding:5px 2px;font-size:.75rem;font-weight:700}.segment-control button.is-selected{color:var(--app-color-primary);background:var(--app-color-surface);box-shadow:0 1px 4px #23191a14}.results-summary{min-height:44px;color:var(--app-color-text-muted);justify-content:space-between;align-items:center;font-size:.8125rem;display:flex}.bucket-grid{gap:var(--app-space-2);display:grid}.bucket-card{min-height:108px;padding:10px var(--app-space-3);box-shadow:var(--app-shadow-card);flex-direction:column;display:flex}.bucket-card__top,.bucket-card__bottom{align-items:center;display:flex}.bucket-card__top{justify-content:space-between;gap:var(--app-space-2)}.bucket-card h2{min-width:0;margin:0;font-size:1rem;line-height:1.45}.bucket-card__date{color:var(--app-color-text-muted);align-items:center;gap:5px;margin:0;font-size:.8125rem;display:flex}.bucket-card__description{margin:0 0 var(--app-space-1);color:var(--app-color-text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.bucket-card__date ion-icon{font-size:.9375rem}.bucket-card__bottom{gap:var(--app-space-2);margin-top:auto}.bucket-card__private{color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:999px;padding:3px 7px;font-size:.6875rem;font-weight:700}.bucket-card__complete{white-space:nowrap;border-radius:9px;flex:none;gap:4px;min-height:30px;padding:4px 8px;font-size:.75rem}.bucket-card__complete ion-icon{font-size:.9375rem}.mobile-fab{right:var(--app-space-5);bottom:calc(82px + env(safe-area-inset-bottom));z-index:5;min-width:82px;box-shadow:0 8px 24px rgb(var(--app-color-primary-rgb) / 24%);border-radius:999px;position:fixed}.desktop-add-button{display:none}.bucket-loading{justify-content:center;align-items:center;gap:var(--app-space-2);min-height:240px;color:var(--app-color-text-muted);font-size:.875rem;display:flex}.bucket-editor-page{max-width:720px}.bucket-editor-page>.page-title-row{margin-bottom:0}.bucket-editor-form{gap:var(--app-space-5);flex-direction:column;display:flex}.bucket-form-field{gap:var(--app-space-2);min-width:0;color:var(--app-color-text);flex-direction:column;font-size:.8125rem;font-weight:700;display:flex}.bucket-form-field strong,.bucket-tag-fieldset strong{color:var(--app-color-primary)}.bucket-form-field input,.bucket-form-field select,.bucket-form-field textarea{border:1px solid var(--app-color-outline);width:100%;color:var(--app-color-text);background:var(--app-color-surface);font:inherit;border-radius:12px;outline:none;font-weight:500}.bucket-form-field input,.bucket-form-field select{min-height:48px;padding:0 var(--app-space-3)}.app-date-control{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:12px;align-items:center;min-height:48px;display:flex;position:relative}.app-date-control:focus-within{border-color:var(--app-color-primary);box-shadow:0 0 0 2px rgb(var(--app-color-primary-rgb) / 12%)}.app-date-control ion-datetime-button{width:100%;display:block}.app-date-control ion-datetime-button::part(native){width:100%;min-height:48px;padding:0 44px 0 var(--app-space-3);color:var(--app-color-text);font:inherit;text-align:left;background:0 0;border-radius:12px;justify-content:flex-start;font-weight:500}.app-date-control>ion-icon{right:var(--app-space-3);width:18px;height:18px;color:var(--app-color-text-muted);pointer-events:none;position:absolute}.app-date-control.is-disabled{opacity:.6}.app-date-modal{--border-radius:20px}.app-date-modal ion-datetime{border-radius:20px}.bucket-form-field textarea{resize:vertical;min-height:120px;padding:var(--app-space-3);line-height:1.55}.bucket-form-field input:focus,.bucket-form-field select:focus,.bucket-form-field textarea:focus{border-color:var(--app-color-primary);box-shadow:0 0 0 2px rgb(var(--app-color-primary-rgb) / 12%)}.bucket-form-field small{color:var(--app-color-text-muted);align-self:flex-end;font-size:.6875rem;font-weight:500}.bucket-tag-fieldset{border:0;min-width:0;margin:0;padding:0}.bucket-tag-fieldset legend{margin-bottom:4px;font-size:.8125rem;font-weight:700}.bucket-tag-fieldset p{margin:0 0 var(--app-space-3);color:var(--app-color-text-muted);font-size:.75rem}.bucket-tag-picker{gap:var(--app-space-2);flex-wrap:wrap;display:flex}.bucket-form-columns{gap:var(--app-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bucket-privacy-toggle{align-items:flex-start;gap:var(--app-space-3);padding:var(--app-space-4);border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface);display:flex}.bucket-privacy-toggle input{width:20px;height:20px;accent-color:var(--app-color-primary);flex:none;margin:1px 0 0}.bucket-privacy-toggle span{flex-direction:column;gap:5px;display:flex}.bucket-privacy-toggle strong{font-size:.875rem}.bucket-privacy-toggle small{color:var(--app-color-text-muted);font-size:.75rem;line-height:1.4}.bucket-privacy-toggle.is-disabled{opacity:.65}.bucket-editor-actions{justify-content:flex-end;gap:var(--app-space-3);display:flex}.bucket-editor-actions--grouped{align-items:flex-end;gap:var(--app-space-6);flex-direction:column}.bucket-editor-actions__primary{gap:var(--app-space-3);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.bucket-editor-actions__primary>:only-child{grid-column:2}.bucket-editor-actions--grouped .app-button{min-height:48px;padding:var(--app-space-3)}.bucket-editor-actions--grouped>.app-button{width:100%}.bucket-editor-footer{gap:var(--app-space-2);margin-top:var(--app-space-2);display:grid}.bucket-editor-footer>.app-button{min-height:48px}.bucket-memory-prompt{align-items:flex-start;gap:var(--app-space-4);width:100%;padding:var(--app-space-5);border:1px solid var(--app-color-outline);color:var(--app-color-primary);background:var(--app-color-primary-container);text-align:left;font:inherit;border-radius:16px;transition:border-color .18s;display:flex}.bucket-memory-prompt:hover:not(:disabled){border-color:var(--app-color-primary)}.bucket-memory-prompt:disabled{cursor:not-allowed;opacity:.48}.bucket-memory-prompt>ion-icon{flex-shrink:0;margin-top:3px;font-size:1.375rem}.bucket-memory-prompt__content{gap:var(--app-space-1);min-width:0;font-size:.8125rem;line-height:1.5;display:grid}.bucket-memory-prompt__content>strong{font-size:.9375rem;font-weight:600}.bucket-memory-prompt__action{margin-top:var(--app-space-2);font-weight:600}.bucket-editor-footer>.bucket-editor-footer__delete{min-height:44px;padding:var(--app-space-2) var(--app-space-4);color:var(--app-color-error);background:0 0;border:0;justify-self:center;font-size:.8125rem;font-weight:500}.bucket-editor-footer__delete:hover:not(:disabled) span{text-underline-offset:4px;text-decoration:underline}.bucket-editor-error{align-items:flex-start;gap:var(--app-space-4);padding:var(--app-space-5);flex-direction:column;display:flex}.timeline-page{gap:var(--app-space-4);flex-direction:column;width:min(100%,900px);display:flex}.timeline-intro{justify-content:space-between;align-items:center;gap:var(--app-space-4);display:flex}.timeline-intro .app-button{flex-shrink:0}.timeline-intro h1{margin-bottom:0}.memory-filters{gap:var(--app-space-4);display:grid}.memory-results-summary{color:var(--app-color-text-muted);margin:0;font-size:.75rem}.year-filter{align-items:center;gap:var(--app-space-2);border:1px solid var(--app-color-outline);min-height:40px;color:var(--app-color-text);background:var(--app-color-surface);border-radius:999px;padding:8px 14px;font-size:.875rem;font-weight:700;display:inline-flex}.year-filter ion-icon{color:var(--app-color-text-muted)}.memory-grid{gap:var(--app-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.memory-grid .polaroid-card{content-visibility:auto;contain-intrinsic-size:240px 330px}.timeline-pagination{align-items:center;gap:var(--app-space-3);grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);align-self:center;width:min(100%,420px);display:grid}.timeline-pagination span{min-width:64px;color:var(--app-color-text-muted);text-align:center;font-size:.8125rem;font-weight:700}.memory-editor-page{max-width:720px}.memory-editor-form{gap:var(--app-space-5);padding-bottom:calc(96px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.memory-editor-footer{gap:var(--app-space-2);margin-top:var(--app-space-2);display:grid}.memory-editor-footer>.app-button{min-height:48px}.memory-editor-footer__progress{color:var(--app-color-text-muted);text-align:center;font-variant-numeric:tabular-nums;margin:0;font-size:.8125rem}.memory-editor-footer__secondary{justify-content:space-between;gap:var(--app-space-3);flex-wrap:wrap;display:flex}.memory-editor-footer__secondary .app-button{min-height:44px;padding:var(--app-space-2) var(--app-space-3);background:0 0;border:0;font-size:.8125rem;font-weight:500}.memory-editor-footer__cancel{color:var(--app-color-text-muted)}.memory-editor-footer__delete{color:var(--app-color-error);margin-left:auto}.memory-editor-footer__secondary .app-button:hover:not(:disabled) span{text-underline-offset:4px;text-decoration:underline}.memory-detail{gap:var(--app-space-5);padding-bottom:calc(96px + env(safe-area-inset-bottom));display:grid}.memory-detail-modal{--border-radius:24px 24px 0 0;--height:min(88vh, 760px);--width:min(100%, 720px);align-items:flex-end}.memory-detail-modal::part(content){border-radius:var(--border-radius)}.memory-detail-modal ion-content{--background:var(--app-color-background)}.memory-detail-modal ion-content::part(scroll){overscroll-behavior-x:contain}.memory-detail-modal__sheet{gap:var(--app-space-5);width:min(100%,720px);min-height:100%;padding:var(--app-space-5);padding-bottom:calc(var(--app-space-6) + env(safe-area-inset-bottom));margin:0 auto;display:grid;overflow-x:clip}.memory-detail-modal__transition{min-width:0}.memory-detail-modal__transition.is-next{animation:.28s cubic-bezier(.22,1,.36,1) memory-detail-slide-from-right}.memory-detail-modal__transition.is-previous{animation:.28s cubic-bezier(.22,1,.36,1) memory-detail-slide-from-left}@keyframes memory-detail-slide-from-right{0%{opacity:0;transform:translate(12%)}to{opacity:1;transform:translate(0)}}@keyframes memory-detail-slide-from-left{0%{opacity:0;transform:translate(-12%)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.memory-detail-modal__transition.is-next,.memory-detail-modal__transition.is-previous{animation:none}}.memory-detail-modal__toolbar{z-index:2;padding-bottom:var(--app-space-3);border-bottom:1px solid var(--app-color-outline);background:var(--app-color-background);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.memory-detail-modal__toolbar h2{margin:0;font-size:1.05rem}.memory-detail-modal__toolbar button{min-width:48px;min-height:44px;color:var(--app-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.memory-detail__header{justify-content:space-between;align-items:flex-start;gap:var(--app-space-4);display:flex}.memory-detail__header>div{min-width:0}.memory-detail__header time{color:var(--app-color-text-muted);font-size:.78rem;font-weight:700}.memory-detail__header h3{margin:var(--app-space-1) 0 0;overflow-wrap:anywhere;font-family:var(--app-font-display);font-size:clamp(1.55rem,7vw,2rem);line-height:1.25}.memory-detail__header .app-button{flex:none;min-width:72px}.memory-detail__photo-actions{justify-content:flex-end;display:flex}.memory-detail__gallery{gap:var(--app-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.memory-detail__gallery figure{border-radius:var(--app-radius-md);background:var(--app-color-surface-muted);aspect-ratio:1;min-width:0;margin:0;position:relative;overflow:hidden}.memory-detail__gallery figure:first-child:nth-last-child(odd){aspect-ratio:4/3;grid-column:1/-1}.memory-detail__gallery img,.memory-detail__gallery .memory-artwork{object-fit:cover;width:100%;height:100%}.memory-detail__photo-button{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.memory-detail__photo-button:focus-visible{outline:3px solid var(--app-color-primary);outline-offset:-3px}.memory-detail__gallery figcaption{right:var(--app-space-2);bottom:var(--app-space-2);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#251f1cb3;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:700;position:absolute}.memory-detail__save-photo{top:var(--app-space-2);right:var(--app-space-2);color:#fff;min-width:64px;min-height:44px;font:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#251f1cb8;border:1px solid #ffffff73;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:.75rem;font-weight:700;display:inline-flex;position:absolute}.memory-detail__save-photo:disabled{opacity:.7}.memory-detail__save-photo ion-icon{font-size:1rem}.memory-photo-viewer{--border-radius:0;--height:100%;--width:100%}.memory-photo-viewer::part(content){background:#171412;border-radius:0}.memory-photo-viewer__content{color:#fff;background:#171412;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;display:grid}.memory-photo-viewer__toolbar{z-index:1;align-items:center;gap:var(--app-space-3);padding:calc(var(--app-space-3) + env(safe-area-inset-top)) var(--app-space-4) var(--app-space-3);background:#171412eb;grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr);display:grid}.memory-photo-viewer__toolbar p{text-align:center;margin:0;font-size:.875rem;font-weight:700}.memory-photo-viewer__toolbar button{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.memory-photo-viewer__toolbar button:first-child{justify-self:start}.memory-photo-viewer__toolbar .memory-photo-viewer__save{justify-self:end;align-items:center;gap:6px;display:inline-flex}.memory-photo-viewer__save:disabled{opacity:.65}.memory-photo-viewer__save ion-icon{font-size:1.1rem}.memory-photo-viewer__stage{touch-action:none;-webkit-user-select:none;user-select:none;min-width:0;min-height:0;position:relative;overflow:hidden}.memory-photo-viewer__photo{place-items:center;width:100%;height:100%;display:grid}.memory-photo-viewer__photo.is-next{animation:.18s ease-out memory-photo-slide-from-right}.memory-photo-viewer__photo.is-previous{animation:.18s ease-out memory-photo-slide-from-left}.memory-photo-viewer__photo img{object-fit:contain;width:100%;height:100%;transform:var(--memory-photo-transform,none);display:block}.memory-photo-viewer__photo .memory-artwork{aspect-ratio:1;width:min(100%,720px);max-height:100%}@keyframes memory-photo-slide-from-right{0%{opacity:.55;transform:translate(12%)}}@keyframes memory-photo-slide-from-left{0%{opacity:.55;transform:translate(-12%)}}@media (prefers-reduced-motion:reduce){.memory-photo-viewer__photo.is-next,.memory-photo-viewer__photo.is-previous{animation:none}}.memory-photo-viewer__error{padding:var(--app-space-3) var(--app-space-4) calc(var(--app-space-3) + env(safe-area-inset-bottom));color:#ffd9d3;text-align:center;background:#171412eb;margin:0;font-size:.875rem}.memory-detail__tags{gap:var(--app-space-2);flex-wrap:wrap;display:flex}.memory-detail__note{padding:var(--app-space-5);border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface)}.memory-detail__note p{color:var(--app-color-text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.75}.interaction-panel{gap:var(--app-space-3);padding-top:var(--app-space-4);border-top:1px solid var(--app-color-outline);display:grid}.interaction-panel__heading{justify-content:space-between;align-items:center;gap:var(--app-space-3);display:flex}.interaction-panel__heading h3,.interaction-panel__heading p{margin:0}.interaction-panel__heading h3{margin-top:0;font-size:.875rem;font-weight:600}.interaction-panel__heading>span{color:var(--app-color-text-muted);font-size:.75rem}.interaction-panel__loading{align-items:center;gap:var(--app-space-2);min-height:36px;color:var(--app-color-text-muted);font-size:.8rem;display:flex}.interaction-panel__offline{border-radius:var(--app-radius-md);color:var(--app-color-text-muted);background:var(--app-color-surface-muted);margin:0;padding:10px;font-size:.8125rem;line-height:1.5}.reaction-picker{flex-wrap:wrap;gap:6px;display:flex}.reaction-picker button{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:36px;padding:0 10px;font-size:1rem;display:inline-flex}.reaction-picker button.is-selected{border-color:var(--app-color-primary);background:var(--app-color-primary-container)}.reaction-picker strong{color:var(--app-color-text-muted);font-size:.72rem}.comment-list{gap:var(--app-space-2);display:grid}.comment-list__empty{color:var(--app-color-text-muted);background:var(--app-color-surface-muted);text-align:center;border-radius:10px;margin:0;padding:16px 12px;font-size:.75rem;line-height:1.6}.comment-card{border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface);gap:6px;padding:10px 12px;scroll-margin-block:96px;display:grid}.comment-card:focus{outline:3px solid color-mix(in srgb, var(--app-color-primary) 35%, transparent);outline-offset:3px}.comment-card.is-mine{border-color:color-mix(in srgb, var(--app-color-primary) 28%, var(--app-color-outline));background:color-mix(in srgb, var(--app-color-primary-container) 42%, var(--app-color-surface))}.comment-card header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.comment-card header strong{font-size:.75rem;font-weight:600}.comment-card header time{color:var(--app-color-text-muted);font-size:.65rem}.comment-card>p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.8125rem;line-height:1.6}.comment-card__actions,.comment-edit>div{justify-content:flex-end;gap:var(--app-space-3);display:flex}.comment-card__actions button,.comment-edit button{min-height:28px;color:var(--app-color-text-muted);background:0 0;border:0;padding:2px 4px;font-size:.6875rem;font-weight:500}.comment-card__actions button:last-child{color:var(--app-color-danger)}.comment-edit{gap:var(--app-space-2);display:grid}.comment-edit textarea,.comment-composer textarea{resize:vertical;border:1px solid var(--app-color-outline);width:100%;color:var(--app-color-text);background:var(--app-color-surface);font:inherit;border-radius:10px;padding:8px 10px;font-size:.875rem;line-height:1.5}.comment-edit button:last-child{color:var(--app-color-primary)}.comment-composer{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.comment-composer label{min-width:0}.comment-composer textarea{box-sizing:border-box;height:40px;min-height:40px;display:block}.comment-composer .app-button{box-sizing:border-box;white-space:nowrap;border-radius:10px;justify-self:end;height:40px;min-height:40px;padding:6px 12px;font-size:.75rem;font-weight:600}.bucket-editor-page>.interaction-panel{margin-top:var(--app-space-4);padding-top:var(--app-space-6);padding-bottom:calc(96px + env(safe-area-inset-bottom));border-top:0;position:relative}.bucket-editor-page>.interaction-panel:before{content:"";background:linear-gradient(to right, transparent, var(--app-color-outline) 20%, var(--app-color-outline) 80%, transparent);pointer-events:none;height:1px;position:absolute;inset:0 0 auto}.notification-center-modal{--border-radius:24px 24px 0 0;--height:min(82vh, 680px);--width:min(100%, 640px);align-items:flex-end}.notification-center-modal::part(content){border-radius:var(--border-radius)}.notification-center-modal ion-content{--background:var(--app-color-background)}.notification-center{align-content:start;gap:var(--app-space-4);width:min(100%,640px);min-height:100%;padding:var(--app-space-5);padding-bottom:calc(var(--app-space-6) + env(safe-area-inset-bottom));margin:0 auto;display:grid}.notification-center__header{z-index:2;padding-bottom:var(--app-space-3);border-bottom:1px solid var(--app-color-outline);background:var(--app-color-background);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.notification-center__header p,.notification-center__header h2{margin:0}.notification-center__header h2{margin-top:3px;font-size:1.45rem}.notification-center__header button,.notification-center__controls>button{min-height:44px;color:var(--app-color-primary);font:inherit;background:0 0;border:0;padding:0;font-size:.8rem;font-weight:700}.notification-center__controls{justify-content:space-between;align-items:center;gap:var(--app-space-3);display:flex}.notification-center__loading{justify-content:center;align-items:center;gap:var(--app-space-2);min-height:160px;color:var(--app-color-text-muted);font-size:.8rem;display:flex}.notification-list{align-content:start;gap:6px;display:grid}.notification-list>button{border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);width:100%;min-height:0;color:var(--app-color-text);background:var(--app-color-surface);text-align:left;grid-template-columns:6px minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}.notification-list>button.is-unread{border-color:color-mix(in srgb, var(--app-color-primary) 30%, var(--app-color-outline));background:var(--app-color-primary-container)}.notification-list__mark{background:0 0;border-radius:50%;width:6px;height:6px;margin-top:5px}.notification-list .is-unread .notification-list__mark{background:var(--app-color-primary)}.notification-list>button>span:last-child{gap:1px;min-width:0;display:grid}.notification-list strong{font-size:.8125rem;line-height:1.25}.notification-list strong,.notification-list span,.notification-list time{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notification-list span,.notification-list time{color:var(--app-color-text-muted);font-size:.74rem;line-height:1.25}.notification-center__empty{padding:var(--app-space-8) var(--app-space-4);border-radius:var(--app-radius-md);color:var(--app-color-text-muted);background:var(--app-color-surface-muted);text-align:center;margin:0}.memory-source-card{gap:var(--app-space-2);padding:var(--app-space-4);border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface-muted);display:grid}.memory-source-card>span{color:var(--app-color-text-muted);font-size:.7rem;font-weight:700}.memory-source-card>div{gap:var(--app-space-2);flex-wrap:wrap;display:flex}.memory-photo-fieldset{border:0;min-width:0;margin:0;padding:0}.memory-photo-fieldset legend{font-size:.8125rem;font-weight:700}.memory-photo-fieldset>p{margin:4px 0 var(--app-space-3);color:var(--app-color-text-muted);font-size:.75rem}.memory-photo-actions{gap:var(--app-space-2);display:flex}.memory-photo-list:not(:empty)+.memory-photo-actions{margin-top:var(--app-space-3)}.memory-photo-add{justify-content:center;align-items:center;gap:var(--app-space-2);min-height:48px;padding:0 var(--app-space-3);border:1px solid color-mix(in srgb, var(--app-color-primary) 24%, transparent);color:var(--app-color-primary);background:var(--app-color-primary-container);font:inherit;cursor:pointer;border-radius:12px;flex:1;font-size:.875rem;font-weight:700;display:inline-flex}.memory-photo-add__icon{box-sizing:content-box;background:var(--app-color-surface);border-radius:50%;padding:3px;font-size:1rem}.memory-photo-add--camera{border-color:var(--app-color-outline);background:var(--app-color-surface);flex:none}.memory-photo-add:focus-visible{outline:2px solid var(--app-color-primary);outline-offset:2px}.memory-photo-add:disabled{opacity:.55;cursor:default}.memory-photo-list{display:block}.memory-photo-list__item:not(:last-child){padding-bottom:var(--app-space-3)}.memory-photo-draft{align-items:center;gap:var(--app-space-3);padding:var(--app-space-2);border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:12px;grid-template-columns:72px minmax(0,1fr) auto;display:grid}.memory-photo-draft:has(.memory-photo-draft__handle){grid-template-columns:72px minmax(0,1fr) auto auto}.memory-photo-draft .memory-photo-draft__handle{min-width:36px;min-height:44px;color:var(--app-color-text-muted);place-items:center;display:grid}.memory-photo-draft img{object-fit:cover;border-radius:8px;width:72px;height:72px}.memory-photo-draft>div{gap:3px;min-width:0;display:grid}.memory-photo-draft span,.memory-photo-draft small{color:var(--app-color-text-muted);font-size:.7rem}.memory-photo-draft__delete{border:1px solid var(--app-color-outline);min-width:44px;min-height:30px;color:var(--app-color-danger);background:var(--app-color-surface);border-radius:7px;padding:0;font-size:.7rem}.timeline-end{background:var(--app-color-outline);border-radius:50%;align-self:center;width:8px;height:8px;margin:0}.anniversary-page{gap:var(--app-space-6);flex-direction:column;display:flex}.anniversary-page .page-title-row{margin-bottom:0}.relationship-date-card{gap:var(--app-space-3);padding:var(--app-space-3);display:grid}.relationship-date-card>div,.relationship-date-card__controls{align-items:center;gap:var(--app-space-3);display:flex}.relationship-date-card__icon{width:40px;height:40px;color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:50%;flex:0 0 40px;place-items:center;display:grid}.relationship-date-card strong{margin-bottom:3px;display:block}.relationship-date-card p{color:var(--app-color-text-muted);margin:0;font-size:.78rem}.relationship-date-card__controls .app-date-field{flex:1;min-width:0}.relationship-date-card__value{flex:1;font-weight:600}.anniversary-hero{min-height:220px;padding:var(--app-space-5);border:1px solid color-mix(in srgb, var(--app-color-outline) 56%, transparent);border-radius:var(--app-radius-lg);text-align:center;background:linear-gradient(145deg,#fffafb,#fde8ed);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.anniversary-hero>:not(.anniversary-hero__orb){z-index:1}.anniversary-hero__label{color:var(--app-color-text-muted);background:var(--app-color-surface-high);border-radius:999px;padding:6px 11px;font-size:.75rem;font-weight:700}.anniversary-hero h2{margin:var(--app-space-2) 0;color:var(--app-color-primary);font-family:var(--app-font-display);font-size:1.625rem}.anniversary-hero>strong{color:var(--app-color-on-primary-container);font-family:var(--app-font-display);font-variant-numeric:tabular-nums;font-size:clamp(2.75rem,13vw,3.25rem);line-height:1}.anniversary-hero time{margin-top:var(--app-space-2);color:var(--app-color-text-muted);font-size:.8125rem}.anniversary-hero__orb{background:var(--app-color-primary-container);opacity:.42;border-radius:50%;position:absolute}.anniversary-hero__orb--one{width:150px;height:150px;top:-44px;right:-32px}.anniversary-hero__orb--two{opacity:.25;width:180px;height:180px;bottom:-62px;left:-46px}.date-section__heading{min-height:40px;padding-inline:var(--app-space-2);border-bottom:1px solid var(--app-color-outline);justify-content:space-between;align-items:center;display:flex}.date-section__heading h2{margin:0;font-size:1.125rem}.date-section ul{margin:0;padding:0;list-style:none}.date-section__more{width:100%;margin-top:var(--app-space-3)}.date-row{align-items:center;gap:var(--app-space-3);min-height:68px;padding:var(--app-space-2);border-bottom:1px solid color-mix(in srgb, var(--app-color-outline) 55%, transparent);display:flex}.date-row__icon{width:40px;height:40px;color:var(--app-color-primary);background:var(--app-color-surface-muted);border-radius:50%;flex:0 0 40px;place-items:center;display:grid}.date-row__copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.date-row__copy--button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.date-row__title{align-items:center;gap:var(--app-space-2);display:flex}.date-row__title small{color:var(--app-color-text-muted);background:var(--app-color-surface-muted);border-radius:999px;padding:2px 6px;font-size:.65rem;font-weight:700}.date-row__copy strong{font-size:.9375rem}.date-row__copy time{color:var(--app-color-text-muted);font-size:.75rem}.date-row__dday{color:var(--app-color-on-primary-container);font-variant-numeric:tabular-nums;font-size:1rem}.date-row__hide{color:var(--app-color-text-muted);cursor:pointer;background:0 0;border:0;padding:4px;font-size:.7rem}.date-row__chevron{color:var(--app-color-text-muted);font-size:1rem}.restore-anniversaries-button{color:var(--app-color-primary);cursor:pointer;background:0 0;border:0;align-self:center;padding:8px 12px;font-weight:700}.anniversary-editor-page{flex-direction:column;display:flex}.anniversary-editor-form{gap:var(--app-space-5);display:grid}.anniversary-presets{border:0;padding:0}.anniversary-presets legend{margin-bottom:var(--app-space-2);font-size:.8rem;font-weight:700}.anniversary-presets>div{gap:var(--app-space-2);flex-wrap:wrap;display:flex}.anniversary-presets button{border:1px solid var(--app-color-outline);color:var(--app-color-text-muted);background:var(--app-color-surface);font:inherit;cursor:pointer;border-radius:999px;padding:8px 12px;font-size:.78rem}.anniversary-presets button.is-selected{border-color:var(--app-color-primary);color:var(--app-color-primary);background:var(--app-color-primary-container);font-weight:700}.anniversary-form-note{margin:calc(var(--app-space-2) * -1) 0 0;color:var(--app-color-text-muted);font-size:.75rem;line-height:1.5}.date-section--past .date-section__heading h2,.date-row--past{color:var(--app-color-text-muted)}.date-row--past .date-row__icon{width:40px;height:40px;color:var(--app-color-text-muted);flex-basis:40px}.date-row--past .date-row__dday{color:var(--app-color-text-muted);font-size:.875rem;font-weight:500}.app-tab-bar{--background:#fff8f7f5;--border:1px solid var(--app-color-outline);height:calc(4rem + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-tab-bar ion-tab-button{--color:var(--app-color-text-muted);--color-selected:var(--app-color-primary);--padding-top:7px;font-size:.75rem}.app-tab-bar ion-icon{font-size:1.375rem}.route-fallback{background:var(--app-color-background);place-items:center;min-height:100%;display:grid}.app-launch{align-content:center;gap:var(--app-space-3);color:var(--app-color-text-muted);text-align:center}.app-launch strong{color:var(--app-color-primary);font-family:var(--app-font-display);font-size:1.75rem;font-style:italic;font-weight:500}.app-launch ion-spinner{color:var(--app-color-primary)}.auth-shell{width:min(100%,480px);min-height:100%;padding:calc(var(--app-space-8) + env(safe-area-inset-top)) var(--app-space-5) calc(var(--app-space-8) + env(safe-area-inset-bottom));margin:0 auto}.auth-shell h1{font-family:var(--app-font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,9vw,2.75rem);line-height:1.15}.auth-brand{align-items:center;gap:var(--app-space-2);color:var(--app-color-primary);font-family:var(--app-font-display);font-size:1.25rem;font-weight:700;display:flex}.auth-brand ion-icon{font-size:1.5rem}.welcome-page{text-align:center;flex-direction:column;justify-content:center;display:flex}.welcome-mark{justify-content:center;align-items:center;gap:var(--app-space-3);margin-bottom:var(--app-space-8);display:flex}.welcome-mark span{border:6px solid var(--app-color-surface);width:76px;height:76px;color:var(--app-color-primary);background:var(--app-color-primary-container);box-shadow:var(--app-shadow-card);font-family:var(--app-font-display);border-radius:50%;place-items:center;font-size:1.25rem;font-weight:700;display:grid}.welcome-mark ion-icon{color:var(--app-color-primary);font-size:1.875rem}.welcome-page__copy{margin:var(--app-space-5) 0 var(--app-space-8);color:var(--app-color-text-muted);line-height:1.7}.auth-primary-link{width:100%;min-height:52px;text-decoration:none}.privacy-note,.auth-terms{justify-content:center;align-items:center;gap:var(--app-space-1);margin:var(--app-space-4) 0 0;color:var(--app-color-text-muted);font-size:.75rem;line-height:1.5;display:flex}.privacy-note ion-icon{color:var(--app-color-primary);flex:none}.auth-page{background:var(--app-color-surface);width:100%;min-height:100%;margin:0 auto}.auth-story{padding:calc(var(--app-space-5) + env(safe-area-inset-top)) var(--app-space-5) 46px;color:#fff;background:radial-gradient(circle at 88% 4%,#ffd9e161 0 12%,#0000 32%),radial-gradient(circle at 5% 88%,#ffffff21 0 10%,#0000 30%),linear-gradient(145deg,#a8496b 0%,#7d294b 100%);position:relative;overflow:hidden}.auth-story:before,.auth-story:after{content:"";pointer-events:none;border:1px solid #ffffff24;border-radius:50%;position:absolute}.auth-story:before{width:230px;height:230px;top:-156px;right:-54px}.auth-story:after{width:170px;height:170px;bottom:22px;right:-114px}.auth-back{z-index:3;top:calc(var(--app-space-4) + env(safe-area-inset-top));left:var(--app-space-4);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff38;border-radius:50%;place-items:center;width:40px;height:40px;text-decoration:none;display:grid;position:absolute}.auth-back ion-icon{font-size:1.25rem}.auth-brand--light{z-index:2;color:#fff;justify-content:center;font-size:1.0625rem;position:relative}.auth-brand__mark{width:30px;height:30px;color:var(--app-color-primary);background:#fff;border-radius:10px;place-items:center;display:grid;box-shadow:0 8px 24px #3f001c33}.auth-brand__mark ion-icon{font-size:1rem}.auth-story__visual{z-index:2;width:232px;height:82px;margin:var(--app-space-6) auto var(--app-space-4);position:relative}.auth-story__avatar{width:68px;height:68px;color:var(--app-color-on-primary-container);font-family:var(--app-font-display);background:#ffd9e1;border:5px solid #ffffffe6;border-radius:50%;place-items:center;font-size:1.125rem;font-weight:800;display:grid;position:absolute;top:7px;box-shadow:0 12px 30px #3f001c38}.auth-story__avatar--mine{left:48px;transform:rotate(-6deg)}.auth-story__avatar--partner{color:#163254;background:#d8e6ff;right:48px;transform:rotate(6deg)}.auth-story__heart{z-index:2;width:28px;height:28px;color:var(--app-color-primary);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:28px;left:103px;box-shadow:0 5px 14px #3f001c2e}.auth-story__heart ion-icon{font-size:.9375rem}.auth-story__note{z-index:3;color:var(--app-color-on-primary-container);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdfce8;border:1px solid #ffffff8c;align-items:center;display:flex;position:absolute;box-shadow:0 8px 20px #3f001c24}.auth-story__note--days{border-radius:12px;flex-direction:column;align-items:flex-start;padding:7px 10px;top:-3px;right:2px;transform:rotate(4deg)}.auth-story__note--days small{color:var(--app-color-text-muted);font-size:.5625rem}.auth-story__note--days strong{font-family:var(--app-font-display);font-size:.875rem}.auth-story__note--plan{border-radius:999px;gap:5px;padding:7px 9px;font-size:.625rem;font-weight:700;bottom:-2px;left:1px;transform:rotate(-3deg)}.auth-story__note--plan ion-icon{color:var(--app-color-primary);font-size:.8125rem}.auth-story__copy{z-index:2;text-align:center;position:relative}.auth-story__copy p,.auth-story__copy h2,.auth-story__copy span{margin:0}.auth-story__copy p{margin-bottom:var(--app-space-2);color:#ffffffb8;letter-spacing:.18em;font-size:.625rem;font-weight:800}.auth-story__copy h2{font-family:var(--app-font-display);letter-spacing:-.04em;font-size:clamp(1.65rem,7.5vw,2rem);line-height:1.22}.auth-story__copy span{margin-top:var(--app-space-2);color:#ffffffc2;font-size:.75rem;display:block}.auth-panel{z-index:4;min-height:560px;padding:26px var(--app-space-5) calc(var(--app-space-8) + env(safe-area-inset-bottom));background:var(--app-color-surface);border-radius:28px 28px 0 0;margin-top:-26px;position:relative;box-shadow:0 -12px 36px #3f001c1f}.auth-panel__heading{margin-bottom:var(--app-space-4)}.auth-panel__heading p,.auth-panel__heading h1,.auth-panel__heading span{margin:0}.auth-panel__heading p{color:var(--app-color-primary);letter-spacing:.04em;margin-bottom:6px;font-size:.6875rem;font-weight:800}.auth-panel__heading h1{font-family:var(--app-font-display);letter-spacing:-.04em;font-size:clamp(1.65rem,7vw,2rem);line-height:1.25}.auth-panel__heading span{margin-top:var(--app-space-2);color:var(--app-color-text-muted);font-size:.8125rem;line-height:1.5;display:block}.auth-heading>p:last-child,.accept-page>p{margin:var(--app-space-3) 0 0;color:var(--app-color-text-muted);line-height:1.6}.auth-mode{margin-bottom:var(--app-space-4);border-bottom:1px solid var(--app-color-outline);grid-template-columns:1fr 1fr;display:grid}.auth-mode button{min-height:40px;color:var(--app-color-text-muted);background:0 0;border:0;font-weight:700;position:relative}.auth-mode button.is-selected{color:var(--app-color-primary)}.auth-mode button.is-selected:after{background:var(--app-color-primary);content:"";border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:18%;right:18%}.oauth-buttons{gap:var(--app-space-2);display:grid}.auth-social-button{border-radius:14px;width:100%;min-height:48px}.auth-social-button--google{border-color:var(--app-color-outline);color:var(--app-color-text);background:#fff}.auth-form{gap:14px;display:grid}.auth-form label,.profile-setup label{gap:var(--app-space-2);color:var(--app-color-text);font-size:.8125rem;font-weight:700;display:grid}.auth-form input,.profile-setup input,.invite-code-field input{width:100%;min-height:52px;padding:0 var(--app-space-4);border:1px solid var(--app-color-outline);color:var(--app-color-text);background:snow;border-radius:14px;outline:none;transition:border-color .16s,box-shadow .16s,background-color .16s}.auth-form input:focus,.profile-setup input:focus,.invite-code-field input:focus{border-color:var(--app-color-primary);box-shadow:0 0 0 3px rgb(var(--app-color-primary-rgb) / 12%);background:#fff}.auth-password-field{display:block;position:relative}.auth-password-field input{padding-right:68px}.auth-password-field button{top:50%;right:var(--app-space-2);min-width:52px;min-height:36px;padding:0 var(--app-space-2);color:var(--app-color-primary);background:0 0;border:0;border-radius:10px;font-size:.75rem;font-weight:700;position:absolute;transform:translateY(-50%)}.full-width,.oauth-buttons .app-button{width:100%}.form-message{padding:var(--app-space-3);color:var(--app-color-error);text-align:center;background:#ffedea;border-radius:12px;margin:0;font-size:.8125rem;line-height:1.5}.form-message--success{color:var(--app-color-success);background:var(--app-color-success-container)}.auth-submit{width:100%;min-height:52px;margin-top:var(--app-space-1);box-shadow:0 9px 22px rgb(var(--app-color-primary-rgb) / 22%);border-radius:14px}.auth-divider,.pairing-or{align-items:center;gap:var(--app-space-3);margin:var(--app-space-5) 0;color:var(--app-color-text-muted);font-size:.75rem;display:flex}.auth-divider:before,.auth-divider:after,.pairing-or:before,.pairing-or:after{background:var(--app-color-outline);content:"";flex:1;height:1px}.auth-terms{max-width:310px;margin:var(--app-space-5) auto 0;text-align:center}.auth-panel .auth-divider{margin-block:var(--app-space-4)}.auth-callback{align-content:center;justify-items:center;gap:var(--app-space-4);min-height:100%;padding:var(--app-space-5);text-align:center;display:grid}.auth-callback h1{font-family:var(--app-font-display);font-size:var(--app-font-title-1-size);margin:0}.connection-page{width:min(100%,560px)}.pairing-page{width:min(100%,1040px);padding-top:var(--app-space-6)}.pairing-layout{border:1px solid rgb(var(--app-color-primary-rgb) / 14%);background:var(--app-color-surface);border-radius:28px;min-height:610px;display:grid;overflow:hidden;box-shadow:0 24px 70px #4f162b1f}.pairing-hero{color:#fff;isolation:isolate;background:radial-gradient(circle at 85% 10%,#fff3,#0000 30%),linear-gradient(145deg,#a44366 0%,#7d294b 100%);flex-direction:column;justify-content:space-between;min-height:390px;padding:36px 28px 28px;display:flex;position:relative;overflow:hidden}.pairing-hero:before,.pairing-hero:after{z-index:-1;content:"";border:1px solid #ffffff1f;border-radius:50%;position:absolute}.pairing-hero:before{width:260px;height:260px;top:-90px;right:-70px}.pairing-hero:after{width:300px;height:300px;bottom:-130px;left:-100px}.pairing-kicker{margin-bottom:var(--app-space-4);color:#ffffffc7;letter-spacing:.16em;align-items:center;gap:7px;font-size:.6875rem;font-weight:800;display:flex}.pairing-kicker ion-icon{font-size:.9375rem}.pairing-hero h1{margin-bottom:var(--app-space-3);font-family:var(--app-font-display);letter-spacing:-.045em;font-size:clamp(2rem,4vw,2.75rem);line-height:1.15}.pairing-hero__copy>p:last-child{color:#ffffffbf;max-width:370px;margin:0;font-size:.875rem;line-height:1.65}.pairing-visual{width:min(100%,330px);height:150px;margin:24px auto 18px;position:relative}.pairing-visual__glow{filter:blur(22px);background:#ffdce42e;border-radius:50%;width:200px;height:100px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pairing-person{z-index:2;color:#7d294b;background:#fff7f8;border:5px solid #ffffff38;border-radius:50%;place-items:center;width:72px;height:72px;font-size:1.25rem;font-weight:800;display:grid;position:absolute;top:36px;box-shadow:0 14px 28px #3700143d}.pairing-person--me{left:28px}.pairing-person--partner{color:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff29;right:28px}.pairing-visual__line{background:repeating-linear-gradient(90deg,#ffffff6b 0 7px,#0000 7px 13px);height:2px;position:absolute;top:71px;left:84px;right:84px}.pairing-visual__heart{z-index:3;color:#a43d61;background:#fff;border:1px solid #ffffff73;border-radius:15px;place-items:center;width:44px;height:44px;font-size:1.25rem;display:grid;position:absolute;top:50px;left:50%;transform:translate(-50%)rotate(-4deg);box-shadow:0 10px 24px #3700143d}.pairing-visual__note{z-index:1;color:#ffffffd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:9px;padding:7px 10px;font-size:.6875rem;font-weight:700;position:absolute}.pairing-visual__note--top{top:2px;right:55px;transform:rotate(3deg)}.pairing-visual__note--bottom{bottom:2px;left:60px;transform:rotate(-4deg)}.pairing-assurance{gap:var(--app-space-2);flex-wrap:wrap;display:flex}.pairing-assurance span{color:#ffffffbf;background:#ffffff14;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:6px 9px;font-size:.6875rem;display:inline-flex}.pairing-assurance ion-icon{font-size:.875rem}.pairing-workspace{flex-direction:column;padding:34px 28px 24px;display:flex}.pairing-workspace__heading>span{color:var(--app-color-primary);letter-spacing:.14em;font-size:.625rem;font-weight:800}.pairing-workspace__heading h2{font-family:var(--app-font-display);letter-spacing:-.035em;margin:7px 0 5px;font-size:clamp(1.45rem,3vw,1.8rem);line-height:1.3}.pairing-workspace__heading p{color:var(--app-color-text-muted);margin:0;font-size:.8125rem}.profile-editor{align-items:end;gap:var(--app-space-3);margin:var(--app-space-5) 0;border:1px solid var(--app-color-outline);background:snow;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;padding:12px;display:grid}.profile-editor__photo{cursor:pointer;align-self:center;display:block;position:relative}.profile-editor__avatar{width:46px;height:46px;box-shadow:0 7px 16px rgb(var(--app-color-primary-rgb) / 20%);background:#f8e5da;border-radius:15px;place-items:center;display:grid;overflow:hidden}.profile-editor__avatar img,.profile-editor__avatar svg{width:100%;height:100%}.profile-editor__avatar img{object-fit:cover}.profile-editor__camera{border:2px solid var(--app-color-surface);width:22px;height:22px;color:var(--app-color-on-primary);background:var(--app-color-primary);border-radius:50%;place-items:center;font-size:.7rem;display:grid;position:absolute;bottom:-5px;right:-5px}.profile-editor__name,.pairing-code-field{color:var(--app-color-text-muted);gap:5px;font-size:.6875rem;font-weight:700;display:grid}.profile-editor__name input{width:100%;min-height:25px;color:var(--app-color-text);background:0 0;border:0;outline:none;padding:0;font-size:.9375rem;font-weight:700}.profile-editor .app-button{min-height:40px}.profile-editor__message{grid-column:1/-1}.pairing-switch{background:var(--app-color-surface-low);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.pairing-switch button{min-height:42px;color:var(--app-color-text-muted);background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:.8125rem;font-weight:700;transition:color .16s,background-color .16s,box-shadow .16s;display:flex}.pairing-switch button.is-selected{color:var(--app-color-primary);background:#fff;box-shadow:0 3px 10px #3f001c14}.pairing-switch ion-icon{font-size:1.0625rem}.pairing-action{text-align:center;flex-direction:column;flex:1;align-items:center;padding:26px 0 0;display:flex}.pairing-action__icon,.accept-page__icon,.connection-summary__icon{width:48px;height:48px;margin-bottom:var(--app-space-3);color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:16px;place-items:center;font-size:1.5rem;display:inline-grid}.pairing-action__icon{width:52px;height:52px;box-shadow:0 9px 22px rgb(var(--app-color-primary-rgb) / 12%);background:linear-gradient(145deg,#ffe5eb,#ffd2dd);border-radius:18px;margin-bottom:14px}.pairing-action h3{margin:0 0 5px;font-size:1.125rem;line-height:1.4}.pairing-action>p{color:var(--app-color-text-muted);margin:0;font-size:.8125rem;line-height:1.55}.pairing-action__meta{justify-content:center;gap:var(--app-space-2);margin-top:14px;display:flex}.pairing-action__meta span{color:var(--app-color-text-muted);align-items:center;gap:5px;font-size:.6875rem;display:inline-flex}.pairing-action__meta ion-icon{color:var(--app-color-primary);font-size:.875rem}.pairing-invite-code{border:1px dashed rgb(var(--app-color-primary-rgb) / 42%);text-align:left;background:#fff8fa;border-radius:14px;gap:7px;width:100%;margin:16px 0 14px;padding:14px 16px;display:grid}.pairing-invite-code>span{color:var(--app-color-text-muted);font-size:.6875rem;font-weight:700}.pairing-invite-code code{overflow-wrap:anywhere;color:var(--app-color-primary);-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9375rem;font-weight:800;line-height:1.45}.pairing-invite-code small{color:var(--app-color-text-muted);align-items:center;gap:5px;font-size:.6875rem;display:flex}.pairing-invite-code small ion-icon{color:var(--app-color-primary);flex:none;font-size:.875rem}.pairing-action__button{width:100%;min-height:50px;box-shadow:0 9px 22px rgb(var(--app-color-primary-rgb) / 18%);border-radius:14px;margin-top:auto}.pairing-code-field{text-align:left;width:100%;margin:18px 0 14px}.pairing-code-field input{width:100%;min-height:50px;padding:0 var(--app-space-4);border:1px solid var(--app-color-outline);color:var(--app-color-text);background:snow;border-radius:14px;outline:none;font-size:.875rem;transition:border-color .16s,box-shadow .16s}.pairing-code-field input:focus{border-color:var(--app-color-primary);box-shadow:0 0 0 3px rgb(var(--app-color-primary-rgb) / 12%);background:#fff}.pairing-message{margin-top:var(--app-space-3)}.danger-zone p,.connection-summary p{color:var(--app-color-text-muted);font-size:.875rem;line-height:1.55}.pairing-signout{margin:var(--app-space-5) auto 0;color:var(--app-color-text-muted);font-size:.75rem;display:flex}@media (min-width:760px){.pairing-layout{grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr)}.pairing-hero{min-height:610px;padding:44px 36px 30px}.pairing-workspace{padding:44px 38px 26px}}@media (max-width:759px){.pairing-page{padding-top:var(--app-space-4)}.pairing-layout{border-radius:22px}.pairing-hero{min-height:330px;padding:26px 22px 20px}.pairing-kicker{margin-bottom:var(--app-space-3)}.pairing-hero h1{margin-bottom:var(--app-space-2);font-size:1.8rem}.pairing-hero__copy>p:last-child{max-width:440px;font-size:.8125rem}.pairing-visual{height:108px;margin-block:10px 4px}.pairing-person{width:62px;height:62px;top:26px}.pairing-person--me{left:38px}.pairing-person--partner{right:38px}.pairing-visual__line{top:56px;left:91px;right:91px}.pairing-visual__heart{border-radius:13px;width:38px;height:38px;top:38px}.pairing-visual__note--top{right:70px}.pairing-visual__note--bottom{left:72px}.pairing-workspace{padding:28px 22px 22px}.pairing-action{min-height:270px}}.accept-page{text-align:center;flex-direction:column;justify-content:center;display:flex}.accept-page__icon{border-radius:50%;align-self:center;width:64px;height:64px;font-size:1.875rem}.privacy-callout{align-items:flex-start;gap:var(--app-space-2);margin:var(--app-space-6) 0;padding:var(--app-space-4);color:var(--app-color-text-muted);background:var(--app-color-surface-low);text-align:left;border-radius:12px;font-size:.8125rem;line-height:1.5;display:flex}.privacy-callout ion-icon{color:var(--app-color-primary);flex:none;font-size:1.25rem}.accept-page .app-button+.app-button{margin-top:var(--app-space-3)}.connection-summary{align-items:center;gap:var(--app-space-4);padding:var(--app-space-5);display:flex}.connection-summary__icon{flex:none;margin:0}.connection-summary h2,.connection-summary p{margin:0}.connection-summary h2{margin-bottom:var(--app-space-1);font-size:var(--app-font-title-2-size)}.settings-section{gap:var(--app-space-3);margin-top:var(--app-space-7);display:grid}.settings-section h2,.settings-section p{margin:0}.settings-section .app-button{width:100%}.settings-section.photo-storage-settings{padding:12px 16px}.photo-storage-settings progress{width:100%;accent-color:var(--app-color-primary)}.photo-storage-settings__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.photo-storage-settings .photo-storage-settings__header .app-button{white-space:nowrap;flex-shrink:0;width:auto;min-height:44px;padding:8px 12px;font-size:12px}.danger-zone{padding-top:var(--app-space-5);border-top:1px solid var(--app-color-outline)}@media (min-width:900px){.auth-page{border:1px solid rgb(var(--app-color-primary-rgb) / 10%);border-radius:32px;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);width:min(1080px,100% - 64px);min-height:min(720px,100vh - 64px);margin-block:32px;display:grid;overflow:hidden;box-shadow:0 24px 70px #3f001c24}.auth-story{flex-direction:column;min-height:100%;padding:44px 52px;display:flex}.auth-back{top:36px;left:36px}.auth-brand--light{justify-content:flex-start;margin-left:52px}.auth-story__visual{width:300px;height:150px;margin:auto auto var(--app-space-8);transform:scale(1.28)}.auth-story__avatar{width:82px;height:82px;font-size:1.25rem;top:30px}.auth-story__avatar--mine{left:60px}.auth-story__avatar--partner{right:60px}.auth-story__heart{width:30px;height:30px;top:56px;left:135px}.auth-story__note--days{top:12px;right:0}.auth-story__note--plan{bottom:4px;left:0}.auth-story__copy{text-align:left;max-width:420px}.auth-story__copy h2{font-size:2.5rem}.auth-story__copy span{margin-top:var(--app-space-3);font-size:.875rem}.auth-panel{min-height:100%;box-shadow:none;border-radius:0;flex-direction:column;justify-content:center;margin:0;padding:52px 56px;display:flex}}@media (min-width:700px){.content-shell{padding-inline:var(--app-space-8)}.bucket-page{width:min(100%,960px)}.bucket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-add-button{display:inline-flex}.mobile-fab{display:none}.next-plan-card__art{width:220px}.horizontal-cards,.tag-filter-row{margin-inline:0;padding-inline:0}}@media (min-width:600px){.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:900px){.bucket-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:359px){.content-shell{padding-inline:var(--app-space-4)}.tag-filter-row,.horizontal-cards{margin-inline:calc(var(--app-space-4) * -1);padding-inline:var(--app-space-4)}.couple-hero h1{font-size:1.75rem}.next-plan-card{flex-direction:column-reverse}.next-plan-card__art{width:100%;height:100px}.segment-control button{font-size:.6875rem}.memory-grid{gap:var(--app-space-3)}.polaroid-card{padding:8px 8px 12px}.auth-story{padding-inline:var(--app-space-4)}.auth-story__visual{margin-top:var(--app-space-5);transform:scale(.92)}.auth-story__copy h2{font-size:1.5rem}.auth-story__copy span{font-size:.6875rem}.auth-panel{padding-inline:var(--app-space-4)}.profile-setup{grid-template-columns:auto 1fr}.profile-setup .app-button{grid-column:1/-1;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sync-status{z-index:100;bottom:calc(4.5rem + env(safe-area-inset-bottom));border:1px solid var(--app-color-outline-strong);background:var(--app-color-surface);box-shadow:var(--app-shadow-card);border-radius:1rem;flex-wrap:wrap;gap:.5rem;padding:.75rem;font-size:1rem;display:flex;position:fixed;left:1rem;right:1rem}.sync-status button{color:var(--app-color-primary);background:0 0;border:0;min-height:2.75rem;text-decoration:underline}.sync-changes{overflow-wrap:anywhere;padding:1rem}.sync-changes section{border-bottom:1px solid var(--app-color-outline);padding-block:1rem}.sync-comparison{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1rem;display:grid}.sync-actions{flex-wrap:wrap;gap:.5rem;display:flex}:focus-visible{outline:3px solid var(--app-color-primary);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.sync-fields{margin:0}.sync-fields div{margin-block:.75rem}.sync-fields dt{color:var(--app-color-text-muted);font-size:.875rem}.sync-fields dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:.25rem 0 0}.legal-page,.deletion-page{max-width:44rem}.legal-page__header{padding-bottom:var(--app-space-5);border-bottom:1px solid var(--app-color-outline)}.legal-page__header h1,.deletion-page h1{margin-bottom:var(--app-space-2);font-size:var(--app-font-display-size);line-height:var(--app-font-display-line)}.legal-page section{padding-block:var(--app-space-5);border-bottom:1px solid var(--app-color-outline)}.legal-page h2,.deletion-summary h2{margin-bottom:var(--app-space-3);font-size:var(--app-font-title-2-size);line-height:var(--app-font-title-2-line)}.legal-page p,.legal-page li,.deletion-summary li{color:var(--app-color-text-muted);line-height:1.7}.legal-page ul,.deletion-summary ul{margin-block:0;padding-left:1.4rem}.legal-page a,.deletion-policy-link,.auth-terms a{color:var(--app-color-primary);text-underline-offset:.2em;font-weight:700}.legal-page__notice{margin-top:var(--app-space-6);padding:var(--app-space-4);border-radius:var(--app-radius-md);color:var(--app-color-warning);background:var(--app-color-warning-container);line-height:1.6}.deletion-summary{padding:var(--app-space-5)}.deletion-form{gap:var(--app-space-4);margin-top:var(--app-space-6);display:grid}.deletion-form>label:not(.deletion-check){gap:var(--app-space-2);font-weight:600;display:grid}.deletion-form input[type=text],.deletion-form input:not([type]){border:1px solid var(--app-color-outline-strong);width:100%;min-height:3rem;color:var(--app-color-text);background:var(--app-color-surface);border-radius:.75rem;padding:.75rem}.deletion-check{align-items:flex-start;gap:var(--app-space-3);line-height:1.5;display:flex}.deletion-check input{width:1.25rem;height:1.25rem;accent-color:var(--app-color-primary);flex:none;margin-top:.1rem}.deletion-form small{margin-top:calc(var(--app-space-3) * -1);color:var(--app-color-text-muted)}.deletion-form .app-button{width:100%}.deletion-policy-link{justify-content:center;align-items:center;min-height:2.75rem;display:inline-flex}html{font-size:100%}body{-webkit-font-smoothing:antialiased}@supports (-webkit-touch-callout:none){@media (hover:none) and (pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--app-color-primary);outline-offset:4px}.app-header ion-toolbar{--min-height:64px;--border-width:0;--padding-start:20px;--padding-end:16px}.app-header ion-title{color:var(--app-color-text);font-size:1.65rem}.app-header__notifications{background:var(--app-color-surface);border:1px solid var(--app-color-outline)}.content-shell{width:min(100%,800px)}:is(.home-page,.bucket-page,.timeline-page,.anniversary-page){padding-top:20px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}.eyebrow{color:var(--app-color-primary);letter-spacing:.12em;font-size:.6875rem;line-height:1.6}.page-title-row,.timeline-intro{padding-block:8px 20px}.timeline-intro{margin-bottom:var(--app-space-2);padding:0}.timeline-page{padding-top:var(--app-space-6)}.bucket-add-button{flex-shrink:0}.bucket-page .bucket-title-row{z-index:10;background:var(--app-color-background);position:sticky;top:0}:is(.bucket-page,.timeline-page,.anniversary-page) h1{letter-spacing:-.055em;font-size:1.875rem;font-weight:750;line-height:1.35}.surface-card{box-shadow:var(--app-shadow-card)}.app-button{border-radius:14px;min-height:48px;padding:12px 18px;font-size:.8125rem}.app-button--primary{box-shadow:0 4px 12px rgb(var(--app-color-primary-rgb) / 14%)}.app-button--secondary{border-color:var(--app-color-outline);background:var(--app-color-surface)}.app-button--tertiary{background:var(--app-color-primary-container)}.icon-button{min-width:44px;min-height:44px}.text-button{min-height:44px;font-size:.75rem}.section-heading h2{letter-spacing:-.035em;font-size:1.125rem;font-weight:750}.section-heading h2 ion-icon{font-size:1.125rem}.home-page{gap:28px}.home-intro{padding-top:4px}.home-intro .eyebrow{margin-bottom:6px}.home-intro h2{letter-spacing:-.05em;margin-bottom:6px;font-size:1.5rem;font-weight:750}.home-intro>p:last-child{color:var(--app-color-text-muted);margin-bottom:0;font-size:.8125rem;line-height:1.65}.couple-hero{isolation:isolate;background:#f2e9dc;border:1px solid #e9dccb;border-radius:28px;padding:26px 20px 24px;position:relative;overflow:hidden}.couple-hero:before,.couple-hero:after{content:"";z-index:-1;pointer-events:none;border:1px solid #e3d2bc;border-radius:50%;width:230px;height:230px;position:absolute}.couple-hero:before{top:-95px;right:-125px}.couple-hero:after{width:280px;height:280px;bottom:-140px;left:-95px}.couple-hero__decoration{z-index:-1;color:#e4d5c1;font:italic 140px/1 Georgia,serif;position:absolute;top:35px;right:22px;transform:rotate(12deg)}.avatar-pair{margin-bottom:16px}.avatar{color:#63382f;width:48px;height:48px;box-shadow:none;background:#e8bba5;border-width:3px;font-size:.875rem}.avatar--second{color:#3d5240;background:#c5d2bc}.avatar-pair__heart{background:var(--app-color-primary);border-color:#f2e9dc;width:28px;height:28px}.couple-hero .eyebrow{color:#74614f;letter-spacing:.025em;order:2;margin:12px 0 16px;font-size:.6875rem;font-weight:500}.couple-hero h1{color:var(--app-color-text);margin:0;line-height:1.35}.couple-hero__label,.couple-hero__unit{letter-spacing:-.02em;font-size:.8125rem;font-weight:500;display:block}.couple-hero__days{color:var(--app-color-primary);letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:3px 0 8px;font:400 clamp(3.75rem,16vw,5rem)/1 Georgia,serif;display:block}.next-anniversary-inline{background:#faf6ef;border:1px solid #e6d8c5;order:3;min-height:40px;padding:10px 16px;font-size:.75rem}.home-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.home-shortcuts button{border:1px solid var(--app-color-outline);min-width:0;color:var(--app-color-text);background:var(--app-color-surface);text-align:left;border-radius:20px;flex-direction:column;align-items:flex-start;gap:7px;padding:16px;display:flex;position:relative}.home-shortcuts button>span{width:36px;height:36px;color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:12px;place-items:center;margin-bottom:3px;display:grid}.home-shortcuts button:nth-child(2)>span{color:#4e6550;background:#e8eee2}.home-shortcuts strong{font-size:.8125rem}.home-shortcuts small{color:var(--app-color-text-muted);font-size:.625rem;line-height:1.5}.home-shortcuts button>ion-icon{color:var(--app-color-outline-strong);font-size:.875rem;position:absolute;top:24px;right:12px}.next-plan-card{border:1px solid var(--app-color-outline);border-radius:20px;min-height:124px}.next-plan-card__body{align-self:center;min-width:0;padding:20px}.next-plan-card h3{overflow-wrap:anywhere;margin-bottom:10px;font-size:1rem}.next-plan-card p{font-size:.6875rem}.next-plan-card__art{background:linear-gradient(#dce8e4 0 58%,#c9d8c2 58%);width:30%;min-width:90px}.next-plan-card__sun{background:#fbf4d4;top:22px;right:22px}.next-plan-card__island{background:#889d7f}.home-memories .horizontal-cards>div{flex-basis:164px}.home-memories .polaroid-card,.polaroid-card,.memory-grid .polaroid-card{border:1px solid var(--app-color-outline);box-shadow:none;border-radius:18px;padding:8px}.polaroid-card__image{aspect-ratio:4/5;border-radius:12px}.memory-grid .polaroid-card--shared{content-visibility:visible;position:relative;box-shadow:0 2px 10px #a16c5b12}.memory-grid .polaroid-card--flower{background:linear-gradient(135deg,#fffdf8,#f5f7ee);border-color:#c3cba9;border-radius:18px 18px 24px 12px}.memory-grid .polaroid-card--tape{background:#fffcf4;border-color:#d7c9b4;border-radius:8px 12px 10px 6px;box-shadow:2px 3px #eee7d9}.memory-grid .polaroid-card--ribbon{background:linear-gradient(120deg,#fffbfc,#fbf0f4);border-color:#d9aebd}.memory-grid .polaroid-card--stitch{background:#f4f8fa;border-color:#c6d4dc;border-radius:20px}.polaroid-card__border-decoration{z-index:1;pointer-events:none;position:absolute;inset:0}.memory-vine{width:28px;height:calc(100% - 8px);position:absolute;top:4px;left:-13px}.memory-vine__blossom{width:27px;height:27px;position:absolute;left:-13px}.memory-vine__blossom--top{top:8%;transform:rotate(-18deg)}.memory-vine__blossom--bottom{width:22px;height:22px;bottom:22%;transform:rotate(22deg)}.memory-vine__blossom svg{width:100%;height:100%;display:block}.memory-washi-tape{clip-path:polygon(3% 0,98% 0,95% 17%,100% 33%,96% 49%,99% 66%,95% 83%,98% 100%,2% 100%,5% 83%,1% 66%,4% 49%,0 33%,5% 17%);background:repeating-linear-gradient(90deg,#0000 0 9px,#ffffff70 9px 10px),repeating-linear-gradient(0deg,#0000 0 9px,#ffffff70 9px 10px),#b9b0d5cc;width:76px;height:23px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(-6deg)}.memory-ribbon-band{background:linear-gradient(90deg,#e4bac9,#f5dce5 55%,#dfafc0);border-inline:1px solid #c594a6;width:7px;position:absolute;top:16px;bottom:16px;right:-2px;box-shadow:1px 0 2px #9c607022}.memory-ribbon-bow{filter:drop-shadow(0 1px 1px #9c607022);width:32px;height:40px;position:absolute;top:48%;right:-12px;transform:rotate(-7deg)}.memory-stitched-frame{border:1px dashed #8da4b2;border-radius:16px;position:absolute;inset:3px}.memory-stitch-thread{background:#f4f8fa;border-radius:50%;width:52px;height:21px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.memory-grid .polaroid-card--garland{background:linear-gradient(135deg,#fffdf6,#fbf5e9);border-color:#d8caa7}.memory-garland{width:calc(100% - 12px);height:36px;position:absolute;top:-13px;left:6px;overflow:visible}.memory-grid .polaroid-card--postage{background:#fcf6e9;border:1px solid #d8c6a9;border-radius:3px}.memory-postage-perforations{border:5px solid #e4d4b7;position:absolute;inset:-5px;-webkit-mask:radial-gradient(circle,#0000 2px,#000 2.5px) -4px -4px/8px 8px;mask:radial-gradient(circle,#0000 2px,#000 2.5px) -4px -4px/8px 8px}.memory-postmark{width:66px;height:34px;position:absolute;top:48%;right:-17px;transform:rotate(-12deg)}.memory-grid .polaroid-card--corners{background:#faf4e7;border-color:#d6c5a8;border-radius:5px}.memory-album-corner{clip-path:polygon(0 0,100% 0,0 100%);filter:drop-shadow(0 1px 1px #8d744633);background:linear-gradient(135deg,#baa172,#e7d7ae 43%,#c1a775 46%,#9c845e);width:25px;height:25px;position:absolute}.memory-album-corner--top-left{top:-2px;left:-2px}.memory-album-corner--top-right{top:-2px;right:-2px;transform:rotate(90deg)}.memory-album-corner--bottom-left{bottom:-2px;left:-2px;transform:rotate(-90deg)}.memory-album-corner--bottom-right{bottom:-2px;right:-2px;transform:rotate(180deg)}.polaroid-card__caption,.home-memories .polaroid-card__caption{text-align:left;padding:12px 4px 8px}.polaroid-card__caption h3{overflow-wrap:anywhere;margin:0 0 6px;font-size:.8125rem;font-weight:650;line-height:1.45}.polaroid-card__caption time{color:var(--app-color-text-muted);letter-spacing:.03em;font-size:.625rem}.activity-list{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:20px;gap:0;padding:4px 16px}.activity-card{background:0 0;border:0;border-radius:0;padding:14px 0}.activity-card+.activity-card{border-top:1px solid var(--app-color-surface-muted)}.activity-card__icon{background:var(--app-color-surface-low);flex-basis:34px;width:34px;height:34px}.activity-card p{font-size:.75rem}.activity-card time{font-size:.625rem}.home-primary-action{align-self:stretch}.empty-state{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:24px}:is(.home-page,.bucket-page,.timeline-page,.anniversary-page) .empty-state{min-height:240px;padding:28px 20px}.empty-state__icon{background:var(--app-color-surface-low);border-radius:18px;width:52px;height:52px}.empty-state h2{letter-spacing:-.035em;font-size:1rem}.empty-state p{font-size:.75rem;line-height:1.8}.filter-stack{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:22px;gap:14px;padding:18px}.memory-filters{padding:var(--app-space-4);border:1px solid var(--app-color-outline);border-radius:var(--app-radius-md);background:var(--app-color-surface)}.search-field{background:var(--app-color-background);border-color:#0000;border-radius:12px;height:48px}.search-field input{font-size:.8125rem}.compact-filters{background:0 0;border:0;border-radius:0;gap:8px;padding:0}.compact-filters .search-field{border-color:var(--app-color-outline);background:var(--app-color-surface);border-radius:8px;gap:6px;height:32px;padding-inline:10px}.compact-filters .search-field:focus-within{border-color:var(--app-color-primary)}.compact-filters .search-field ion-icon{font-size:.875rem}.compact-filters :is(.bucket-select-row,.memory-date-filters){gap:10px}.compact-filters .app-select{align-items:center;gap:6px;font-size:.625rem;font-weight:500;display:flex}.compact-filters .app-select>span:first-child{flex-shrink:0}.compact-filters .app-select__control{flex:1}.compact-filters .app-select__input{background:var(--app-color-surface);border-radius:7px;min-height:30px;padding:0 24px 0 8px;font-size:.75rem}.compact-filters .app-select__control>ion-icon{width:12px;height:12px;right:7px}.segment-control{background:var(--app-color-surface-low);border-radius:12px;padding:4px}.segment-control button{border-radius:9px;min-height:40px;font-size:.8125rem}.segment-control button.is-selected{background:var(--app-color-primary);color:#fff;box-shadow:none}.results-summary{padding-block:8px;font-size:.75rem}.memory-results-summary{padding:0;font-size:.75rem}.bucket-card{box-shadow:none;border-top:3px solid #d4b99d;border-radius:22px;padding:12px 16px;position:relative}.bucket-card:has(.status-badge--completed){border-top-color:#92a68c}.bucket-card__top{min-height:30px}.bucket-card h2{letter-spacing:-.025em;margin-top:0;font-size:1.0625rem}.bucket-card__description{font-size:.75rem;line-height:1.7}.bucket-card__date{margin:0;font-size:.6875rem}.bucket-card__complete{background:var(--app-color-surface-low);border-color:#0000;border-radius:9px;min-height:30px;padding:4px 8px}.bucket-card__bottom{padding-top:0}.status-badge{background:var(--app-color-surface-low);border:0;border-radius:7px;padding:6px 9px;font-size:.625rem}.status-badge--completed{background:var(--app-color-success-container)}.mobile-fab{min-height:52px;bottom:calc(90px + env(safe-area-inset-bottom))}.memory-grid{gap:var(--app-space-4)}.timeline-end{background:var(--app-color-primary);opacity:.45}.relationship-date-card{border-radius:22px;gap:18px;padding:20px}.relationship-date-card__icon{background:var(--app-color-primary-container);border-radius:12px}.relationship-date-card p{font-size:.6875rem;line-height:1.7}.anniversary-hero{background:#e9eee2;border:1px solid #e3dccf;border-radius:28px;min-height:245px;padding:28px}.anniversary-hero__label{color:#53654a;background:#f6f8f1;font-size:.6875rem}.anniversary-hero h2{color:#405437;margin-block:16px 10px;font-size:1.125rem}.anniversary-hero>strong{color:#405437;letter-spacing:-.035em;font:400 clamp(3rem,14vw,4rem)/1.1 Georgia,serif}.anniversary-hero__orb{background:#cdd8c0}.anniversary-hero time{color:#53654a;margin-top:14px;font-size:.6875rem}.date-section__heading h2,.settings-section h2{letter-spacing:-.03em;font-size:1.0625rem}.date-section ul{border:1px solid var(--app-color-outline);background:var(--app-color-surface);border-radius:20px;padding:0 16px;overflow:hidden}.date-row{border:0;padding:16px 0}.date-row+.date-row{border-top:1px solid var(--app-color-surface-muted)}.date-row__icon{background:var(--app-color-surface-low);border-radius:11px;flex:0 0 34px;width:34px;height:34px}.date-row__title{flex-wrap:wrap}.date-row__copy{min-width:0}.date-row__copy strong{overflow-wrap:anywhere;font-size:.8125rem}.date-row__copy time,.date-row__title small{font-size:.625rem}.date-row__dday{white-space:nowrap;font-size:.75rem}.date-row__hide{min-height:44px;font-size:.625rem}.settings-section,.connection-summary,.deletion-summary{background:var(--app-color-surface);border-radius:22px}.settings-section{border:1px solid var(--app-color-outline);padding:22px}.settings-section .app-button{justify-content:flex-start;width:100%}.font-picker{border:0;gap:10px;min-width:0;margin:2px 0 0;padding:0;display:grid}.font-option{border:1px solid var(--app-color-outline);background:var(--app-color-background);cursor:pointer;border-radius:16px;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:6px 12px;min-height:68px;padding:12px 14px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:grid;position:relative}.font-option:has(input:checked){border-color:var(--app-color-primary);background:var(--app-color-primary-container);box-shadow:0 0 0 1px var(--app-color-primary)}.font-option:has(input:focus-visible){outline:3px solid var(--app-color-primary);outline-offset:3px}.font-option input{opacity:0;width:1px;height:1px;position:absolute}.font-option__preview{grid-column:1;width:min(100%,300px);height:auto;display:block}.font-option__copy{gap:3px;min-width:0;display:grid}.font-option__copy small{color:var(--app-color-text-muted);font-size:.6875rem;line-height:1.45}.font-option__indicator{border:1.5px solid var(--app-color-outline-strong);border-radius:50%;grid-area:1/2/span 2;width:18px;height:18px;box-shadow:inset 0 0 0 4px #0000}.font-option input:checked~.font-option__indicator{border-color:var(--app-color-primary);background:var(--app-color-primary);box-shadow:inset 0 0 0 4px var(--app-color-primary-container)}.settings-section .font-picker__save{justify-content:center}.bucket-editor-form,.memory-editor-form,.anniversary-editor-form{gap:24px}.bucket-form-field{font-size:.8125rem}.bucket-form-field input,.bucket-form-field select,.bucket-form-field textarea,.auth-form input,.profile-setup input,.invite-code-field input{background:var(--app-color-surface);border-color:var(--app-color-outline);border-radius:12px;min-height:50px}.app-date-control,.app-date-control ion-datetime-button::part(native){min-height:50px}.bucket-form-field textarea{min-height:140px;line-height:1.8}.bucket-privacy-toggle,.memory-source-card,.privacy-callout{background:var(--app-color-surface-low);border-radius:18px}.memory-detail-modal::part(content),.notification-center-modal::part(content){border-radius:28px 28px 0 0}.memory-detail__note,.interaction-panel{border-radius:20px}.comment-card{border-radius:12px}.comment-card.is-mine{background:color-mix(in srgb, var(--app-color-primary-container) 35%, var(--app-color-surface))}.reaction-picker button{border-radius:10px;min-width:40px;min-height:36px}.app-tab-bar{--background:#fff;--border:1px solid var(--app-color-outline);height:calc(72px + env(safe-area-inset-bottom));-webkit-backdrop-filter:none;backdrop-filter:none;padding-inline:8px}.app-tab-bar ion-tab-button{--color:#746a60;--padding-top:9px;--padding-bottom:9px;letter-spacing:-.02em;font-size:.625rem}.app-tab-bar ion-icon{margin-bottom:4px;font-size:1.375rem}.app-tab-bar ion-tab-button.tab-selected ion-icon{background:var(--app-color-primary-container);box-sizing:content-box;border-radius:10px;margin-top:-4px;margin-bottom:0;padding:4px 14px}.app-tab-bar ion-tab-button.tab-selected ion-label{font-weight:750}.app-header ion-toolbar{--background:var(--app-color-surface);--min-height:58px}.app-header ion-title{width:auto;height:auto;color:var(--app-color-primary);text-align:left;padding-inline:0;font-size:1.625rem;font-weight:600;position:relative;inset:auto}.app-header__notifications{border-color:#0000}.home-editorial{background:var(--app-color-surface);gap:0;padding-top:10px}.home-editorial__identity{justify-content:space-between;align-items:center;gap:16px;display:flex}.home-editorial__avatars{align-items:center;display:flex}.home-editorial__profile-link{border-radius:50%;display:block}.home-editorial__avatars>ion-icon{z-index:1;color:#f08b79;margin-inline:-3px;font-size:.875rem}.home-editorial__avatar{border:2px solid var(--app-color-surface);background:#f8e5da;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;overflow:hidden;box-shadow:0 2px 7px #5b39451a}.profile-avatar img,.profile-avatar>.loading-image,.profile-avatar svg{width:100%;height:100%}.profile-avatar img{object-fit:cover}.profile-avatar--lavender{background:#eee8f8}.home-editorial__together{color:var(--app-color-text-muted);letter-spacing:-.02em;align-items:baseline;gap:5px;margin:0;font-size:.75rem;font-weight:500;display:flex}.home-editorial__together strong{color:#b95355;font-variant-numeric:tabular-nums;font-size:.875rem}.home-editorial__together button{min-height:44px;color:var(--app-color-primary);background:0 0;border:0;font-size:.8125rem;font-weight:700}.home-editorial__prompt{margin-top:16px}.home-editorial__prompt h1{color:var(--app-color-text);letter-spacing:-.065em;margin-bottom:6px;font-size:clamp(1.875rem,8vw,2.375rem);font-weight:780;line-height:1.25}.home-editorial__prompt p{color:var(--app-color-text-muted);margin-bottom:0;font-size:.875rem;line-height:1.6}.home-week-navigation{align-items:center;gap:8px;display:flex}.home-week-navigation span{min-width:0;color:var(--app-color-text-muted);text-align:left;flex:1;font-size:.78rem}.home-week-navigation button{border:1px solid var(--app-color-outline);background:color-mix(in srgb, var(--app-color-primary) 8%, var(--app-color-background));min-width:48px;min-height:30px;color:var(--app-color-primary);font:inherit;cursor:pointer;border-radius:8px;flex-shrink:0;padding:0 10px;font-size:.78rem;font-weight:700}.home-week-navigation button:hover{border-color:var(--app-color-primary);background:color-mix(in srgb, var(--app-color-primary) 14%, var(--app-color-background))}.home-week-navigation button:active{background:color-mix(in srgb, var(--app-color-primary) 20%, var(--app-color-background))}.home-week-navigation button:focus-visible{outline:2px solid var(--app-color-primary);outline-offset:2px}.home-week-viewport{touch-action:pan-y pinch-zoom;overflow:clip}.home-week.is-next{animation:.24s ease-out home-week-from-right}.home-week.is-previous{animation:.24s ease-out home-week-from-left}@keyframes home-week-from-right{0%{opacity:.4;transform:translate(12%)}}@keyframes home-week-from-left{0%{opacity:.4;transform:translate(-12%)}}@media (prefers-reduced-motion:reduce){.home-week.is-next,.home-week.is-previous{animation:none}}.home-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:14px 0 12px;padding:0;list-style:none;display:grid}.home-week li{min-width:0;position:relative}.home-week button{width:100%;min-width:0;min-height:61px;color:var(--app-color-text-muted);cursor:pointer;background:0 0;border:0;align-content:start;justify-items:center;padding:0;display:grid}.home-week button:focus-visible{outline:2px solid var(--app-color-primary);outline-offset:2px;border-radius:12px}.home-week button span{font-size:.6875rem;line-height:1.5}.home-week button strong{width:34px;height:34px;color:var(--app-color-text);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;margin-top:4px;font-size:.875rem;font-weight:650;display:grid}.home-week li:nth-child(6) strong{color:#746baa}.home-week li:nth-child(7) strong{color:#a94d55}.home-week .is-today button{color:var(--app-color-primary)}.home-week .is-selected strong{color:#fff;background:#7650a7;box-shadow:0 5px 14px #724ca43d}.home-week .is-today:not(.is-selected) strong{outline:1px solid #c9b3e6}.home-week__plan-dot{background:#9b78d0;border-radius:50%;width:4px;height:4px;margin-top:5px}.home-upcoming{gap:12px;display:grid}.home-page .home-upcoming .empty-state{min-height:130px;padding:16px}.home-upcoming .empty-state__icon{border-radius:12px;width:32px;height:32px;margin-bottom:8px}.home-upcoming .empty-state__icon ion-icon{font-size:1.125rem}.home-upcoming .empty-state h2{margin-bottom:4px}.home-upcoming .empty-state p{margin-bottom:0;line-height:1.5}.home-date-ticket-list{gap:10px;display:grid}.home-date-ticket{width:100%;color:var(--app-color-text);text-align:left;background:#f0e9fb;border:1px solid #e2d5fa;border-radius:24px;padding:0;overflow:hidden;box-shadow:0 12px 28px #41274d14}.home-date-ticket__body{padding:20px;position:relative}.home-date-ticket__meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;display:flex}.home-date-ticket__meta>span{color:#70469e;letter-spacing:.14em;font-size:.625rem;font-weight:800}.home-date-ticket__meta .status-badge{flex:none}.home-date-ticket__body h3{letter-spacing:-.045em;margin-bottom:5px;font-size:1.25rem;font-weight:780;line-height:1.35}.home-date-ticket__body p{color:#62566b;margin-bottom:0;font-size:.8125rem}.home-date-ticket:active,.home-editorial__primary-action:active,.home-memory-row:active{transform:scale(.99)}.home-editorial__primary-action{color:#fff;background:var(--app-color-primary);border:0;border-radius:17px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:52px;font-size:.9375rem;font-weight:750;transition:transform .14s;display:inline-flex}.home-editorial__primary-action ion-icon{font-size:1.25rem}.home-editorial__anniversary{min-height:48px;color:var(--app-color-text);text-align:left;background:0 0;border:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:9px;padding:0 4px;display:grid}.home-editorial__anniversary>ion-icon:first-child,.home-editorial__anniversary strong{color:#b95355}.home-editorial__anniversary>ion-icon:last-child{color:var(--app-color-outline-strong)}.home-editorial__anniversary span,.home-editorial__anniversary strong{font-size:.8125rem}.home-memories{border-top:1px solid var(--app-color-outline);margin-top:18px;padding-top:18px}.home-editorial__section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.home-editorial__section-heading h2{letter-spacing:-.045em;margin:0;font-size:1.25rem;font-weight:780}.home-editorial__section-heading button{min-height:44px;color:var(--app-color-text-muted);background:0 0;border:0;align-items:center;gap:2px;padding:0;font-size:.75rem;display:inline-flex}.home-memory-row{width:100%;color:var(--app-color-text);text-align:left;background:0 0;border:0;grid-template-columns:minmax(116px,42%) minmax(0,1fr) auto;align-items:center;gap:14px;padding:0;transition:transform .14s;display:grid}.home-memory-row>.home-memory-row__image{aspect-ratio:2.05;object-fit:cover;border-radius:14px;width:100%;display:block}.home-memory-row__placeholder{aspect-ratio:2.05;width:100%;color:var(--app-color-primary);background:var(--app-color-primary-container);border-radius:14px;place-items:center;display:grid}.home-memory-row__placeholder ion-icon{font-size:1.5rem}.home-memory-row>span{gap:6px;min-width:0;display:grid}.home-memory-row strong{letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:720;line-height:1.45;overflow:hidden}.home-memory-row time{color:var(--app-color-text-muted);font-size:.75rem}.home-memory-row>ion-icon{color:var(--app-color-outline-strong)}.home-editorial>.home-section:last-of-type{margin-top:30px}.app-tab-bar{--background:#fffffff7}@media (max-width:340px){.home-editorial__prompt h1{font-size:1.75rem}.home-date-ticket__body h3{font-size:1.125rem}.home-memory-row{grid-template-columns:112px minmax(0,1fr) auto;gap:10px}}.welcome-page{gap:8px}.welcome-mark{background:#f2e9dc;border-radius:45% 45% 28px 28px;min-height:220px;margin-bottom:28px;position:relative}.welcome-mark:after{content:"a little world for two";color:#74614f;font:italic 1rem Georgia,serif;position:absolute;bottom:22px}.welcome-mark span{color:#63382f;background:#e9bda8;border-radius:42px 42px 20px 20px;width:82px;height:100px;transform:rotate(-9deg)}.welcome-mark span:last-child{color:#3d5240;background:#c5d2bc;transform:rotate(9deg)}.welcome-page h1{letter-spacing:-.065em;font-size:2.125rem;line-height:1.4}.welcome-page__copy{font-size:.875rem}.auth-story,.pairing-hero{background:#874537}.auth-story__avatar--mine{background:#e9bda8}.auth-story__avatar--partner{color:#3d5240;background:#c5d2bc}.pairing-person--me{color:var(--app-color-on-primary-container);background:var(--app-color-background)}.pairing-visual__heart{color:var(--app-color-primary)}.pairing-action__icon{background:var(--app-color-primary-container);box-shadow:none}.pairing-action__icon--ready{color:var(--app-color-success);background:var(--app-color-success-container)}.auth-panel{background:var(--app-color-background)}.auth-mode button,.pairing-switch button{min-height:44px}.auth-divider{color:var(--app-color-text-muted)}.pairing-action,.profile-setup{border-color:var(--app-color-outline);box-shadow:none;border-radius:22px}.connection-summary{border-color:var(--app-color-outline)}.legal-page p,.legal-page li{color:var(--app-color-text-muted)}@media (min-width:700px){.home-page{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;display:grid}.home-intro,.couple-hero,.home-shortcuts,.home-memories,.home-primary-action{grid-column:1/-1}.couple-hero{min-height:300px}.home-shortcuts button{padding:20px}.home-memories .horizontal-cards>div{flex:1 0 180px}.home-page .horizontal-cards{margin-inline:0;padding-inline:0}.home-page .empty-state{min-height:240px}.home-primary-action{justify-self:center;min-width:280px}.app-tab-bar ion-tab-button{max-width:180px}}@media (max-width:359px){.home-page{gap:24px}.home-shortcuts button{padding:14px 12px}.next-plan-card{flex-direction:row}.next-plan-card__body{padding:16px}.next-plan-card__art{width:28%;min-width:72px;height:auto}.filter-stack:not(.compact-filters){padding:14px}.date-section ul{padding-inline:12px}.date-row{gap:8px}.date-row__icon{flex-basis:28px;width:28px;height:28px}}.memory-results-row{justify-content:space-between;align-items:center;gap:var(--app-space-3);margin:0;display:flex}.memory-view-switch{gap:var(--app-space-1);width:-moz-fit-content;width:fit-content;padding:var(--app-space-1);border:1px solid var(--app-color-outline);background:var(--app-color-background);border-radius:14px;flex-shrink:0;margin:0;display:flex}.memory-view-switch button{align-items:center;gap:var(--app-space-1);min-height:36px;padding:var(--app-space-1) var(--app-space-3);color:var(--app-color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:.8125rem;display:inline-flex}.memory-view-switch button[aria-pressed=true]{background:var(--app-color-primary);color:#fff}.memory-calendar{min-width:0}.memory-calendar__toolbar{align-items:center;gap:var(--app-space-2);margin-bottom:var(--app-space-4);display:flex}.memory-calendar .memory-results-row{margin-bottom:var(--app-space-2)}.memory-calendar__toolbar h2{text-align:center;flex:1;margin:0;font-size:1.1rem}.memory-calendar__toolbar .app-button{min-width:48px;padding:0 var(--app-space-2);font-size:1.4rem}.memory-calendar__weekdays,.memory-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.memory-calendar__weekdays{text-align:center;color:var(--app-color-text-muted);padding:8px 0;font-size:.75rem}.memory-calendar__weekdays span:first-child{color:#b36059}.memory-calendar__weekdays span:last-child{color:#567da0}.memory-calendar__grid{margin:0;padding:0;list-style:none}.memory-calendar__day{border:1px solid var(--app-color-outline);width:100%;min-width:0;min-height:clamp(68px,15vw,116px);color:var(--app-color-text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;gap:4px;padding:4px;display:flex}.memory-calendar__day.is-selected{border-color:var(--app-color-primary);background:color-mix(in srgb, var(--app-color-primary) 10%, var(--app-color-background));box-shadow:inset 0 0 0 1px var(--app-color-primary)}.memory-calendar__date{border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;line-height:1;display:grid}.memory-calendar__day[aria-current=date] .memory-calendar__date{background:var(--app-color-primary);color:#fff;font-weight:700}.memory-calendar__thumbnail{aspect-ratio:1;border-radius:4px;width:100%;display:block;position:relative;overflow:hidden}.memory-calendar__thumbnail img,.memory-calendar__thumbnail .memory-artwork{object-fit:cover;width:100%;height:100%;display:block}.memory-calendar__count{color:#fff;background:#0009;border-radius:4px 0 0;padding:2px 4px;font-size:.65rem;line-height:1.2;position:absolute;bottom:0;right:0}.memory-calendar__selection{margin-top:var(--app-space-6)}.memory-calendar__selection h3{margin-bottom:var(--app-space-4);font-size:.95rem}.memory-calendar__empty{padding:var(--app-space-6) var(--app-space-4);text-align:center;color:var(--app-color-text-muted);margin:0;font-size:.875rem}.memory-calendar button:focus-visible,.memory-view-switch button:focus-visible{outline:2px solid var(--app-color-primary);outline-offset:2px}.memory-reflections{margin-block:28px}.memory-reflections__notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.reflection-note{border:1px solid var(--app-color-outline);background:color-mix(in srgb, #f4dfa7 20%, var(--app-color-surface));border-radius:6px 6px 22px;min-width:0;padding:26px 18px 18px;position:relative;box-shadow:0 4px 12px #604c3310}.reflection-note:only-child{grid-column:1/-1}.reflection-note:before{content:"";background:#d6bc8a73;width:46px;height:15px;position:absolute;top:-7px;left:calc(50% - 23px);transform:rotate(-5deg)}.reflection-note--partner{background:color-mix(in srgb, #c6d7c0 20%, var(--app-color-surface))}.reflection-note--partner:before{background:#a9c1a173;transform:rotate(5deg)}.reflection-note header{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.reflection-note header>span{color:var(--app-color-primary);font-size:1.25rem}.reflection-note h4{overflow-wrap:anywhere;margin:0;font-size:.875rem}.reflection-note>p{white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0;font-size:.875rem;line-height:1.9}.reflection-note__empty{color:var(--app-color-text-muted)}.reflection-note__edit,.reflection-note__controls>button:not(.app-button){min-height:44px;color:var(--app-color-primary);font:inherit;background:0 0;border:0;padding:8px 0;font-size:.75rem}.reflection-note form{gap:10px;margin-top:16px;display:grid}.reflection-note textarea{resize:vertical;border:1px solid var(--app-color-outline);width:100%;min-height:140px;color:var(--app-color-text);background:var(--app-color-surface);font:inherit;border-radius:12px;padding:12px;font-size:1rem;line-height:1.8}.reflection-note__controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.interaction-panel--memory{border-radius:0;padding:16px 0 0}.interaction-panel--memory .comment-card{border-radius:12px 12px 12px 4px;justify-self:start;width:-moz-fit-content;width:fit-content;max-width:92%}.interaction-panel--memory .comment-card.is-mine{border-radius:12px 12px 4px;justify-self:end}.interaction-panel--memory .comment-card:has(.comment-edit){width:92%}.interaction-panel--memory .comment-list__empty{background:0 0;padding:16px 8px}@media (max-width:520px){.memory-reflections__notes{grid-template-columns:minmax(0,1fr);gap:24px}}
